コード例 #1
0
 def __init__(self):
     """
     This would be base for both IPI and UPI deployment
     """
     super(AWSBase, self).__init__()
     self.region = config.ENV_DATA['region']
     self.aws = AWSUtil(self.region)
コード例 #2
0
ファイル: aws.py プロジェクト: AaruniAggarwal/ocs-ci
 def __init__(self):
     """
     This would be base for both IPI and UPI deployment
     """
     super(AWSBase, self).__init__()
     self.aws = AWSUtil(self.region)
     # dict of cluster prefixes with special handling rules (for existence
     # check or during a cluster cleanup)
     self.cluster_prefixes_special_rules = CLUSTER_PREFIXES_SPECIAL_RULES
コード例 #3
0
 def __init__(self):
     """
     This would be base for both IPI and UPI deployment
     """
     super(AWSBase, self).__init__()
     self.region = config.ENV_DATA['region']
     self.aws = AWSUtil(self.region)
     if config.ENV_DATA.get('cluster_name'):
         self.cluster_name = config.ENV_DATA['cluster_name']
     else:
         self.cluster_name = get_cluster_name(self.cluster_path)
コード例 #4
0
def create_cluster(cluster_name, version, region):
    """
    Create OCP cluster.

    Args:
        cluster_name (str): Cluster name
        version (str): cluster version
        region (str): Cluster region

    """

    rosa_ocp_version = config.DEPLOYMENT["installer_version"]
    # Validate ocp version with rosa ocp supported version
    # Select the valid version if given version is invalid
    if not validate_ocp_version(rosa_ocp_version):
        logger.warning(f"Given OCP version {rosa_ocp_version} "
                       f"is not valid ROSA OCP version. "
                       f"Selecting latest rosa version for deployment")
        rosa_ocp_version = get_latest_rosa_version(version)
        logger.info(f"Using OCP version {rosa_ocp_version}")

    create_account_roles(version)
    compute_nodes = config.ENV_DATA["worker_replicas"]
    compute_machine_type = config.ENV_DATA["worker_instance_type"]
    multi_az = "--multi-az " if config.ENV_DATA.get(
        "multi_availability_zones") else ""
    cluster_type = config.ENV_DATA.get("cluster_type", "")
    provider_name = config.ENV_DATA.get("provider_name", "")
    rosa_mode = config.ENV_DATA.get("rosa_mode", "")
    cmd = (
        f"rosa create cluster --cluster-name {cluster_name} --region {region} "
        f"--compute-nodes {compute_nodes} --compute-machine-type "
        f"{compute_machine_type}  --version {rosa_ocp_version} {multi_az}--sts --yes"
    )
    if rosa_mode == "auto":
        cmd += " --mode auto"
    if cluster_type.lower() == "consumer" and config.ENV_DATA.get(
            "provider_name", ""):
        aws = AWSUtil()
        subnet_id = ",".join(aws.get_cluster_subnet_ids(provider_name))
        cmd = f"{cmd} --subnet-ids {subnet_id}"

    utils.run_cmd(cmd, timeout=1200)
    if rosa_mode != "auto":
        logger.info(
            "Waiting for ROSA cluster status changed to waiting or pending state"
        )
        for cluster_info in utils.TimeoutSampler(4500, 30,
                                                 ocm.get_cluster_details,
                                                 cluster_name):
            status = cluster_info["status"]["state"]
            logger.info(f"Current installation status: {status}")
            if status == "waiting" or status == "pending":
                logger.info(f"Cluster is in {status} state")
                break
        create_operator_roles(cluster_name)
        create_oidc_provider(cluster_name)

    logger.info("Waiting for installation of ROSA cluster")
    for cluster_info in utils.TimeoutSampler(4500, 30, ocm.get_cluster_details,
                                             cluster_name):
        status = cluster_info["status"]["state"]
        logger.info(f"Current installation status: {status}")
        if status == "ready":
            logger.info("Cluster was installed")
            break
    cluster_info = ocm.get_cluster_details(cluster_name)
    # Create metadata file to store the cluster name
    cluster_info["clusterName"] = cluster_name
    cluster_info["clusterID"] = cluster_info["id"]
    cluster_path = config.ENV_DATA["cluster_path"]
    metadata_file = os.path.join(cluster_path, "metadata.json")
    with open(metadata_file, "w+") as f:
        json.dump(cluster_info, f)
コード例 #5
0
ファイル: rosa.py プロジェクト: MeridianExplorer/ocs-ci
 def __init__(self):
     self.name = self.__class__.__name__
     super(ROSA, self).__init__()
     ocm.download_ocm_cli()
     rosa.download_rosa_cli()
     self.aws = AWSUtil(self.region)