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)
Beispiel #4
0
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
Beispiel #6
0
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)
Beispiel #7
0

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":