You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
2740 lines
101 KiB
2740 lines
101 KiB
// Copyright 2018 Google LLC.
|
|
//
|
|
// Licensed under the Apache License, Version 2.0 (the "License");
|
|
// you may not use this file except in compliance with the License.
|
|
// You may obtain a copy of the License at
|
|
//
|
|
// http://www.apache.org/licenses/LICENSE-2.0
|
|
//
|
|
// Unless required by applicable law or agreed to in writing, software
|
|
// distributed under the License is distributed on an "AS IS" BASIS,
|
|
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
// See the License for the specific language governing permissions and
|
|
// limitations under the License.
|
|
//
|
|
|
|
syntax = "proto3";
|
|
|
|
package google.container.v1beta1;
|
|
|
|
import "google/api/annotations.proto";
|
|
import "google/iam/v1/iam_policy.proto";
|
|
import "google/iam/v1/policy.proto";
|
|
import "google/protobuf/empty.proto";
|
|
|
|
option csharp_namespace = "Google.Cloud.Container.V1Beta1";
|
|
option go_package = "google.golang.org/genproto/googleapis/container/v1beta1;container";
|
|
option java_multiple_files = true;
|
|
option java_outer_classname = "ClusterServiceProto";
|
|
option java_package = "com.google.container.v1beta1";
|
|
option php_namespace = "Google\\Cloud\\Container\\V1beta1";
|
|
|
|
|
|
// Google Kubernetes Engine Cluster Manager v1beta1
|
|
service ClusterManager {
|
|
// Lists all clusters owned by a project in either the specified zone or all
|
|
// zones.
|
|
rpc ListClusters(ListClustersRequest) returns (ListClustersResponse) {
|
|
option (google.api.http) = {
|
|
get: "/v1beta1/{parent=projects/*/locations/*}/clusters"
|
|
additional_bindings {
|
|
get: "/v1beta1/projects/{project_id}/zones/{zone}/clusters"
|
|
}
|
|
};
|
|
}
|
|
|
|
// Gets the details for a specific cluster.
|
|
rpc GetCluster(GetClusterRequest) returns (Cluster) {
|
|
option (google.api.http) = {
|
|
get: "/v1beta1/{name=projects/*/locations/*/clusters/*}"
|
|
additional_bindings {
|
|
get: "/v1beta1/projects/{project_id}/zones/{zone}/clusters/{cluster_id}"
|
|
}
|
|
};
|
|
}
|
|
|
|
// Creates a cluster, consisting of the specified number and type of Google
|
|
// Compute Engine instances.
|
|
//
|
|
// By default, the cluster is created in the project's
|
|
// [default network](/compute/docs/networks-and-firewalls#networks).
|
|
//
|
|
// One firewall is added for the cluster. After cluster creation,
|
|
// the cluster creates routes for each node to allow the containers
|
|
// on that node to communicate with all other instances in the
|
|
// cluster.
|
|
//
|
|
// Finally, an entry is added to the project's global metadata indicating
|
|
// which CIDR range is being used by the cluster.
|
|
rpc CreateCluster(CreateClusterRequest) returns (Operation) {
|
|
option (google.api.http) = {
|
|
post: "/v1beta1/{parent=projects/*/locations/*}/clusters"
|
|
body: "*"
|
|
additional_bindings {
|
|
post: "/v1beta1/projects/{project_id}/zones/{zone}/clusters"
|
|
body: "*"
|
|
}
|
|
};
|
|
}
|
|
|
|
// Updates the settings for a specific cluster.
|
|
rpc UpdateCluster(UpdateClusterRequest) returns (Operation) {
|
|
option (google.api.http) = {
|
|
put: "/v1beta1/{name=projects/*/locations/*/clusters/*}"
|
|
body: "*"
|
|
additional_bindings {
|
|
put: "/v1beta1/projects/{project_id}/zones/{zone}/clusters/{cluster_id}"
|
|
body: "*"
|
|
}
|
|
};
|
|
}
|
|
|
|
// Updates the version and/or image type of a specific node pool.
|
|
rpc UpdateNodePool(UpdateNodePoolRequest) returns (Operation) {
|
|
option (google.api.http) = {
|
|
put: "/v1beta1/{name=projects/*/locations/*/clusters/*/nodePools/*}"
|
|
body: "*"
|
|
additional_bindings {
|
|
post: "/v1beta1/projects/{project_id}/zones/{zone}/clusters/{cluster_id}/nodePools/{node_pool_id}/update"
|
|
body: "*"
|
|
}
|
|
};
|
|
}
|
|
|
|
// Sets the autoscaling settings of a specific node pool.
|
|
rpc SetNodePoolAutoscaling(SetNodePoolAutoscalingRequest) returns (Operation) {
|
|
option (google.api.http) = {
|
|
post: "/v1beta1/{name=projects/*/locations/*/clusters/*/nodePools/*}:setAutoscaling"
|
|
body: "*"
|
|
additional_bindings {
|
|
post: "/v1beta1/projects/{project_id}/zones/{zone}/clusters/{cluster_id}/nodePools/{node_pool_id}/autoscaling"
|
|
body: "*"
|
|
}
|
|
};
|
|
}
|
|
|
|
// Sets the logging service for a specific cluster.
|
|
rpc SetLoggingService(SetLoggingServiceRequest) returns (Operation) {
|
|
option (google.api.http) = {
|
|
post: "/v1beta1/{name=projects/*/locations/*/clusters/*}:setLogging"
|
|
body: "*"
|
|
additional_bindings {
|
|
post: "/v1beta1/projects/{project_id}/zones/{zone}/clusters/{cluster_id}/logging"
|
|
body: "*"
|
|
}
|
|
};
|
|
}
|
|
|
|
// Sets the monitoring service for a specific cluster.
|
|
rpc SetMonitoringService(SetMonitoringServiceRequest) returns (Operation) {
|
|
option (google.api.http) = {
|
|
post: "/v1beta1/{name=projects/*/locations/*/clusters/*}:setMonitoring"
|
|
body: "*"
|
|
additional_bindings {
|
|
post: "/v1beta1/projects/{project_id}/zones/{zone}/clusters/{cluster_id}/monitoring"
|
|
body: "*"
|
|
}
|
|
};
|
|
}
|
|
|
|
// Sets the addons for a specific cluster.
|
|
rpc SetAddonsConfig(SetAddonsConfigRequest) returns (Operation) {
|
|
option (google.api.http) = {
|
|
post: "/v1beta1/{name=projects/*/locations/*/clusters/*}:setAddons"
|
|
body: "*"
|
|
additional_bindings {
|
|
post: "/v1beta1/projects/{project_id}/zones/{zone}/clusters/{cluster_id}/addons"
|
|
body: "*"
|
|
}
|
|
};
|
|
}
|
|
|
|
// Sets the locations for a specific cluster.
|
|
rpc SetLocations(SetLocationsRequest) returns (Operation) {
|
|
option (google.api.http) = {
|
|
post: "/v1beta1/{name=projects/*/locations/*/clusters/*}:setLocations"
|
|
body: "*"
|
|
additional_bindings {
|
|
post: "/v1beta1/projects/{project_id}/zones/{zone}/clusters/{cluster_id}/locations"
|
|
body: "*"
|
|
}
|
|
};
|
|
}
|
|
|
|
// Updates the master for a specific cluster.
|
|
rpc UpdateMaster(UpdateMasterRequest) returns (Operation) {
|
|
option (google.api.http) = {
|
|
post: "/v1beta1/{name=projects/*/locations/*/clusters/*}:updateMaster"
|
|
body: "*"
|
|
additional_bindings {
|
|
post: "/v1beta1/projects/{project_id}/zones/{zone}/clusters/{cluster_id}/master"
|
|
body: "*"
|
|
}
|
|
};
|
|
}
|
|
|
|
// Used to set master auth materials. Currently supports :-
|
|
// Changing the admin password for a specific cluster.
|
|
// This can be either via password generation or explicitly set.
|
|
// Modify basic_auth.csv and reset the K8S API server.
|
|
rpc SetMasterAuth(SetMasterAuthRequest) returns (Operation) {
|
|
option (google.api.http) = {
|
|
post: "/v1beta1/{name=projects/*/locations/*/clusters/*}:setMasterAuth"
|
|
body: "*"
|
|
additional_bindings {
|
|
post: "/v1beta1/projects/{project_id}/zones/{zone}/clusters/{cluster_id}:setMasterAuth"
|
|
body: "*"
|
|
}
|
|
};
|
|
}
|
|
|
|
// Deletes the cluster, including the Kubernetes endpoint and all worker
|
|
// nodes.
|
|
//
|
|
// Firewalls and routes that were configured during cluster creation
|
|
// are also deleted.
|
|
//
|
|
// Other Google Compute Engine resources that might be in use by the cluster
|
|
// (e.g. load balancer resources) will not be deleted if they weren't present
|
|
// at the initial create time.
|
|
rpc DeleteCluster(DeleteClusterRequest) returns (Operation) {
|
|
option (google.api.http) = {
|
|
delete: "/v1beta1/{name=projects/*/locations/*/clusters/*}"
|
|
additional_bindings {
|
|
delete: "/v1beta1/projects/{project_id}/zones/{zone}/clusters/{cluster_id}"
|
|
}
|
|
};
|
|
}
|
|
|
|
// Lists all operations in a project in a specific zone or all zones.
|
|
rpc ListOperations(ListOperationsRequest) returns (ListOperationsResponse) {
|
|
option (google.api.http) = {
|
|
get: "/v1beta1/{parent=projects/*/locations/*}/operations"
|
|
additional_bindings {
|
|
get: "/v1beta1/projects/{project_id}/zones/{zone}/operations"
|
|
}
|
|
};
|
|
}
|
|
|
|
// Gets the specified operation.
|
|
rpc GetOperation(GetOperationRequest) returns (Operation) {
|
|
option (google.api.http) = {
|
|
get: "/v1beta1/{name=projects/*/locations/*/operations/*}"
|
|
additional_bindings {
|
|
get: "/v1beta1/projects/{project_id}/zones/{zone}/operations/{operation_id}"
|
|
}
|
|
};
|
|
}
|
|
|
|
// Cancels the specified operation.
|
|
rpc CancelOperation(CancelOperationRequest) returns (google.protobuf.Empty) {
|
|
option (google.api.http) = {
|
|
post: "/v1beta1/{name=projects/*/locations/*/operations/*}:cancel"
|
|
body: "*"
|
|
additional_bindings {
|
|
post: "/v1beta1/projects/{project_id}/zones/{zone}/operations/{operation_id}:cancel"
|
|
body: "*"
|
|
}
|
|
};
|
|
}
|
|
|
|
// Returns configuration info about the Kubernetes Engine service.
|
|
rpc GetServerConfig(GetServerConfigRequest) returns (ServerConfig) {
|
|
option (google.api.http) = {
|
|
get: "/v1beta1/{name=projects/*/locations/*}/serverConfig"
|
|
additional_bindings {
|
|
get: "/v1beta1/projects/{project_id}/zones/{zone}/serverconfig"
|
|
}
|
|
};
|
|
}
|
|
|
|
// Lists the node pools for a cluster.
|
|
rpc ListNodePools(ListNodePoolsRequest) returns (ListNodePoolsResponse) {
|
|
option (google.api.http) = {
|
|
get: "/v1beta1/{parent=projects/*/locations/*/clusters/*}/nodePools"
|
|
additional_bindings {
|
|
get: "/v1beta1/projects/{project_id}/zones/{zone}/clusters/{cluster_id}/nodePools"
|
|
}
|
|
};
|
|
}
|
|
|
|
// Retrieves the node pool requested.
|
|
rpc GetNodePool(GetNodePoolRequest) returns (NodePool) {
|
|
option (google.api.http) = {
|
|
get: "/v1beta1/{name=projects/*/locations/*/clusters/*/nodePools/*}"
|
|
additional_bindings {
|
|
get: "/v1beta1/projects/{project_id}/zones/{zone}/clusters/{cluster_id}/nodePools/{node_pool_id}"
|
|
}
|
|
};
|
|
}
|
|
|
|
// Creates a node pool for a cluster.
|
|
rpc CreateNodePool(CreateNodePoolRequest) returns (Operation) {
|
|
option (google.api.http) = {
|
|
post: "/v1beta1/{parent=projects/*/locations/*/clusters/*}/nodePools"
|
|
body: "*"
|
|
additional_bindings {
|
|
post: "/v1beta1/projects/{project_id}/zones/{zone}/clusters/{cluster_id}/nodePools"
|
|
body: "*"
|
|
}
|
|
};
|
|
}
|
|
|
|
// Deletes a node pool from a cluster.
|
|
rpc DeleteNodePool(DeleteNodePoolRequest) returns (Operation) {
|
|
option (google.api.http) = {
|
|
delete: "/v1beta1/{name=projects/*/locations/*/clusters/*/nodePools/*}"
|
|
additional_bindings {
|
|
delete: "/v1beta1/projects/{project_id}/zones/{zone}/clusters/{cluster_id}/nodePools/{node_pool_id}"
|
|
}
|
|
};
|
|
}
|
|
|
|
// Roll back the previously Aborted or Failed NodePool upgrade.
|
|
// This will be an no-op if the last upgrade successfully completed.
|
|
rpc RollbackNodePoolUpgrade(RollbackNodePoolUpgradeRequest) returns (Operation) {
|
|
option (google.api.http) = {
|
|
post: "/v1beta1/{name=projects/*/locations/*/clusters/*/nodePools/*}:rollback"
|
|
body: "*"
|
|
additional_bindings {
|
|
post: "/v1beta1/projects/{project_id}/zones/{zone}/clusters/{cluster_id}/nodePools/{node_pool_id}:rollback"
|
|
body: "*"
|
|
}
|
|
};
|
|
}
|
|
|
|
// Sets the NodeManagement options for a node pool.
|
|
rpc SetNodePoolManagement(SetNodePoolManagementRequest) returns (Operation) {
|
|
option (google.api.http) = {
|
|
post: "/v1beta1/{name=projects/*/locations/*/clusters/*/nodePools/*}:setManagement"
|
|
body: "*"
|
|
additional_bindings {
|
|
post: "/v1beta1/projects/{project_id}/zones/{zone}/clusters/{cluster_id}/nodePools/{node_pool_id}/setManagement"
|
|
body: "*"
|
|
}
|
|
};
|
|
}
|
|
|
|
// Sets labels on a cluster.
|
|
rpc SetLabels(SetLabelsRequest) returns (Operation) {
|
|
option (google.api.http) = {
|
|
post: "/v1beta1/{name=projects/*/locations/*/clusters/*}:setResourceLabels"
|
|
body: "*"
|
|
additional_bindings {
|
|
post: "/v1beta1/projects/{project_id}/zones/{zone}/clusters/{cluster_id}/resourceLabels"
|
|
body: "*"
|
|
}
|
|
};
|
|
}
|
|
|
|
// Enables or disables the ABAC authorization mechanism on a cluster.
|
|
rpc SetLegacyAbac(SetLegacyAbacRequest) returns (Operation) {
|
|
option (google.api.http) = {
|
|
post: "/v1beta1/{name=projects/*/locations/*/clusters/*}:setLegacyAbac"
|
|
body: "*"
|
|
additional_bindings {
|
|
post: "/v1beta1/projects/{project_id}/zones/{zone}/clusters/{cluster_id}/legacyAbac"
|
|
body: "*"
|
|
}
|
|
};
|
|
}
|
|
|
|
// Start master IP rotation.
|
|
rpc StartIPRotation(StartIPRotationRequest) returns (Operation) {
|
|
option (google.api.http) = {
|
|
post: "/v1beta1/{name=projects/*/locations/*/clusters/*}:startIpRotation"
|
|
body: "*"
|
|
additional_bindings {
|
|
post: "/v1beta1/projects/{project_id}/zones/{zone}/clusters/{cluster_id}:startIpRotation"
|
|
body: "*"
|
|
}
|
|
};
|
|
}
|
|
|
|
// Completes master IP rotation.
|
|
rpc CompleteIPRotation(CompleteIPRotationRequest) returns (Operation) {
|
|
option (google.api.http) = {
|
|
post: "/v1beta1/{name=projects/*/locations/*/clusters/*}:completeIpRotation"
|
|
body: "*"
|
|
additional_bindings {
|
|
post: "/v1beta1/projects/{project_id}/zones/{zone}/clusters/{cluster_id}:completeIpRotation"
|
|
body: "*"
|
|
}
|
|
};
|
|
}
|
|
|
|
// Sets the size for a specific node pool.
|
|
rpc SetNodePoolSize(SetNodePoolSizeRequest) returns (Operation) {
|
|
option (google.api.http) = {
|
|
post: "/v1beta1/{name=projects/*/locations/*/clusters/*/nodePools/*}:setSize"
|
|
body: "*"
|
|
additional_bindings {
|
|
post: "/v1beta1/projects/{project_id}/zones/{zone}/clusters/{cluster_id}/nodePools/{node_pool_id}/setSize"
|
|
body: "*"
|
|
}
|
|
};
|
|
}
|
|
|
|
// Enables/Disables Network Policy for a cluster.
|
|
rpc SetNetworkPolicy(SetNetworkPolicyRequest) returns (Operation) {
|
|
option (google.api.http) = {
|
|
post: "/v1beta1/{name=projects/*/locations/*/clusters/*}:setNetworkPolicy"
|
|
body: "*"
|
|
additional_bindings {
|
|
post: "/v1beta1/projects/{project_id}/zones/{zone}/clusters/{cluster_id}:setNetworkPolicy"
|
|
body: "*"
|
|
}
|
|
};
|
|
}
|
|
|
|
// Sets the maintenance policy for a cluster.
|
|
rpc SetMaintenancePolicy(SetMaintenancePolicyRequest) returns (Operation) {
|
|
option (google.api.http) = {
|
|
post: "/v1beta1/{name=projects/*/locations/*/clusters/*}:setMaintenancePolicy"
|
|
body: "*"
|
|
additional_bindings {
|
|
post: "/v1beta1/projects/{project_id}/zones/{zone}/clusters/{cluster_id}:setMaintenancePolicy"
|
|
body: "*"
|
|
}
|
|
};
|
|
}
|
|
|
|
// Lists subnetworks that are usable for creating clusters in a project.
|
|
rpc ListUsableSubnetworks(ListUsableSubnetworksRequest) returns (ListUsableSubnetworksResponse) {
|
|
option (google.api.http) = {
|
|
get: "/v1beta1/{parent=projects/*}/aggregated/usableSubnetworks"
|
|
};
|
|
}
|
|
|
|
// Used to fetch locations that offer GKE.
|
|
rpc ListLocations(ListLocationsRequest) returns (ListLocationsResponse) {
|
|
option (google.api.http) = {
|
|
get: "/v1beta1/{parent=projects/*}/locations"
|
|
};
|
|
}
|
|
}
|
|
|
|
// Parameters that describe the nodes in a cluster.
|
|
message NodeConfig {
|
|
// The name of a Google Compute Engine [machine
|
|
// type](/compute/docs/machine-types) (e.g.
|
|
// `n1-standard-1`).
|
|
//
|
|
// If unspecified, the default machine type is
|
|
// `n1-standard-1`.
|
|
string machine_type = 1;
|
|
|
|
// Size of the disk attached to each node, specified in GB.
|
|
// The smallest allowed disk size is 10GB.
|
|
//
|
|
// If unspecified, the default disk size is 100GB.
|
|
int32 disk_size_gb = 2;
|
|
|
|
// The set of Google API scopes to be made available on all of the
|
|
// node VMs under the "default" service account.
|
|
//
|
|
// The following scopes are recommended, but not required, and by default are
|
|
// not included:
|
|
//
|
|
// * `https://www.googleapis.com/auth/compute` is required for mounting
|
|
// persistent storage on your nodes.
|
|
// * `https://www.googleapis.com/auth/devstorage.read_only` is required for
|
|
// communicating with **gcr.io**
|
|
// (the [Google Container Registry](/container-registry/)).
|
|
//
|
|
// If unspecified, no scopes are added, unless Cloud Logging or Cloud
|
|
// Monitoring are enabled, in which case their required scopes will be added.
|
|
repeated string oauth_scopes = 3;
|
|
|
|
// The Google Cloud Platform Service Account to be used by the node VMs. If
|
|
// no Service Account is specified, the "default" service account is used.
|
|
string service_account = 9;
|
|
|
|
// The metadata key/value pairs assigned to instances in the cluster.
|
|
//
|
|
// Keys must conform to the regexp [a-zA-Z0-9-_]+ and be less than 128 bytes
|
|
// in length. These are reflected as part of a URL in the metadata server.
|
|
// Additionally, to avoid ambiguity, keys must not conflict with any other
|
|
// metadata keys for the project or be one of the reserved keys:
|
|
// "cluster-location"
|
|
// "cluster-name"
|
|
// "cluster-uid"
|
|
// "configure-sh"
|
|
// "enable-oslogin"
|
|
// "gci-ensure-gke-docker"
|
|
// "gci-update-strategy"
|
|
// "instance-template"
|
|
// "kube-env"
|
|
// "startup-script"
|
|
// "user-data"
|
|
//
|
|
// Values are free-form strings, and only have meaning as interpreted by
|
|
// the image running in the instance. The only restriction placed on them is
|
|
// that each value's size must be less than or equal to 32 KB.
|
|
//
|
|
// The total size of all keys and values must be less than 512 KB.
|
|
map<string, string> metadata = 4;
|
|
|
|
// The image type to use for this node. Note that for a given image type,
|
|
// the latest version of it will be used.
|
|
string image_type = 5;
|
|
|
|
// The map of Kubernetes labels (key/value pairs) to be applied to each node.
|
|
// These will added in addition to any default label(s) that
|
|
// Kubernetes may apply to the node.
|
|
// In case of conflict in label keys, the applied set may differ depending on
|
|
// the Kubernetes version -- it's best to assume the behavior is undefined
|
|
// and conflicts should be avoided.
|
|
// For more information, including usage and the valid values, see:
|
|
// https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/
|
|
map<string, string> labels = 6;
|
|
|
|
// The number of local SSD disks to be attached to the node.
|
|
//
|
|
// The limit for this value is dependant upon the maximum number of
|
|
// disks available on a machine per zone. See:
|
|
// https://cloud.google.com/compute/docs/disks/local-ssd#local_ssd_limits
|
|
// for more information.
|
|
int32 local_ssd_count = 7;
|
|
|
|
// The list of instance tags applied to all nodes. Tags are used to identify
|
|
// valid sources or targets for network firewalls and are specified by
|
|
// the client during cluster or node pool creation. Each tag within the list
|
|
// must comply with RFC1035.
|
|
repeated string tags = 8;
|
|
|
|
// Whether the nodes are created as preemptible VM instances. See:
|
|
// https://cloud.google.com/compute/docs/instances/preemptible for more
|
|
// inforamtion about preemptible VM instances.
|
|
bool preemptible = 10;
|
|
|
|
// A list of hardware accelerators to be attached to each node.
|
|
// See https://cloud.google.com/compute/docs/gpus for more information about
|
|
// support for GPUs.
|
|
repeated AcceleratorConfig accelerators = 11;
|
|
|
|
// Type of the disk attached to each node (e.g. 'pd-standard' or 'pd-ssd')
|
|
//
|
|
// If unspecified, the default disk type is 'pd-standard'
|
|
string disk_type = 12;
|
|
|
|
// Minimum CPU platform to be used by this instance. The instance may be
|
|
// scheduled on the specified or newer CPU platform. Applicable values are the
|
|
// friendly names of CPU platforms, such as
|
|
// <code>minCpuPlatform: "Intel Haswell"</code> or
|
|
// <code>minCpuPlatform: "Intel Sandy Bridge"</code>. For more
|
|
// information, read [how to specify min CPU
|
|
// platform](https://cloud.google.com/compute/docs/instances/specify-min-cpu-platform)
|
|
string min_cpu_platform = 13;
|
|
|
|
// The workload metadata configuration for this node.
|
|
WorkloadMetadataConfig workload_metadata_config = 14;
|
|
|
|
// List of kubernetes taints to be applied to each node.
|
|
//
|
|
// For more information, including usage and the valid values, see:
|
|
// https://kubernetes.io/docs/concepts/configuration/taint-and-toleration/
|
|
repeated NodeTaint taints = 15;
|
|
}
|
|
|
|
// Kubernetes taint is comprised of three fields: key, value, and effect. Effect
|
|
// can only be one of three types: NoSchedule, PreferNoSchedule or NoExecute.
|
|
//
|
|
// For more information, including usage and the valid values, see:
|
|
// https://kubernetes.io/docs/concepts/configuration/taint-and-toleration/
|
|
message NodeTaint {
|
|
// Possible values for Effect in taint.
|
|
enum Effect {
|
|
// Not set
|
|
EFFECT_UNSPECIFIED = 0;
|
|
|
|
// NoSchedule
|
|
NO_SCHEDULE = 1;
|
|
|
|
// PreferNoSchedule
|
|
PREFER_NO_SCHEDULE = 2;
|
|
|
|
// NoExecute
|
|
NO_EXECUTE = 3;
|
|
}
|
|
|
|
// Key for taint.
|
|
string key = 1;
|
|
|
|
// Value for taint.
|
|
string value = 2;
|
|
|
|
// Effect for taint.
|
|
Effect effect = 3;
|
|
}
|
|
|
|
// The authentication information for accessing the master endpoint.
|
|
// Authentication can be done using HTTP basic auth or using client
|
|
// certificates.
|
|
message MasterAuth {
|
|
// The username to use for HTTP basic authentication to the master endpoint.
|
|
// For clusters v1.6.0 and later, basic authentication can be disabled by
|
|
// leaving username unspecified (or setting it to the empty string).
|
|
string username = 1;
|
|
|
|
// The password to use for HTTP basic authentication to the master endpoint.
|
|
// Because the master endpoint is open to the Internet, you should create a
|
|
// strong password. If a password is provided for cluster creation, username
|
|
// must be non-empty.
|
|
string password = 2;
|
|
|
|
// Configuration for client certificate authentication on the cluster. For
|
|
// clusters before v1.12, if no configuration is specified, a client
|
|
// certificate is issued.
|
|
ClientCertificateConfig client_certificate_config = 3;
|
|
|
|
// [Output only] Base64-encoded public certificate that is the root of
|
|
// trust for the cluster.
|
|
string cluster_ca_certificate = 100;
|
|
|
|
// [Output only] Base64-encoded public certificate used by clients to
|
|
// authenticate to the cluster endpoint.
|
|
string client_certificate = 101;
|
|
|
|
// [Output only] Base64-encoded private key used by clients to authenticate
|
|
// to the cluster endpoint.
|
|
string client_key = 102;
|
|
}
|
|
|
|
// Configuration for client certificates on the cluster.
|
|
message ClientCertificateConfig {
|
|
// Issue a client certificate.
|
|
bool issue_client_certificate = 1;
|
|
}
|
|
|
|
// Configuration for the addons that can be automatically spun up in the
|
|
// cluster, enabling additional functionality.
|
|
message AddonsConfig {
|
|
// Configuration for the HTTP (L7) load balancing controller addon, which
|
|
// makes it easy to set up HTTP load balancers for services in a cluster.
|
|
HttpLoadBalancing http_load_balancing = 1;
|
|
|
|
// Configuration for the horizontal pod autoscaling feature, which
|
|
// increases or decreases the number of replica pods a replication controller
|
|
// has based on the resource usage of the existing pods.
|
|
HorizontalPodAutoscaling horizontal_pod_autoscaling = 2;
|
|
|
|
// Configuration for the Kubernetes Dashboard.
|
|
KubernetesDashboard kubernetes_dashboard = 3;
|
|
|
|
// Configuration for NetworkPolicy. This only tracks whether the addon
|
|
// is enabled or not on the Master, it does not track whether network policy
|
|
// is enabled for the nodes.
|
|
NetworkPolicyConfig network_policy_config = 4;
|
|
|
|
// Configuration for Istio, an open platform to connect, manage, and secure
|
|
// microservices.
|
|
IstioConfig istio_config = 5;
|
|
|
|
// Configuration for the Cloud Run addon. The `IstioConfig` addon must be
|
|
// enabled in order to enable Cloud Run addon. This option can only be enabled
|
|
// at cluster creation time.
|
|
CloudRunConfig cloud_run_config = 7;
|
|
}
|
|
|
|
// Configuration options for the HTTP (L7) load balancing controller addon,
|
|
// which makes it easy to set up HTTP load balancers for services in a cluster.
|
|
message HttpLoadBalancing {
|
|
// Whether the HTTP Load Balancing controller is enabled in the cluster.
|
|
// When enabled, it runs a small pod in the cluster that manages the load
|
|
// balancers.
|
|
bool disabled = 1;
|
|
}
|
|
|
|
// Configuration options for the horizontal pod autoscaling feature, which
|
|
// increases or decreases the number of replica pods a replication controller
|
|
// has based on the resource usage of the existing pods.
|
|
message HorizontalPodAutoscaling {
|
|
// Whether the Horizontal Pod Autoscaling feature is enabled in the cluster.
|
|
// When enabled, it ensures that a Heapster pod is running in the cluster,
|
|
// which is also used by the Cloud Monitoring service.
|
|
bool disabled = 1;
|
|
}
|
|
|
|
// Configuration for the Kubernetes Dashboard.
|
|
message KubernetesDashboard {
|
|
// Whether the Kubernetes Dashboard is enabled for this cluster.
|
|
bool disabled = 1;
|
|
}
|
|
|
|
// Configuration for NetworkPolicy. This only tracks whether the addon
|
|
// is enabled or not on the Master, it does not track whether network policy
|
|
// is enabled for the nodes.
|
|
message NetworkPolicyConfig {
|
|
// Whether NetworkPolicy is enabled for this cluster.
|
|
bool disabled = 1;
|
|
}
|
|
|
|
// Configuration options for private clusters.
|
|
message PrivateClusterConfig {
|
|
// Whether nodes have internal IP addresses only. If enabled, all nodes are
|
|
// given only RFC 1918 private addresses and communicate with the master via
|
|
// private networking.
|
|
bool enable_private_nodes = 1;
|
|
|
|
// Whether the master's internal IP address is used as the cluster endpoint.
|
|
bool enable_private_endpoint = 2;
|
|
|
|
// The IP range in CIDR notation to use for the hosted master network. This
|
|
// range will be used for assigning internal IP addresses to the master or
|
|
// set of masters, as well as the ILB VIP. This range must not overlap with
|
|
// any other ranges in use within the cluster's network.
|
|
string master_ipv4_cidr_block = 3;
|
|
|
|
// Output only. The internal IP address of this cluster's master endpoint.
|
|
string private_endpoint = 4;
|
|
|
|
// Output only. The external IP address of this cluster's master endpoint.
|
|
string public_endpoint = 5;
|
|
}
|
|
|
|
// Configuration options for Istio addon.
|
|
message IstioConfig {
|
|
// Istio auth mode, https://istio.io/docs/concepts/security/mutual-tls.html
|
|
enum IstioAuthMode {
|
|
// auth not enabled
|
|
AUTH_NONE = 0;
|
|
|
|
// auth mutual TLS enabled
|
|
AUTH_MUTUAL_TLS = 1;
|
|
}
|
|
|
|
// Whether Istio is enabled for this cluster.
|
|
bool disabled = 1;
|
|
|
|
// The specified Istio auth mode, either none, or mutual TLS.
|
|
IstioAuthMode auth = 2;
|
|
}
|
|
|
|
// Configuration options for the Cloud Run feature.
|
|
message CloudRunConfig {
|
|
// Whether Cloud Run addon is enabled for this cluster.
|
|
bool disabled = 1;
|
|
}
|
|
|
|
// Configuration options for the master authorized networks feature. Enabled
|
|
// master authorized networks will disallow all external traffic to access
|
|
// Kubernetes master through HTTPS except traffic from the given CIDR blocks,
|
|
// Google Compute Engine Public IPs and Google Prod IPs.
|
|
message MasterAuthorizedNetworksConfig {
|
|
// CidrBlock contains an optional name and one CIDR block.
|
|
message CidrBlock {
|
|
// display_name is an optional field for users to identify CIDR blocks.
|
|
string display_name = 1;
|
|
|
|
// cidr_block must be specified in CIDR notation.
|
|
string cidr_block = 2;
|
|
}
|
|
|
|
// Whether or not master authorized networks is enabled.
|
|
bool enabled = 1;
|
|
|
|
// cidr_blocks define up to 10 external networks that could access
|
|
// Kubernetes master through HTTPS.
|
|
repeated CidrBlock cidr_blocks = 2;
|
|
}
|
|
|
|
// Configuration for the legacy Attribute Based Access Control authorization
|
|
// mode.
|
|
message LegacyAbac {
|
|
// Whether the ABAC authorizer is enabled for this cluster. When enabled,
|
|
// identities in the system, including service accounts, nodes, and
|
|
// controllers, will have statically granted permissions beyond those
|
|
// provided by the RBAC configuration or IAM.
|
|
bool enabled = 1;
|
|
}
|
|
|
|
// Configuration options for the NetworkPolicy feature.
|
|
// https://kubernetes.io/docs/concepts/services-networking/networkpolicies/
|
|
message NetworkPolicy {
|
|
// Allowed Network Policy providers.
|
|
enum Provider {
|
|
// Not set
|
|
PROVIDER_UNSPECIFIED = 0;
|
|
|
|
// Tigera (Calico Felix).
|
|
CALICO = 1;
|
|
}
|
|
|
|
// The selected network policy provider.
|
|
Provider provider = 1;
|
|
|
|
// Whether network policy is enabled on the cluster.
|
|
bool enabled = 2;
|
|
}
|
|
|
|
// Configuration for controlling how IPs are allocated in the cluster.
|
|
message IPAllocationPolicy {
|
|
// Whether alias IPs will be used for pod IPs in the cluster.
|
|
bool use_ip_aliases = 1;
|
|
|
|
// Whether a new subnetwork will be created automatically for the cluster.
|
|
//
|
|
// This field is only applicable when `use_ip_aliases` is true.
|
|
bool create_subnetwork = 2;
|
|
|
|
// A custom subnetwork name to be used if `create_subnetwork` is true. If
|
|
// this field is empty, then an automatic name will be chosen for the new
|
|
// subnetwork.
|
|
string subnetwork_name = 3;
|
|
|
|
// This field is deprecated, use cluster_ipv4_cidr_block.
|
|
string cluster_ipv4_cidr = 4 [deprecated = true];
|
|
|
|
// This field is deprecated, use node_ipv4_cidr_block.
|
|
string node_ipv4_cidr = 5 [deprecated = true];
|
|
|
|
// This field is deprecated, use services_ipv4_cidr_block.
|
|
string services_ipv4_cidr = 6 [deprecated = true];
|
|
|
|
// The name of the secondary range to be used for the cluster CIDR
|
|
// block. The secondary range will be used for pod IP
|
|
// addresses. This must be an existing secondary range associated
|
|
// with the cluster subnetwork.
|
|
//
|
|
// This field is only applicable with use_ip_aliases and
|
|
// create_subnetwork is false.
|
|
string cluster_secondary_range_name = 7;
|
|
|
|
// The name of the secondary range to be used as for the services
|
|
// CIDR block. The secondary range will be used for service
|
|
// ClusterIPs. This must be an existing secondary range associated
|
|
// with the cluster subnetwork.
|
|
//
|
|
// This field is only applicable with use_ip_aliases and
|
|
// create_subnetwork is false.
|
|
string services_secondary_range_name = 8;
|
|
|
|
// The IP address range for the cluster pod IPs. If this field is set, then
|
|
// `cluster.cluster_ipv4_cidr` must be left blank.
|
|
//
|
|
// This field is only applicable when `use_ip_aliases` is true.
|
|
//
|
|
// Set to blank to have a range chosen with the default size.
|
|
//
|
|
// Set to /netmask (e.g. `/14`) to have a range chosen with a specific
|
|
// netmask.
|
|
//
|
|
// Set to a
|
|
// [CIDR](http://en.wikipedia.org/wiki/Classless_Inter-Domain_Routing)
|
|
// notation (e.g. `10.96.0.0/14`) from the RFC-1918 private networks (e.g.
|
|
// `10.0.0.0/8`, `172.16.0.0/12`, `192.168.0.0/16`) to pick a specific range
|
|
// to use.
|
|
string cluster_ipv4_cidr_block = 9;
|
|
|
|
// The IP address range of the instance IPs in this cluster.
|
|
//
|
|
// This is applicable only if `create_subnetwork` is true.
|
|
//
|
|
// Set to blank to have a range chosen with the default size.
|
|
//
|
|
// Set to /netmask (e.g. `/14`) to have a range chosen with a specific
|
|
// netmask.
|
|
//
|
|
// Set to a
|
|
// [CIDR](http://en.wikipedia.org/wiki/Classless_Inter-Domain_Routing)
|
|
// notation (e.g. `10.96.0.0/14`) from the RFC-1918 private networks (e.g.
|
|
// `10.0.0.0/8`, `172.16.0.0/12`, `192.168.0.0/16`) to pick a specific range
|
|
// to use.
|
|
string node_ipv4_cidr_block = 10;
|
|
|
|
// The IP address range of the services IPs in this cluster. If blank, a range
|
|
// will be automatically chosen with the default size.
|
|
//
|
|
// This field is only applicable when `use_ip_aliases` is true.
|
|
//
|
|
// Set to blank to have a range chosen with the default size.
|
|
//
|
|
// Set to /netmask (e.g. `/14`) to have a range chosen with a specific
|
|
// netmask.
|
|
//
|
|
// Set to a
|
|
// [CIDR](http://en.wikipedia.org/wiki/Classless_Inter-Domain_Routing)
|
|
// notation (e.g. `10.96.0.0/14`) from the RFC-1918 private networks (e.g.
|
|
// `10.0.0.0/8`, `172.16.0.0/12`, `192.168.0.0/16`) to pick a specific range
|
|
// to use.
|
|
string services_ipv4_cidr_block = 11;
|
|
|
|
// If true, allow allocation of cluster CIDR ranges that overlap with certain
|
|
// kinds of network routes. By default we do not allow cluster CIDR ranges to
|
|
// intersect with any user declared routes. With allow_route_overlap == true,
|
|
// we allow overlapping with CIDR ranges that are larger than the cluster CIDR
|
|
// range.
|
|
//
|
|
// If this field is set to true, then cluster and services CIDRs must be
|
|
// fully-specified (e.g. `10.96.0.0/14`, but not `/14`), which means:
|
|
// 1) When `use_ip_aliases` is true, `cluster_ipv4_cidr_block` and
|
|
// `services_ipv4_cidr_block` must be fully-specified.
|
|
// 2) When `use_ip_aliases` is false, `cluster.cluster_ipv4_cidr` muse be
|
|
// fully-specified.
|
|
bool allow_route_overlap = 12;
|
|
|
|
// The IP address range of the Cloud TPUs in this cluster. If unspecified, a
|
|
// range will be automatically chosen with the default size.
|
|
//
|
|
// This field is only applicable when `use_ip_aliases` is true.
|
|
//
|
|
// If unspecified, the range will use the default size.
|
|
//
|
|
// Set to /netmask (e.g. `/14`) to have a range chosen with a specific
|
|
// netmask.
|
|
//
|
|
// Set to a
|
|
// [CIDR](http://en.wikipedia.org/wiki/Classless_Inter-Domain_Routing)
|
|
// notation (e.g. `10.96.0.0/14`) from the RFC-1918 private networks (e.g.
|
|
// `10.0.0.0/8`, `172.16.0.0/12`, `192.168.0.0/16`) to pick a specific range
|
|
// to use.
|
|
string tpu_ipv4_cidr_block = 13;
|
|
}
|
|
|
|
// Configuration for Binary Authorization.
|
|
message BinaryAuthorization {
|
|
// Enable Binary Authorization for this cluster. If enabled, all container
|
|
// images will be validated by Google Binauthz.
|
|
bool enabled = 1;
|
|
}
|
|
|
|
// Configuration for the PodSecurityPolicy feature.
|
|
message PodSecurityPolicyConfig {
|
|
// Enable the PodSecurityPolicy controller for this cluster. If enabled, pods
|
|
// must be valid under a PodSecurityPolicy to be created.
|
|
bool enabled = 1;
|
|
}
|
|
|
|
// A Google Kubernetes Engine cluster.
|
|
message Cluster {
|
|
// The current status of the cluster.
|
|
enum Status {
|
|
// Not set.
|
|
STATUS_UNSPECIFIED = 0;
|
|
|
|
// The PROVISIONING state indicates the cluster is being created.
|
|
PROVISIONING = 1;
|
|
|
|
// The RUNNING state indicates the cluster has been created and is fully
|
|
// usable.
|
|
RUNNING = 2;
|
|
|
|
// The RECONCILING state indicates that some work is actively being done on
|
|
// the cluster, such as upgrading the master or node software. Details can
|
|
// be found in the `statusMessage` field.
|
|
RECONCILING = 3;
|
|
|
|
// The STOPPING state indicates the cluster is being deleted.
|
|
STOPPING = 4;
|
|
|
|
// The ERROR state indicates the cluster may be unusable. Details
|
|
// can be found in the `statusMessage` field.
|
|
ERROR = 5;
|
|
|
|
// The DEGRADED state indicates the cluster requires user action to restore
|
|
// full functionality. Details can be found in the `statusMessage` field.
|
|
DEGRADED = 6;
|
|
}
|
|
|
|
// The name of this cluster. The name must be unique within this project
|
|
// and zone, and can be up to 40 characters with the following restrictions:
|
|
//
|
|
// * Lowercase letters, numbers, and hyphens only.
|
|
// * Must start with a letter.
|
|
// * Must end with a number or a letter.
|
|
string name = 1;
|
|
|
|
// An optional description of this cluster.
|
|
string description = 2;
|
|
|
|
// The number of nodes to create in this cluster. You must ensure that your
|
|
// Compute Engine <a href="/compute/docs/resource-quotas">resource quota</a>
|
|
// is sufficient for this number of instances. You must also have available
|
|
// firewall and routes quota.
|
|
// For requests, this field should only be used in lieu of a
|
|
// "node_pool" object, since this configuration (along with the
|
|
// "node_config") will be used to create a "NodePool" object with an
|
|
// auto-generated name. Do not use this and a node_pool at the same time.
|
|
int32 initial_node_count = 3;
|
|
|
|
// Parameters used in creating the cluster's nodes.
|
|
// See `nodeConfig` for the description of its properties.
|
|
// For requests, this field should only be used in lieu of a
|
|
// "node_pool" object, since this configuration (along with the
|
|
// "initial_node_count") will be used to create a "NodePool" object with an
|
|
// auto-generated name. Do not use this and a node_pool at the same time.
|
|
// For responses, this field will be populated with the node configuration of
|
|
// the first node pool.
|
|
//
|
|
// If unspecified, the defaults are used.
|
|
NodeConfig node_config = 4;
|
|
|
|
// The authentication information for accessing the master endpoint.
|
|
// If unspecified, the defaults are used:
|
|
// For clusters before v1.12, if master_auth is unspecified, `username` will
|
|
// be set to "admin", a random password will be generated, and a client
|
|
// certificate will be issued.
|
|
MasterAuth master_auth = 5;
|
|
|
|
// The logging service the cluster should use to write logs.
|
|
// Currently available options:
|
|
//
|
|
// * `logging.googleapis.com` - the Google Cloud Logging service.
|
|
// * `none` - no logs will be exported from the cluster.
|
|
// * if left as an empty string,`logging.googleapis.com` will be used.
|
|
string logging_service = 6;
|
|
|
|
// The monitoring service the cluster should use to write metrics.
|
|
// Currently available options:
|
|
//
|
|
// * `monitoring.googleapis.com` - the Google Cloud Monitoring service.
|
|
// * `none` - no metrics will be exported from the cluster.
|
|
// * if left as an empty string, `monitoring.googleapis.com` will be used.
|
|
string monitoring_service = 7;
|
|
|
|
// The name of the Google Compute Engine
|
|
// [network](/compute/docs/networks-and-firewalls#networks) to which the
|
|
// cluster is connected. If left unspecified, the `default` network
|
|
// will be used. On output this shows the network ID instead of
|
|
// the name.
|
|
string network = 8;
|
|
|
|
// The IP address range of the container pods in this cluster, in
|
|
// [CIDR](http://en.wikipedia.org/wiki/Classless_Inter-Domain_Routing)
|
|
// notation (e.g. `10.96.0.0/14`). Leave blank to have
|
|
// one automatically chosen or specify a `/14` block in `10.0.0.0/8`.
|
|
string cluster_ipv4_cidr = 9;
|
|
|
|
// Configurations for the various addons available to run in the cluster.
|
|
AddonsConfig addons_config = 10;
|
|
|
|
// The name of the Google Compute Engine
|
|
// [subnetwork](/compute/docs/subnetworks) to which the
|
|
// cluster is connected. On output this shows the subnetwork ID instead of
|
|
// the name.
|
|
string subnetwork = 11;
|
|
|
|
// The node pools associated with this cluster.
|
|
// This field should not be set if "node_config" or "initial_node_count" are
|
|
// specified.
|
|
repeated NodePool node_pools = 12;
|
|
|
|
// The list of Google Compute Engine
|
|
// [zones](/compute/docs/zones#available) in which the cluster's nodes
|
|
// should be located.
|
|
repeated string locations = 13;
|
|
|
|
// Kubernetes alpha features are enabled on this cluster. This includes alpha
|
|
// API groups (e.g. v1beta1) and features that may not be production ready in
|
|
// the kubernetes version of the master and nodes.
|
|
// The cluster has no SLA for uptime and master/node upgrades are disabled.
|
|
// Alpha enabled clusters are automatically deleted thirty days after
|
|
// creation.
|
|
bool enable_kubernetes_alpha = 14;
|
|
|
|
// The resource labels for the cluster to use to annotate any related
|
|
// Google Compute Engine resources.
|
|
map<string, string> resource_labels = 15;
|
|
|
|
// The fingerprint of the set of labels for this cluster.
|
|
string label_fingerprint = 16;
|
|
|
|
// Configuration for the legacy ABAC authorization mode.
|
|
LegacyAbac legacy_abac = 18;
|
|
|
|
// Configuration options for the NetworkPolicy feature.
|
|
NetworkPolicy network_policy = 19;
|
|
|
|
// Configuration for cluster IP allocation.
|
|
IPAllocationPolicy ip_allocation_policy = 20;
|
|
|
|
// The configuration options for master authorized networks feature.
|
|
MasterAuthorizedNetworksConfig master_authorized_networks_config = 22;
|
|
|
|
// Configure the maintenance policy for this cluster.
|
|
MaintenancePolicy maintenance_policy = 23;
|
|
|
|
// Configuration for Binary Authorization.
|
|
BinaryAuthorization binary_authorization = 24;
|
|
|
|
// Configuration for the PodSecurityPolicy feature.
|
|
PodSecurityPolicyConfig pod_security_policy_config = 25;
|
|
|
|
// Cluster-level autoscaling configuration.
|
|
ClusterAutoscaling autoscaling = 26;
|
|
|
|
// Configuration for cluster networking.
|
|
NetworkConfig network_config = 27;
|
|
|
|
// If this is a private cluster setup. Private clusters are clusters that, by
|
|
// default have no external IP addresses on the nodes and where nodes and the
|
|
// master communicate over private IP addresses.
|
|
// This field is deprecated, use private_cluster_config.enable_private_nodes
|
|
// instead.
|
|
bool private_cluster = 28 [deprecated = true];
|
|
|
|
// The IP prefix in CIDR notation to use for the hosted master network.
|
|
// This prefix will be used for assigning private IP addresses to the
|
|
// master or set of masters, as well as the ILB VIP.
|
|
// This field is deprecated, use
|
|
// private_cluster_config.master_ipv4_cidr_block instead.
|
|
string master_ipv4_cidr_block = 29 [deprecated = true];
|
|
|
|
// The default constraint on the maximum number of pods that can be run
|
|
// simultaneously on a node in the node pool of this cluster. Only honored
|
|
// if cluster created with IP Alias support.
|
|
MaxPodsConstraint default_max_pods_constraint = 30;
|
|
|
|
// Configuration for exporting resource usages. Resource usage export is
|
|
// disabled when this config unspecified.
|
|
ResourceUsageExportConfig resource_usage_export_config = 33;
|
|
|
|
// Configuration for private cluster.
|
|
PrivateClusterConfig private_cluster_config = 37;
|
|
|
|
// Cluster-level Vertical Pod Autoscaling configuration.
|
|
VerticalPodAutoscaling vertical_pod_autoscaling = 39;
|
|
|
|
// [Output only] Server-defined URL for the resource.
|
|
string self_link = 100;
|
|
|
|
// [Output only] The name of the Google Compute Engine
|
|
// [zone](/compute/docs/zones#available) in which the cluster
|
|
// resides.
|
|
// This field is deprecated, use location instead.
|
|
string zone = 101 [deprecated = true];
|
|
|
|
// [Output only] The IP address of this cluster's master endpoint.
|
|
// The endpoint can be accessed from the internet at
|
|
// `https://username:password@endpoint/`.
|
|
//
|
|
// See the `masterAuth` property of this resource for username and
|
|
// password information.
|
|
string endpoint = 102;
|
|
|
|
// The initial Kubernetes version for this cluster. Valid versions are those
|
|
// found in validMasterVersions returned by getServerConfig. The version can
|
|
// be upgraded over time; such upgrades are reflected in
|
|
// currentMasterVersion and currentNodeVersion.
|
|
//
|
|
// Users may specify either explicit versions offered by
|
|
// Kubernetes Engine or version aliases, which have the following behavior:
|
|
//
|
|
// - "latest": picks the highest valid Kubernetes version
|
|
// - "1.X": picks the highest valid patch+gke.N patch in the 1.X version
|
|
// - "1.X.Y": picks the highest valid gke.N patch in the 1.X.Y version
|
|
// - "1.X.Y-gke.N": picks an explicit Kubernetes version
|
|
// - "","-": picks the default Kubernetes version
|
|
string initial_cluster_version = 103;
|
|
|
|
// [Output only] The current software version of the master endpoint.
|
|
string current_master_version = 104;
|
|
|
|
// [Output only] Deprecated, use
|
|
// [NodePool.version](/kubernetes-engine/docs/reference/rest/v1beta1/projects.zones.clusters.nodePool)
|
|
// instead. The current version of the node software components.
|
|
// If they are currently at multiple versions because they're in the process
|
|
// of being upgraded, this reflects the minimum version of all nodes.
|
|
string current_node_version = 105 [deprecated = true];
|
|
|
|
// [Output only] The time the cluster was created, in
|
|
// [RFC3339](https://www.ietf.org/rfc/rfc3339.txt) text format.
|
|
string create_time = 106;
|
|
|
|
// [Output only] The current status of this cluster.
|
|
Status status = 107;
|
|
|
|
// [Output only] Additional information about the current status of this
|
|
// cluster, if available.
|
|
string status_message = 108;
|
|
|
|
// [Output only] The size of the address space on each node for hosting
|
|
// containers. This is provisioned from within the `container_ipv4_cidr`
|
|
// range.
|
|
int32 node_ipv4_cidr_size = 109;
|
|
|
|
// [Output only] The IP address range of the Kubernetes services in
|
|
// this cluster, in
|
|
// [CIDR](http://en.wikipedia.org/wiki/Classless_Inter-Domain_Routing)
|
|
// notation (e.g. `1.2.3.4/29`). Service addresses are
|
|
// typically put in the last `/16` from the container CIDR.
|
|
string services_ipv4_cidr = 110;
|
|
|
|
// Deprecated. Use node_pools.instance_group_urls.
|
|
repeated string instance_group_urls = 111 [deprecated = true];
|
|
|
|
// [Output only] The number of nodes currently in the cluster. Deprecated.
|
|
// Call Kubernetes API directly to retrieve node information.
|
|
int32 current_node_count = 112 [deprecated = true];
|
|
|
|
// [Output only] The time the cluster will be automatically
|
|
// deleted in [RFC3339](https://www.ietf.org/rfc/rfc3339.txt) text format.
|
|
string expire_time = 113;
|
|
|
|
// [Output only] The name of the Google Compute Engine
|
|
// [zone](/compute/docs/regions-zones/regions-zones#available) or
|
|
// [region](/compute/docs/regions-zones/regions-zones#available) in which
|
|
// the cluster resides.
|
|
string location = 114;
|
|
|
|
// Enable the ability to use Cloud TPUs in this cluster.
|
|
bool enable_tpu = 115;
|
|
|
|
// [Output only] The IP address range of the Cloud TPUs in this cluster, in
|
|
// [CIDR](http://en.wikipedia.org/wiki/Classless_Inter-Domain_Routing)
|
|
// notation (e.g. `1.2.3.4/29`).
|
|
string tpu_ipv4_cidr_block = 116;
|
|
|
|
// Which conditions caused the current cluster state.
|
|
repeated StatusCondition conditions = 118;
|
|
}
|
|
|
|
// ClusterUpdate describes an update to the cluster. Exactly one update can
|
|
// be applied to a cluster with each request, so at most one field can be
|
|
// provided.
|
|
message ClusterUpdate {
|
|
// The Kubernetes version to change the nodes to (typically an
|
|
// upgrade).
|
|
//
|
|
// Users may specify either explicit versions offered by
|
|
// Kubernetes Engine or version aliases, which have the following behavior:
|
|
//
|
|
// - "latest": picks the highest valid Kubernetes version
|
|
// - "1.X": picks the highest valid patch+gke.N patch in the 1.X version
|
|
// - "1.X.Y": picks the highest valid gke.N patch in the 1.X.Y version
|
|
// - "1.X.Y-gke.N": picks an explicit Kubernetes version
|
|
// - "-": picks the Kubernetes master version
|
|
string desired_node_version = 4;
|
|
|
|
// The monitoring service the cluster should use to write metrics.
|
|
// Currently available options:
|
|
//
|
|
// * "monitoring.googleapis.com/kubernetes" - the Google Cloud Monitoring
|
|
// service with Kubernetes-native resource model in Stackdriver
|
|
// * "monitoring.googleapis.com" - the Google Cloud Monitoring service
|
|
// * "none" - no metrics will be exported from the cluster
|
|
string desired_monitoring_service = 5;
|
|
|
|
// Configurations for the various addons available to run in the cluster.
|
|
AddonsConfig desired_addons_config = 6;
|
|
|
|
// The node pool to be upgraded. This field is mandatory if
|
|
// "desired_node_version", "desired_image_family" or
|
|
// "desired_node_pool_autoscaling" is specified and there is more than one
|
|
// node pool on the cluster.
|
|
string desired_node_pool_id = 7;
|
|
|
|
// The desired image type for the node pool.
|
|
// NOTE: Set the "desired_node_pool" field as well.
|
|
string desired_image_type = 8;
|
|
|
|
// Autoscaler configuration for the node pool specified in
|
|
// desired_node_pool_id. If there is only one pool in the
|
|
// cluster and desired_node_pool_id is not provided then
|
|
// the change applies to that single node pool.
|
|
NodePoolAutoscaling desired_node_pool_autoscaling = 9;
|
|
|
|
// The desired list of Google Compute Engine
|
|
// [zones](/compute/docs/zones#available) in which the cluster's nodes
|
|
// should be located. Changing the locations a cluster is in will result
|
|
// in nodes being either created or removed from the cluster, depending on
|
|
// whether locations are being added or removed.
|
|
//
|
|
// This list must always include the cluster's primary zone.
|
|
repeated string desired_locations = 10;
|
|
|
|
// The desired configuration options for master authorized networks feature.
|
|
MasterAuthorizedNetworksConfig desired_master_authorized_networks_config = 12;
|
|
|
|
// The desired configuration options for the PodSecurityPolicy feature.
|
|
PodSecurityPolicyConfig desired_pod_security_policy_config = 14;
|
|
|
|
// Cluster-level autoscaling configuration.
|
|
ClusterAutoscaling desired_cluster_autoscaling = 15;
|
|
|
|
// The desired configuration options for the Binary Authorization feature.
|
|
BinaryAuthorization desired_binary_authorization = 16;
|
|
|
|
// The logging service the cluster should use to write metrics.
|
|
// Currently available options:
|
|
//
|
|
// * "logging.googleapis.com/kubernetes" - the Google Cloud Logging
|
|
// service with Kubernetes-native resource model in Stackdriver
|
|
// * "logging.googleapis.com" - the Google Cloud Logging service
|
|
// * "none" - no logs will be exported from the cluster
|
|
string desired_logging_service = 19;
|
|
|
|
// The desired configuration for exporting resource usage.
|
|
ResourceUsageExportConfig desired_resource_usage_export_config = 21;
|
|
|
|
// Cluster-level Vertical Pod Autoscaling configuration.
|
|
VerticalPodAutoscaling desired_vertical_pod_autoscaling = 22;
|
|
|
|
// The Kubernetes version to change the master to. The only valid value is the
|
|
// latest supported version.
|
|
//
|
|
// Users may specify either explicit versions offered by
|
|
// Kubernetes Engine or version aliases, which have the following behavior:
|
|
//
|
|
// - "latest": picks the highest valid Kubernetes version
|
|
// - "1.X": picks the highest valid patch+gke.N patch in the 1.X version
|
|
// - "1.X.Y": picks the highest valid gke.N patch in the 1.X.Y version
|
|
// - "1.X.Y-gke.N": picks an explicit Kubernetes version
|
|
// - "-": picks the default Kubernetes version
|
|
string desired_master_version = 100;
|
|
}
|
|
|
|
// This operation resource represents operations that may have happened or are
|
|
// happening on the cluster. All fields are output only.
|
|
message Operation {
|
|
// Current status of the operation.
|
|
enum Status {
|
|
// Not set.
|
|
STATUS_UNSPECIFIED = 0;
|
|
|
|
// The operation has been created.
|
|
PENDING = 1;
|
|
|
|
// The operation is currently running.
|
|
RUNNING = 2;
|
|
|
|
// The operation is done, either cancelled or completed.
|
|
DONE = 3;
|
|
|
|
// The operation is aborting.
|
|
ABORTING = 4;
|
|
}
|
|
|
|
// Operation type.
|
|
enum Type {
|
|
// Not set.
|
|
TYPE_UNSPECIFIED = 0;
|
|
|
|
// Cluster create.
|
|
CREATE_CLUSTER = 1;
|
|
|
|
// Cluster delete.
|
|
DELETE_CLUSTER = 2;
|
|
|
|
// A master upgrade.
|
|
UPGRADE_MASTER = 3;
|
|
|
|
// A node upgrade.
|
|
UPGRADE_NODES = 4;
|
|
|
|
// Cluster repair.
|
|
REPAIR_CLUSTER = 5;
|
|
|
|
// Cluster update.
|
|
UPDATE_CLUSTER = 6;
|
|
|
|
// Node pool create.
|
|
CREATE_NODE_POOL = 7;
|
|
|
|
// Node pool delete.
|
|
DELETE_NODE_POOL = 8;
|
|
|
|
// Set node pool management.
|
|
SET_NODE_POOL_MANAGEMENT = 9;
|
|
|
|
// Automatic node pool repair.
|
|
AUTO_REPAIR_NODES = 10;
|
|
|
|
// Automatic node upgrade.
|
|
AUTO_UPGRADE_NODES = 11;
|
|
|
|
// Set labels.
|
|
SET_LABELS = 12;
|
|
|
|
// Set/generate master auth materials
|
|
SET_MASTER_AUTH = 13;
|
|
|
|
// Set node pool size.
|
|
SET_NODE_POOL_SIZE = 14;
|
|
|
|
// Updates network policy for a cluster.
|
|
SET_NETWORK_POLICY = 15;
|
|
|
|
// Set the maintenance policy.
|
|
SET_MAINTENANCE_POLICY = 16;
|
|
}
|
|
|
|
// The server-assigned ID for the operation.
|
|
string name = 1;
|
|
|
|
// The name of the Google Compute Engine
|
|
// [zone](/compute/docs/zones#available) in which the operation
|
|
// is taking place.
|
|
// This field is deprecated, use location instead.
|
|
string zone = 2 [deprecated = true];
|
|
|
|
// The operation type.
|
|
Type operation_type = 3;
|
|
|
|
// The current status of the operation.
|
|
Status status = 4;
|
|
|
|
// Detailed operation progress, if available.
|
|
string detail = 8;
|
|
|
|
// If an error has occurred, a textual description of the error.
|
|
string status_message = 5;
|
|
|
|
// Server-defined URL for the resource.
|
|
string self_link = 6;
|
|
|
|
// Server-defined URL for the target of the operation.
|
|
string target_link = 7;
|
|
|
|
// [Output only] The name of the Google Compute Engine
|
|
// [zone](/compute/docs/regions-zones/regions-zones#available) or
|
|
// [region](/compute/docs/regions-zones/regions-zones#available) in which
|
|
// the cluster resides.
|
|
string location = 9;
|
|
|
|
// [Output only] The time the operation started, in
|
|
// [RFC3339](https://www.ietf.org/rfc/rfc3339.txt) text format.
|
|
string start_time = 10;
|
|
|
|
// [Output only] The time the operation completed, in
|
|
// [RFC3339](https://www.ietf.org/rfc/rfc3339.txt) text format.
|
|
string end_time = 11;
|
|
|
|
// [Output only] Progress information for an operation.
|
|
OperationProgress progress = 12;
|
|
|
|
// Which conditions caused the current cluster state.
|
|
repeated StatusCondition cluster_conditions = 13;
|
|
|
|
// Which conditions caused the current node pool state.
|
|
repeated StatusCondition nodepool_conditions = 14;
|
|
}
|
|
|
|
// Information about operation (or operation stage) progress.
|
|
message OperationProgress {
|
|
// Progress metric is (string, int|float|string) pair.
|
|
message Metric {
|
|
// Metric name, required.
|
|
// e.g., "nodes total", "percent done"
|
|
string name = 1;
|
|
|
|
// Strictly one of the values is required.
|
|
oneof value {
|
|
// For metrics with integer value.
|
|
int64 int_value = 2;
|
|
|
|
// For metrics with floating point value.
|
|
double double_value = 3;
|
|
|
|
// For metrics with custom values (ratios, visual progress, etc.).
|
|
string string_value = 4;
|
|
}
|
|
}
|
|
|
|
// A non-parameterized string describing an operation stage.
|
|
// Unset for single-stage operations.
|
|
string name = 1;
|
|
|
|
// Status of an operation stage.
|
|
// Unset for single-stage operations.
|
|
Operation.Status status = 2;
|
|
|
|
// Progress metric bundle, for example:
|
|
// metrics: [{name: "nodes done", int_value: 15},
|
|
// {name: "nodes total", int_value: 32}]
|
|
// or
|
|
// metrics: [{name: "progress", double_value: 0.56},
|
|
// {name: "progress scale", double_value: 1.0}]
|
|
repeated Metric metrics = 3;
|
|
|
|
// Substages of an operation or a stage.
|
|
repeated OperationProgress stages = 4;
|
|
}
|
|
|
|
// CreateClusterRequest creates a cluster.
|
|
message CreateClusterRequest {
|
|
// Deprecated. The Google Developers Console [project ID or project
|
|
// number](https://support.google.com/cloud/answer/6158840).
|
|
// This field has been deprecated and replaced by the parent field.
|
|
string project_id = 1 [deprecated = true];
|
|
|
|
// Deprecated. The name of the Google Compute Engine
|
|
// [zone](/compute/docs/zones#available) in which the cluster
|
|
// resides.
|
|
// This field has been deprecated and replaced by the parent field.
|
|
string zone = 2 [deprecated = true];
|
|
|
|
// A [cluster
|
|
// resource](/container-engine/reference/rest/v1beta1/projects.zones.clusters)
|
|
Cluster cluster = 3;
|
|
|
|
// The parent (project and location) where the cluster will be created.
|
|
// Specified in the format 'projects/*/locations/*'.
|
|
string parent = 5;
|
|
}
|
|
|
|
// GetClusterRequest gets the settings of a cluster.
|
|
message GetClusterRequest {
|
|
// Deprecated. The Google Developers Console [project ID or project
|
|
// number](https://support.google.com/cloud/answer/6158840).
|
|
// This field has been deprecated and replaced by the name field.
|
|
string project_id = 1 [deprecated = true];
|
|
|
|
// Deprecated. The name of the Google Compute Engine
|
|
// [zone](/compute/docs/zones#available) in which the cluster
|
|
// resides.
|
|
// This field has been deprecated and replaced by the name field.
|
|
string zone = 2 [deprecated = true];
|
|
|
|
// Deprecated. The name of the cluster to retrieve.
|
|
// This field has been deprecated and replaced by the name field.
|
|
string cluster_id = 3 [deprecated = true];
|
|
|
|
// The name (project, location, cluster) of the cluster to retrieve.
|
|
// Specified in the format 'projects/*/locations/*/clusters/*'.
|
|
string name = 5;
|
|
}
|
|
|
|
// UpdateClusterRequest updates the settings of a cluster.
|
|
message UpdateClusterRequest {
|
|
// Deprecated. The Google Developers Console [project ID or project
|
|
// number](https://support.google.com/cloud/answer/6158840).
|
|
// This field has been deprecated and replaced by the name field.
|
|
string project_id = 1 [deprecated = true];
|
|
|
|
// Deprecated. The name of the Google Compute Engine
|
|
// [zone](/compute/docs/zones#available) in which the cluster
|
|
// resides.
|
|
// This field has been deprecated and replaced by the name field.
|
|
string zone = 2 [deprecated = true];
|
|
|
|
// Deprecated. The name of the cluster to upgrade.
|
|
// This field has been deprecated and replaced by the name field.
|
|
string cluster_id = 3 [deprecated = true];
|
|
|
|
// A description of the update.
|
|
ClusterUpdate update = 4;
|
|
|
|
// The name (project, location, cluster) of the cluster to update.
|
|
// Specified in the format 'projects/*/locations/*/clusters/*'.
|
|
string name = 5;
|
|
}
|
|
|
|
// SetNodePoolVersionRequest updates the version of a node pool.
|
|
message UpdateNodePoolRequest {
|
|
// Deprecated. The Google Developers Console [project ID or project
|
|
// number](https://support.google.com/cloud/answer/6158840).
|
|
// This field has been deprecated and replaced by the name field.
|
|
string project_id = 1 [deprecated = true];
|
|
|
|
// Deprecated. The name of the Google Compute Engine
|
|
// [zone](/compute/docs/zones#available) in which the cluster
|
|
// resides.
|
|
// This field has been deprecated and replaced by the name field.
|
|
string zone = 2 [deprecated = true];
|
|
|
|
// Deprecated. The name of the cluster to upgrade.
|
|
// This field has been deprecated and replaced by the name field.
|
|
string cluster_id = 3 [deprecated = true];
|
|
|
|
// Deprecated. The name of the node pool to upgrade.
|
|
// This field has been deprecated and replaced by the name field.
|
|
string node_pool_id = 4 [deprecated = true];
|
|
|
|
// The Kubernetes version to change the nodes to (typically an
|
|
// upgrade).
|
|
//
|
|
// Users may specify either explicit versions offered by Kubernetes Engine or
|
|
// version aliases, which have the following behavior:
|
|
//
|
|
// - "latest": picks the highest valid Kubernetes version
|
|
// - "1.X": picks the highest valid patch+gke.N patch in the 1.X version
|
|
// - "1.X.Y": picks the highest valid gke.N patch in the 1.X.Y version
|
|
// - "1.X.Y-gke.N": picks an explicit Kubernetes version
|
|
// - "-": picks the Kubernetes master version
|
|
string node_version = 5;
|
|
|
|
// The desired image type for the node pool.
|
|
string image_type = 6;
|
|
|
|
// The name (project, location, cluster, node pool) of the node pool to
|
|
// update. Specified in the format
|
|
// 'projects/*/locations/*/clusters/*/nodePools/*'.
|
|
string name = 8;
|
|
}
|
|
|
|
// SetNodePoolAutoscalingRequest sets the autoscaler settings of a node pool.
|
|
message SetNodePoolAutoscalingRequest {
|
|
// Deprecated. The Google Developers Console [project ID or project
|
|
// number](https://support.google.com/cloud/answer/6158840).
|
|
// This field has been deprecated and replaced by the name field.
|
|
string project_id = 1 [deprecated = true];
|
|
|
|
// Deprecated. The name of the Google Compute Engine
|
|
// [zone](/compute/docs/zones#available) in which the cluster
|
|
// resides.
|
|
// This field has been deprecated and replaced by the name field.
|
|
string zone = 2 [deprecated = true];
|
|
|
|
// Deprecated. The name of the cluster to upgrade.
|
|
// This field has been deprecated and replaced by the name field.
|
|
string cluster_id = 3 [deprecated = true];
|
|
|
|
// Deprecated. The name of the node pool to upgrade.
|
|
// This field has been deprecated and replaced by the name field.
|
|
string node_pool_id = 4 [deprecated = true];
|
|
|
|
// Autoscaling configuration for the node pool.
|
|
NodePoolAutoscaling autoscaling = 5;
|
|
|
|
// The name (project, location, cluster, node pool) of the node pool to set
|
|
// autoscaler settings. Specified in the format
|
|
// 'projects/*/locations/*/clusters/*/nodePools/*'.
|
|
string name = 6;
|
|
}
|
|
|
|
// SetLoggingServiceRequest sets the logging service of a cluster.
|
|
message SetLoggingServiceRequest {
|
|
// Deprecated. The Google Developers Console [project ID or project
|
|
// number](https://support.google.com/cloud/answer/6158840).
|
|
// This field has been deprecated and replaced by the name field.
|
|
string project_id = 1 [deprecated = true];
|
|
|
|
// Deprecated. The name of the Google Compute Engine
|
|
// [zone](/compute/docs/zones#available) in which the cluster
|
|
// resides.
|
|
// This field has been deprecated and replaced by the name field.
|
|
string zone = 2;
|
|
|
|
// Deprecated. The name of the cluster to upgrade.
|
|
// This field has been deprecated and replaced by the name field.
|
|
string cluster_id = 3 [deprecated = true];
|
|
|
|
// The logging service the cluster should use to write metrics.
|
|
// Currently available options:
|
|
//
|
|
// * "logging.googleapis.com" - the Google Cloud Logging service
|
|
// * "none" - no metrics will be exported from the cluster
|
|
string logging_service = 4;
|
|
|
|
// The name (project, location, cluster) of the cluster to set logging.
|
|
// Specified in the format 'projects/*/locations/*/clusters/*'.
|
|
string name = 5;
|
|
}
|
|
|
|
// SetMonitoringServiceRequest sets the monitoring service of a cluster.
|
|
message SetMonitoringServiceRequest {
|
|
// Deprecated. The Google Developers Console [project ID or project
|
|
// number](https://support.google.com/cloud/answer/6158840).
|
|
// This field has been deprecated and replaced by the name field.
|
|
string project_id = 1 [deprecated = true];
|
|
|
|
// Deprecated. The name of the Google Compute Engine
|
|
// [zone](/compute/docs/zones#available) in which the cluster
|
|
// resides.
|
|
// This field has been deprecated and replaced by the name field.
|
|
string zone = 2 [deprecated = true];
|
|
|
|
// Deprecated. The name of the cluster to upgrade.
|
|
// This field has been deprecated and replaced by the name field.
|
|
string cluster_id = 3 [deprecated = true];
|
|
|
|
// The monitoring service the cluster should use to write metrics.
|
|
// Currently available options:
|
|
//
|
|
// * "monitoring.googleapis.com" - the Google Cloud Monitoring service
|
|
// * "none" - no metrics will be exported from the cluster
|
|
string monitoring_service = 4;
|
|
|
|
// The name (project, location, cluster) of the cluster to set monitoring.
|
|
// Specified in the format 'projects/*/locations/*/clusters/*'.
|
|
string name = 6;
|
|
}
|
|
|
|
// SetAddonsRequest sets the addons associated with the cluster.
|
|
message SetAddonsConfigRequest {
|
|
// Deprecated. The Google Developers Console [project ID or project
|
|
// number](https://support.google.com/cloud/answer/6158840).
|
|
// This field has been deprecated and replaced by the name field.
|
|
string project_id = 1 [deprecated = true];
|
|
|
|
// Deprecated. The name of the Google Compute Engine
|
|
// [zone](/compute/docs/zones#available) in which the cluster
|
|
// resides.
|
|
// This field has been deprecated and replaced by the name field.
|
|
string zone = 2 [deprecated = true];
|
|
|
|
// Deprecated. The name of the cluster to upgrade.
|
|
// This field has been deprecated and replaced by the name field.
|
|
string cluster_id = 3 [deprecated = true];
|
|
|
|
// The desired configurations for the various addons available to run in the
|
|
// cluster.
|
|
AddonsConfig addons_config = 4;
|
|
|
|
// The name (project, location, cluster) of the cluster to set addons.
|
|
// Specified in the format 'projects/*/locations/*/clusters/*'.
|
|
string name = 6;
|
|
}
|
|
|
|
// SetLocationsRequest sets the locations of the cluster.
|
|
message SetLocationsRequest {
|
|
// Deprecated. The Google Developers Console [project ID or project
|
|
// number](https://support.google.com/cloud/answer/6158840).
|
|
// This field has been deprecated and replaced by the name field.
|
|
string project_id = 1 [deprecated = true];
|
|
|
|
// Deprecated. The name of the Google Compute Engine
|
|
// [zone](/compute/docs/zones#available) in which the cluster
|
|
// resides.
|
|
// This field has been deprecated and replaced by the name field.
|
|
string zone = 2 [deprecated = true];
|
|
|
|
// Deprecated. The name of the cluster to upgrade.
|
|
// This field has been deprecated and replaced by the name field.
|
|
string cluster_id = 3 [deprecated = true];
|
|
|
|
// The desired list of Google Compute Engine
|
|
// [zones](/compute/docs/zones#available) in which the cluster's nodes
|
|
// should be located. Changing the locations a cluster is in will result
|
|
// in nodes being either created or removed from the cluster, depending on
|
|
// whether locations are being added or removed.
|
|
//
|
|
// This list must always include the cluster's primary zone.
|
|
repeated string locations = 4;
|
|
|
|
// The name (project, location, cluster) of the cluster to set locations.
|
|
// Specified in the format 'projects/*/locations/*/clusters/*'.
|
|
string name = 6;
|
|
}
|
|
|
|
// UpdateMasterRequest updates the master of the cluster.
|
|
message UpdateMasterRequest {
|
|
// Deprecated. The Google Developers Console [project ID or project
|
|
// number](https://support.google.com/cloud/answer/6158840).
|
|
// This field has been deprecated and replaced by the name field.
|
|
string project_id = 1 [deprecated = true];
|
|
|
|
// Deprecated. The name of the Google Compute Engine
|
|
// [zone](/compute/docs/zones#available) in which the cluster
|
|
// resides.
|
|
// This field has been deprecated and replaced by the name field.
|
|
string zone = 2 [deprecated = true];
|
|
|
|
// Deprecated. The name of the cluster to upgrade.
|
|
// This field has been deprecated and replaced by the name field.
|
|
string cluster_id = 3 [deprecated = true];
|
|
|
|
// The Kubernetes version to change the master to.
|
|
//
|
|
// Users may specify either explicit versions offered by
|
|
// Kubernetes Engine or version aliases, which have the following behavior:
|
|
//
|
|
// - "latest": picks the highest valid Kubernetes version
|
|
// - "1.X": picks the highest valid patch+gke.N patch in the 1.X version
|
|
// - "1.X.Y": picks the highest valid gke.N patch in the 1.X.Y version
|
|
// - "1.X.Y-gke.N": picks an explicit Kubernetes version
|
|
// - "-": picks the default Kubernetes version
|
|
string master_version = 4;
|
|
|
|
// The name (project, location, cluster) of the cluster to update.
|
|
// Specified in the format 'projects/*/locations/*/clusters/*'.
|
|
string name = 7;
|
|
}
|
|
|
|
// SetMasterAuthRequest updates the admin password of a cluster.
|
|
message SetMasterAuthRequest {
|
|
// Operation type: what type update to perform.
|
|
enum Action {
|
|
// Operation is unknown and will error out.
|
|
UNKNOWN = 0;
|
|
|
|
// Set the password to a user generated value.
|
|
SET_PASSWORD = 1;
|
|
|
|
// Generate a new password and set it to that.
|
|
GENERATE_PASSWORD = 2;
|
|
|
|
// Set the username. If an empty username is provided, basic authentication
|
|
// is disabled for the cluster. If a non-empty username is provided, basic
|
|
// authentication is enabled, with either a provided password or a generated
|
|
// one.
|
|
SET_USERNAME = 3;
|
|
}
|
|
|
|
// Deprecated. The Google Developers Console [project ID or project
|
|
// number](https://support.google.com/cloud/answer/6158840).
|
|
// This field has been deprecated and replaced by the name field.
|
|
string project_id = 1 [deprecated = true];
|
|
|
|
// Deprecated. The name of the Google Compute Engine
|
|
// [zone](/compute/docs/zones#available) in which the cluster
|
|
// resides.
|
|
// This field has been deprecated and replaced by the name field.
|
|
string zone = 2 [deprecated = true];
|
|
|
|
// Deprecated. The name of the cluster to upgrade.
|
|
// This field has been deprecated and replaced by the name field.
|
|
string cluster_id = 3 [deprecated = true];
|
|
|
|
// The exact form of action to be taken on the master auth.
|
|
Action action = 4;
|
|
|
|
// A description of the update.
|
|
MasterAuth update = 5;
|
|
|
|
// The name (project, location, cluster) of the cluster to set auth.
|
|
// Specified in the format 'projects/*/locations/*/clusters/*'.
|
|
string name = 7;
|
|
}
|
|
|
|
// DeleteClusterRequest deletes a cluster.
|
|
message DeleteClusterRequest {
|
|
// Deprecated. The Google Developers Console [project ID or project
|
|
// number](https://support.google.com/cloud/answer/6158840).
|
|
// This field has been deprecated and replaced by the name field.
|
|
string project_id = 1 [deprecated = true];
|
|
|
|
// Deprecated. The name of the Google Compute Engine
|
|
// [zone](/compute/docs/zones#available) in which the cluster
|
|
// resides.
|
|
// This field has been deprecated and replaced by the name field.
|
|
string zone = 2 [deprecated = true];
|
|
|
|
// Deprecated. The name of the cluster to delete.
|
|
// This field has been deprecated and replaced by the name field.
|
|
string cluster_id = 3 [deprecated = true];
|
|
|
|
// The name (project, location, cluster) of the cluster to delete.
|
|
// Specified in the format 'projects/*/locations/*/clusters/*'.
|
|
string name = 4;
|
|
}
|
|
|
|
// ListClustersRequest lists clusters.
|
|
message ListClustersRequest {
|
|
// Deprecated. The Google Developers Console [project ID or project
|
|
// number](https://support.google.com/cloud/answer/6158840).
|
|
// This field has been deprecated and replaced by the parent field.
|
|
string project_id = 1 [deprecated = true];
|
|
|
|
// Deprecated. The name of the Google Compute Engine
|
|
// [zone](/compute/docs/zones#available) in which the cluster
|
|
// resides, or "-" for all zones.
|
|
// This field has been deprecated and replaced by the parent field.
|
|
string zone = 2 [deprecated = true];
|
|
|
|
// The parent (project and location) where the clusters will be listed.
|
|
// Specified in the format 'projects/*/locations/*'.
|
|
// Location "-" matches all zones and all regions.
|
|
string parent = 4;
|
|
}
|
|
|
|
// ListClustersResponse is the result of ListClustersRequest.
|
|
message ListClustersResponse {
|
|
// A list of clusters in the project in the specified zone, or
|
|
// across all ones.
|
|
repeated Cluster clusters = 1;
|
|
|
|
// If any zones are listed here, the list of clusters returned
|
|
// may be missing those zones.
|
|
repeated string missing_zones = 2;
|
|
}
|
|
|
|
// GetOperationRequest gets a single operation.
|
|
message GetOperationRequest {
|
|
// Deprecated. The Google Developers Console [project ID or project
|
|
// number](https://support.google.com/cloud/answer/6158840).
|
|
// This field has been deprecated and replaced by the name field.
|
|
string project_id = 1 [deprecated = true];
|
|
|
|
// Deprecated. The name of the Google Compute Engine
|
|
// [zone](/compute/docs/zones#available) in which the cluster
|
|
// resides.
|
|
// This field has been deprecated and replaced by the name field.
|
|
string zone = 2 [deprecated = true];
|
|
|
|
// Deprecated. The server-assigned `name` of the operation.
|
|
// This field has been deprecated and replaced by the name field.
|
|
string operation_id = 3 [deprecated = true];
|
|
|
|
// The name (project, location, operation id) of the operation to get.
|
|
// Specified in the format 'projects/*/locations/*/operations/*'.
|
|
string name = 5;
|
|
}
|
|
|
|
// ListOperationsRequest lists operations.
|
|
message ListOperationsRequest {
|
|
// Deprecated. The Google Developers Console [project ID or project
|
|
// number](https://support.google.com/cloud/answer/6158840).
|
|
// This field has been deprecated and replaced by the parent field.
|
|
string project_id = 1 [deprecated = true];
|
|
|
|
// Deprecated. The name of the Google Compute Engine
|
|
// [zone](/compute/docs/zones#available) to return operations for, or `-` for
|
|
// all zones. This field has been deprecated and replaced by the parent field.
|
|
string zone = 2 [deprecated = true];
|
|
|
|
// The parent (project and location) where the operations will be listed.
|
|
// Specified in the format 'projects/*/locations/*'.
|
|
// Location "-" matches all zones and all regions.
|
|
string parent = 4;
|
|
}
|
|
|
|
// CancelOperationRequest cancels a single operation.
|
|
message CancelOperationRequest {
|
|
// Deprecated. The Google Developers Console [project ID or project
|
|
// number](https://support.google.com/cloud/answer/6158840).
|
|
// This field has been deprecated and replaced by the name field.
|
|
string project_id = 1 [deprecated = true];
|
|
|
|
// Deprecated. The name of the Google Compute Engine
|
|
// [zone](/compute/docs/zones#available) in which the operation resides.
|
|
// This field has been deprecated and replaced by the name field.
|
|
string zone = 2 [deprecated = true];
|
|
|
|
// Deprecated. The server-assigned `name` of the operation.
|
|
// This field has been deprecated and replaced by the name field.
|
|
string operation_id = 3 [deprecated = true];
|
|
|
|
// The name (project, location, operation id) of the operation to cancel.
|
|
// Specified in the format 'projects/*/locations/*/operations/*'.
|
|
string name = 4;
|
|
}
|
|
|
|
// ListOperationsResponse is the result of ListOperationsRequest.
|
|
message ListOperationsResponse {
|
|
// A list of operations in the project in the specified zone.
|
|
repeated Operation operations = 1;
|
|
|
|
// If any zones are listed here, the list of operations returned
|
|
// may be missing the operations from those zones.
|
|
repeated string missing_zones = 2;
|
|
}
|
|
|
|
// Gets the current Kubernetes Engine service configuration.
|
|
message GetServerConfigRequest {
|
|
// Deprecated. The Google Developers Console [project ID or project
|
|
// number](https://support.google.com/cloud/answer/6158840).
|
|
// This field has been deprecated and replaced by the name field.
|
|
string project_id = 1 [deprecated = true];
|
|
|
|
// Deprecated. The name of the Google Compute Engine
|
|
// [zone](/compute/docs/zones#available) to return operations for.
|
|
// This field has been deprecated and replaced by the name field.
|
|
string zone = 2 [deprecated = true];
|
|
|
|
// The name (project and location) of the server config to get
|
|
// Specified in the format 'projects/*/locations/*'.
|
|
string name = 4;
|
|
}
|
|
|
|
// Kubernetes Engine service configuration.
|
|
message ServerConfig {
|
|
// Version of Kubernetes the service deploys by default.
|
|
string default_cluster_version = 1;
|
|
|
|
// List of valid node upgrade target versions.
|
|
repeated string valid_node_versions = 3;
|
|
|
|
// Default image type.
|
|
string default_image_type = 4;
|
|
|
|
// List of valid image types.
|
|
repeated string valid_image_types = 5;
|
|
|
|
// List of valid master versions.
|
|
repeated string valid_master_versions = 6;
|
|
}
|
|
|
|
// CreateNodePoolRequest creates a node pool for a cluster.
|
|
message CreateNodePoolRequest {
|
|
// Deprecated. The Google Developers Console [project ID or project
|
|
// number](https://developers.google.com/console/help/new/#projectnumber).
|
|
// This field has been deprecated and replaced by the parent field.
|
|
string project_id = 1 [deprecated = true];
|
|
|
|
// Deprecated. The name of the Google Compute Engine
|
|
// [zone](/compute/docs/zones#available) in which the cluster
|
|
// resides.
|
|
// This field has been deprecated and replaced by the parent field.
|
|
string zone = 2 [deprecated = true];
|
|
|
|
// Deprecated. The name of the cluster.
|
|
// This field has been deprecated and replaced by the parent field.
|
|
string cluster_id = 3 [deprecated = true];
|
|
|
|
// The node pool to create.
|
|
NodePool node_pool = 4;
|
|
|
|
// The parent (project, location, cluster id) where the node pool will be
|
|
// created. Specified in the format
|
|
// 'projects/*/locations/*/clusters/*'.
|
|
string parent = 6;
|
|
}
|
|
|
|
// DeleteNodePoolRequest deletes a node pool for a cluster.
|
|
message DeleteNodePoolRequest {
|
|
// Deprecated. The Google Developers Console [project ID or project
|
|
// number](https://developers.google.com/console/help/new/#projectnumber).
|
|
// This field has been deprecated and replaced by the name field.
|
|
string project_id = 1 [deprecated = true];
|
|
|
|
// Deprecated. The name of the Google Compute Engine
|
|
// [zone](/compute/docs/zones#available) in which the cluster
|
|
// resides.
|
|
// This field has been deprecated and replaced by the name field.
|
|
string zone = 2 [deprecated = true];
|
|
|
|
// Deprecated. The name of the cluster.
|
|
// This field has been deprecated and replaced by the name field.
|
|
string cluster_id = 3 [deprecated = true];
|
|
|
|
// Deprecated. The name of the node pool to delete.
|
|
// This field has been deprecated and replaced by the name field.
|
|
string node_pool_id = 4 [deprecated = true];
|
|
|
|
// The name (project, location, cluster, node pool id) of the node pool to
|
|
// delete. Specified in the format
|
|
// 'projects/*/locations/*/clusters/*/nodePools/*'.
|
|
string name = 6;
|
|
}
|
|
|
|
// ListNodePoolsRequest lists the node pool(s) for a cluster.
|
|
message ListNodePoolsRequest {
|
|
// Deprecated. The Google Developers Console [project ID or project
|
|
// number](https://developers.google.com/console/help/new/#projectnumber).
|
|
// This field has been deprecated and replaced by the parent field.
|
|
string project_id = 1 [deprecated = true];
|
|
|
|
// Deprecated. The name of the Google Compute Engine
|
|
// [zone](/compute/docs/zones#available) in which the cluster
|
|
// resides.
|
|
// This field has been deprecated and replaced by the parent field.
|
|
string zone = 2 [deprecated = true];
|
|
|
|
// Deprecated. The name of the cluster.
|
|
// This field has been deprecated and replaced by the parent field.
|
|
string cluster_id = 3 [deprecated = true];
|
|
|
|
// The parent (project, location, cluster id) where the node pools will be
|
|
// listed. Specified in the format 'projects/*/locations/*/clusters/*'.
|
|
string parent = 5;
|
|
}
|
|
|
|
// GetNodePoolRequest retrieves a node pool for a cluster.
|
|
message GetNodePoolRequest {
|
|
// Deprecated. The Google Developers Console [project ID or project
|
|
// number](https://developers.google.com/console/help/new/#projectnumber).
|
|
// This field has been deprecated and replaced by the name field.
|
|
string project_id = 1 [deprecated = true];
|
|
|
|
// Deprecated. The name of the Google Compute Engine
|
|
// [zone](/compute/docs/zones#available) in which the cluster
|
|
// resides.
|
|
// This field has been deprecated and replaced by the name field.
|
|
string zone = 2 [deprecated = true];
|
|
|
|
// Deprecated. The name of the cluster.
|
|
// This field has been deprecated and replaced by the name field.
|
|
string cluster_id = 3 [deprecated = true];
|
|
|
|
// Deprecated. The name of the node pool.
|
|
// This field has been deprecated and replaced by the name field.
|
|
string node_pool_id = 4 [deprecated = true];
|
|
|
|
// The name (project, location, cluster, node pool id) of the node pool to
|
|
// get. Specified in the format
|
|
// 'projects/*/locations/*/clusters/*/nodePools/*'.
|
|
string name = 6;
|
|
}
|
|
|
|
// NodePool contains the name and configuration for a cluster's node pool.
|
|
// Node pools are a set of nodes (i.e. VM's), with a common configuration and
|
|
// specification, under the control of the cluster master. They may have a set
|
|
// of Kubernetes labels applied to them, which may be used to reference them
|
|
// during pod scheduling. They may also be resized up or down, to accommodate
|
|
// the workload.
|
|
message NodePool {
|
|
// The current status of the node pool instance.
|
|
enum Status {
|
|
// Not set.
|
|
STATUS_UNSPECIFIED = 0;
|
|
|
|
// The PROVISIONING state indicates the node pool is being created.
|
|
PROVISIONING = 1;
|
|
|
|
// The RUNNING state indicates the node pool has been created
|
|
// and is fully usable.
|
|
RUNNING = 2;
|
|
|
|
// The RUNNING_WITH_ERROR state indicates the node pool has been created
|
|
// and is partially usable. Some error state has occurred and some
|
|
// functionality may be impaired. Customer may need to reissue a request
|
|
// or trigger a new update.
|
|
RUNNING_WITH_ERROR = 3;
|
|
|
|
// The RECONCILING state indicates that some work is actively being done on
|
|
// the node pool, such as upgrading node software. Details can
|
|
// be found in the `statusMessage` field.
|
|
RECONCILING = 4;
|
|
|
|
// The STOPPING state indicates the node pool is being deleted.
|
|
STOPPING = 5;
|
|
|
|
// The ERROR state indicates the node pool may be unusable. Details
|
|
// can be found in the `statusMessage` field.
|
|
ERROR = 6;
|
|
}
|
|
|
|
// The name of the node pool.
|
|
string name = 1;
|
|
|
|
// The node configuration of the pool.
|
|
NodeConfig config = 2;
|
|
|
|
// The initial node count for the pool. You must ensure that your
|
|
// Compute Engine <a href="/compute/docs/resource-quotas">resource quota</a>
|
|
// is sufficient for this number of instances. You must also have available
|
|
// firewall and routes quota.
|
|
int32 initial_node_count = 3;
|
|
|
|
// [Output only] Server-defined URL for the resource.
|
|
string self_link = 100;
|
|
|
|
// The version of the Kubernetes of this node.
|
|
string version = 101;
|
|
|
|
// [Output only] The resource URLs of the [managed instance
|
|
// groups](/compute/docs/instance-groups/creating-groups-of-managed-instances)
|
|
// associated with this node pool.
|
|
repeated string instance_group_urls = 102;
|
|
|
|
// [Output only] The status of the nodes in this pool instance.
|
|
Status status = 103;
|
|
|
|
// [Output only] Additional information about the current status of this
|
|
// node pool instance, if available.
|
|
string status_message = 104;
|
|
|
|
// Autoscaler configuration for this NodePool. Autoscaler is enabled
|
|
// only if a valid configuration is present.
|
|
NodePoolAutoscaling autoscaling = 4;
|
|
|
|
// NodeManagement configuration for this NodePool.
|
|
NodeManagement management = 5;
|
|
|
|
// The constraint on the maximum number of pods that can be run
|
|
// simultaneously on a node in the node pool.
|
|
MaxPodsConstraint max_pods_constraint = 6;
|
|
|
|
// Which conditions caused the current node pool state.
|
|
repeated StatusCondition conditions = 105;
|
|
}
|
|
|
|
// NodeManagement defines the set of node management services turned on for the
|
|
// node pool.
|
|
message NodeManagement {
|
|
// Whether the nodes will be automatically upgraded.
|
|
bool auto_upgrade = 1;
|
|
|
|
// Whether the nodes will be automatically repaired.
|
|
bool auto_repair = 2;
|
|
|
|
// Specifies the Auto Upgrade knobs for the node pool.
|
|
AutoUpgradeOptions upgrade_options = 10;
|
|
}
|
|
|
|
// AutoUpgradeOptions defines the set of options for the user to control how
|
|
// the Auto Upgrades will proceed.
|
|
message AutoUpgradeOptions {
|
|
// [Output only] This field is set when upgrades are about to commence
|
|
// with the approximate start time for the upgrades, in
|
|
// [RFC3339](https://www.ietf.org/rfc/rfc3339.txt) text format.
|
|
string auto_upgrade_start_time = 1;
|
|
|
|
// [Output only] This field is set when upgrades are about to commence
|
|
// with the description of the upgrade.
|
|
string description = 2;
|
|
}
|
|
|
|
// MaintenancePolicy defines the maintenance policy to be used for the cluster.
|
|
message MaintenancePolicy {
|
|
// Specifies the maintenance window in which maintenance may be performed.
|
|
MaintenanceWindow window = 1;
|
|
}
|
|
|
|
// MaintenanceWindow defines the maintenance window to be used for the cluster.
|
|
message MaintenanceWindow {
|
|
// Unimplemented, reserved for future use.
|
|
// HourlyMaintenanceWindow hourly_maintenance_window = 1;
|
|
oneof policy {
|
|
// DailyMaintenanceWindow specifies a daily maintenance operation window.
|
|
DailyMaintenanceWindow daily_maintenance_window = 2;
|
|
}
|
|
}
|
|
|
|
// Time window specified for daily maintenance operations.
|
|
message DailyMaintenanceWindow {
|
|
// Time within the maintenance window to start the maintenance operations.
|
|
// It must be in format "HH:MM”, where HH : [00-23] and MM : [00-59] GMT.
|
|
string start_time = 2;
|
|
|
|
// [Output only] Duration of the time window, automatically chosen to be
|
|
// smallest possible in the given scenario.
|
|
string duration = 3;
|
|
}
|
|
|
|
// SetNodePoolManagementRequest sets the node management properties of a node
|
|
// pool.
|
|
message SetNodePoolManagementRequest {
|
|
// Deprecated. The Google Developers Console [project ID or project
|
|
// number](https://support.google.com/cloud/answer/6158840).
|
|
// This field has been deprecated and replaced by the name field.
|
|
string project_id = 1 [deprecated = true];
|
|
|
|
// Deprecated. The name of the Google Compute Engine
|
|
// [zone](/compute/docs/zones#available) in which the cluster
|
|
// resides.
|
|
// This field has been deprecated and replaced by the name field.
|
|
string zone = 2 [deprecated = true];
|
|
|
|
// Deprecated. The name of the cluster to update.
|
|
// This field has been deprecated and replaced by the name field.
|
|
string cluster_id = 3 [deprecated = true];
|
|
|
|
// Deprecated. The name of the node pool to update.
|
|
// This field has been deprecated and replaced by the name field.
|
|
string node_pool_id = 4 [deprecated = true];
|
|
|
|
// NodeManagement configuration for the node pool.
|
|
NodeManagement management = 5;
|
|
|
|
// The name (project, location, cluster, node pool id) of the node pool to set
|
|
// management properties. Specified in the format
|
|
// 'projects/*/locations/*/clusters/*/nodePools/*'.
|
|
string name = 7;
|
|
}
|
|
|
|
// SetNodePoolSizeRequest sets the size a node
|
|
// pool.
|
|
message SetNodePoolSizeRequest {
|
|
// Deprecated. The Google Developers Console [project ID or project
|
|
// number](https://support.google.com/cloud/answer/6158840).
|
|
// This field has been deprecated and replaced by the name field.
|
|
string project_id = 1 [deprecated = true];
|
|
|
|
// Deprecated. The name of the Google Compute Engine
|
|
// [zone](/compute/docs/zones#available) in which the cluster
|
|
// resides.
|
|
// This field has been deprecated and replaced by the name field.
|
|
string zone = 2 [deprecated = true];
|
|
|
|
// Deprecated. The name of the cluster to update.
|
|
// This field has been deprecated and replaced by the name field.
|
|
string cluster_id = 3 [deprecated = true];
|
|
|
|
// Deprecated. The name of the node pool to update.
|
|
// This field has been deprecated and replaced by the name field.
|
|
string node_pool_id = 4 [deprecated = true];
|
|
|
|
// The desired node count for the pool.
|
|
int32 node_count = 5;
|
|
|
|
// The name (project, location, cluster, node pool id) of the node pool to set
|
|
// size.
|
|
// Specified in the format 'projects/*/locations/*/clusters/*/nodePools/*'.
|
|
string name = 7;
|
|
}
|
|
|
|
// RollbackNodePoolUpgradeRequest rollbacks the previously Aborted or Failed
|
|
// NodePool upgrade. This will be an no-op if the last upgrade successfully
|
|
// completed.
|
|
message RollbackNodePoolUpgradeRequest {
|
|
// Deprecated. The Google Developers Console [project ID or project
|
|
// number](https://support.google.com/cloud/answer/6158840).
|
|
// This field has been deprecated and replaced by the name field.
|
|
string project_id = 1 [deprecated = true];
|
|
|
|
// Deprecated. The name of the Google Compute Engine
|
|
// [zone](/compute/docs/zones#available) in which the cluster
|
|
// resides.
|
|
// This field has been deprecated and replaced by the name field.
|
|
string zone = 2 [deprecated = true];
|
|
|
|
// Deprecated. The name of the cluster to rollback.
|
|
// This field has been deprecated and replaced by the name field.
|
|
string cluster_id = 3 [deprecated = true];
|
|
|
|
// Deprecated. The name of the node pool to rollback.
|
|
// This field has been deprecated and replaced by the name field.
|
|
string node_pool_id = 4 [deprecated = true];
|
|
|
|
// The name (project, location, cluster, node pool id) of the node poll to
|
|
// rollback upgrade.
|
|
// Specified in the format 'projects/*/locations/*/clusters/*/nodePools/*'.
|
|
string name = 6;
|
|
}
|
|
|
|
// ListNodePoolsResponse is the result of ListNodePoolsRequest.
|
|
message ListNodePoolsResponse {
|
|
// A list of node pools for a cluster.
|
|
repeated NodePool node_pools = 1;
|
|
}
|
|
|
|
// ClusterAutoscaling contains global, per-cluster information
|
|
// required by Cluster Autoscaler to automatically adjust
|
|
// the size of the cluster and create/delete
|
|
// node pools based on the current needs.
|
|
message ClusterAutoscaling {
|
|
// Enables automatic node pool creation and deletion.
|
|
bool enable_node_autoprovisioning = 1;
|
|
|
|
// Contains global constraints regarding minimum and maximum
|
|
// amount of resources in the cluster.
|
|
repeated ResourceLimit resource_limits = 2;
|
|
}
|
|
|
|
// Contains information about amount of some resource in the cluster.
|
|
// For memory, value should be in GB.
|
|
message ResourceLimit {
|
|
// Resource name "cpu", "memory" or gpu-specific string.
|
|
string resource_type = 1;
|
|
|
|
// Minimum amount of the resource in the cluster.
|
|
int64 minimum = 2;
|
|
|
|
// Maximum amount of the resource in the cluster.
|
|
int64 maximum = 3;
|
|
}
|
|
|
|
// NodePoolAutoscaling contains information required by cluster autoscaler to
|
|
// adjust the size of the node pool to the current cluster usage.
|
|
message NodePoolAutoscaling {
|
|
// Is autoscaling enabled for this node pool.
|
|
bool enabled = 1;
|
|
|
|
// Minimum number of nodes in the NodePool. Must be >= 1 and <=
|
|
// max_node_count.
|
|
int32 min_node_count = 2;
|
|
|
|
// Maximum number of nodes in the NodePool. Must be >= min_node_count. There
|
|
// has to enough quota to scale up the cluster.
|
|
int32 max_node_count = 3;
|
|
|
|
// Can this node pool be deleted automatically.
|
|
bool autoprovisioned = 4;
|
|
}
|
|
|
|
// SetLabelsRequest sets the Google Cloud Platform labels on a Google Container
|
|
// Engine cluster, which will in turn set them for Google Compute Engine
|
|
// resources used by that cluster
|
|
message SetLabelsRequest {
|
|
// Deprecated. The Google Developers Console [project ID or project
|
|
// number](https://developers.google.com/console/help/new/#projectnumber).
|
|
// This field has been deprecated and replaced by the name field.
|
|
string project_id = 1 [deprecated = true];
|
|
|
|
// Deprecated. The name of the Google Compute Engine
|
|
// [zone](/compute/docs/zones#available) in which the cluster
|
|
// resides.
|
|
// This field has been deprecated and replaced by the name field.
|
|
string zone = 2 [deprecated = true];
|
|
|
|
// Deprecated. The name of the cluster.
|
|
// This field has been deprecated and replaced by the name field.
|
|
string cluster_id = 3 [deprecated = true];
|
|
|
|
// The labels to set for that cluster.
|
|
map<string, string> resource_labels = 4;
|
|
|
|
// The fingerprint of the previous set of labels for this resource,
|
|
// used to detect conflicts. The fingerprint is initially generated by
|
|
// Kubernetes Engine and changes after every request to modify or update
|
|
// labels. You must always provide an up-to-date fingerprint hash when
|
|
// updating or changing labels. Make a <code>get()</code> request to the
|
|
// resource to get the latest fingerprint.
|
|
string label_fingerprint = 5;
|
|
|
|
// The name (project, location, cluster id) of the cluster to set labels.
|
|
// Specified in the format 'projects/*/locations/*/clusters/*'.
|
|
string name = 7;
|
|
}
|
|
|
|
// SetLegacyAbacRequest enables or disables the ABAC authorization mechanism for
|
|
// a cluster.
|
|
message SetLegacyAbacRequest {
|
|
// Deprecated. The Google Developers Console [project ID or project
|
|
// number](https://support.google.com/cloud/answer/6158840).
|
|
// This field has been deprecated and replaced by the name field.
|
|
string project_id = 1 [deprecated = true];
|
|
|
|
// Deprecated. The name of the Google Compute Engine
|
|
// [zone](/compute/docs/zones#available) in which the cluster
|
|
// resides.
|
|
// This field has been deprecated and replaced by the name field.
|
|
string zone = 2 [deprecated = true];
|
|
|
|
// Deprecated. The name of the cluster to update.
|
|
// This field has been deprecated and replaced by the name field.
|
|
string cluster_id = 3 [deprecated = true];
|
|
|
|
// Whether ABAC authorization will be enabled in the cluster.
|
|
bool enabled = 4;
|
|
|
|
// The name (project, location, cluster id) of the cluster to set legacy abac.
|
|
// Specified in the format 'projects/*/locations/*/clusters/*'.
|
|
string name = 6;
|
|
}
|
|
|
|
// StartIPRotationRequest creates a new IP for the cluster and then performs
|
|
// a node upgrade on each node pool to point to the new IP.
|
|
message StartIPRotationRequest {
|
|
// Deprecated. The Google Developers Console [project ID or project
|
|
// number](https://developers.google.com/console/help/new/#projectnumber).
|
|
// This field has been deprecated and replaced by the name field.
|
|
string project_id = 1 [deprecated = true];
|
|
|
|
// Deprecated. The name of the Google Compute Engine
|
|
// [zone](/compute/docs/zones#available) in which the cluster
|
|
// resides.
|
|
// This field has been deprecated and replaced by the name field.
|
|
string zone = 2 [deprecated = true];
|
|
|
|
// Deprecated. The name of the cluster.
|
|
// This field has been deprecated and replaced by the name field.
|
|
string cluster_id = 3 [deprecated = true];
|
|
|
|
// The name (project, location, cluster id) of the cluster to start IP
|
|
// rotation. Specified in the format 'projects/*/locations/*/clusters/*'.
|
|
string name = 6;
|
|
|
|
// Whether to rotate credentials during IP rotation.
|
|
bool rotate_credentials = 7;
|
|
}
|
|
|
|
// CompleteIPRotationRequest moves the cluster master back into single-IP mode.
|
|
message CompleteIPRotationRequest {
|
|
// Deprecated. The Google Developers Console [project ID or project
|
|
// number](https://developers.google.com/console/help/new/#projectnumber).
|
|
// This field has been deprecated and replaced by the name field.
|
|
string project_id = 1 [deprecated = true];
|
|
|
|
// Deprecated. The name of the Google Compute Engine
|
|
// [zone](/compute/docs/zones#available) in which the cluster
|
|
// resides.
|
|
// This field has been deprecated and replaced by the name field.
|
|
string zone = 2 [deprecated = true];
|
|
|
|
// Deprecated. The name of the cluster.
|
|
// This field has been deprecated and replaced by the name field.
|
|
string cluster_id = 3 [deprecated = true];
|
|
|
|
// The name (project, location, cluster id) of the cluster to complete IP
|
|
// rotation. Specified in the format 'projects/*/locations/*/clusters/*'.
|
|
string name = 7;
|
|
}
|
|
|
|
// AcceleratorConfig represents a Hardware Accelerator request.
|
|
message AcceleratorConfig {
|
|
// The number of the accelerator cards exposed to an instance.
|
|
int64 accelerator_count = 1;
|
|
|
|
// The accelerator type resource name. List of supported accelerators
|
|
// [here](/compute/docs/gpus/#Introduction)
|
|
string accelerator_type = 2;
|
|
}
|
|
|
|
// WorkloadMetadataConfig defines the metadata configuration to expose to
|
|
// workloads on the node pool.
|
|
message WorkloadMetadataConfig {
|
|
// NodeMetadata is the configuration for if and how to expose the node
|
|
// metadata to the workload running on the node.
|
|
enum NodeMetadata {
|
|
// Not set.
|
|
UNSPECIFIED = 0;
|
|
|
|
// Prevent workloads not in hostNetwork from accessing certain VM metadata,
|
|
// specifically kube-env, which contains Kubelet credentials, and the
|
|
// instance identity token.
|
|
//
|
|
// Metadata concealment is a temporary security solution available while the
|
|
// bootstrapping process for cluster nodes is being redesigned with
|
|
// significant security improvements. This feature is scheduled to be
|
|
// deprecated in the future and later removed.
|
|
SECURE = 1;
|
|
|
|
// Expose all VM metadata to pods.
|
|
EXPOSE = 2;
|
|
}
|
|
|
|
// NodeMetadata is the configuration for how to expose the node metadata to
|
|
// the workload running on the node.
|
|
NodeMetadata node_metadata = 1;
|
|
}
|
|
|
|
// SetNetworkPolicyRequest enables/disables network policy for a cluster.
|
|
message SetNetworkPolicyRequest {
|
|
// Deprecated. The Google Developers Console [project ID or project
|
|
// number](https://developers.google.com/console/help/new/#projectnumber).
|
|
// This field has been deprecated and replaced by the name field.
|
|
string project_id = 1 [deprecated = true];
|
|
|
|
// Deprecated. The name of the Google Compute Engine
|
|
// [zone](/compute/docs/zones#available) in which the cluster
|
|
// resides.
|
|
// This field has been deprecated and replaced by the name field.
|
|
string zone = 2 [deprecated = true];
|
|
|
|
// Deprecated. The name of the cluster.
|
|
// This field has been deprecated and replaced by the name field.
|
|
string cluster_id = 3 [deprecated = true];
|
|
|
|
// Configuration options for the NetworkPolicy feature.
|
|
NetworkPolicy network_policy = 4;
|
|
|
|
// The name (project, location, cluster id) of the cluster to set networking
|
|
// policy. Specified in the format 'projects/*/locations/*/clusters/*'.
|
|
string name = 6;
|
|
}
|
|
|
|
// SetMaintenancePolicyRequest sets the maintenance policy for a cluster.
|
|
message SetMaintenancePolicyRequest {
|
|
// The Google Developers Console [project ID or project
|
|
// number](https://support.google.com/cloud/answer/6158840).
|
|
string project_id = 1;
|
|
|
|
// The name of the Google Compute Engine
|
|
// [zone](/compute/docs/zones#available) in which the cluster
|
|
// resides.
|
|
string zone = 2;
|
|
|
|
// The name of the cluster to update.
|
|
string cluster_id = 3;
|
|
|
|
// The maintenance policy to be set for the cluster. An empty field
|
|
// clears the existing maintenance policy.
|
|
MaintenancePolicy maintenance_policy = 4;
|
|
|
|
// The name (project, location, cluster id) of the cluster to set maintenance
|
|
// policy.
|
|
// Specified in the format 'projects/*/locations/*/clusters/*'.
|
|
string name = 5;
|
|
}
|
|
|
|
// ListLocationsRequest is used to request the locations that offer GKE.
|
|
message ListLocationsRequest {
|
|
// Contains the name of the resource requested.
|
|
// Specified in the format 'projects/*'.
|
|
string parent = 1;
|
|
}
|
|
|
|
// ListLocationsResponse returns the list of all GKE locations and their
|
|
// recommendation state.
|
|
message ListLocationsResponse {
|
|
// A full list of GKE locations.
|
|
repeated Location locations = 1;
|
|
|
|
// Only return ListLocationsResponse that occur after the page_token. This
|
|
// value should be populated from the ListLocationsResponse.next_page_token if
|
|
// that response token was set (which happens when listing more Locations than
|
|
// fit in a single ListLocationsResponse).
|
|
string next_page_token = 2;
|
|
}
|
|
|
|
// Location returns the location name, and if the location is recommended
|
|
// for GKE cluster scheduling.
|
|
message Location {
|
|
// LocationType is the type of GKE location, regional or zonal.
|
|
enum LocationType {
|
|
// LOCATION_TYPE_UNSPECIFIED means the location type was not determined.
|
|
LOCATION_TYPE_UNSPECIFIED = 0;
|
|
|
|
// A GKE Location where Zonal clusters can be created.
|
|
ZONE = 1;
|
|
|
|
// A GKE Location where Regional clusters can be created.
|
|
REGION = 2;
|
|
}
|
|
|
|
// Contains the type of location this Location is for.
|
|
// Regional or Zonal.
|
|
LocationType type = 1;
|
|
|
|
// Contains the name of the resource requested.
|
|
// Specified in the format 'projects/*/locations/*'.
|
|
string name = 2;
|
|
|
|
// Whether the location is recomended for GKE cluster scheduling.
|
|
bool recommended = 3;
|
|
}
|
|
|
|
// StatusCondition describes why a cluster or a node pool has a certain status
|
|
// (e.g., ERROR or DEGRADED).
|
|
message StatusCondition {
|
|
// Code for each condition
|
|
enum Code {
|
|
// UNKNOWN indicates a generic condition.
|
|
UNKNOWN = 0;
|
|
|
|
// GCE_STOCKOUT indicates a Google Compute Engine stockout.
|
|
GCE_STOCKOUT = 1;
|
|
|
|
// GKE_SERVICE_ACCOUNT_DELETED indicates that the user deleted their robot
|
|
// service account.
|
|
GKE_SERVICE_ACCOUNT_DELETED = 2;
|
|
|
|
// Google Compute Engine quota was exceeded.
|
|
GCE_QUOTA_EXCEEDED = 3;
|
|
|
|
// Cluster state was manually changed by an SRE due to a system logic error.
|
|
// More codes TBA
|
|
SET_BY_OPERATOR = 4;
|
|
}
|
|
|
|
// Machine-friendly representation of the condition
|
|
Code code = 1;
|
|
|
|
// Human-friendly representation of the condition
|
|
string message = 2;
|
|
}
|
|
|
|
// NetworkConfig reports the relative names of network & subnetwork.
|
|
message NetworkConfig {
|
|
// Output only. The relative name of the Google Compute Engine
|
|
// [network][google.container.v1beta1.NetworkConfig.network](/compute/docs/networks-and-firewalls#networks) to which
|
|
// the cluster is connected.
|
|
// Example: projects/my-project/global/networks/my-network
|
|
string network = 1;
|
|
|
|
// Output only. The relative name of the Google Compute Engine
|
|
// [subnetwork](/compute/docs/vpc) to which the cluster is connected.
|
|
// Example: projects/my-project/regions/us-central1/subnetworks/my-subnet
|
|
string subnetwork = 2;
|
|
}
|
|
|
|
// ListUsableSubnetworksRequest requests the list of usable subnetworks.
|
|
// available to a user for creating clusters.
|
|
message ListUsableSubnetworksRequest {
|
|
// The parent project where subnetworks are usable.
|
|
// Specified in the format 'projects/*'.
|
|
string parent = 1;
|
|
|
|
// Filtering currently only supports equality on the networkProjectId and must
|
|
// be in the form: "networkProjectId=[PROJECTID]", where `networkProjectId`
|
|
// is the project which owns the listed subnetworks. This defaults to the
|
|
// parent project ID.
|
|
string filter = 2;
|
|
|
|
// The max number of results per page that should be returned. If the number
|
|
// of available results is larger than `page_size`, a `next_page_token` is
|
|
// returned which can be used to get the next page of results in subsequent
|
|
// requests. Acceptable values are 0 to 500, inclusive. (Default: 500)
|
|
int32 page_size = 3;
|
|
|
|
// Specifies a page token to use. Set this to the nextPageToken returned by
|
|
// previous list requests to get the next page of results.
|
|
string page_token = 4;
|
|
}
|
|
|
|
// ListUsableSubnetworksResponse is the response of
|
|
// ListUsableSubnetworksRequest.
|
|
message ListUsableSubnetworksResponse {
|
|
// A list of usable subnetworks in the specified network project.
|
|
repeated UsableSubnetwork subnetworks = 1;
|
|
|
|
// This token allows you to get the next page of results for list requests.
|
|
// If the number of results is larger than `page_size`, use the
|
|
// `next_page_token` as a value for the query parameter `page_token` in the
|
|
// next request. The value will become empty when there are no more pages.
|
|
string next_page_token = 2;
|
|
}
|
|
|
|
// Secondary IP range of a usable subnetwork.
|
|
message UsableSubnetworkSecondaryRange {
|
|
// Status shows the current usage of a secondary IP range.
|
|
enum Status {
|
|
// UNKNOWN is the zero value of the Status enum. It's not a valid status.
|
|
UNKNOWN = 0;
|
|
|
|
// UNUSED denotes that this range is unclaimed by any cluster.
|
|
UNUSED = 1;
|
|
|
|
// IN_USE_SERVICE denotes that this range is claimed by a cluster for
|
|
// services. It cannot be used for other clusters.
|
|
IN_USE_SERVICE = 2;
|
|
|
|
// IN_USE_SHAREABLE_POD denotes this range was created by the network admin
|
|
// and is currently claimed by a cluster for pods. It can only be used by
|
|
// other clusters as a pod range.
|
|
IN_USE_SHAREABLE_POD = 3;
|
|
|
|
// IN_USE_MANAGED_POD denotes this range was created by GKE and is claimed
|
|
// for pods. It cannot be used for other clusters.
|
|
IN_USE_MANAGED_POD = 4;
|
|
}
|
|
|
|
// The name associated with this subnetwork secondary range, used when adding
|
|
// an alias IP range to a VM instance.
|
|
string range_name = 1;
|
|
|
|
// The range of IP addresses belonging to this subnetwork secondary range.
|
|
string ip_cidr_range = 2;
|
|
|
|
// This field is to determine the status of the secondary range programmably.
|
|
Status status = 3;
|
|
}
|
|
|
|
// UsableSubnetwork resource returns the subnetwork name, its associated network
|
|
// and the primary CIDR range.
|
|
message UsableSubnetwork {
|
|
// Subnetwork Name.
|
|
// Example: projects/my-project/regions/us-central1/subnetworks/my-subnet
|
|
string subnetwork = 1;
|
|
|
|
// Network Name.
|
|
// Example: projects/my-project/global/networks/my-network
|
|
string network = 2;
|
|
|
|
// The range of internal addresses that are owned by this subnetwork.
|
|
string ip_cidr_range = 3;
|
|
|
|
// Secondary IP ranges.
|
|
repeated UsableSubnetworkSecondaryRange secondary_ip_ranges = 4;
|
|
|
|
// A human readable status message representing the reasons for cases where
|
|
// the caller cannot use the secondary ranges under the subnet. For example if
|
|
// the secondary_ip_ranges is empty due to a permission issue, an insufficient
|
|
// permission message will be given by status_message.
|
|
string status_message = 5;
|
|
}
|
|
|
|
// VerticalPodAutoscaling contains global, per-cluster information
|
|
// required by Vertical Pod Autoscaler to automatically adjust
|
|
// the resources of pods controlled by it.
|
|
message VerticalPodAutoscaling {
|
|
// Enables vertical pod autoscaling.
|
|
bool enabled = 1;
|
|
}
|
|
|
|
// Constraints applied to pods.
|
|
message MaxPodsConstraint {
|
|
// Constraint enforced on the max num of pods per node.
|
|
int64 max_pods_per_node = 1;
|
|
}
|
|
|
|
// Configuration for exporting cluster resource usages.
|
|
message ResourceUsageExportConfig {
|
|
// Parameters for using BigQuery as the destination of resource usage export.
|
|
message BigQueryDestination {
|
|
// The ID of a BigQuery Dataset.
|
|
string dataset_id = 1;
|
|
}
|
|
|
|
// Configuration to use BigQuery as usage export destination.
|
|
BigQueryDestination bigquery_destination = 1;
|
|
|
|
// Whether to enable network egress metering for this cluster. If enabled, a
|
|
// daemonset will be created in the cluster to meter network egress traffic.
|
|
bool enable_network_egress_metering = 2;
|
|
}
|
|
|