Exemple #1
0
def _AddReleaseChannelGroup(parser):
    """Add flag group for release channels."""
    versioning_groups = parser.add_mutually_exclusive_group("""\
--release-channel cannot be specified if Custom Version Flags
(--cluster-version or --node-version) are used.
""")
    flags.AddReleaseChannelFlag(versioning_groups)
    custom_version_group = versioning_groups.add_group("""\
Custom Version Flags:
""")
    flags.AddClusterVersionFlag(custom_version_group)
    flags.AddNodeVersionFlag(custom_version_group)
Exemple #2
0
 def Args(parser):
     _Args(parser)
     flags.AddClusterAutoscalingFlags(parser)
     flags.AddLocalSSDFlag(parser)
     flags.AddPreemptibleFlag(parser, for_node_pool=True)
     flags.AddEnableAutoRepairFlag(parser, for_node_pool=True)
     flags.AddNodePoolNodeIdentityFlags(parser)
     flags.AddMinCpuPlatformFlag(parser, for_node_pool=True)
     # TODO(b/64091817) Un-hide once we're ready to release.
     flags.AddWorkloadMetadataFromNodeFlag(parser, hidden=True)
     flags.AddNodeTaintsFlag(parser, for_node_pool=True)
     flags.AddNodeVersionFlag(parser)
Exemple #3
0
def _Args(parser):
    """Register flags for this command.

  Args:
    parser: An argparse.ArgumentParser-like object. It is mocked out in order
        to capture some information, but behaves like an ArgumentParser.
  """
    flags.AddNodePoolNameArg(parser, 'The name of the node pool to create.')
    flags.AddNodePoolClusterFlag(parser,
                                 'The cluster to add the node pool to.')
    # Timeout in seconds for operation
    parser.add_argument('--timeout',
                        type=int,
                        default=1800,
                        hidden=True,
                        help='THIS ARGUMENT NEEDS HELP TEXT.')
    parser.add_argument(
        '--num-nodes',
        type=int,
        help='The number of nodes in the node pool in each of the '
        'cluster\'s zones.',
        default=3)
    parser.add_argument(
        '--machine-type',
        '-m',
        help='The type of machine to use for nodes. Defaults to n1-standard-1')
    parser.add_argument(
        '--disk-size',
        type=int,
        help='Size in GB for node VM boot disks. Defaults to 100GB.')
    flags.AddImageTypeFlag(parser, 'node pool')
    flags.AddImageFlag(parser, hidden=True)
    flags.AddImageProjectFlag(parser, hidden=True)
    flags.AddImageFamilyFlag(parser, hidden=True)
    flags.AddNodeLabelsFlag(parser, for_node_pool=True)
    flags.AddTagsFlag(
        parser, """\
Applies the given Compute Engine tags (comma separated) on all nodes in the new
node-pool. Example:

  $ {command} node-pool-1 --cluster=example-cluster --tags=tag1,tag2

New nodes, including ones created by resize or recreate, will have these tags
on the Compute Engine API instance object and can be used in firewall rules.
See https://cloud.google.com/sdk/gcloud/reference/compute/firewall-rules/create
for examples.
""")
    # TODO(b/36071127): unhide this flag after we have enough ssd.
    flags.AddDiskTypeFlag(parser, suppressed=True)
    flags.AddEnableAutoUpgradeFlag(parser, for_node_pool=True)
    parser.display_info.AddFormat(util.NODEPOOLS_FORMAT)
    flags.AddNodeVersionFlag(parser)
Exemple #4
0
 def Args(parser):
     _Args(parser)
     flags.AddClusterAutoscalingFlags(parser)
     flags.AddNodePoolAutoprovisioningFlag(parser, hidden=True)
     flags.AddLocalSSDFlag(parser)
     flags.AddPreemptibleFlag(parser, for_node_pool=True)
     flags.AddEnableAutoRepairFlag(parser, for_node_pool=True)
     flags.AddAcceleratorArgs(parser)
     flags.AddNodePoolNodeIdentityFlags(parser)
     flags.AddMinCpuPlatformFlag(parser, for_node_pool=True)
     flags.AddWorkloadMetadataFromNodeFlag(parser, hidden=True)
     flags.AddNodeTaintsFlag(parser, for_node_pool=True)
     flags.AddNodeVersionFlag(parser)
