Exemplo n.º 1
0
def ParseCreateOptionsBase(args):
    """Parses the flags provided with the cluster creation command."""
    if not (args.IsSpecified('enable_basic_auth')
            or args.IsSpecified('username')):
        log.warning('Starting in 1.12, new clusters will have basic '
                    'authentication disabled by default. Basic authentication '
                    'can be enabled (or disabled) manually using the '
                    '`--[no-]enable-basic-auth` flag.')
    if not args.IsSpecified('issue_client_certificate'):
        log.warning(
            'Starting in 1.12, new clusters will not have a client '
            'certificate issued. You can manually enable (or disable) the '
            'issuance of the client certificate using the '
            '`--[no-]issue-client-certificate` flag.')
    if args.IsSpecified('addons') and api_adapter.DASHBOARD in args.addons:
        log.warning(
            'The `KubernetesDashboard` addon is deprecated, and will be removed as '
            'an option for new clusters starting in 1.15. It is recommended to use '
            'the Cloud Console to manage and monitor your Kubernetes clusters, '
            'workloads and applications. See: '
            'https://cloud.google.com/kubernetes-engine/docs/concepts/dashboards'
        )

    flags.MungeBasicAuthFlags(args)

    if args.IsSpecified('issue_client_certificate') and not (
            args.IsSpecified('enable_basic_auth')
            or args.IsSpecified('username')):
        log.warning(
            'If `--issue-client-certificate` is specified but '
            '`--enable-basic-auth` or `--username` is not, our API will '
            'treat that as `--no-enable-basic-auth`.')

    flags.WarnForUnspecifiedIpAllocationPolicy(args)
    enable_autorepair = cmd_util.GetAutoRepair(args)
    flags.WarnForNodeModification(args, enable_autorepair)
    metadata = metadata_utils.ConstructMetadataDict(args.metadata,
                                                    args.metadata_from_file)

    return api_adapter.CreateClusterOptions(
        accelerators=args.accelerator,
        additional_zones=args.additional_zones,
        addons=args.addons,
        cluster_ipv4_cidr=args.cluster_ipv4_cidr,
        cluster_secondary_range_name=args.cluster_secondary_range_name,
        cluster_version=args.cluster_version,
        node_version=args.node_version,
        create_subnetwork=args.create_subnetwork,
        disk_type=args.disk_type,
        enable_autorepair=enable_autorepair,
        enable_autoscaling=args.enable_autoscaling,
        enable_autoupgrade=cmd_util.GetAutoUpgrade(args),
        enable_stackdriver_kubernetes=args.enable_stackdriver_kubernetes if args.IsSpecified('enable_stackdriver_kubernetes') else None,
        enable_cloud_logging=args.enable_cloud_logging if args.IsSpecified('enable_cloud_logging') else None,
        enable_cloud_monitoring=args.enable_cloud_monitoring if args.IsSpecified('enable_cloud_monitoring') else None,
        enable_ip_alias=args.enable_ip_alias,
        enable_intra_node_visibility=args.enable_intra_node_visibility,
        enable_kubernetes_alpha=args.enable_kubernetes_alpha,
        enable_legacy_authorization=args.enable_legacy_authorization,
        enable_main_authorized_networks=args.enable_main_authorized_networks,
        enable_network_policy=args.enable_network_policy,
        enable_private_nodes=args.enable_private_nodes,
        enable_private_endpoint=args.enable_private_endpoint,
        image_type=args.image_type,
        image=args.image,
        image_project=args.image_project,
        image_family=args.image_family,
        issue_client_certificate=args.issue_client_certificate,
        labels=args.labels,
        local_ssd_count=args.local_ssd_count,
        maintenance_window=args.maintenance_window,
        main_authorized_networks=args.main_authorized_networks,
        main_ipv4_cidr=args.main_ipv4_cidr,
        max_nodes=args.max_nodes,
        max_nodes_per_pool=args.max_nodes_per_pool,
        min_cpu_platform=args.min_cpu_platform,
        min_nodes=args.min_nodes,
        network=args.network,
        node_disk_size_gb=utils.BytesToGb(args.disk_size),
        node_labels=args.node_labels,
        node_locations=args.node_locations,
        node_machine_type=args.machine_type,
        node_taints=args.node_taints,
        num_nodes=args.num_nodes,
        password=args.password,
        preemptible=args.preemptible,
        scopes=args.scopes,
        service_account=args.service_account,
        services_ipv4_cidr=args.services_ipv4_cidr,
        services_secondary_range_name=args.services_secondary_range_name,
        subnetwork=args.subnetwork,
        tags=args.tags,
        user=args.username,
        metadata=metadata,
        default_max_pods_per_node=args.default_max_pods_per_node,
        max_pods_per_node=args.max_pods_per_node,
        enable_tpu=args.enable_tpu,
        tpu_ipv4_cidr=args.tpu_ipv4_cidr,
        resource_usage_bigquery_dataset=args.resource_usage_bigquery_dataset,
        enable_network_egress_metering=args.enable_network_egress_metering,
        enable_resource_consumption_metering=\
            args.enable_resource_consumption_metering)
