1 // Copyright 2017 Google Inc.
3 // Licensed under the Apache License, Version 2.0 (the "License");
4 // you may not use this file except in compliance with the License.
5 // You may obtain a copy of the License at
7 // http://www.apache.org/licenses/LICENSE-2.0
9 // Unless required by applicable law or agreed to in writing, software
10 // distributed under the License is distributed on an "AS IS" BASIS,
11 // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12 // See the License for the specific language governing permissions and
13 // limitations under the License.
17 package google.container.v1alpha1;
19 import "google/api/annotations.proto";
20 import "google/protobuf/empty.proto";
22 option go_package = "google.golang.org/genproto/googleapis/container/v1alpha1;container";
23 option java_multiple_files = true;
24 option java_outer_classname = "ClusterServiceProto";
25 option java_package = "com.google.container.v1alpha1";
26 option csharp_namespace = "Google.Cloud.Container.V1Alpha1";
27 option php_namespace = "Google\\Cloud\\Container\\V1alpha1";
30 // Google Container Engine Cluster Manager v1alpha1
31 service ClusterManager {
32 // Lists all clusters owned by a project in either the specified zone or all
34 rpc ListClusters(ListClustersRequest) returns (ListClustersResponse) {
35 option (google.api.http) = { get: "/v1alpha1/{parent=projects/*/locations/*}/clusters" };
38 // Gets the details of a specific cluster.
39 rpc GetCluster(GetClusterRequest) returns (Cluster) {
40 option (google.api.http) = { get: "/v1alpha1/{name=projects/*/locations/*/clusters/*}" };
43 // Creates a cluster, consisting of the specified number and type of Google
44 // Compute Engine instances.
46 // By default, the cluster is created in the project's
47 // [default network](/compute/docs/networks-and-firewalls#networks).
49 // One firewall is added for the cluster. After cluster creation,
50 // the cluster creates routes for each node to allow the containers
51 // on that node to communicate with all other instances in the
54 // Finally, an entry is added to the project's global metadata indicating
55 // which CIDR range is being used by the cluster.
56 rpc CreateCluster(CreateClusterRequest) returns (Operation) {
57 option (google.api.http) = { post: "/v1alpha1/{parent=projects/*/locations/*}/clusters" body: "*" };
60 // Updates the settings of a specific cluster.
61 rpc UpdateCluster(UpdateClusterRequest) returns (Operation) {
62 option (google.api.http) = { put: "/v1alpha1/{name=projects/*/locations/*/clusters/*}" body: "*" };
65 // Updates the version and/or iamge type of a specific node pool.
66 rpc UpdateNodePool(UpdateNodePoolRequest) returns (Operation) {
67 option (google.api.http) = { put: "/v1alpha1/{name=projects/*/locations/*/clusters/*/nodePools/*}" body: "*" };
70 // Sets the autoscaling settings of a specific node pool.
71 rpc SetNodePoolAutoscaling(SetNodePoolAutoscalingRequest) returns (Operation) {
72 option (google.api.http) = { post: "/v1alpha1/{name=projects/*/locations/*/clusters/*/nodePools/*}:setAutoscaling" body: "*" };
75 // Sets the logging service of a specific cluster.
76 rpc SetLoggingService(SetLoggingServiceRequest) returns (Operation) {
77 option (google.api.http) = { post: "/v1alpha1/{name=projects/*/locations/*/clusters/*}:setLogging" body: "*" };
80 // Sets the monitoring service of a specific cluster.
81 rpc SetMonitoringService(SetMonitoringServiceRequest) returns (Operation) {
82 option (google.api.http) = { post: "/v1alpha1/{name=projects/*/locations/*/clusters/*}:setMonitoring" body: "*" };
85 // Sets the addons of a specific cluster.
86 rpc SetAddonsConfig(SetAddonsConfigRequest) returns (Operation) {
87 option (google.api.http) = { post: "/v1alpha1/{name=projects/*/locations/*/clusters/*}:setAddons" body: "*" };
90 // Sets the locations of a specific cluster.
91 rpc SetLocations(SetLocationsRequest) returns (Operation) {
92 option (google.api.http) = { post: "/v1alpha1/{name=projects/*/locations/*/clusters/*}:setLocations" body: "*" };
95 // Updates the master of a specific cluster.
96 rpc UpdateMaster(UpdateMasterRequest) returns (Operation) {
97 option (google.api.http) = { post: "/v1alpha1/{name=projects/*/locations/*/clusters/*}:updateMaster" body: "*" };
100 // Used to set master auth materials. Currently supports :-
101 // Changing the admin password of a specific cluster.
102 // This can be either via password generation or explicitly set.
103 // Modify basic_auth.csv and reset the K8S API server.
104 rpc SetMasterAuth(SetMasterAuthRequest) returns (Operation) {
105 option (google.api.http) = { post: "/v1alpha1/{name=projects/*/locations/*/clusters/*}:setMasterAuth" body: "*" };
108 // Deletes the cluster, including the Kubernetes endpoint and all worker
111 // Firewalls and routes that were configured during cluster creation
114 // Other Google Compute Engine resources that might be in use by the cluster
115 // (e.g. load balancer resources) will not be deleted if they weren't present
116 // at the initial create time.
117 rpc DeleteCluster(DeleteClusterRequest) returns (Operation) {
118 option (google.api.http) = { delete: "/v1alpha1/{name=projects/*/locations/*/clusters/*}" };
121 // Lists all operations in a project in a specific zone or all zones.
122 rpc ListOperations(ListOperationsRequest) returns (ListOperationsResponse) {
123 option (google.api.http) = { get: "/v1alpha1/{parent=projects/*/locations/*}/operations" };
126 // Gets the specified operation.
127 rpc GetOperation(GetOperationRequest) returns (Operation) {
128 option (google.api.http) = { get: "/v1alpha1/{name=projects/*/locations/*/operations/*}" };
131 // Cancels the specified operation.
132 rpc CancelOperation(CancelOperationRequest) returns (google.protobuf.Empty) {
133 option (google.api.http) = { post: "/v1alpha1/{name=projects/*/locations/*/operations/*}:cancel" body: "*" };
136 // Returns configuration info about the Container Engine service.
137 rpc GetServerConfig(GetServerConfigRequest) returns (ServerConfig) {
138 option (google.api.http) = { get: "/v1alpha1/{name=projects/*/locations/*}/serverConfig" };
141 // Lists the node pools for a cluster.
142 rpc ListNodePools(ListNodePoolsRequest) returns (ListNodePoolsResponse) {
143 option (google.api.http) = { get: "/v1alpha1/{parent=projects/*/locations/*/clusters/*}/nodePools" };
146 // Retrieves the node pool requested.
147 rpc GetNodePool(GetNodePoolRequest) returns (NodePool) {
148 option (google.api.http) = { get: "/v1alpha1/{name=projects/*/locations/*/clusters/*/nodePools/*}" };
151 // Creates a node pool for a cluster.
152 rpc CreateNodePool(CreateNodePoolRequest) returns (Operation) {
153 option (google.api.http) = { post: "/v1alpha1/{parent=projects/*/locations/*/clusters/*}/nodePools" body: "*" };
156 // Deletes a node pool from a cluster.
157 rpc DeleteNodePool(DeleteNodePoolRequest) returns (Operation) {
158 option (google.api.http) = { delete: "/v1alpha1/{name=projects/*/locations/*/clusters/*/nodePools/*}" };
161 // Roll back the previously Aborted or Failed NodePool upgrade.
162 // This will be an no-op if the last upgrade successfully completed.
163 rpc RollbackNodePoolUpgrade(RollbackNodePoolUpgradeRequest) returns (Operation) {
164 option (google.api.http) = { post: "/v1alpha1/{name=projects/*/locations/*/clusters/*/nodePools/*}:rollback" body: "*" };
167 // Sets the NodeManagement options for a node pool.
168 rpc SetNodePoolManagement(SetNodePoolManagementRequest) returns (Operation) {
169 option (google.api.http) = { post: "/v1alpha1/{name=projects/*/locations/*/clusters/*/nodePools/*}:setManagement" body: "*" };
172 // Sets labels on a cluster.
173 rpc SetLabels(SetLabelsRequest) returns (Operation) {
174 option (google.api.http) = { post: "/v1alpha1/{name=projects/*/locations/*/clusters/*}:setResourceLabels" body: "*" };
177 // Enables or disables the ABAC authorization mechanism on a cluster.
178 rpc SetLegacyAbac(SetLegacyAbacRequest) returns (Operation) {
179 option (google.api.http) = { post: "/v1alpha1/{name=projects/*/locations/*/clusters/*}:setLegacyAbac" body: "*" };
182 // Start master IP rotation.
183 rpc StartIPRotation(StartIPRotationRequest) returns (Operation) {
184 option (google.api.http) = { post: "/v1alpha1/{name=projects/*/locations/*/clusters/*}:startIpRotation" body: "*" };
187 // Completes master IP rotation.
188 rpc CompleteIPRotation(CompleteIPRotationRequest) returns (Operation) {
189 option (google.api.http) = { post: "/v1alpha1/{name=projects/*/locations/*/clusters/*}:completeIpRotation" body: "*" };
192 // Sets the size of a specific node pool.
193 rpc SetNodePoolSize(SetNodePoolSizeRequest) returns (Operation) {
194 option (google.api.http) = { post: "/v1alpha1/{name=projects/*/locations/*/clusters/*/nodePools/*}:setSize" body: "*" };
197 // Enables/Disables Network Policy for a cluster.
198 rpc SetNetworkPolicy(SetNetworkPolicyRequest) returns (Operation) {
199 option (google.api.http) = { post: "/v1alpha1/{name=projects/*/locations/*/clusters/*}:setNetworkPolicy" body: "*" };
202 // Sets the maintenance policy for a cluster.
203 rpc SetMaintenancePolicy(SetMaintenancePolicyRequest) returns (Operation) {
204 option (google.api.http) = { post: "/v1alpha1/{name=projects/*/locations/*/clusters/*}:setMaintenancePolicy" body: "*" };
208 // Parameters that describe the nodes in a cluster.
210 // The name of a Google Compute Engine [machine
211 // type](/compute/docs/machine-types) (e.g.
214 // If unspecified, the default machine type is
216 string machine_type = 1;
218 // Size of the disk attached to each node, specified in GB.
219 // The smallest allowed disk size is 10GB.
221 // If unspecified, the default disk size is 100GB.
222 int32 disk_size_gb = 2;
224 // The set of Google API scopes to be made available on all of the
225 // node VMs under the "default" service account.
227 // The following scopes are recommended, but not required, and by default are
230 // * `https://www.googleapis.com/auth/compute` is required for mounting
231 // persistent storage on your nodes.
232 // * `https://www.googleapis.com/auth/devstorage.read_only` is required for
233 // communicating with **gcr.io**
234 // (the [Google Container Registry](/container-registry/)).
236 // If unspecified, no scopes are added, unless Cloud Logging or Cloud
237 // Monitoring are enabled, in which case their required scopes will be added.
238 repeated string oauth_scopes = 3;
240 // The Google Cloud Platform Service Account to be used by the node VMs. If
241 // no Service Account is specified, the "default" service account is used.
242 string service_account = 9;
244 // The metadata key/value pairs assigned to instances in the cluster.
246 // Keys must conform to the regexp [a-zA-Z0-9-_]+ and be less than 128 bytes
247 // in length. These are reflected as part of a URL in the metadata server.
248 // Additionally, to avoid ambiguity, keys must not conflict with any other
249 // metadata keys for the project or be one of the four reserved keys:
250 // "instance-template", "kube-env", "startup-script", and "user-data"
252 // Values are free-form strings, and only have meaning as interpreted by
253 // the image running in the instance. The only restriction placed on them is
254 // that each value's size must be less than or equal to 32 KB.
256 // The total size of all keys and values must be less than 512 KB.
257 map<string, string> metadata = 4;
259 // The image type to use for this node. Note that for a given image type,
260 // the latest version of it will be used.
261 string image_type = 5;
263 // The map of Kubernetes labels (key/value pairs) to be applied to each node.
264 // These will added in addition to any default label(s) that
265 // Kubernetes may apply to the node.
266 // In case of conflict in label keys, the applied set may differ depending on
267 // the Kubernetes version -- it's best to assume the behavior is undefined
268 // and conflicts should be avoided.
269 // For more information, including usage and the valid values, see:
270 // https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/
271 map<string, string> labels = 6;
273 // The number of local SSD disks to be attached to the node.
275 // The limit for this value is dependant upon the maximum number of
276 // disks available on a machine per zone. See:
277 // https://cloud.google.com/compute/docs/disks/local-ssd#local_ssd_limits
278 // for more information.
279 int32 local_ssd_count = 7;
281 // The list of instance tags applied to all nodes. Tags are used to identify
282 // valid sources or targets for network firewalls and are specified by
283 // the client during cluster or node pool creation. Each tag within the list
284 // must comply with RFC1035.
285 repeated string tags = 8;
287 // Whether the nodes are created as preemptible VM instances. See:
288 // https://cloud.google.com/compute/docs/instances/preemptible for more
289 // inforamtion about preemptible VM instances.
290 bool preemptible = 10;
292 // A list of hardware accelerators to be attached to each node.
293 // See https://cloud.google.com/compute/docs/gpus for more information about
295 repeated AcceleratorConfig accelerators = 11;
297 // Minimum CPU platform to be used by this instance. The instance may be
298 // scheduled on the specified or newer CPU platform. Applicable values are the
299 // friendly names of CPU platforms, such as
300 // <code>minCpuPlatform: "Intel Haswell"</code> or
301 // <code>minCpuPlatform: "Intel Sandy Bridge"</code>. For more
302 // information, read [how to specify min CPU platform](https://cloud.google.com/compute/docs/instances/specify-min-cpu-platform)
303 string min_cpu_platform = 13;
305 // List of kubernetes taints to be applied to each node.
307 // For more information, including usage and the valid values, see:
308 // https://kubernetes.io/docs/concepts/configuration/taint-and-toleration/
309 repeated NodeTaint taints = 15;
312 // Kubernetes taint is comprised of three fields: key, value, and effect. Effect
313 // can only be one of three types: NoSchedule, PreferNoSchedule or NoExecute.
315 // For more information, including usage and the valid values, see:
316 // https://kubernetes.io/docs/concepts/configuration/taint-and-toleration/
318 // Possible values for Effect in taint.
321 EFFECT_UNSPECIFIED = 0;
327 PREFER_NO_SCHEDULE = 2;
343 // The authentication information for accessing the master endpoint.
344 // Authentication can be done using HTTP basic auth or using client
347 // The username to use for HTTP basic authentication to the master endpoint.
348 // For clusters v1.6.0 and later, you can disable basic authentication by
349 // providing an empty username.
352 // The password to use for HTTP basic authentication to the master endpoint.
353 // Because the master endpoint is open to the Internet, you should create a
354 // strong password. If a password is provided for cluster creation, username
355 // must be non-empty.
358 // Configuration for client certificate authentication on the cluster. If no
359 // configuration is specified, a client certificate is issued.
360 ClientCertificateConfig client_certificate_config = 3;
362 // [Output only] Base64-encoded public certificate that is the root of
363 // trust for the cluster.
364 string cluster_ca_certificate = 100;
366 // [Output only] Base64-encoded public certificate used by clients to
367 // authenticate to the cluster endpoint.
368 string client_certificate = 101;
370 // [Output only] Base64-encoded private key used by clients to authenticate
371 // to the cluster endpoint.
372 string client_key = 102;
375 // Configuration for client certificates on the cluster.
376 message ClientCertificateConfig {
377 // Issue a client certificate.
378 bool issue_client_certificate = 1;
381 // Configuration for the addons that can be automatically spun up in the
382 // cluster, enabling additional functionality.
383 message AddonsConfig {
384 // Configuration for the HTTP (L7) load balancing controller addon, which
385 // makes it easy to set up HTTP load balancers for services in a cluster.
386 HttpLoadBalancing http_load_balancing = 1;
388 // Configuration for the horizontal pod autoscaling feature, which
389 // increases or decreases the number of replica pods a replication controller
390 // has based on the resource usage of the existing pods.
391 HorizontalPodAutoscaling horizontal_pod_autoscaling = 2;
393 // Configuration for the Kubernetes Dashboard.
394 KubernetesDashboard kubernetes_dashboard = 3;
396 // Configuration for NetworkPolicy. This only tracks whether the addon
397 // is enabled or not on the Master, it does not track whether network policy
398 // is enabled for the nodes.
399 NetworkPolicyConfig network_policy_config = 4;
402 // Configuration options for the HTTP (L7) load balancing controller addon,
403 // which makes it easy to set up HTTP load balancers for services in a cluster.
404 message HttpLoadBalancing {
405 // Whether the HTTP Load Balancing controller is enabled in the cluster.
406 // When enabled, it runs a small pod in the cluster that manages the load
411 // Configuration options for the horizontal pod autoscaling feature, which
412 // increases or decreases the number of replica pods a replication controller
413 // has based on the resource usage of the existing pods.
414 message HorizontalPodAutoscaling {
415 // Whether the Horizontal Pod Autoscaling feature is enabled in the cluster.
416 // When enabled, it ensures that a Heapster pod is running in the cluster,
417 // which is also used by the Cloud Monitoring service.
421 // Configuration for the Kubernetes Dashboard.
422 message KubernetesDashboard {
423 // Whether the Kubernetes Dashboard is enabled for this cluster.
427 // Configuration for NetworkPolicy. This only tracks whether the addon
428 // is enabled or not on the Master, it does not track whether network policy
429 // is enabled for the nodes.
430 message NetworkPolicyConfig {
431 // Whether NetworkPolicy is enabled for this cluster.
435 // Configuration options for the master authorized networks feature. Enabled
436 // master authorized networks will disallow all external traffic to access
437 // Kubernetes master through HTTPS except traffic from the given CIDR blocks,
438 // Google Compute Engine Public IPs and Google Prod IPs.
439 message MasterAuthorizedNetworksConfig {
440 // CidrBlock contains an optional name and one CIDR block.
442 // display_name is an optional field for users to identify CIDR blocks.
443 string display_name = 1;
445 // cidr_block must be specified in CIDR notation.
446 string cidr_block = 2;
449 // Whether or not master authorized networks is enabled.
452 // cidr_blocks define up to 10 external networks that could access
453 // Kubernetes master through HTTPS.
454 repeated CidrBlock cidr_blocks = 2;
457 // Configuration options for the NetworkPolicy feature.
458 // https://kubernetes.io/docs/concepts/services-networking/networkpolicies/
459 message NetworkPolicy {
460 // Allowed Network Policy providers.
463 PROVIDER_UNSPECIFIED = 0;
465 // Tigera (Calico Felix).
469 // The selected network policy provider.
470 Provider provider = 1;
472 // Whether network policy is enabled on the cluster.
476 // Configuration for controlling how IPs are allocated in the cluster.
477 message IPAllocationPolicy {
478 // Whether alias IPs will be used for pod IPs in the cluster.
479 bool use_ip_aliases = 1;
481 // Whether a new subnetwork will be created automatically for the cluster.
483 // This field is only applicable when `use_ip_aliases` is true.
484 bool create_subnetwork = 2;
486 // A custom subnetwork name to be used if `create_subnetwork` is true. If
487 // this field is empty, then an automatic name will be chosen for the new
489 string subnetwork_name = 3;
491 // This field is deprecated, use cluster_ipv4_cidr_block.
492 string cluster_ipv4_cidr = 4;
494 // This field is deprecated, use node_ipv4_cidr_block.
495 string node_ipv4_cidr = 5;
497 // This field is deprecated, use services_ipv4_cidr_block.
498 string services_ipv4_cidr = 6;
500 // The name of the secondary range to be used for the cluster CIDR
501 // block. The secondary range will be used for pod IP
502 // addresses. This must be an existing secondary range associated
503 // with the cluster subnetwork.
505 // This field is only applicable if use_ip_aliases is true and
506 // create_subnetwork is false.
507 string cluster_secondary_range_name = 7;
509 // The name of the secondary range to be used as for the services
510 // CIDR block. The secondary range will be used for service
511 // ClusterIPs. This must be an existing secondary range associated
512 // with the cluster subnetwork.
514 // This field is only applicable with use_ip_aliases is true and
515 // create_subnetwork is false.
516 string services_secondary_range_name = 8;
518 // The IP address range for the cluster pod IPs. If this field is set, then
519 // `cluster.cluster_ipv4_cidr` must be left blank.
521 // This field is only applicable when `use_ip_aliases` is true.
523 // Set to blank to have a range chosen with the default size.
525 // Set to /netmask (e.g. `/14`) to have a range chosen with a specific
529 // [CIDR](http://en.wikipedia.org/wiki/Classless_Inter-Domain_Routing)
530 // notation (e.g. `10.96.0.0/14`) from the RFC-1918 private networks (e.g.
531 // `10.0.0.0/8`, `172.16.0.0/12`, `192.168.0.0/16`) to pick a specific range
533 string cluster_ipv4_cidr_block = 9;
535 // The IP address range of the instance IPs in this cluster.
537 // This is applicable only if `create_subnetwork` is true.
539 // Set to blank to have a range chosen with the default size.
541 // Set to /netmask (e.g. `/14`) to have a range chosen with a specific
545 // [CIDR](http://en.wikipedia.org/wiki/Classless_Inter-Domain_Routing)
546 // notation (e.g. `10.96.0.0/14`) from the RFC-1918 private networks (e.g.
547 // `10.0.0.0/8`, `172.16.0.0/12`, `192.168.0.0/16`) to pick a specific range
549 string node_ipv4_cidr_block = 10;
551 // The IP address range of the services IPs in this cluster. If blank, a range
552 // will be automatically chosen with the default size.
554 // This field is only applicable when `use_ip_aliases` is true.
556 // Set to blank to have a range chosen with the default size.
558 // Set to /netmask (e.g. `/14`) to have a range chosen with a specific
562 // [CIDR](http://en.wikipedia.org/wiki/Classless_Inter-Domain_Routing)
563 // notation (e.g. `10.96.0.0/14`) from the RFC-1918 private networks (e.g.
564 // `10.0.0.0/8`, `172.16.0.0/12`, `192.168.0.0/16`) to pick a specific range
566 string services_ipv4_cidr_block = 11;
569 // Configuration for the PodSecurityPolicy feature.
570 message PodSecurityPolicyConfig {
571 // Enable the PodSecurityPolicy controller for this cluster. If enabled, pods
572 // must be valid under a PodSecurityPolicy to be created.
576 // A Google Container Engine cluster.
578 // The current status of the cluster.
581 STATUS_UNSPECIFIED = 0;
583 // The PROVISIONING state indicates the cluster is being created.
586 // The RUNNING state indicates the cluster has been created and is fully
590 // The RECONCILING state indicates that some work is actively being done on
591 // the cluster, such as upgrading the master or node software. Details can
592 // be found in the `statusMessage` field.
595 // The STOPPING state indicates the cluster is being deleted.
598 // The ERROR state indicates the cluster may be unusable. Details
599 // can be found in the `statusMessage` field.
603 // The name of this cluster. The name must be unique within this project
604 // and zone, and can be up to 40 characters with the following restrictions:
606 // * Lowercase letters, numbers, and hyphens only.
607 // * Must start with a letter.
608 // * Must end with a number or a letter.
611 // An optional description of this cluster.
612 string description = 2;
614 // The number of nodes to create in this cluster. You must ensure that your
615 // Compute Engine <a href="/compute/docs/resource-quotas">resource quota</a>
616 // is sufficient for this number of instances. You must also have available
617 // firewall and routes quota.
618 // For requests, this field should only be used in lieu of a
619 // "node_pool" object, since this configuration (along with the
620 // "node_config") will be used to create a "NodePool" object with an
621 // auto-generated name. Do not use this and a node_pool at the same time.
622 int32 initial_node_count = 3;
624 // Parameters used in creating the cluster's nodes.
625 // See `nodeConfig` for the description of its properties.
626 // For requests, this field should only be used in lieu of a
627 // "node_pool" object, since this configuration (along with the
628 // "initial_node_count") will be used to create a "NodePool" object with an
629 // auto-generated name. Do not use this and a node_pool at the same time.
630 // For responses, this field will be populated with the node configuration of
631 // the first node pool.
633 // If unspecified, the defaults are used.
634 NodeConfig node_config = 4;
636 // The authentication information for accessing the master endpoint.
637 MasterAuth master_auth = 5;
639 // The logging service the cluster should use to write logs.
640 // Currently available options:
642 // * `logging.googleapis.com` - the Google Cloud Logging service.
643 // * `none` - no logs will be exported from the cluster.
644 // * if left as an empty string,`logging.googleapis.com` will be used.
645 string logging_service = 6;
647 // The monitoring service the cluster should use to write metrics.
648 // Currently available options:
650 // * `monitoring.googleapis.com` - the Google Cloud Monitoring service.
651 // * `none` - no metrics will be exported from the cluster.
652 // * if left as an empty string, `monitoring.googleapis.com` will be used.
653 string monitoring_service = 7;
655 // The name of the Google Compute Engine
656 // [network](/compute/docs/networks-and-firewalls#networks) to which the
657 // cluster is connected. If left unspecified, the `default` network
661 // The IP address range of the container pods in this cluster, in
662 // [CIDR](http://en.wikipedia.org/wiki/Classless_Inter-Domain_Routing)
663 // notation (e.g. `10.96.0.0/14`). Leave blank to have
664 // one automatically chosen or specify a `/14` block in `10.0.0.0/8`.
665 string cluster_ipv4_cidr = 9;
667 // Configurations for the various addons available to run in the cluster.
668 AddonsConfig addons_config = 10;
670 // The name of the Google Compute Engine
671 // [subnetwork](/compute/docs/subnetworks) to which the
672 // cluster is connected.
673 string subnetwork = 11;
675 // The node pools associated with this cluster.
676 // This field should not be set if "node_config" or "initial_node_count" are
678 repeated NodePool node_pools = 12;
680 // The list of Google Compute Engine
681 // [locations](/compute/docs/zones#available) in which the cluster's nodes
682 // should be located.
683 repeated string locations = 13;
685 // Kubernetes alpha features are enabled on this cluster. This includes alpha
686 // API groups (e.g. v1alpha1) and features that may not be production ready in
687 // the kubernetes version of the master and nodes.
688 // The cluster has no SLA for uptime and master/node upgrades are disabled.
689 // Alpha enabled clusters are automatically deleted thirty days after
691 bool enable_kubernetes_alpha = 14;
693 // Configuration options for the NetworkPolicy feature.
694 NetworkPolicy network_policy = 19;
696 // Configuration for cluster IP allocation.
697 IPAllocationPolicy ip_allocation_policy = 20;
699 // The configuration options for master authorized networks feature.
700 MasterAuthorizedNetworksConfig master_authorized_networks_config = 22;
702 // Configure the maintenance policy for this cluster.
703 MaintenancePolicy maintenance_policy = 23;
705 // Configuration for the PodSecurityPolicy feature.
706 PodSecurityPolicyConfig pod_security_policy_config = 25;
708 // [Output only] Server-defined URL for the resource.
709 string self_link = 100;
711 // [Output only] The name of the Google Compute Engine
712 // [zone](/compute/docs/zones#available) in which the cluster
714 // This field is deprecated, use location instead.
717 // [Output only] The IP address of this cluster's master endpoint.
718 // The endpoint can be accessed from the internet at
719 // `https://username:password@endpoint/`.
721 // See the `masterAuth` property of this resource for username and
722 // password information.
723 string endpoint = 102;
725 // The initial Kubernetes version for this cluster. Valid versions are those
726 // found in validMasterVersions returned by getServerConfig. The version can
727 // be upgraded over time; such upgrades are reflected in
728 // currentMasterVersion and currentNodeVersion.
729 string initial_cluster_version = 103;
731 // [Output only] The current software version of the master endpoint.
732 string current_master_version = 104;
734 // [Output only] The current version of the node software components.
735 // If they are currently at multiple versions because they're in the process
736 // of being upgraded, this reflects the minimum version of all nodes.
737 string current_node_version = 105;
739 // [Output only] The time the cluster was created, in
740 // [RFC3339](https://www.ietf.org/rfc/rfc3339.txt) text format.
741 string create_time = 106;
743 // [Output only] The current status of this cluster.
746 // [Output only] Additional information about the current status of this
747 // cluster, if available.
748 string status_message = 108;
750 // [Output only] The size of the address space on each node for hosting
751 // containers. This is provisioned from within the `container_ipv4_cidr`
753 int32 node_ipv4_cidr_size = 109;
755 // [Output only] The IP address range of the Kubernetes services in
757 // [CIDR](http://en.wikipedia.org/wiki/Classless_Inter-Domain_Routing)
758 // notation (e.g. `1.2.3.4/29`). Service addresses are
759 // typically put in the last `/16` from the container CIDR.
760 string services_ipv4_cidr = 110;
762 // [Output only] The resource URLs of [instance
763 // groups](/compute/docs/instance-groups/) associated with this
765 repeated string instance_group_urls = 111;
767 // [Output only] The number of nodes currently in the cluster.
768 int32 current_node_count = 112;
770 // [Output only] The time the cluster will be automatically
771 // deleted in [RFC3339](https://www.ietf.org/rfc/rfc3339.txt) text format.
772 string expire_time = 113;
774 // [Output only] The name of the Google Compute Engine
775 // [zone](/compute/docs/regions-zones/regions-zones#available) or
776 // [region](/compute/docs/regions-zones/regions-zones#available) in which
777 // the cluster resides.
778 string location = 114;
781 // ClusterUpdate describes an update to the cluster. Exactly one update can
782 // be applied to a cluster with each request, so at most one field can be
784 message ClusterUpdate {
785 // The Kubernetes version to change the nodes to (typically an
786 // upgrade). Use `-` to upgrade to the latest version supported by
788 string desired_node_version = 4;
790 // The monitoring service the cluster should use to write metrics.
791 // Currently available options:
793 // * "monitoring.googleapis.com" - the Google Cloud Monitoring service
794 // * "none" - no metrics will be exported from the cluster
795 string desired_monitoring_service = 5;
797 // Configurations for the various addons available to run in the cluster.
798 AddonsConfig desired_addons_config = 6;
800 // The node pool to be upgraded. This field is mandatory if
801 // "desired_node_version", "desired_image_family" or
802 // "desired_node_pool_autoscaling" is specified and there is more than one
803 // node pool on the cluster.
804 string desired_node_pool_id = 7;
806 // The desired image type for the node pool.
807 // NOTE: Set the "desired_node_pool" field as well.
808 string desired_image_type = 8;
810 // Autoscaler configuration for the node pool specified in
811 // desired_node_pool_id. If there is only one pool in the
812 // cluster and desired_node_pool_id is not provided then
813 // the change applies to that single node pool.
814 NodePoolAutoscaling desired_node_pool_autoscaling = 9;
816 // The desired list of Google Compute Engine
817 // [locations](/compute/docs/zones#available) in which the cluster's nodes
818 // should be located. Changing the locations a cluster is in will result
819 // in nodes being either created or removed from the cluster, depending on
820 // whether locations are being added or removed.
822 // This list must always include the cluster's primary zone.
823 repeated string desired_locations = 10;
825 // The desired configuration options for master authorized networks feature.
826 MasterAuthorizedNetworksConfig desired_master_authorized_networks_config = 12;
828 // The desired configuration options for the PodSecurityPolicy feature.
829 PodSecurityPolicyConfig desired_pod_security_policy_config = 14;
831 // The Kubernetes version to change the master to. The only valid value is the
832 // latest supported version. Use "-" to have the server automatically select
833 // the latest version.
834 string desired_master_version = 100;
837 // This operation resource represents operations that may have happened or are
838 // happening on the cluster. All fields are output only.
840 // Current status of the operation.
843 STATUS_UNSPECIFIED = 0;
845 // The operation has been created.
848 // The operation is currently running.
851 // The operation is done, either cancelled or completed.
854 // The operation is aborting.
861 TYPE_UNSPECIFIED = 0;
882 CREATE_NODE_POOL = 7;
885 DELETE_NODE_POOL = 8;
887 // Set node pool management.
888 SET_NODE_POOL_MANAGEMENT = 9;
890 // Automatic node pool repair.
891 AUTO_REPAIR_NODES = 10;
893 // Automatic node upgrade.
894 AUTO_UPGRADE_NODES = 11;
899 // Set/generate master auth materials
900 SET_MASTER_AUTH = 13;
902 // Set node pool size.
903 SET_NODE_POOL_SIZE = 14;
905 // Updates network policy for a cluster.
906 SET_NETWORK_POLICY = 15;
908 // Set the maintenance policy.
909 SET_MAINTENANCE_POLICY = 16;
912 // The server-assigned ID for the operation.
915 // The name of the Google Compute Engine
916 // [zone](/compute/docs/zones#available) in which the operation
918 // This field is deprecated, use location instead.
921 // The operation type.
922 Type operation_type = 3;
924 // The current status of the operation.
927 // Detailed operation progress, if available.
930 // If an error has occurred, a textual description of the error.
931 string status_message = 5;
933 // Server-defined URL for the resource.
934 string self_link = 6;
936 // Server-defined URL for the target of the operation.
937 string target_link = 7;
939 // [Output only] The name of the Google Compute Engine
940 // [zone](/compute/docs/regions-zones/regions-zones#available) or
941 // [region](/compute/docs/regions-zones/regions-zones#available) in which
942 // the cluster resides.
945 // [Output only] The time the operation started, in
946 // [RFC3339](https://www.ietf.org/rfc/rfc3339.txt) text format.
947 string start_time = 10;
949 // [Output only] The time the operation completed, in
950 // [RFC3339](https://www.ietf.org/rfc/rfc3339.txt) text format.
951 string end_time = 11;
954 // CreateClusterRequest creates a cluster.
955 message CreateClusterRequest {
956 // The Google Developers Console [project ID or project
957 // number](https://support.google.com/cloud/answer/6158840).
958 // This field is deprecated, use parent instead.
959 string project_id = 1;
961 // The name of the Google Compute Engine
962 // [zone](/compute/docs/zones#available) in which the cluster
964 // This field is deprecated, use parent instead.
968 // resource](/container-engine/reference/rest/v1alpha1/projects.zones.clusters)
971 // The parent (project and location) where the cluster will be created.
972 // Specified in the format 'projects/*/locations/*'.
976 // GetClusterRequest gets the settings of a cluster.
977 message GetClusterRequest {
978 // The Google Developers Console [project ID or project
979 // number](https://support.google.com/cloud/answer/6158840).
980 // This field is deprecated, use name instead.
981 string project_id = 1;
983 // The name of the Google Compute Engine
984 // [zone](/compute/docs/zones#available) in which the cluster
986 // This field is deprecated, use name instead.
989 // The name of the cluster to retrieve.
990 // This field is deprecated, use name instead.
991 string cluster_id = 3;
993 // The name (project, location, cluster) of the cluster to retrieve.
994 // Specified in the format 'projects/*/locations/*/clusters/*'.
998 // UpdateClusterRequest updates the settings of a cluster.
999 message UpdateClusterRequest {
1000 // The Google Developers Console [project ID or project
1001 // number](https://support.google.com/cloud/answer/6158840).
1002 // This field is deprecated, use name instead.
1003 string project_id = 1;
1005 // The name of the Google Compute Engine
1006 // [zone](/compute/docs/zones#available) in which the cluster
1008 // This field is deprecated, use name instead.
1011 // The name of the cluster to upgrade.
1012 // This field is deprecated, use name instead.
1013 string cluster_id = 3;
1015 // A description of the update.
1016 ClusterUpdate update = 4;
1018 // The name (project, location, cluster) of the cluster to update.
1019 // Specified in the format 'projects/*/locations/*/clusters/*'.
1023 // SetNodePoolVersionRequest updates the version of a node pool.
1024 message UpdateNodePoolRequest {
1025 // The Google Developers Console [project ID or project
1026 // number](https://support.google.com/cloud/answer/6158840).
1027 // This field is deprecated, use name instead.
1028 string project_id = 1;
1030 // The name of the Google Compute Engine
1031 // [zone](/compute/docs/zones#available) in which the cluster
1033 // This field is deprecated, use name instead.
1036 // The name of the cluster to upgrade.
1037 // This field is deprecated, use name instead.
1038 string cluster_id = 3;
1040 // The name of the node pool to upgrade.
1041 // This field is deprecated, use name instead.
1042 string node_pool_id = 4;
1044 // The Kubernetes version to change the nodes to (typically an
1045 // upgrade). Use `-` to upgrade to the latest version supported by
1047 string node_version = 5;
1049 // The desired image type for the node pool.
1050 string image_type = 6;
1052 // The name (project, location, cluster, node pool) of the node pool to update.
1053 // Specified in the format 'projects/*/locations/*/clusters/*/nodePools/*'.
1057 // SetNodePoolAutoscalingRequest sets the autoscaler settings of a node pool.
1058 message SetNodePoolAutoscalingRequest {
1059 // The Google Developers Console [project ID or project
1060 // number](https://support.google.com/cloud/answer/6158840).
1061 // This field is deprecated, use name instead.
1062 string project_id = 1;
1064 // The name of the Google Compute Engine
1065 // [zone](/compute/docs/zones#available) in which the cluster
1067 // This field is deprecated, use name instead.
1070 // The name of the cluster to upgrade.
1071 // This field is deprecated, use name instead.
1072 string cluster_id = 3;
1074 // The name of the node pool to upgrade.
1075 // This field is deprecated, use name instead.
1076 string node_pool_id = 4;
1078 // Autoscaling configuration for the node pool.
1079 NodePoolAutoscaling autoscaling = 5;
1081 // The name (project, location, cluster, node pool) of the node pool to set
1082 // autoscaler settings. Specified in the format
1083 // 'projects/*/locations/*/clusters/*/nodePools/*'.
1087 // SetLoggingServiceRequest sets the logging service of a cluster.
1088 message SetLoggingServiceRequest {
1089 // The Google Developers Console [project ID or project
1090 // number](https://support.google.com/cloud/answer/6158840).
1091 // This field is deprecated, use name instead.
1092 string project_id = 1;
1094 // The name of the Google Compute Engine
1095 // [zone](/compute/docs/zones#available) in which the cluster
1099 // The name of the cluster to upgrade.
1100 // This field is deprecated, use name instead.
1101 string cluster_id = 3;
1103 // The logging service the cluster should use to write metrics.
1104 // Currently available options:
1106 // * "logging.googleapis.com" - the Google Cloud Logging service
1107 // * "none" - no metrics will be exported from the cluster
1108 string logging_service = 4;
1110 // The name (project, location, cluster) of the cluster to set logging.
1111 // Specified in the format 'projects/*/locations/*/clusters/*'.
1115 // SetMonitoringServiceRequest sets the monitoring service of a cluster.
1116 message SetMonitoringServiceRequest {
1117 // The Google Developers Console [project ID or project
1118 // number](https://support.google.com/cloud/answer/6158840).
1119 // This field is deprecated, use name instead.
1120 string project_id = 1;
1122 // The name of the Google Compute Engine
1123 // [zone](/compute/docs/zones#available) in which the cluster
1125 // This field is deprecated, use name instead.
1128 // The name of the cluster to upgrade.
1129 // This field is deprecated, use name instead.
1130 string cluster_id = 3;
1132 // The monitoring service the cluster should use to write metrics.
1133 // Currently available options:
1135 // * "monitoring.googleapis.com" - the Google Cloud Monitoring service
1136 // * "none" - no metrics will be exported from the cluster
1137 string monitoring_service = 4;
1139 // The name (project, location, cluster) of the cluster to set monitoring.
1140 // Specified in the format 'projects/*/locations/*/clusters/*'.
1144 // SetAddonsRequest sets the addons associated with the cluster.
1145 message SetAddonsConfigRequest {
1146 // The Google Developers Console [project ID or project
1147 // number](https://support.google.com/cloud/answer/6158840).
1148 // This field is deprecated, use name instead.
1149 string project_id = 1;
1151 // The name of the Google Compute Engine
1152 // [zone](/compute/docs/zones#available) in which the cluster
1154 // This field is deprecated, use name instead.
1157 // The name of the cluster to upgrade.
1158 // This field is deprecated, use name instead.
1159 string cluster_id = 3;
1161 // The desired configurations for the various addons available to run in the
1163 AddonsConfig addons_config = 4;
1165 // The name (project, location, cluster) of the cluster to set addons.
1166 // Specified in the format 'projects/*/locations/*/clusters/*'.
1170 // SetLocationsRequest sets the locations of the cluster.
1171 message SetLocationsRequest {
1172 // The Google Developers Console [project ID or project
1173 // number](https://support.google.com/cloud/answer/6158840).
1174 // This field is deprecated, use name instead.
1175 string project_id = 1;
1177 // The name of the Google Compute Engine
1178 // [zone](/compute/docs/zones#available) in which the cluster
1180 // This field is deprecated, use name instead.
1183 // The name of the cluster to upgrade.
1184 // This field is deprecated, use name instead.
1185 string cluster_id = 3;
1187 // The desired list of Google Compute Engine
1188 // [locations](/compute/docs/zones#available) in which the cluster's nodes
1189 // should be located. Changing the locations a cluster is in will result
1190 // in nodes being either created or removed from the cluster, depending on
1191 // whether locations are being added or removed.
1193 // This list must always include the cluster's primary zone.
1194 repeated string locations = 4;
1196 // The name (project, location, cluster) of the cluster to set locations.
1197 // Specified in the format 'projects/*/locations/*/clusters/*'.
1201 // UpdateMasterRequest updates the master of the cluster.
1202 message UpdateMasterRequest {
1203 // The Google Developers Console [project ID or project
1204 // number](https://support.google.com/cloud/answer/6158840).
1205 string project_id = 1;
1207 // The name of the Google Compute Engine
1208 // [zone](/compute/docs/zones#available) in which the cluster
1210 // This field is deprecated, use name instead.
1213 // The name of the cluster to upgrade.
1214 // This field is deprecated, use name instead.
1215 string cluster_id = 3;
1217 // The Kubernetes version to change the master to. The only valid value is the
1218 // latest supported version. Use "-" to have the server automatically select
1219 // the latest version.
1220 string master_version = 4;
1222 // The name (project, location, cluster) of the cluster to update.
1223 // Specified in the format 'projects/*/locations/*/clusters/*'.
1227 // SetMasterAuthRequest updates the admin password of a cluster.
1228 message SetMasterAuthRequest {
1229 // Operation type: what type update to perform.
1231 // Operation is unknown and will error out.
1234 // Set the password to a user generated value.
1237 // Generate a new password and set it to that.
1238 GENERATE_PASSWORD = 2;
1240 // Set the username. If an empty username is provided, basic authentication
1241 // is disabled for the cluster. If a non-empty username is provided, basic
1242 // authentication is enabled, with either a provided password or a generated
1247 // The Google Developers Console [project ID or project
1248 // number](https://support.google.com/cloud/answer/6158840).
1249 // This field is deprecated, use name instead.
1250 string project_id = 1;
1252 // The name of the Google Compute Engine
1253 // [zone](/compute/docs/zones#available) in which the cluster
1255 // This field is deprecated, use name instead.
1258 // The name of the cluster to upgrade.
1259 // This field is deprecated, use name instead.
1260 string cluster_id = 3;
1262 // The exact form of action to be taken on the master auth.
1265 // A description of the update.
1266 MasterAuth update = 5;
1268 // The name (project, location, cluster) of the cluster to set auth.
1269 // Specified in the format 'projects/*/locations/*/clusters/*'.
1273 // DeleteClusterRequest deletes a cluster.
1274 message DeleteClusterRequest {
1275 // The Google Developers Console [project ID or project
1276 // number](https://support.google.com/cloud/answer/6158840).
1277 // This field is deprecated, use name instead.
1278 string project_id = 1;
1280 // The name of the Google Compute Engine
1281 // [zone](/compute/docs/zones#available) in which the cluster
1283 // This field is deprecated, use name instead.
1286 // The name of the cluster to delete.
1287 // This field is deprecated, use name instead.
1288 string cluster_id = 3;
1290 // The name (project, location, cluster) of the cluster to delete.
1291 // Specified in the format 'projects/*/locations/*/clusters/*'.
1295 // ListClustersRequest lists clusters.
1296 message ListClustersRequest {
1297 // The Google Developers Console [project ID or project
1298 // number](https://support.google.com/cloud/answer/6158840).
1299 // This field is deprecated, use parent instead.
1300 string project_id = 1;
1302 // The name of the Google Compute Engine
1303 // [zone](/compute/docs/zones#available) in which the cluster
1304 // resides, or "-" for all zones.
1305 // This field is deprecated, use parent instead.
1308 // The parent (project and location) where the clusters will be listed.
1309 // Specified in the format 'projects/*/locations/*'.
1310 // Location "-" matches all zones and all regions.
1314 // ListClustersResponse is the result of ListClustersRequest.
1315 message ListClustersResponse {
1316 // A list of clusters in the project in the specified zone, or
1318 repeated Cluster clusters = 1;
1320 // If any zones are listed here, the list of clusters returned
1321 // may be missing those zones.
1322 repeated string missing_zones = 2;
1325 // GetOperationRequest gets a single operation.
1326 message GetOperationRequest {
1327 // The Google Developers Console [project ID or project
1328 // number](https://support.google.com/cloud/answer/6158840).
1329 // This field is deprecated, use name instead.
1330 string project_id = 1;
1332 // The name of the Google Compute Engine
1333 // [zone](/compute/docs/zones#available) in which the cluster
1335 // This field is deprecated, use name instead.
1338 // The server-assigned `name` of the operation.
1339 // This field is deprecated, use name instead.
1340 string operation_id = 3;
1342 // The name (project, location, operation id) of the operation to get.
1343 // Specified in the format 'projects/*/locations/*/operations/*'.
1347 // ListOperationsRequest lists operations.
1348 message ListOperationsRequest {
1349 // The Google Developers Console [project ID or project
1350 // number](https://support.google.com/cloud/answer/6158840).
1351 // This field is deprecated, use parent instead.
1352 string project_id = 1;
1354 // The name of the Google Compute Engine [zone](/compute/docs/zones#available)
1355 // to return operations for, or `-` for all zones.
1356 // This field is deprecated, use parent instead.
1359 // The parent (project and location) where the operations will be listed.
1360 // Specified in the format 'projects/*/locations/*'.
1361 // Location "-" matches all zones and all regions.
1365 // CancelOperationRequest cancels a single operation.
1366 message CancelOperationRequest {
1367 // The Google Developers Console [project ID or project
1368 // number](https://support.google.com/cloud/answer/6158840).
1369 // This field is deprecated, use name instead.
1370 string project_id = 1;
1372 // The name of the Google Compute Engine
1373 // [zone](/compute/docs/zones#available) in which the operation resides.
1374 // This field is deprecated, use name instead.
1377 // The server-assigned `name` of the operation.
1378 // This field is deprecated, use name instead.
1379 string operation_id = 3;
1381 // The name (project, location, operation id) of the operation to cancel.
1382 // Specified in the format 'projects/*/locations/*/operations/*'.
1386 // ListOperationsResponse is the result of ListOperationsRequest.
1387 message ListOperationsResponse {
1388 // A list of operations in the project in the specified zone.
1389 repeated Operation operations = 1;
1391 // If any zones are listed here, the list of operations returned
1392 // may be missing the operations from those zones.
1393 repeated string missing_zones = 2;
1396 // Gets the current Container Engine service configuration.
1397 message GetServerConfigRequest {
1398 // The Google Developers Console [project ID or project
1399 // number](https://support.google.com/cloud/answer/6158840).
1400 // This field is deprecated, use name instead.
1401 string project_id = 1;
1403 // The name of the Google Compute Engine [zone](/compute/docs/zones#available)
1404 // to return operations for.
1405 // This field is deprecated, use name instead.
1408 // The name (project and location) of the server config to get
1409 // Specified in the format 'projects/*/locations/*'.
1413 // Container Engine service configuration.
1414 message ServerConfig {
1415 // Version of Kubernetes the service deploys by default.
1416 string default_cluster_version = 1;
1418 // List of valid node upgrade target versions.
1419 repeated string valid_node_versions = 3;
1421 // Default image type.
1422 string default_image_type = 4;
1424 // List of valid image types.
1425 repeated string valid_image_types = 5;
1427 // List of valid master versions.
1428 repeated string valid_master_versions = 6;
1431 // CreateNodePoolRequest creates a node pool for a cluster.
1432 message CreateNodePoolRequest {
1433 // The Google Developers Console [project ID or project
1434 // number](https://developers.google.com/console/help/new/#projectnumber).
1435 // This field is deprecated, use parent instead.
1436 string project_id = 1;
1438 // The name of the Google Compute Engine
1439 // [zone](/compute/docs/zones#available) in which the cluster
1441 // This field is deprecated, use parent instead.
1444 // The name of the cluster.
1445 // This field is deprecated, use parent instead.
1446 string cluster_id = 3;
1448 // The node pool to create.
1449 NodePool node_pool = 4;
1451 // The parent (project, location, cluster id) where the node pool will be created.
1452 // Specified in the format 'projects/*/locations/*/clusters/*/nodePools/*'.
1456 // DeleteNodePoolRequest deletes a node pool for a cluster.
1457 message DeleteNodePoolRequest {
1458 // The Google Developers Console [project ID or project
1459 // number](https://developers.google.com/console/help/new/#projectnumber).
1460 // This field is deprecated, use name instead.
1461 string project_id = 1;
1463 // The name of the Google Compute Engine
1464 // [zone](/compute/docs/zones#available) in which the cluster
1466 // This field is deprecated, use name instead.
1469 // The name of the cluster.
1470 // This field is deprecated, use name instead.
1471 string cluster_id = 3;
1473 // The name of the node pool to delete.
1474 // This field is deprecated, use name instead.
1475 string node_pool_id = 4;
1477 // The name (project, location, cluster, node pool id) of the node pool to delete.
1478 // Specified in the format 'projects/*/locations/*/clusters/*/nodePools/*'.
1482 // ListNodePoolsRequest lists the node pool(s) for a cluster.
1483 message ListNodePoolsRequest {
1484 // The Google Developers Console [project ID or project
1485 // number](https://developers.google.com/console/help/new/#projectnumber).
1486 // This field is deprecated, use parent instead.
1487 string project_id = 1;
1489 // The name of the Google Compute Engine
1490 // [zone](/compute/docs/zones#available) in which the cluster
1492 // This field is deprecated, use parent instead.
1495 // The name of the cluster.
1496 // This field is deprecated, use parent instead.
1497 string cluster_id = 3;
1499 // The parent (project, location, cluster id) where the node pools will be listed.
1500 // Specified in the format 'projects/*/locations/*/clusters/*'.
1504 // GetNodePoolRequest retrieves a node pool for a cluster.
1505 message GetNodePoolRequest {
1506 // The Google Developers Console [project ID or project
1507 // number](https://developers.google.com/console/help/new/#projectnumber).
1508 // This field is deprecated, use name instead.
1509 string project_id = 1;
1511 // The name of the Google Compute Engine
1512 // [zone](/compute/docs/zones#available) in which the cluster
1514 // This field is deprecated, use name instead.
1517 // The name of the cluster.
1518 // This field is deprecated, use name instead.
1519 string cluster_id = 3;
1521 // The name of the node pool.
1522 // This field is deprecated, use name instead.
1523 string node_pool_id = 4;
1525 // The name (project, location, cluster, node pool id) of the node pool to get.
1526 // Specified in the format 'projects/*/locations/*/clusters/*/nodePools/*'.
1530 // NodePool contains the name and configuration for a cluster's node pool.
1531 // Node pools are a set of nodes (i.e. VM's), with a common configuration and
1532 // specification, under the control of the cluster master. They may have a set
1533 // of Kubernetes labels applied to them, which may be used to reference them
1534 // during pod scheduling. They may also be resized up or down, to accommodate
1537 // The current status of the node pool instance.
1540 STATUS_UNSPECIFIED = 0;
1542 // The PROVISIONING state indicates the node pool is being created.
1545 // The RUNNING state indicates the node pool has been created
1546 // and is fully usable.
1549 // The RUNNING_WITH_ERROR state indicates the node pool has been created
1550 // and is partially usable. Some error state has occurred and some
1551 // functionality may be impaired. Customer may need to reissue a request
1552 // or trigger a new update.
1553 RUNNING_WITH_ERROR = 3;
1555 // The RECONCILING state indicates that some work is actively being done on
1556 // the node pool, such as upgrading node software. Details can
1557 // be found in the `statusMessage` field.
1560 // The STOPPING state indicates the node pool is being deleted.
1563 // The ERROR state indicates the node pool may be unusable. Details
1564 // can be found in the `statusMessage` field.
1568 // The name of the node pool.
1571 // The node configuration of the pool.
1572 NodeConfig config = 2;
1574 // The initial node count for the pool. You must ensure that your
1575 // Compute Engine <a href="/compute/docs/resource-quotas">resource quota</a>
1576 // is sufficient for this number of instances. You must also have available
1577 // firewall and routes quota.
1578 int32 initial_node_count = 3;
1580 // Autoscaler configuration for this NodePool. Autoscaler is enabled
1581 // only if a valid configuration is present.
1582 NodePoolAutoscaling autoscaling = 4;
1584 // NodeManagement configuration for this NodePool.
1585 NodeManagement management = 5;
1587 // [Output only] Server-defined URL for the resource.
1588 string self_link = 100;
1590 // [Output only] The version of the Kubernetes of this node.
1591 string version = 101;
1593 // [Output only] The resource URLs of [instance
1594 // groups](/compute/docs/instance-groups/) associated with this
1596 repeated string instance_group_urls = 102;
1598 // [Output only] The status of the nodes in this pool instance.
1599 Status status = 103;
1601 // [Output only] Additional information about the current status of this
1602 // node pool instance, if available.
1603 string status_message = 104;
1606 // NodeManagement defines the set of node management services turned on for the
1608 message NodeManagement {
1609 // Whether the nodes will be automatically upgraded.
1610 bool auto_upgrade = 1;
1612 // Whether the nodes will be automatically repaired.
1613 bool auto_repair = 2;
1615 // Specifies the Auto Upgrade knobs for the node pool.
1616 AutoUpgradeOptions upgrade_options = 10;
1619 // AutoUpgradeOptions defines the set of options for the user to control how
1620 // the Auto Upgrades will proceed.
1621 message AutoUpgradeOptions {
1622 // [Output only] This field is set when upgrades are about to commence
1623 // with the approximate start time for the upgrades, in
1624 // [RFC3339](https://www.ietf.org/rfc/rfc3339.txt) text format.
1625 string auto_upgrade_start_time = 1;
1627 // [Output only] This field is set when upgrades are about to commence
1628 // with the description of the upgrade.
1629 string description = 2;
1632 // MaintenancePolicy defines the maintenance policy to be used for the cluster.
1633 message MaintenancePolicy {
1634 // Specifies the maintenance window in which maintenance may be performed.
1635 MaintenanceWindow window = 1;
1638 // MaintenanceWindow defines the maintenance window to be used for the cluster.
1639 message MaintenanceWindow {
1640 // Unimplemented, reserved for future use.
1641 // HourlyMaintenanceWindow hourly_maintenance_window = 1;
1643 // DailyMaintenanceWindow specifies a daily maintenance operation window.
1644 DailyMaintenanceWindow daily_maintenance_window = 2;
1648 // Time window specified for daily maintenance operations.
1649 message DailyMaintenanceWindow {
1650 // Time within the maintenance window to start the maintenance operations.
1651 // It must be in format "HH:MM”, where HH : [00-23] and MM : [00-59] GMT.
1652 string start_time = 2;
1654 // [Output only] Duration of the time window, automatically chosen to be
1655 // smallest possible in the given scenario.
1656 string duration = 3;
1659 // SetNodePoolManagementRequest sets the node management properties of a node
1661 message SetNodePoolManagementRequest {
1662 // The Google Developers Console [project ID or project
1663 // number](https://support.google.com/cloud/answer/6158840).
1664 // This field is deprecated, use name instead.
1665 string project_id = 1;
1667 // The name of the Google Compute Engine
1668 // [zone](/compute/docs/zones#available) in which the cluster
1670 // This field is deprecated, use name instead.
1673 // The name of the cluster to update.
1674 // This field is deprecated, use name instead.
1675 string cluster_id = 3;
1677 // The name of the node pool to update.
1678 // This field is deprecated, use name instead.
1679 string node_pool_id = 4;
1681 // NodeManagement configuration for the node pool.
1682 NodeManagement management = 5;
1684 // The name (project, location, cluster, node pool id) of the node pool to set
1685 // management properties. Specified in the format
1686 // 'projects/*/locations/*/clusters/*/nodePools/*'.
1690 // SetNodePoolSizeRequest sets the size a node
1692 message SetNodePoolSizeRequest {
1693 // The Google Developers Console [project ID or project
1694 // number](https://support.google.com/cloud/answer/6158840).
1695 string project_id = 1;
1697 // The name of the Google Compute Engine
1698 // [zone](/compute/docs/zones#available) in which the cluster
1700 // This field is deprecated, use name instead.
1703 // The name of the cluster to update.
1704 // This field is deprecated, use name instead.
1705 string cluster_id = 3;
1707 // The name of the node pool to update.
1708 // This field is deprecated, use name instead.
1709 string node_pool_id = 4;
1711 // The desired node count for the pool.
1712 int32 node_count = 5;
1714 // The name (project, location, cluster, node pool id) of the node pool to set
1716 // Specified in the format 'projects/*/locations/*/clusters/*/nodePools/*'.
1720 // RollbackNodePoolUpgradeRequest rollbacks the previously Aborted or Failed
1721 // NodePool upgrade. This will be an no-op if the last upgrade successfully
1723 message RollbackNodePoolUpgradeRequest {
1724 // The Google Developers Console [project ID or project
1725 // number](https://support.google.com/cloud/answer/6158840).
1726 // This field is deprecated, use name instead.
1727 string project_id = 1;
1729 // The name of the Google Compute Engine
1730 // [zone](/compute/docs/zones#available) in which the cluster
1732 // This field is deprecated, use name instead.
1735 // The name of the cluster to rollback.
1736 // This field is deprecated, use name instead.
1737 string cluster_id = 3;
1739 // The name of the node pool to rollback.
1740 // This field is deprecated, use name instead.
1741 string node_pool_id = 4;
1743 // The name (project, location, cluster, node pool id) of the node poll to
1744 // rollback upgrade.
1745 // Specified in the format 'projects/*/locations/*/clusters/*/nodePools/*'.
1749 // ListNodePoolsResponse is the result of ListNodePoolsRequest.
1750 message ListNodePoolsResponse {
1751 // A list of node pools for a cluster.
1752 repeated NodePool node_pools = 1;
1755 // NodePoolAutoscaling contains information required by cluster autoscaler to
1756 // adjust the size of the node pool to the current cluster usage.
1757 message NodePoolAutoscaling {
1758 // Is autoscaling enabled for this node pool.
1761 // Minimum number of nodes in the NodePool. Must be >= 1 and <=
1763 int32 min_node_count = 2;
1765 // Maximum number of nodes in the NodePool. Must be >= min_node_count. There
1766 // has to enough quota to scale up the cluster.
1767 int32 max_node_count = 3;
1770 // SetLabelsRequest sets the Google Cloud Platform labels on a Google Container
1771 // Engine cluster, which will in turn set them for Google Compute Engine
1772 // resources used by that cluster
1773 message SetLabelsRequest {
1774 // The Google Developers Console [project ID or project
1775 // number](https://developers.google.com/console/help/new/#projectnumber).
1776 // This field is deprecated, use name instead.
1777 string project_id = 1;
1779 // The name of the Google Compute Engine
1780 // [zone](/compute/docs/zones#available) in which the cluster
1782 // This field is deprecated, use name instead.
1785 // The name of the cluster.
1786 // This field is deprecated, use name instead.
1787 string cluster_id = 3;
1789 // The labels to set for that cluster.
1790 map<string, string> resource_labels = 4;
1792 // The fingerprint of the previous set of labels for this resource,
1793 // used to detect conflicts. The fingerprint is initially generated by
1794 // Container Engine and changes after every request to modify or update
1795 // labels. You must always provide an up-to-date fingerprint hash when
1796 // updating or changing labels. Make a <code>get()</code> request to the
1797 // resource to get the latest fingerprint.
1798 string label_fingerprint = 5;
1800 // The name (project, location, cluster id) of the cluster to set labels.
1801 // Specified in the format 'projects/*/locations/*/clusters/*'.
1805 // SetLegacyAbacRequest enables or disables the ABAC authorization mechanism for
1807 message SetLegacyAbacRequest {
1808 // The Google Developers Console [project ID or project
1809 // number](https://support.google.com/cloud/answer/6158840).
1810 // This field is deprecated, use name instead.
1811 string project_id = 1;
1813 // The name of the Google Compute Engine
1814 // [zone](/compute/docs/zones#available) in which the cluster
1816 // This field is deprecated, use name instead.
1819 // The name of the cluster to update.
1820 // This field is deprecated, use name instead.
1821 string cluster_id = 3;
1823 // Whether ABAC authorization will be enabled in the cluster.
1826 // The name (project, location, cluster id) of the cluster to set legacy abac.
1827 // Specified in the format 'projects/*/locations/*/clusters/*'.
1831 // StartIPRotationRequest creates a new IP for the cluster and then performs
1832 // a node upgrade on each node pool to point to the new IP.
1833 message StartIPRotationRequest {
1834 // The Google Developers Console [project ID or project
1835 // number](https://developers.google.com/console/help/new/#projectnumber).
1836 // This field is deprecated, use name instead.
1837 string project_id = 1;
1839 // The name of the Google Compute Engine
1840 // [zone](/compute/docs/zones#available) in which the cluster
1842 // This field is deprecated, use name instead.
1845 // The name of the cluster.
1846 // This field is deprecated, use name instead.
1847 string cluster_id = 3;
1849 // The name (project, location, cluster id) of the cluster to start IP rotation.
1850 // Specified in the format 'projects/*/locations/*/clusters/*'.
1854 // CompleteIPRotationRequest moves the cluster master back into single-IP mode.
1855 message CompleteIPRotationRequest {
1856 // The Google Developers Console [project ID or project
1857 // number](https://developers.google.com/console/help/new/#projectnumber).
1858 // This field is deprecated, use name instead.
1859 string project_id = 1;
1861 // The name of the Google Compute Engine
1862 // [zone](/compute/docs/zones#available) in which the cluster
1864 // This field is deprecated, use name instead.
1867 // The name of the cluster.
1868 // This field is deprecated, use name instead.
1869 string cluster_id = 3;
1871 // The name (project, location, cluster id) of the cluster to complete IP rotation.
1872 // Specified in the format 'projects/*/locations/*/clusters/*'.
1876 // AcceleratorConfig represents a Hardware Accelerator request.
1877 message AcceleratorConfig {
1878 // The number of the accelerator cards exposed to an instance.
1879 int64 accelerator_count = 1;
1881 // The accelerator type resource name. List of supported accelerators
1882 // [here](/compute/docs/gpus/#Introduction)
1883 string accelerator_type = 2;
1886 // SetNetworkPolicyRequest enables/disables network policy for a cluster.
1887 message SetNetworkPolicyRequest {
1888 // The Google Developers Console [project ID or project
1889 // number](https://developers.google.com/console/help/new/#projectnumber).
1890 // This field is deprecated, use name instead.
1891 string project_id = 1;
1893 // The name of the Google Compute Engine
1894 // [zone](/compute/docs/zones#available) in which the cluster
1896 // This field is deprecated, use name instead.
1899 // The name of the cluster.
1900 // This field is deprecated, use name instead.
1901 string cluster_id = 3;
1903 // Configuration options for the NetworkPolicy feature.
1904 NetworkPolicy network_policy = 4;
1906 // The name (project, location, cluster id) of the cluster to set networking
1908 // Specified in the format 'projects/*/locations/*/clusters/*'.
1912 // SetMaintenancePolicyRequest sets the maintenance policy for a cluster.
1913 message SetMaintenancePolicyRequest {
1914 // The Google Developers Console [project ID or project
1915 // number](https://support.google.com/cloud/answer/6158840).
1916 string project_id = 1;
1918 // The name of the Google Compute Engine
1919 // [zone](/compute/docs/zones#available) in which the cluster
1923 // The name of the cluster to update.
1924 string cluster_id = 3;
1926 // The maintenance policy to be set for the cluster. An empty field
1927 // clears the existing maintenance policy.
1928 MaintenancePolicy maintenance_policy = 4;
1930 // The name (project, location, cluster id) of the cluster to set maintenance
1932 // Specified in the format 'projects/*/locations/*/clusters/*'.