Exemple #5
0
def _Args(parser):
    """Register flags for this command.

  Args:
    parser: An argparse.ArgumentParser-like object. It is mocked out in order to
      capture some information, but behaves like an ArgumentParser.
  """
    flags.AddNodePoolNameArg(parser, 'The name of the node pool to create.')
    flags.AddNodePoolClusterFlag(parser,
                                 'The cluster to add the node pool to.')
    # Timeout in seconds for operation
    parser.add_argument('--timeout',
                        type=int,
                        default=1800,
                        hidden=True,
                        help='THIS ARGUMENT NEEDS HELP TEXT.')
    parser.add_argument(
        '--num-nodes',
        type=int,
        help='The number of nodes in the node pool in each of the '
        'cluster\'s zones.',
        default=3)
    flags.AddMachineTypeFlag(parser)
    parser.add_argument(
        '--disk-size',
        type=arg_parsers.BinarySize(lower_bound='10GB'),
        help='Size for node VM boot disks in GB. Defaults to 100GB.')
    flags.AddImageTypeFlag(parser, 'node pool')
    flags.AddImageFlag(parser, hidden=True)
    flags.AddImageProjectFlag(parser, hidden=True)
    flags.AddImageFamilyFlag(parser, hidden=True)
    flags.AddNodeLabelsFlag(parser, for_node_pool=True)
    flags.AddTagsFlag(
        parser, """\
Applies the given Compute Engine tags (comma separated) on all nodes in the new
node-pool. Example:

  $ {command} node-pool-1 --cluster=example-cluster --tags=tag1,tag2

New nodes, including ones created by resize or recreate, will have these tags
on the Compute Engine API instance object and can be used in firewall rules.
See https://cloud.google.com/sdk/gcloud/reference/compute/firewall-rules/create
for examples.
""")
    parser.display_info.AddFormat(util.NODEPOOLS_FORMAT)
    flags.AddNodeVersionFlag(parser)
    flags.AddDiskTypeFlag(parser)
    flags.AddMetadataFlags(parser)
    flags.AddShieldedInstanceFlags(parser)
    flags.AddNetworkConfigFlags(parser)
    flags.AddThreadsPerCore(parser)
Exemple #6
0
 def Args(parser):
     _Args(parser)
     group = parser.add_mutually_exclusive_group()
     _AddAdditionalZonesFlag(group, deprecated=True)
     flags.AddNodeLocationsFlag(group)
     flags.AddBetaAddonsFlags(parser)
     flags.AddClusterAutoscalingFlags(parser)
     flags.AddMaxPodsPerNodeFlag(parser)
     flags.AddEnableAutoRepairFlag(parser, for_create=True)
     flags.AddEnableBinAuthzFlag(parser)
     flags.AddEnableKubernetesAlphaFlag(parser)
     flags.AddEnableLegacyAuthorizationFlag(parser)
     flags.AddIPAliasFlags(parser)
     flags.AddIstioConfigFlag(parser)
     flags.AddLabelsFlag(parser)
     flags.AddLocalSSDFlag(parser)
     flags.AddMaintenanceWindowFlag(parser)
     flags.AddMasterAuthorizedNetworksFlags(parser)
     flags.AddMinCpuPlatformFlag(parser)
     flags.AddWorkloadMetadataFromNodeFlag(parser)
     flags.AddNetworkPolicyFlags(parser)
     flags.AddNodeTaintsFlag(parser)
     flags.AddPreemptibleFlag(parser)
     flags.AddPodSecurityPolicyFlag(parser)
     flags.AddAllowRouteOverlapFlag(parser)
     flags.AddClusterNodeIdentityFlags(parser)
     flags.AddPrivateClusterFlags(parser,
                                  with_deprecated=True,
                                  with_alpha=False)
     flags.AddEnableStackdriverKubernetesFlag(parser)
     flags.AddTpuFlags(parser, hidden=False)
     flags.AddAutoprovisioningFlags(parser)
     flags.AddVerticalPodAutoscalingFlag(parser)
     flags.AddResourceUsageExportFlags(parser)
     flags.AddAuthenticatorSecurityGroupFlags(parser)
     flags.AddEnableIntraNodeVisibilityFlag(parser)
     flags.AddWorkloadIdentityFlags(parser)
     flags.AddEnableShieldedNodesFlags(parser)
     flags.AddClusterVersionFlag(parser)
     flags.AddNodeVersionFlag(parser)
     flags.AddEnableAutoUpgradeFlag(parser, default=True)
     kms_flag_overrides = {
         'kms-key': '--database-encryption-key',
         'kms-keyring': '--database-encryption-key-keyring',
         'kms-location': '--database-encryption-key-location',
         'kms-project': '--database-encryption-key-project'
     }
     kms_resource_args.AddKmsKeyResourceArg(
         parser, 'cluster', flag_overrides=kms_flag_overrides)