Exemplo n.º 2
0
def ParseCreateOptionsBase(args):
    """Parses the flags provided with the cluster creation command."""
    if not (args.IsSpecified('enable_basic_auth')
            or args.IsSpecified('username')):
        log.warning('Starting in 1.12, new clusters will have basic '
                    'authentication disabled by default. Basic authentication '
                    'can be enabled (or disabled) manually using the '
                    '`--[no-]enable-basic-auth` flag.')
    if not args.IsSpecified('issue_client_certificate'):
        log.warning(
            'Starting in 1.12, new clusters will not have a client '
            'certificate issued. You can manually enable (or disable) the '
            'issuance of the client certificate using the '
            '`--[no-]issue-client-certificate` flag.')

    flags.MungeBasicAuthFlags(args)

    if args.IsSpecified('issue_client_certificate') and not (
            args.IsSpecified('enable_basic_auth')
            or args.IsSpecified('username')):
        log.warning(
            'If `--issue-client-certificate` is specified but '
            '`--enable-basic-auth` or `--username` is not, our API will '
            'treat that as `--no-enable-basic-auth`.')

    if (args.IsSpecified('enable_cloud_endpoints')
            and properties.VALUES.container.new_scopes_behavior.GetBool()):
        raise util.Error(
            'Flag --[no-]enable-cloud-endpoints is not allowed if '
            'property container/ new_scopes_behavior is set to true.')
    if args.IsSpecified('enable_autorepair'):
        enable_autorepair = args.enable_autorepair
    else:
        # Node pools using COS support auto repairs, enable it for them by default.
        # Other node pools using (Ubuntu, custom images) don't support node auto
        # repairs, attempting to enable autorepair for them will result in API call
        # failing so don't do it.
        enable_autorepair = ((args.image_type or '').lower() in ['', 'cos'])
    flags.WarnForUnspecifiedIpAllocationPolicy(args)
    flags.WarnForNodeModification(args, enable_autorepair)
    metadata = metadata_utils.ConstructMetadataDict(args.metadata,
                                                    args.metadata_from_file)
    return api_adapter.CreateClusterOptions(
        accelerators=args.accelerator,
        additional_zones=args.additional_zones,
        addons=args.addons,
        cluster_ipv4_cidr=args.cluster_ipv4_cidr,
        cluster_secondary_range_name=args.cluster_secondary_range_name,
        cluster_version=args.cluster_version,
        node_version=args.node_version,
        create_subnetwork=args.create_subnetwork,
        disk_type=args.disk_type,
        enable_autorepair=enable_autorepair,
        enable_autoscaling=args.enable_autoscaling,
        enable_autoupgrade=args.enable_autoupgrade,
        enable_cloud_endpoints=args.enable_cloud_endpoints,
        enable_cloud_logging=args.enable_cloud_logging,
        enable_cloud_monitoring=args.enable_cloud_monitoring,
        enable_ip_alias=args.enable_ip_alias,
        enable_kubernetes_alpha=args.enable_kubernetes_alpha,
        enable_legacy_authorization=args.enable_legacy_authorization,
        enable_master_authorized_networks=args.
        enable_master_authorized_networks,
        enable_network_policy=args.enable_network_policy,
        enable_private_nodes=args.enable_private_nodes,
        enable_private_endpoint=args.enable_private_endpoint,
        image_type=args.image_type,
        image=args.image,
        image_project=args.image_project,
        image_family=args.image_family,
        issue_client_certificate=args.issue_client_certificate,
        labels=args.labels,
        local_ssd_count=args.local_ssd_count,
        maintenance_window=args.maintenance_window,
        master_authorized_networks=args.master_authorized_networks,
        master_ipv4_cidr=args.master_ipv4_cidr,
        max_nodes=args.max_nodes,
        max_nodes_per_pool=args.max_nodes_per_pool,
        min_cpu_platform=args.min_cpu_platform,
        min_nodes=args.min_nodes,
        network=args.network,
        node_disk_size_gb=utils.BytesToGb(args.disk_size),
        node_labels=args.node_labels,
        node_locations=args.node_locations,
        node_machine_type=args.machine_type,
        node_taints=args.node_taints,
        num_nodes=args.num_nodes,
        password=args.password,
        preemptible=args.preemptible,
        scopes=args.scopes,
        service_account=args.service_account,
        services_ipv4_cidr=args.services_ipv4_cidr,
        services_secondary_range_name=args.services_secondary_range_name,
        subnetwork=args.subnetwork,
        tags=args.tags,
        user=args.username,
        metadata=metadata,
        default_max_pods_per_node=args.default_max_pods_per_node,
        max_pods_per_node=args.max_pods_per_node,
        enable_tpu=args.enable_tpu,
        tpu_ipv4_cidr=args.tpu_ipv4_cidr)
