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 the cluster to create. The name may contain only lowercase alphanumerics and '-', must start with a letter and end with an alphanumeric, and must be no longer than 40 characters. """) # Timeout in seconds for operation parser.add_argument( '--timeout', type=int, default=3600, hidden=True, help='Timeout (seconds) for waiting on the operation to complete.') 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) flags.AddMachineTypeFlag(parser) 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=actions.DeprecationAction( '--enable-cloud-logging', warn='From 1.14, legacy Stackdriver GKE logging is deprecated. Thus, ' 'flag `--enable-cloud-logging` is also deprecated. Please use ' '`--enable-stackdriver-kubernetes` instead, to migrate to new ' 'Stackdriver Kubernetes Engine monitoring and logging. For more ' 'details, please read: ' 'https://cloud.google.com/monitoring/kubernetes-engine/migration.', action='store_true'), help='Automatically send logs from the cluster to the Google Cloud ' 'Logging API. This flag is deprecated, use ' '`--enable-stackdriver-kubernetes` instead.') parser.add_argument( '--enable-cloud-monitoring', action=actions.DeprecationAction( '--enable-cloud-monitoring', warn='From 1.14, legacy Stackdriver GKE monitoring is deprecated. ' 'Thus, flag `--enable-cloud-monitoring` is also deprecated. Please ' 'use `--enable-stackdriver-kubernetes` instead, to migrate to new ' 'Stackdriver Kubernetes Engine monitoring and logging. For more ' 'details, please read: ' 'https://cloud.google.com/monitoring/kubernetes-engine/migration.', action='store_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. This flag is deprecated, use ' '`--enable-stackdriver-kubernetes` instead.') parser.add_argument( '--disk-size', type=arg_parsers.BinarySize(lower_bound='10GB'), help='Size 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. """) parser.display_info.AddFormat(util.CLUSTERS_FORMAT) flags.AddIssueClientCertificateFlag(parser) flags.AddAcceleratorArgs(parser) flags.AddDiskTypeFlag(parser) flags.AddMetadataFlags(parser) flags.AddDatabaseEncryptionFlag(parser) flags.AddShieldedInstanceFlags(parser)
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) flags.AddMachineTypeFlag(parser) 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) flags.AddEnableAutoUpgradeFlag(parser) parser.display_info.AddFormat(util.CLUSTERS_FORMAT) flags.AddNodeVersionFlag(parser) flags.AddIssueClientCertificateFlag(parser) flags.AddAcceleratorArgs(parser)