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)
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
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)
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)
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)