Exemple #7
0
 def Args(parser):
     _Args(parser)
     _AddAdditionalZonesFlag(parser)
     flags.AddAddonsFlags(parser,
                          hide_addons_flag=True,
                          deprecate_disable_addons_flag=False)
     flags.AddClusterAutoscalingFlags(parser)
     flags.AddEnableAutoRepairFlag(parser, suppressed=True)
     flags.AddEnableKubernetesAlphaFlag(parser, suppressed=True)
     flags.AddEnableLegacyAuthorizationFlag(parser, hidden=True)
     flags.AddIPAliasFlags(parser, hidden=True)
     flags.AddLabelsFlag(parser, suppressed=True)
     flags.AddLocalSSDFlag(parser, suppressed=True)
     flags.AddMaintenanceWindowFlag(parser, hidden=True)
     flags.AddMasterAuthorizedNetworksFlags(parser, hidden=True)
     flags.AddNetworkPolicyFlags(parser, hidden=True)
     flags.AddNodeTaintsFlag(parser, hidden=True)
     flags.AddPreemptibleFlag(parser, suppressed=True)
     flags.AddNodeVersionFlag(parser, hidden=True)
Exemple #8
0
 def Args(parser):
     _Args(parser)
     _AddAdditionalZonesFlag(parser, deprecated=True)
     flags.AddNodeLocationsFlag(parser)
     flags.AddAddonsFlags(parser)
     flags.AddClusterAutoscalingFlags(parser)
     flags.AddMaxPodsPerNodeFlag(parser)
     flags.AddEnableAutoRepairFlag(parser, for_create=True)
     flags.AddEnableBinAuthzFlag(parser)
     flags.AddEnableKubernetesAlphaFlag(parser)
     flags.AddEnableCloudRunAlphaFlag(parser)
     flags.AddEnableStackdriverKubernetesFlag(parser)
     flags.AddEnableLegacyAuthorizationFlag(parser)
     flags.AddIPAliasFlags(parser)
     flags.AddLabelsFlag(parser)
     flags.AddLocalSSDFlag(parser)
     flags.AddMaintenanceWindowGroup(parser)
     flags.AddMasterAuthorizedNetworksFlags(parser)
     flags.AddMinCpuPlatformFlag(parser)
     flags.AddNetworkPolicyFlags(parser)
     flags.AddNodeTaintsFlag(parser)
     flags.AddPreemptibleFlag(parser)
     flags.AddClusterNodeIdentityFlags(parser)
     flags.AddPrivateClusterFlags(parser,
                                  with_deprecated=False,
                                  with_alpha=False)
     flags.AddClusterVersionFlag(parser)
     flags.AddNodeVersionFlag(parser)
     flags.AddEnableAutoUpgradeFlag(parser, default=True)
     flags.AddEnableIntraNodeVisibilityFlag(parser)
     flags.AddTpuFlags(parser, hidden=False)
     flags.AddAutoprovisioningFlags(parser,
                                    hidden=False,
                                    for_create=True,
                                    ga=True)
     flags.AddResourceUsageExportFlags(parser)
     flags.AddVerticalPodAutoscalingFlag(parser)
     flags.AddReservationAffinityFlags(parser)
     flags.AddSurgeUpgradeFlag(parser)
     flags.AddMaxUnavailableUpgradeFlag(parser)
