def prepare_for_install( self, nodes, iso_download_path=env_variables['iso_download_path'], iso_image_type=env_variables['iso_image_type'], ssh_key=env_variables['ssh_public_key'], nodes_count=env_variables['num_nodes'], vip_dhcp_allocation=env_variables['vip_dhcp_allocation'], download_image=True): if download_image: if env_variables.get('static_ips_config'): static_ips_config = static_ips.generate_static_ips_data_from_tf( nodes.controller.tf_folder) else: static_ips_config = None self.generate_and_download_image( iso_download_path=iso_download_path, iso_image_type=iso_image_type, ssh_key=ssh_key, static_ips=static_ips_config) nodes.start_all() self.wait_until_hosts_are_discovered(nodes_count=nodes_count, allow_insufficient=True) nodes.set_hostnames(self) if self._high_availability_mode != consts.HighAvailabilityMode.NONE: self.set_host_roles() else: nodes.set_single_node_ip(self) self.set_network_params( controller=nodes.controller, vip_dhcp_allocation=vip_dhcp_allocation, ) self.wait_for_ready_to_install()
def prepare_for_install( self, nodes, iso_download_path=env_variables['iso_download_path'], ssh_key=env_variables['ssh_public_key'], nodes_count=env_variables['num_nodes'], vip_dhcp_allocation=env_variables['vip_dhcp_allocation'], download_image=True): if download_image: if env_variables.get('static_ips_config'): static_ips_config = static_ips.generate_static_ips_data_from_tf( nodes.controller.tf_folder) else: static_ips_config = None self.generate_and_download_image( iso_download_path=iso_download_path, ssh_key=ssh_key, static_ips=static_ips_config) nodes.start_all() self.wait_until_hosts_are_discovered(nodes_count=nodes_count) nodes.set_hostnames(self) self.set_host_roles() self.set_network_params( controller=nodes.controller, vip_dhcp_allocation=vip_dhcp_allocation, ) self.wait_for_ready_to_install()
def execute_day1_flow(cluster_name): client = None cluster = {} if args.managed_dns_domains: args.base_dns_domain = args.managed_dns_domains.split(":")[0] if not args.vm_network_cidr: net_cidr = IPNetwork('192.168.126.0/24') net_cidr += args.ns_index args.vm_network_cidr = str(net_cidr) if not args.vm_network_cidr6: net_cidr = IPNetwork('1001:db8::/120') net_cidr += args.ns_index args.vm_network_cidr6 = str(net_cidr) if not args.network_bridge: args.network_bridge = f'tt{args.ns_index}' set_tf_config(cluster_name) image_path = None image_type = args.iso_image_type if not args.image: utils.recreate_folder(consts.IMAGE_FOLDER, force_recreate=False) client = assisted_service_api.create_client( url=utils.get_assisted_service_url_by_args(args=args)) if args.cluster_id: cluster = client.cluster_get(cluster_id=args.cluster_id) else: cluster = client.create_cluster(cluster_name, ssh_public_key=args.ssh_key, **_cluster_create_params()) image_path = os.path.join(consts.IMAGE_FOLDER, f'{args.namespace}-installer-image.iso') if args.with_static_ips: tf_folder = utils.get_tf_folder(cluster_name, args.namespace) static_ips_config = static_ips.generate_static_ips_data_from_tf( tf_folder) else: static_ips_config = None client.generate_and_download_image( cluster_id=cluster.id, image_path=image_path, image_type=image_type, ssh_key=args.ssh_key, static_ips=static_ips_config, ) # Iso only, cluster will be up and iso downloaded but vm will not be created if not args.iso_only: try: nodes_flow(client, cluster_name, cluster) finally: if not image_path or args.keep_iso: return log.info('deleting iso: %s', image_path) os.unlink(image_path) return cluster.id