def bootstrap_aws(config): # Log warnings if user included deprecated `head_node` or `worker_nodes` # fields. Raise error if no `available_node_types` check_legacy_fields(config) # Used internally to store head IAM role. config["head_node"] = {} # If NetworkInterfaces are provided, extract the necessary fields for the # config stages below. config = _configure_from_network_interfaces(config) # The head node needs to have an IAM role that allows it to create further # EC2 instances. config = _configure_iam_role(config) # Configure SSH access, using an existing key pair if possible. config = _configure_key_pair(config) global_event_system.execute_callback( CreateClusterEvent.ssh_keypair_downloaded, {"ssh_key_path": config["auth"]["ssh_private_key"]}) # Pick a reasonable subnet if not specified by the user. config = _configure_subnet(config) # Cluster workers should be in a security group that permits traffic within # the group, and also SSH access from outside. config = _configure_security_group(config) # Provide a helpful message for missing AMI. _check_ami(config) return config
def bootstrap_gcp(config): config = copy.deepcopy(config) check_legacy_fields(config) # Used internally to store head IAM role. config["head_node"] = {} crm, iam, compute = \ construct_clients_from_provider_config(config["provider"]) config = _configure_project(config, crm) config = _configure_iam_role(config, crm, iam) config = _configure_key_pair(config, compute) config = _configure_subnet(config, compute) return config
def bootstrap_gcp(config): config = copy.deepcopy(config) check_legacy_fields(config) # Used internally to store head IAM role. config["head_node"] = {} # Check if we have any TPUs defined, and if so, # insert that information into the provider config if _has_tpus_in_node_configs(config): config["provider"][HAS_TPU_PROVIDER_FIELD] = True # We can't run autoscaling through a serviceAccount on TPUs (atm) if _is_head_node_a_tpu(config): raise RuntimeError("TPUs are not supported as head nodes.") crm, iam, compute, tpu = construct_clients_from_provider_config( config["provider"]) config = _configure_project(config, crm) config = _configure_iam_role(config, crm, iam) config = _configure_key_pair(config, compute) config = _configure_subnet(config, compute) return config