Exemplo n.º 3
0
def ParseCreateOptionsBase(args):
  """Parses the flags provided with the cluster creation command."""
  flags.MungeBasicAuthFlags(args)
  if (args.IsSpecified('enable_cloud_endpoints') and
      properties.VALUES.container.new_scopes_behavior.GetBool()):
    raise util.Error('Flag --[no-]enable-cloud-endpoints is not allowed if '
                     'property container/ new_scopes_behavior is set to true.')
  if args.IsSpecified('enable_autorepair'):
    enable_autorepair = args.enable_autorepair
  else:
    # Node pools using COS support auto repairs, enable it for them by default.
    # Other node pools using (Ubuntu, custom images) don't support node auto
    # repairs, attempting to enable autorepair for them will result in API call
    # failing so don't do it.
    enable_autorepair = ((args.image_type or '').lower() in ['', 'cos'])
  flags.WarnForUnspecifiedIpAllocationPolicy(args)
  cluster_ipv4_cidr = args.cluster_ipv4_cidr
  enable_master_authorized_networks = args.enable_master_authorized_networks
  return api_adapter.CreateClusterOptions(
      accelerators=args.accelerator,
      additional_zones=args.additional_zones,
      addons=args.addons,
      cluster_ipv4_cidr=cluster_ipv4_cidr,
      cluster_secondary_range_name=args.cluster_secondary_range_name,
      cluster_version=args.cluster_version,
      node_version=args.node_version,
      create_subnetwork=args.create_subnetwork,
      disk_type=args.disk_type,
      enable_autorepair=enable_autorepair,
      enable_autoscaling=args.enable_autoscaling,
      enable_autoupgrade=args.enable_autoupgrade,
      enable_cloud_endpoints=args.enable_cloud_endpoints,
      enable_cloud_logging=args.enable_cloud_logging,
      enable_cloud_monitoring=args.enable_cloud_monitoring,
      enable_ip_alias=args.enable_ip_alias,
      enable_kubernetes_alpha=args.enable_kubernetes_alpha,
      enable_legacy_authorization=args.enable_legacy_authorization,
      enable_master_authorized_networks=enable_master_authorized_networks,
      enable_network_policy=args.enable_network_policy,
      image_type=args.image_type,
      image=args.image,
      image_project=args.image_project,
      image_family=args.image_family,
      issue_client_certificate=args.issue_client_certificate,
      labels=args.labels,
      local_ssd_count=args.local_ssd_count,
      maintenance_window=args.maintenance_window,
      master_authorized_networks=args.master_authorized_networks,
      max_nodes=args.max_nodes,
      max_nodes_per_pool=args.max_nodes_per_pool,
      min_cpu_platform=args.min_cpu_platform,
      min_nodes=args.min_nodes,
      network=args.network,
      node_disk_size_gb=args.disk_size,
      node_labels=args.node_labels,
      node_locations=args.node_locations,
      node_machine_type=args.machine_type,
      node_taints=args.node_taints,
      num_nodes=args.num_nodes,
      password=args.password,
      preemptible=args.preemptible,
      scopes=args.scopes,
      service_account=args.service_account,
      services_ipv4_cidr=args.services_ipv4_cidr,
      services_secondary_range_name=args.services_secondary_range_name,
      subnetwork=args.subnetwork,
      tags=args.tags,
      user=args.username)