Exemple #9
0
    def Args(parser):
        _Args(parser)
        group = parser.add_mutually_exclusive_group()
        _AddAdditionalZonesFlag(group, deprecated=True)
        flags.AddNodeLocationsFlag(group)
        flags.AddAlphaAddonsFlags(parser)
        flags.AddClusterAutoscalingFlags(parser)
        flags.AddMaxPodsPerNodeFlag(parser)
        flags.AddEnableAutoRepairFlag(parser, for_create=True)
        flags.AddEnableBinAuthzFlag(parser)
        flags.AddEnableKubernetesAlphaFlag(parser)
        flags.AddEnableLegacyAuthorizationFlag(parser)
        flags.AddIPAliasFlags(parser)
        flags.AddIstioConfigFlag(parser)
        flags.AddLabelsFlag(parser)
        flags.AddLocalSSDAndLocalSSDVolumeConfigsFlag(parser)
        flags.AddMaintenanceWindowFlag(parser)
        flags.AddMasterAuthorizedNetworksFlags(parser)
        flags.AddMinCpuPlatformFlag(parser)
        flags.AddWorkloadMetadataFromNodeFlag(parser)
        flags.AddNetworkPolicyFlags(parser)
        flags.AddAutoprovisioningFlags(parser, hidden=False)
        flags.AddAutoscalingProfilesFlag(parser, hidden=True)
        flags.AddNodeTaintsFlag(parser)
        flags.AddPreemptibleFlag(parser)
        flags.AddPodSecurityPolicyFlag(parser)
        flags.AddAllowRouteOverlapFlag(parser)
        flags.AddPrivateClusterFlags(parser,
                                     with_deprecated=True,
                                     with_alpha=True)
        flags.AddClusterNodeIdentityFlags(parser)
        flags.AddTpuFlags(parser,
                          hidden=False,
                          enable_tpu_service_networking=True)
        flags.AddEnableStackdriverKubernetesFlag(parser)
        flags.AddManagedPodIdentityFlags(parser)
        flags.AddWorkloadIdentityFlags(parser)
        flags.AddResourceUsageExportFlags(parser)
        flags.AddAuthenticatorSecurityGroupFlags(parser)
        flags.AddVerticalPodAutoscalingFlag(parser)
        flags.AddSecurityProfileForCreateFlags(parser)
        flags.AddInitialNodePoolNameArg(parser, hidden=False)
        flags.AddEnablePrivateIpv6AccessFlag(parser, hidden=True)
        flags.AddEnableIntraNodeVisibilityFlag(parser)
        flags.AddEnableShieldedNodesFlags(parser)
        flags.AddDisableDefaultSnatFlag(parser, for_cluster_create=True)

        versioning_groups = parser.add_mutually_exclusive_group("""\
`--release-channel` cannot be specified if `--cluster-version` or
`--node-version` are specified.
""")
        flags.AddReleaseChannelFlag(versioning_groups)

        cluster_version_group = versioning_groups.add_group()
        flags.AddClusterVersionFlag(cluster_version_group)
        flags.AddNodeVersionFlag(cluster_version_group)
        flags.AddEnableAutoUpgradeFlag(parser, default=True)

        kms_flag_overrides = {
            'kms-key': '--database-encryption-key',
            'kms-keyring': '--database-encryption-key-keyring',
            'kms-location': '--database-encryption-key-location',
            'kms-project': '--database-encryption-key-project'
        }
        kms_resource_args.AddKmsKeyResourceArg(
            parser, 'cluster', flag_overrides=kms_flag_overrides)
        flags.AddSurgeUpgradeFlag(parser)
        flags.AddMaxUnavailableUpgradeFlag(parser)
        flags.AddLinuxSysctlFlags(parser)
        flags.AddShieldedInstanceFlags(parser)
