def _cluster_create_params(): ipv4 = args.ipv4 and args.ipv4.lower() in MachineNetwork.YES_VALUES ipv6 = args.ipv6 and args.ipv6.lower() in MachineNetwork.YES_VALUES ntp_source = _get_host_ip_from_cidr( args.vm_network_cidr6 if ipv6 and not ipv4 else args.vm_network_cidr) user_managed_networking = is_user_managed_networking() http_proxy, https_proxy, no_proxy = _get_http_proxy_params(ipv4=ipv4, ipv6=ipv6) params = { "openshift_version": utils.get_openshift_version(), "base_dns_domain": args.base_dns_domain, "cluster_network_cidr": args.cluster_network if ipv4 else args.cluster_network6, "cluster_network_host_prefix": args.host_prefix if ipv4 else args.host_prefix6, "service_network_cidr": args.service_network if ipv4 else args.service_network6, "pull_secret": args.pull_secret, "http_proxy": http_proxy, "https_proxy": https_proxy, "no_proxy": no_proxy, "vip_dhcp_allocation": bool(args.vip_dhcp_allocation) and not user_managed_networking, "additional_ntp_source": ntp_source, "user_managed_networking": user_managed_networking, "high_availability_mode": "None" if args.master_count == 1 else "Full" } return params
def _cluster_create_params(): ipv4 = args.ipv4 and args.ipv4.lower() in MachineNetwork.YES_VALUES ipv6 = args.ipv6 and args.ipv6.lower() in MachineNetwork.YES_VALUES ntp_source = _get_host_ip_from_cidr( args.vm_network_cidr6 if ipv6 and not ipv4 else args.vm_network_cidr) user_managed_networking = is_none_platform_mode() params = { "openshift_version": utils.get_openshift_version(), "base_dns_domain": args.base_dns_domain, "cluster_network_cidr": args.cluster_network if ipv4 else args.cluster_network6, "cluster_network_host_prefix": args.host_prefix if ipv4 else args.host_prefix6, "service_network_cidr": args.service_network if ipv4 else args.service_network6, "pull_secret": args.pull_secret, "http_proxy": args.http_proxy, "https_proxy": args.https_proxy, "no_proxy": args.no_proxy, "vip_dhcp_allocation": bool(args.vip_dhcp_allocation) and not user_managed_networking, "additional_ntp_source": ntp_source, "user_managed_networking": user_managed_networking } return params
def get_available_openshift_versions() -> List[str]: available_versions = list(global_variables.get_api_client().get_openshift_versions().keys()) override_version = utils.get_openshift_version(allow_default=False) if override_version: if override_version in available_versions: return [override_version] raise ValueError(f"Invalid version {override_version}, can't find among versions: {available_versions}") return sorted(available_versions)
def get_available_openshift_versions() -> List[str]: available_versions = list(get_api_client().get_openshift_versions().keys()) specific_version = utils.get_openshift_version(default=None) if specific_version: if specific_version in available_versions: return [specific_version] raise ValueError( f"Invalid version {specific_version}, can't find among versions: {available_versions}" ) return available_versions
def _cluster_create_params(client: assisted_service_api.InventoryClient): ipv4 = args.ipv4 and args.ipv4.lower() in MachineNetwork.YES_VALUES ipv6 = args.ipv6 and args.ipv6.lower() in MachineNetwork.YES_VALUES ntp_source = _get_host_ip_from_cidr( args.vm_network_cidr6 if ipv6 and not ipv4 else args.vm_network_cidr) user_managed_networking = is_user_managed_networking() http_proxy, https_proxy, no_proxy = _get_http_proxy_params(ipv4=ipv4, ipv6=ipv6) params = { "openshift_version": utils.get_openshift_version(allow_default=True, client=client), "base_dns_domain": args.base_dns_domain, "cluster_network_cidr": args.cluster_network if ipv4 else args.cluster_network6, "cluster_network_host_prefix": args.host_prefix if ipv4 else args.host_prefix6, "service_network_cidr": args.service_network if ipv4 else args.service_network6, "pull_secret": args.pull_secret, "http_proxy": http_proxy, "https_proxy": https_proxy, "no_proxy": no_proxy, "vip_dhcp_allocation": bool(args.vip_dhcp_allocation) and not user_managed_networking, "additional_ntp_source": ntp_source, "user_managed_networking": user_managed_networking, "high_availability_mode": consts.HighAvailabilityMode.NONE if args.master_count == 1 else consts.HighAvailabilityMode.FULL, "hyperthreading": args.hyperthreading, "olm_operators": [{ 'name': name } for name in operators_utils.parse_olm_operators_from_env()] } return params
class _EnvVariablesUtils(ABC): ssh_public_key: str = get_env("SSH_PUB_KEY") remote_service_url: str = get_env("REMOTE_SERVICE_URL") pull_secret: str = get_env("PULL_SECRET") offline_token: str = get_env("OFFLINE_TOKEN") openshift_version: str = get_openshift_version() base_dns_domain: str = get_env("BASE_DOMAIN", consts.DEFAULT_BASE_DNS_DOMAIN) masters_count: int = int( get_env("MASTERS_COUNT", get_env("NUM_MASTERS", env_defaults.DEFAULT_NUMBER_OF_MASTERS))) workers_count: int = int( get_env("WORKERS_COUNT", get_env("NUM_WORKERS", env_defaults.DEFAULT_WORKERS_COUNT))) nodes_count: int = masters_count + workers_count num_day2_workers: int = int( get_env("NUM_DAY2_WORKERS", env_defaults.DEFAULT_DAY2_WORKERS_COUNT)) vip_dhcp_allocation: bool = bool(strtobool(get_env("VIP_DHCP_ALLOCATION"))) worker_memory: int = int( get_env("WORKER_MEMORY", resources.DEFAULT_WORKER_MEMORY)) master_memory: int = int( get_env("MASTER_MEMORY", resources.DEFAULT_MASTER_MEMORY)) network_mtu: int = int(get_env("NETWORK_MTU", resources.DEFAULT_MTU)) worker_disk: int = int( get_env("WORKER_DISK", resources.DEFAULT_WORKER_DISK)) master_disk: int = int( get_env("MASTER_DISK", resources.DEFAULT_MASTER_DISK)) master_disk_count: int = int( get_env("MASTER_DISK_COUNT", resources.DEFAULT_DISK_COUNT)) worker_disk_count: int = int( get_env("WORKER_DISK_COUNT", resources.DEFAULT_DISK_COUNT)) storage_pool_path: str = get_env("STORAGE_POOL_PATH", env_defaults.DEFAULT_STORAGE_POOL_PATH) private_ssh_key_path: Path = Path( get_env("PRIVATE_KEY_PATH", env_defaults.DEFAULT_SSH_PRIVATE_KEY_PATH)) installer_kubeconfig_path: str = get_env( "INSTALLER_KUBECONFIG", env_defaults.DEFAULT_INSTALLER_KUBECONFIG) log_folder: str = get_env("LOG_FOLDER", env_defaults.DEFAULT_LOG_FOLDER) service_network_cidr: str = get_env("SERVICE_CIDR", env_defaults.DEFAULT_SERVICE_CIDR) cluster_network_cidr: str = get_env("CLUSTER_CIDR", env_defaults.DEFAULT_CLUSTER_CIDR) cluster_network_host_prefix: int = int( get_env("HOST_PREFIX", env_defaults.DEFAULT_HOST_PREFIX)) is_static_ip: bool = bool( strtobool( get_env("IS_STATIC_IP", default=str(env_defaults.DEFAULT_IS_STATIC_IP)))) iso_image_type: str = get_env("ISO_IMAGE_TYPE", env_defaults.DEFAULT_IMAGE_TYPE) worker_vcpu: str = get_env("WORKER_CPU", resources.DEFAULT_WORKER_CPU) master_vcpu: str = get_env("MASTER_CPU", resources.DEFAULT_MASTER_CPU) test_teardown: bool = bool( strtobool( get_env("TEST_TEARDOWN", str(env_defaults.DEFAULT_TEST_TEARDOWN)))) namespace: str = get_env("NAMESPACE", consts.DEFAULT_NAMESPACE) olm_operators: List[str] = field(default_factory=list) platform: str = get_env("PLATFORM", env_defaults.DEFAULT_PLATFORM) user_managed_networking: bool = env_defaults.DEFAULT_USER_MANAGED_NETWORKING high_availability_mode: str = env_defaults.DEFAULT_HIGH_AVAILABILITY_MODE download_image: bool = bool( strtobool( get_env("DOWNLOAD_IMAGE", str(env_defaults.DEFAULT_DOWNLOAD_IMAGE)))) is_ipv6: bool = bool( strtobool( get_env("IS_IPV6", get_env("IPv6", str(env_defaults.DEFAULT_IS_IPV6))))) cluster_id: str = get_env("CLUSTER_ID") additional_ntp_source: str = get_env( "ADDITIONAL_NTP_SOURCE", env_defaults.DEFAULT_ADDITIONAL_NTP_SOURCE) network_name: str = get_env("NETWORK_NAME", env_defaults.DEFAULT_NETWORK_NAME) bootstrap_in_place: bool = bool( strtobool( get_env("BOOTSTRAP_IN_PLACE", str(env_defaults.DEFAULT_BOOTSTRAP_IN_PLACE)))) single_node_ip: str = get_env("SINGLE_NODE_IP", env_defaults.DEFAULT_SINGLE_NODE_IP) worker_cpu_mode: str = get_env("WORKER_CPU_MODE", env_defaults.DEFAULT_TF_CPU_MODE) master_cpu_mode: str = get_env("MASTER_CPU_MODE", env_defaults.DEFAULT_TF_CPU_MODE) iso_download_path: str = get_env( "ISO_DOWNLOAD_PATH", get_env("ISO")) # todo replace ISO env var->ISO_DOWNLOAD_PATH hyperthreading: str = get_env("HYPERTHREADING") def __post_init__(self): self._set("olm_operators", operators_utils.parse_olm_operators_from_env()) def _set(self, key: str, value: Any): if not hasattr(self, key): raise AttributeError(f"Invalid key {key}") super().__setattr__(key, value)
private_ssh_key_path_default = os.path.join(os.getcwd(), "ssh_key/key") if not qe_env else \ os.path.join(str(Path.home()), ".ssh/id_rsa") env_variables = { "ssh_public_key": utils.get_env('SSH_PUB_KEY'), "remote_service_url": utils.get_env('REMOTE_SERVICE_URL'), "pull_secret": utils.get_env('PULL_SECRET'), "offline_token": utils.get_env('OFFLINE_TOKEN'), "openshift_version": utils.get_openshift_version(), "base_domain": utils.get_env('BASE_DOMAIN', "redhat.com"), "num_masters": int(utils.get_env('NUM_MASTERS', consts.NUMBER_OF_MASTERS)), "num_workers": max(2, int(utils.get_env('NUM_WORKERS', 0))), "vip_dhcp_allocation": bool(util.strtobool(utils.get_env('VIP_DHCP_ALLOCATION'))), "machine_cidr": utils.get_env('NETWORK_CIDR', '192.168.126.0/24'), "worker_memory": int(utils.get_env('WORKER_MEMORY', '8892')), "master_memory": int(utils.get_env('MASTER_MEMORY', '16984')), "network_mtu":