Ejemplo n.º 1
0
 def _create_tf_folder(cls, cluster_name: str, platform: str):
     tf_folder = utils.get_tf_folder(cluster_name)
     logging.info("Creating %s as terraform folder", tf_folder)
     utils.recreate_folder(tf_folder)
     utils.copy_template_tree(
         tf_folder, none_platform_mode=platform == consts.Platforms.NONE)
     return tf_folder
Ejemplo n.º 2
0
 def _create_tf_folder(self, name: str, platform: str):
     tf_folder = utils.get_tf_folder(name)
     logging.info("Creating %s as terraform folder", tf_folder)
     utils.recreate_folder(tf_folder)
     utils.copy_template_tree(tf_folder, none_platform_mode=(platform == consts.Platforms.NONE),
                              is_infra_env=isinstance(self._entity_config, BaseInfraEnvConfig))
     return tf_folder
def set_tf_config(cluster_name):
    nodes_details = _create_node_details(cluster_name)
    tf_folder = utils.get_tf_folder(cluster_name, args.namespace)
    utils.recreate_folder(tf_folder)

    utils.copy_template_tree(tf_folder, is_none_platform_mode())

    machine_net = MachineNetwork(args.ipv4, args.ipv6, args.vm_network_cidr,
                                 args.vm_network_cidr6, args.ns_index)
    default_image_path = os.path.join(consts.IMAGE_FOLDER,
                                      f'{args.namespace}-installer-image.iso')
    fill_tfvars(image_path=args.image or default_image_path,
                storage_path=args.storage_path,
                master_count=args.master_count,
                nodes_details=nodes_details,
                tf_folder=tf_folder,
                machine_net=machine_net)
Ejemplo n.º 4
0
 def _create_tf_folder(self):
     tf_folder = utils.get_tf_folder(self.cluster_name)
     logging.info("Creating %s as terraform folder", tf_folder)
     utils.recreate_folder(tf_folder)
     utils.copy_template_tree(tf_folder)
     return tf_folder
def nodes_flow(client, cluster_name, cluster, image_path):
    nodes_details = _create_node_details(cluster_name)
    if cluster:
        nodes_details["cluster_inventory_id"] = cluster.id

    tf_folder = utils.get_tf_folder(cluster_name, args.namespace)
    utils.recreate_folder(tf_folder)

    utils.copy_template_tree(tf_folder, is_none_platform_mode())

    tf = terraform_utils.TerraformUtils(working_dir=tf_folder)
    machine_net = MachineNetwork(args.ipv4, args.ipv6, args.vm_network_cidr,
                                 args.vm_network_cidr6, args.ns_index)

    create_nodes_and_wait_till_registered(cluster_name=cluster_name,
                                          inventory_client=client,
                                          cluster=cluster,
                                          image_path=image_path,
                                          storage_path=args.storage_path,
                                          master_count=args.master_count,
                                          nodes_details=nodes_details,
                                          tf=tf,
                                          machine_net=machine_net)

    if client:
        cluster_info = client.cluster_get(cluster.id)
        macs = utils.get_libvirt_nodes_macs(
            nodes_details["libvirt_network_name"])

        if not (cluster_info.api_vip and cluster_info.ingress_vip):
            utils.wait_till_hosts_with_macs_are_in_status(
                client=client,
                cluster_id=cluster.id,
                macs=macs,
                statuses=[
                    consts.NodesStatus.INSUFFICIENT,
                    consts.NodesStatus.PENDING_FOR_INPUT,
                ],
            )

            if args.vip_dhcp_allocation:
                set_cluster_machine_cidr(client, cluster.id, machine_net)
            else:
                set_cluster_vips(client, cluster.id, machine_net)
        else:
            log.info("VIPs already configured")

        set_hosts_roles(client, cluster, nodes_details, machine_net, tf,
                        args.master_count)

        utils.wait_till_hosts_with_macs_are_in_status(
            client=client,
            cluster_id=cluster.id,
            macs=macs,
            statuses=[consts.NodesStatus.KNOWN],
        )

        if args.install_cluster:
            time.sleep(10)
            install_cluster.run_install_flow(
                client=client,
                cluster_id=cluster.id,
                kubeconfig_path=consts.DEFAULT_CLUSTER_KUBECONFIG_PATH,
                pull_secret=args.pull_secret,
                tf=tf)
            # Validate DNS domains resolvability
            validate_dns(client, cluster.id)
            if args.wait_for_cvo:
                cluster_info = client.cluster_get(cluster.id)
                log.info("Start waiting till CVO status is available")
                config_etc_hosts(cluster_info.name,
                                 cluster_info.base_dns_domain,
                                 cluster_info.api_vip)
                utils.wait_for_cvo_available()