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, help=argparse.SUPPRESS) flags.AddClustersWaitAndAsyncFlags(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('--additional-zones', type=arg_parsers.ArgList(min_length=1), metavar='ZONE', help="""\ The set of additional zones in which the specified node footprint should be replicated. All zones must be in the same region as the cluster's primary zone. If additional-zones is not specified, all nodes will be in the cluster's primary zone. Note that `NUM_NODES` nodes will be created in each zone, such that if you specify `--num-nodes=4` and choose one additional zone, 8 nodes will be created. Multiple locations can be specified, separated by commas. For example: $ {command} example-cluster --zone us-central1-a --additional-zones us-central1-b,us-central1-c """) parser.add_argument( '--machine-type', '-m', help='The type of machine to use for nodes. Defaults to ' 'server-specified') parser.add_argument( '--subnetwork', help='The name of the Google Compute Engine subnetwork ' '(https://cloud.google.com/compute/docs/subnetworks) to which the ' 'cluster is connected. If specified, the cluster\'s network must be a ' '"custom subnet" network. Specification of subnetworks is an ' 'alpha feature, and requires that the ' 'Google Compute Engine alpha API be enabled.') parser.add_argument( '--disable-addons', type=arg_parsers.ArgList( choices=[api_adapter.INGRESS, api_adapter.HPA]), help='List of cluster addons to disable. Options are {0}'.format( ', '.join([api_adapter.INGRESS, api_adapter.HPA]))) parser.add_argument( '--network', help='The Compute Engine Network that the cluster will connect to. ' 'Google Container 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). Due to kube-proxy limitations, this range ' 'must be a subset of the 10.0.0.0/8 space. Defaults to server-specified' ) parser.add_argument( '--password', help='The password to use for cluster auth. Defaults to a ' 'server-specified randomly-generated string.') parser.add_argument( '--scopes', type=arg_parsers.ArgList(min_length=1), metavar='SCOPE', help="""\ Specifies scopes for the node instances. The project's default service account is used. Examples: $ {{command}} example-cluster --scopes https://www.googleapis.com/auth/devstorage.read_only $ {{command}} example-cluster --scopes bigquery,storage-rw,compute-ro Multiple SCOPEs can specified, separated by commas. The scopes necessary for the cluster to function properly (compute-rw, storage-ro), are always added, even if not explicitly specified. SCOPE can be either the full URI of the scope or an alias. Available aliases are: [format="csv",options="header"] |======== Alias,URI {aliases} |======== """.format(aliases='\n'.join( ','.join(value) for value in sorted(compute_constants.SCOPES.iteritems())))) parser.add_argument( '--enable-cloud-endpoints', action='store_true', default=True, help='Automatically enable Google Cloud Endpoints to take advantage of ' 'API management features.') 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.') parser.add_argument('--username', '-u', help='The user name to use for cluster auth.', default='admin') 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. Container 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)) parser.add_argument('--tags', help=argparse.SUPPRESS, type=arg_parsers.ArgList(min_length=1), metavar='TAGS') flags.AddImageTypeFlag(parser, 'cluster') flags.AddNodeLabelsFlag(parser)
def _AddCommonArgs(parser): parser.add_argument('name', metavar='NAME', help='The name of the cluster to update.') parser.add_argument('--node-pool', help='Node pool to be updated.') flags.AddClustersWaitAndAsyncFlags(parser)