Exemple #10
0
def _Args(parser):
  """Register flags for this command.

  Args:
    parser: An argparse.ArgumentParser-like object. It is mocked out in order
        to capture some information, but behaves like an ArgumentParser.
  """
  parser.add_argument('name', help='The name of this cluster.')
  # Timeout in seconds for operation
  parser.add_argument(
      '--timeout',
      type=int,
      default=1800,
      hidden=True,
      help='THIS ARGUMENT NEEDS HELP TEXT.')
  flags.AddAsyncFlag(parser)
  parser.add_argument(
      '--num-nodes',
      type=arg_parsers.BoundedInt(1),
      help='The number of nodes to be created in each of the cluster\'s zones.',
      default=3)
  parser.add_argument(
      '--machine-type', '-m',
      help='The type of machine to use for nodes. Defaults to n1-standard-1.')
  parser.add_argument(
      '--subnetwork',
      help="""\
The Google Compute Engine subnetwork
(https://cloud.google.com/compute/docs/subnetworks) to which the cluster is
connected. The subnetwork must belong to the network specified by --network.

Cannot be used with the "--create-subnetwork" option.
""")
  parser.add_argument(
      '--network',
      help='The Compute Engine Network that the cluster will connect to. '
      'Google Kubernetes Engine will use this network when creating routes '
      'and firewalls for the clusters. Defaults to the \'default\' network.')
  parser.add_argument(
      '--cluster-ipv4-cidr',
      help='The IP address range for the pods in this cluster in CIDR '
      'notation (e.g. 10.0.0.0/14).  Prior to Kubernetes version 1.7.0 '
      'this must be a subset of 10.0.0.0/8; however, starting with version '
      '1.7.0 can be any RFC 1918 IP range.')
  parser.add_argument(
      '--enable-cloud-logging',
      action='store_true',
      default=True,
      help='Automatically send logs from the cluster to the '
      'Google Cloud Logging API.')
  parser.set_defaults(enable_cloud_logging=True)
  parser.add_argument(
      '--enable-cloud-monitoring',
      action='store_true',
      default=True,
      help='Automatically send metrics from pods in the cluster to the '
      'Google Cloud Monitoring API. VM metrics will be collected by Google '
      'Compute Engine regardless of this setting.')
  parser.set_defaults(enable_cloud_monitoring=True)
  parser.add_argument(
      '--disk-size',
      type=int,
      help='Size in GB for node VM boot disks. Defaults to 100GB.')
  flags.AddBasicAuthFlags(parser)
  parser.add_argument(
      '--max-nodes-per-pool',
      type=arg_parsers.BoundedInt(100, api_adapter.MAX_NODES_PER_POOL),
      help='The maximum number of nodes to allocate per default initial node '
      'pool. Kubernetes Engine will automatically create enough nodes pools '
      'such that each node pool contains less than '
      '--max-nodes-per-pool nodes. Defaults to {nodes} nodes, but can be set '
      'as low as 100 nodes per pool on initial create.'.format(
          nodes=api_adapter.MAX_NODES_PER_POOL))
  flags.AddImageTypeFlag(parser, 'cluster')
  flags.AddImageFlag(parser, hidden=True)
  flags.AddImageProjectFlag(parser, hidden=True)
  flags.AddImageFamilyFlag(parser, hidden=True)
  flags.AddNodeLabelsFlag(parser)
  flags.AddTagsFlag(parser, """\
Applies the given Compute Engine tags (comma separated) on all nodes in the new
node-pool. Example:

  $ {command} example-cluster --tags=tag1,tag2

New nodes, including ones created by resize or recreate, will have these tags
on the Compute Engine API instance object and can be used in firewall rules.
See https://cloud.google.com/sdk/gcloud/reference/compute/firewall-rules/create
for examples.
""")
  flags.AddClusterVersionFlag(parser)
  # TODO(b/36071127): unhide this flag after we have enough ssd.
  flags.AddDiskTypeFlag(parser, suppressed=True)
  flags.AddEnableAutoUpgradeFlag(parser)
  parser.display_info.AddFormat(util.CLUSTERS_FORMAT)
  flags.AddNodeVersionFlag(parser)
  flags.AddIssueClientCertificateFlag(parser)