cluster_service.proto 69 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145114611471148114911501151115211531154115511561157115811591160116111621163116411651166116711681169117011711172117311741175117611771178117911801181118211831184118511861187118811891190119111921193119411951196119711981199120012011202120312041205120612071208120912101211121212131214121512161217121812191220122112221223122412251226122712281229123012311232123312341235123612371238123912401241124212431244124512461247124812491250125112521253125412551256125712581259126012611262126312641265126612671268126912701271127212731274127512761277127812791280128112821283128412851286128712881289129012911292129312941295129612971298129913001301130213031304130513061307130813091310131113121313131413151316131713181319132013211322132313241325132613271328132913301331133213331334133513361337133813391340134113421343134413451346134713481349135013511352135313541355135613571358135913601361136213631364136513661367136813691370137113721373137413751376137713781379138013811382138313841385138613871388138913901391139213931394139513961397139813991400140114021403140414051406140714081409141014111412141314141415141614171418141914201421142214231424142514261427142814291430143114321433143414351436143714381439144014411442144314441445144614471448144914501451145214531454145514561457145814591460146114621463146414651466146714681469147014711472147314741475147614771478147914801481148214831484148514861487148814891490149114921493149414951496149714981499150015011502150315041505150615071508150915101511151215131514151515161517151815191520152115221523152415251526152715281529153015311532153315341535153615371538153915401541154215431544154515461547154815491550155115521553155415551556155715581559156015611562156315641565156615671568156915701571157215731574157515761577157815791580158115821583158415851586158715881589159015911592159315941595159615971598159916001601160216031604160516061607160816091610161116121613161416151616161716181619162016211622162316241625162616271628162916301631163216331634163516361637163816391640164116421643164416451646164716481649165016511652165316541655165616571658165916601661166216631664166516661667166816691670167116721673167416751676167716781679168016811682168316841685168616871688168916901691169216931694169516961697169816991700170117021703170417051706170717081709171017111712171317141715171617171718171917201721172217231724172517261727172817291730173117321733173417351736173717381739174017411742174317441745174617471748174917501751175217531754175517561757175817591760176117621763176417651766176717681769177017711772177317741775177617771778177917801781178217831784178517861787178817891790179117921793179417951796179717981799180018011802180318041805180618071808180918101811181218131814181518161817181818191820182118221823182418251826182718281829183018311832183318341835183618371838183918401841184218431844184518461847184818491850185118521853185418551856185718581859186018611862186318641865186618671868186918701871187218731874187518761877187818791880188118821883188418851886188718881889189018911892189318941895189618971898189919001901190219031904190519061907190819091910191119121913191419151916191719181919192019211922192319241925192619271928192919301931193219331934
  1. // Copyright 2017 Google Inc.
  2. //
  3. // Licensed under the Apache License, Version 2.0 (the "License");
  4. // you may not use this file except in compliance with the License.
  5. // You may obtain a copy of the License at
  6. //
  7. // http://www.apache.org/licenses/LICENSE-2.0
  8. //
  9. // Unless required by applicable law or agreed to in writing, software
  10. // distributed under the License is distributed on an "AS IS" BASIS,
  11. // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  12. // See the License for the specific language governing permissions and
  13. // limitations under the License.
  14. syntax = "proto3";
  15. package google.container.v1alpha1;
  16. import "google/api/annotations.proto";
  17. import "google/protobuf/empty.proto";
  18. option go_package = "google.golang.org/genproto/googleapis/container/v1alpha1;container";
  19. option java_multiple_files = true;
  20. option java_outer_classname = "ClusterServiceProto";
  21. option java_package = "com.google.container.v1alpha1";
  22. option csharp_namespace = "Google.Cloud.Container.V1Alpha1";
  23. option php_namespace = "Google\\Cloud\\Container\\V1alpha1";
  24. // Google Container Engine Cluster Manager v1alpha1
  25. service ClusterManager {
  26. // Lists all clusters owned by a project in either the specified zone or all
  27. // zones.
  28. rpc ListClusters(ListClustersRequest) returns (ListClustersResponse) {
  29. option (google.api.http) = { get: "/v1alpha1/{parent=projects/*/locations/*}/clusters" };
  30. }
  31. // Gets the details of a specific cluster.
  32. rpc GetCluster(GetClusterRequest) returns (Cluster) {
  33. option (google.api.http) = { get: "/v1alpha1/{name=projects/*/locations/*/clusters/*}" };
  34. }
  35. // Creates a cluster, consisting of the specified number and type of Google
  36. // Compute Engine instances.
  37. //
  38. // By default, the cluster is created in the project's
  39. // [default network](/compute/docs/networks-and-firewalls#networks).
  40. //
  41. // One firewall is added for the cluster. After cluster creation,
  42. // the cluster creates routes for each node to allow the containers
  43. // on that node to communicate with all other instances in the
  44. // cluster.
  45. //
  46. // Finally, an entry is added to the project's global metadata indicating
  47. // which CIDR range is being used by the cluster.
  48. rpc CreateCluster(CreateClusterRequest) returns (Operation) {
  49. option (google.api.http) = { post: "/v1alpha1/{parent=projects/*/locations/*}/clusters" body: "*" };
  50. }
  51. // Updates the settings of a specific cluster.
  52. rpc UpdateCluster(UpdateClusterRequest) returns (Operation) {
  53. option (google.api.http) = { put: "/v1alpha1/{name=projects/*/locations/*/clusters/*}" body: "*" };
  54. }
  55. // Updates the version and/or iamge type of a specific node pool.
  56. rpc UpdateNodePool(UpdateNodePoolRequest) returns (Operation) {
  57. option (google.api.http) = { put: "/v1alpha1/{name=projects/*/locations/*/clusters/*/nodePools/*}" body: "*" };
  58. }
  59. // Sets the autoscaling settings of a specific node pool.
  60. rpc SetNodePoolAutoscaling(SetNodePoolAutoscalingRequest) returns (Operation) {
  61. option (google.api.http) = { post: "/v1alpha1/{name=projects/*/locations/*/clusters/*/nodePools/*}:setAutoscaling" body: "*" };
  62. }
  63. // Sets the logging service of a specific cluster.
  64. rpc SetLoggingService(SetLoggingServiceRequest) returns (Operation) {
  65. option (google.api.http) = { post: "/v1alpha1/{name=projects/*/locations/*/clusters/*}:setLogging" body: "*" };
  66. }
  67. // Sets the monitoring service of a specific cluster.
  68. rpc SetMonitoringService(SetMonitoringServiceRequest) returns (Operation) {
  69. option (google.api.http) = { post: "/v1alpha1/{name=projects/*/locations/*/clusters/*}:setMonitoring" body: "*" };
  70. }
  71. // Sets the addons of a specific cluster.
  72. rpc SetAddonsConfig(SetAddonsConfigRequest) returns (Operation) {
  73. option (google.api.http) = { post: "/v1alpha1/{name=projects/*/locations/*/clusters/*}:setAddons" body: "*" };
  74. }
  75. // Sets the locations of a specific cluster.
  76. rpc SetLocations(SetLocationsRequest) returns (Operation) {
  77. option (google.api.http) = { post: "/v1alpha1/{name=projects/*/locations/*/clusters/*}:setLocations" body: "*" };
  78. }
  79. // Updates the master of a specific cluster.
  80. rpc UpdateMaster(UpdateMasterRequest) returns (Operation) {
  81. option (google.api.http) = { post: "/v1alpha1/{name=projects/*/locations/*/clusters/*}:updateMaster" body: "*" };
  82. }
  83. // Used to set master auth materials. Currently supports :-
  84. // Changing the admin password of a specific cluster.
  85. // This can be either via password generation or explicitly set.
  86. // Modify basic_auth.csv and reset the K8S API server.
  87. rpc SetMasterAuth(SetMasterAuthRequest) returns (Operation) {
  88. option (google.api.http) = { post: "/v1alpha1/{name=projects/*/locations/*/clusters/*}:setMasterAuth" body: "*" };
  89. }
  90. // Deletes the cluster, including the Kubernetes endpoint and all worker
  91. // nodes.
  92. //
  93. // Firewalls and routes that were configured during cluster creation
  94. // are also deleted.
  95. //
  96. // Other Google Compute Engine resources that might be in use by the cluster
  97. // (e.g. load balancer resources) will not be deleted if they weren't present
  98. // at the initial create time.
  99. rpc DeleteCluster(DeleteClusterRequest) returns (Operation) {
  100. option (google.api.http) = { delete: "/v1alpha1/{name=projects/*/locations/*/clusters/*}" };
  101. }
  102. // Lists all operations in a project in a specific zone or all zones.
  103. rpc ListOperations(ListOperationsRequest) returns (ListOperationsResponse) {
  104. option (google.api.http) = { get: "/v1alpha1/{parent=projects/*/locations/*}/operations" };
  105. }
  106. // Gets the specified operation.
  107. rpc GetOperation(GetOperationRequest) returns (Operation) {
  108. option (google.api.http) = { get: "/v1alpha1/{name=projects/*/locations/*/operations/*}" };
  109. }
  110. // Cancels the specified operation.
  111. rpc CancelOperation(CancelOperationRequest) returns (google.protobuf.Empty) {
  112. option (google.api.http) = { post: "/v1alpha1/{name=projects/*/locations/*/operations/*}:cancel" body: "*" };
  113. }
  114. // Returns configuration info about the Container Engine service.
  115. rpc GetServerConfig(GetServerConfigRequest) returns (ServerConfig) {
  116. option (google.api.http) = { get: "/v1alpha1/{name=projects/*/locations/*}/serverConfig" };
  117. }
  118. // Lists the node pools for a cluster.
  119. rpc ListNodePools(ListNodePoolsRequest) returns (ListNodePoolsResponse) {
  120. option (google.api.http) = { get: "/v1alpha1/{parent=projects/*/locations/*/clusters/*}/nodePools" };
  121. }
  122. // Retrieves the node pool requested.
  123. rpc GetNodePool(GetNodePoolRequest) returns (NodePool) {
  124. option (google.api.http) = { get: "/v1alpha1/{name=projects/*/locations/*/clusters/*/nodePools/*}" };
  125. }
  126. // Creates a node pool for a cluster.
  127. rpc CreateNodePool(CreateNodePoolRequest) returns (Operation) {
  128. option (google.api.http) = { post: "/v1alpha1/{parent=projects/*/locations/*/clusters/*}/nodePools" body: "*" };
  129. }
  130. // Deletes a node pool from a cluster.
  131. rpc DeleteNodePool(DeleteNodePoolRequest) returns (Operation) {
  132. option (google.api.http) = { delete: "/v1alpha1/{name=projects/*/locations/*/clusters/*/nodePools/*}" };
  133. }
  134. // Roll back the previously Aborted or Failed NodePool upgrade.
  135. // This will be an no-op if the last upgrade successfully completed.
  136. rpc RollbackNodePoolUpgrade(RollbackNodePoolUpgradeRequest) returns (Operation) {
  137. option (google.api.http) = { post: "/v1alpha1/{name=projects/*/locations/*/clusters/*/nodePools/*}:rollback" body: "*" };
  138. }
  139. // Sets the NodeManagement options for a node pool.
  140. rpc SetNodePoolManagement(SetNodePoolManagementRequest) returns (Operation) {
  141. option (google.api.http) = { post: "/v1alpha1/{name=projects/*/locations/*/clusters/*/nodePools/*}:setManagement" body: "*" };
  142. }
  143. // Sets labels on a cluster.
  144. rpc SetLabels(SetLabelsRequest) returns (Operation) {
  145. option (google.api.http) = { post: "/v1alpha1/{name=projects/*/locations/*/clusters/*}:setResourceLabels" body: "*" };
  146. }
  147. // Enables or disables the ABAC authorization mechanism on a cluster.
  148. rpc SetLegacyAbac(SetLegacyAbacRequest) returns (Operation) {
  149. option (google.api.http) = { post: "/v1alpha1/{name=projects/*/locations/*/clusters/*}:setLegacyAbac" body: "*" };
  150. }
  151. // Start master IP rotation.
  152. rpc StartIPRotation(StartIPRotationRequest) returns (Operation) {
  153. option (google.api.http) = { post: "/v1alpha1/{name=projects/*/locations/*/clusters/*}:startIpRotation" body: "*" };
  154. }
  155. // Completes master IP rotation.
  156. rpc CompleteIPRotation(CompleteIPRotationRequest) returns (Operation) {
  157. option (google.api.http) = { post: "/v1alpha1/{name=projects/*/locations/*/clusters/*}:completeIpRotation" body: "*" };
  158. }
  159. // Sets the size of a specific node pool.
  160. rpc SetNodePoolSize(SetNodePoolSizeRequest) returns (Operation) {
  161. option (google.api.http) = { post: "/v1alpha1/{name=projects/*/locations/*/clusters/*/nodePools/*}:setSize" body: "*" };
  162. }
  163. // Enables/Disables Network Policy for a cluster.
  164. rpc SetNetworkPolicy(SetNetworkPolicyRequest) returns (Operation) {
  165. option (google.api.http) = { post: "/v1alpha1/{name=projects/*/locations/*/clusters/*}:setNetworkPolicy" body: "*" };
  166. }
  167. // Sets the maintenance policy for a cluster.
  168. rpc SetMaintenancePolicy(SetMaintenancePolicyRequest) returns (Operation) {
  169. option (google.api.http) = { post: "/v1alpha1/{name=projects/*/locations/*/clusters/*}:setMaintenancePolicy" body: "*" };
  170. }
  171. }
  172. // Parameters that describe the nodes in a cluster.
  173. message NodeConfig {
  174. // The name of a Google Compute Engine [machine
  175. // type](/compute/docs/machine-types) (e.g.
  176. // `n1-standard-1`).
  177. //
  178. // If unspecified, the default machine type is
  179. // `n1-standard-1`.
  180. string machine_type = 1;
  181. // Size of the disk attached to each node, specified in GB.
  182. // The smallest allowed disk size is 10GB.
  183. //
  184. // If unspecified, the default disk size is 100GB.
  185. int32 disk_size_gb = 2;
  186. // The set of Google API scopes to be made available on all of the
  187. // node VMs under the "default" service account.
  188. //
  189. // The following scopes are recommended, but not required, and by default are
  190. // not included:
  191. //
  192. // * `https://www.googleapis.com/auth/compute` is required for mounting
  193. // persistent storage on your nodes.
  194. // * `https://www.googleapis.com/auth/devstorage.read_only` is required for
  195. // communicating with **gcr.io**
  196. // (the [Google Container Registry](/container-registry/)).
  197. //
  198. // If unspecified, no scopes are added, unless Cloud Logging or Cloud
  199. // Monitoring are enabled, in which case their required scopes will be added.
  200. repeated string oauth_scopes = 3;
  201. // The Google Cloud Platform Service Account to be used by the node VMs. If
  202. // no Service Account is specified, the "default" service account is used.
  203. string service_account = 9;
  204. // The metadata key/value pairs assigned to instances in the cluster.
  205. //
  206. // Keys must conform to the regexp [a-zA-Z0-9-_]+ and be less than 128 bytes
  207. // in length. These are reflected as part of a URL in the metadata server.
  208. // Additionally, to avoid ambiguity, keys must not conflict with any other
  209. // metadata keys for the project or be one of the four reserved keys:
  210. // "instance-template", "kube-env", "startup-script", and "user-data"
  211. //
  212. // Values are free-form strings, and only have meaning as interpreted by
  213. // the image running in the instance. The only restriction placed on them is
  214. // that each value's size must be less than or equal to 32 KB.
  215. //
  216. // The total size of all keys and values must be less than 512 KB.
  217. map<string, string> metadata = 4;
  218. // The image type to use for this node. Note that for a given image type,
  219. // the latest version of it will be used.
  220. string image_type = 5;
  221. // The map of Kubernetes labels (key/value pairs) to be applied to each node.
  222. // These will added in addition to any default label(s) that
  223. // Kubernetes may apply to the node.
  224. // In case of conflict in label keys, the applied set may differ depending on
  225. // the Kubernetes version -- it's best to assume the behavior is undefined
  226. // and conflicts should be avoided.
  227. // For more information, including usage and the valid values, see:
  228. // https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/
  229. map<string, string> labels = 6;
  230. // The number of local SSD disks to be attached to the node.
  231. //
  232. // The limit for this value is dependant upon the maximum number of
  233. // disks available on a machine per zone. See:
  234. // https://cloud.google.com/compute/docs/disks/local-ssd#local_ssd_limits
  235. // for more information.
  236. int32 local_ssd_count = 7;
  237. // The list of instance tags applied to all nodes. Tags are used to identify
  238. // valid sources or targets for network firewalls and are specified by
  239. // the client during cluster or node pool creation. Each tag within the list
  240. // must comply with RFC1035.
  241. repeated string tags = 8;
  242. // Whether the nodes are created as preemptible VM instances. See:
  243. // https://cloud.google.com/compute/docs/instances/preemptible for more
  244. // inforamtion about preemptible VM instances.
  245. bool preemptible = 10;
  246. // A list of hardware accelerators to be attached to each node.
  247. // See https://cloud.google.com/compute/docs/gpus for more information about
  248. // support for GPUs.
  249. repeated AcceleratorConfig accelerators = 11;
  250. // Minimum CPU platform to be used by this instance. The instance may be
  251. // scheduled on the specified or newer CPU platform. Applicable values are the
  252. // friendly names of CPU platforms, such as
  253. // <code>minCpuPlatform: &quot;Intel Haswell&quot;</code> or
  254. // <code>minCpuPlatform: &quot;Intel Sandy Bridge&quot;</code>. For more
  255. // information, read [how to specify min CPU platform](https://cloud.google.com/compute/docs/instances/specify-min-cpu-platform)
  256. string min_cpu_platform = 13;
  257. // List of kubernetes taints to be applied to each node.
  258. //
  259. // For more information, including usage and the valid values, see:
  260. // https://kubernetes.io/docs/concepts/configuration/taint-and-toleration/
  261. repeated NodeTaint taints = 15;
  262. }
  263. // Kubernetes taint is comprised of three fields: key, value, and effect. Effect
  264. // can only be one of three types: NoSchedule, PreferNoSchedule or NoExecute.
  265. //
  266. // For more information, including usage and the valid values, see:
  267. // https://kubernetes.io/docs/concepts/configuration/taint-and-toleration/
  268. message NodeTaint {
  269. // Possible values for Effect in taint.
  270. enum Effect {
  271. // Not set
  272. EFFECT_UNSPECIFIED = 0;
  273. // NoSchedule
  274. NO_SCHEDULE = 1;
  275. // PreferNoSchedule
  276. PREFER_NO_SCHEDULE = 2;
  277. // NoExecute
  278. NO_EXECUTE = 3;
  279. }
  280. // Key for taint.
  281. string key = 1;
  282. // Value for taint.
  283. string value = 2;
  284. // Effect for taint.
  285. Effect effect = 3;
  286. }
  287. // The authentication information for accessing the master endpoint.
  288. // Authentication can be done using HTTP basic auth or using client
  289. // certificates.
  290. message MasterAuth {
  291. // The username to use for HTTP basic authentication to the master endpoint.
  292. // For clusters v1.6.0 and later, you can disable basic authentication by
  293. // providing an empty username.
  294. string username = 1;
  295. // The password to use for HTTP basic authentication to the master endpoint.
  296. // Because the master endpoint is open to the Internet, you should create a
  297. // strong password. If a password is provided for cluster creation, username
  298. // must be non-empty.
  299. string password = 2;
  300. // Configuration for client certificate authentication on the cluster. If no
  301. // configuration is specified, a client certificate is issued.
  302. ClientCertificateConfig client_certificate_config = 3;
  303. // [Output only] Base64-encoded public certificate that is the root of
  304. // trust for the cluster.
  305. string cluster_ca_certificate = 100;
  306. // [Output only] Base64-encoded public certificate used by clients to
  307. // authenticate to the cluster endpoint.
  308. string client_certificate = 101;
  309. // [Output only] Base64-encoded private key used by clients to authenticate
  310. // to the cluster endpoint.
  311. string client_key = 102;
  312. }
  313. // Configuration for client certificates on the cluster.
  314. message ClientCertificateConfig {
  315. // Issue a client certificate.
  316. bool issue_client_certificate = 1;
  317. }
  318. // Configuration for the addons that can be automatically spun up in the
  319. // cluster, enabling additional functionality.
  320. message AddonsConfig {
  321. // Configuration for the HTTP (L7) load balancing controller addon, which
  322. // makes it easy to set up HTTP load balancers for services in a cluster.
  323. HttpLoadBalancing http_load_balancing = 1;
  324. // Configuration for the horizontal pod autoscaling feature, which
  325. // increases or decreases the number of replica pods a replication controller
  326. // has based on the resource usage of the existing pods.
  327. HorizontalPodAutoscaling horizontal_pod_autoscaling = 2;
  328. // Configuration for the Kubernetes Dashboard.
  329. KubernetesDashboard kubernetes_dashboard = 3;
  330. // Configuration for NetworkPolicy. This only tracks whether the addon
  331. // is enabled or not on the Master, it does not track whether network policy
  332. // is enabled for the nodes.
  333. NetworkPolicyConfig network_policy_config = 4;
  334. }
  335. // Configuration options for the HTTP (L7) load balancing controller addon,
  336. // which makes it easy to set up HTTP load balancers for services in a cluster.
  337. message HttpLoadBalancing {
  338. // Whether the HTTP Load Balancing controller is enabled in the cluster.
  339. // When enabled, it runs a small pod in the cluster that manages the load
  340. // balancers.
  341. bool disabled = 1;
  342. }
  343. // Configuration options for the horizontal pod autoscaling feature, which
  344. // increases or decreases the number of replica pods a replication controller
  345. // has based on the resource usage of the existing pods.
  346. message HorizontalPodAutoscaling {
  347. // Whether the Horizontal Pod Autoscaling feature is enabled in the cluster.
  348. // When enabled, it ensures that a Heapster pod is running in the cluster,
  349. // which is also used by the Cloud Monitoring service.
  350. bool disabled = 1;
  351. }
  352. // Configuration for the Kubernetes Dashboard.
  353. message KubernetesDashboard {
  354. // Whether the Kubernetes Dashboard is enabled for this cluster.
  355. bool disabled = 1;
  356. }
  357. // Configuration for NetworkPolicy. This only tracks whether the addon
  358. // is enabled or not on the Master, it does not track whether network policy
  359. // is enabled for the nodes.
  360. message NetworkPolicyConfig {
  361. // Whether NetworkPolicy is enabled for this cluster.
  362. bool disabled = 1;
  363. }
  364. // Configuration options for the master authorized networks feature. Enabled
  365. // master authorized networks will disallow all external traffic to access
  366. // Kubernetes master through HTTPS except traffic from the given CIDR blocks,
  367. // Google Compute Engine Public IPs and Google Prod IPs.
  368. message MasterAuthorizedNetworksConfig {
  369. // CidrBlock contains an optional name and one CIDR block.
  370. message CidrBlock {
  371. // display_name is an optional field for users to identify CIDR blocks.
  372. string display_name = 1;
  373. // cidr_block must be specified in CIDR notation.
  374. string cidr_block = 2;
  375. }
  376. // Whether or not master authorized networks is enabled.
  377. bool enabled = 1;
  378. // cidr_blocks define up to 10 external networks that could access
  379. // Kubernetes master through HTTPS.
  380. repeated CidrBlock cidr_blocks = 2;
  381. }
  382. // Configuration options for the NetworkPolicy feature.
  383. // https://kubernetes.io/docs/concepts/services-networking/networkpolicies/
  384. message NetworkPolicy {
  385. // Allowed Network Policy providers.
  386. enum Provider {
  387. // Not set
  388. PROVIDER_UNSPECIFIED = 0;
  389. // Tigera (Calico Felix).
  390. CALICO = 1;
  391. }
  392. // The selected network policy provider.
  393. Provider provider = 1;
  394. // Whether network policy is enabled on the cluster.
  395. bool enabled = 2;
  396. }
  397. // Configuration for controlling how IPs are allocated in the cluster.
  398. message IPAllocationPolicy {
  399. // Whether alias IPs will be used for pod IPs in the cluster.
  400. bool use_ip_aliases = 1;
  401. // Whether a new subnetwork will be created automatically for the cluster.
  402. //
  403. // This field is only applicable when `use_ip_aliases` is true.
  404. bool create_subnetwork = 2;
  405. // A custom subnetwork name to be used if `create_subnetwork` is true. If
  406. // this field is empty, then an automatic name will be chosen for the new
  407. // subnetwork.
  408. string subnetwork_name = 3;
  409. // This field is deprecated, use cluster_ipv4_cidr_block.
  410. string cluster_ipv4_cidr = 4;
  411. // This field is deprecated, use node_ipv4_cidr_block.
  412. string node_ipv4_cidr = 5;
  413. // This field is deprecated, use services_ipv4_cidr_block.
  414. string services_ipv4_cidr = 6;
  415. // The name of the secondary range to be used for the cluster CIDR
  416. // block. The secondary range will be used for pod IP
  417. // addresses. This must be an existing secondary range associated
  418. // with the cluster subnetwork.
  419. //
  420. // This field is only applicable if use_ip_aliases is true and
  421. // create_subnetwork is false.
  422. string cluster_secondary_range_name = 7;
  423. // The name of the secondary range to be used as for the services
  424. // CIDR block. The secondary range will be used for service
  425. // ClusterIPs. This must be an existing secondary range associated
  426. // with the cluster subnetwork.
  427. //
  428. // This field is only applicable with use_ip_aliases is true and
  429. // create_subnetwork is false.
  430. string services_secondary_range_name = 8;
  431. // The IP address range for the cluster pod IPs. If this field is set, then
  432. // `cluster.cluster_ipv4_cidr` must be left blank.
  433. //
  434. // This field is only applicable when `use_ip_aliases` is true.
  435. //
  436. // Set to blank to have a range chosen with the default size.
  437. //
  438. // Set to /netmask (e.g. `/14`) to have a range chosen with a specific
  439. // netmask.
  440. //
  441. // Set to a
  442. // [CIDR](http://en.wikipedia.org/wiki/Classless_Inter-Domain_Routing)
  443. // notation (e.g. `10.96.0.0/14`) from the RFC-1918 private networks (e.g.
  444. // `10.0.0.0/8`, `172.16.0.0/12`, `192.168.0.0/16`) to pick a specific range
  445. // to use.
  446. string cluster_ipv4_cidr_block = 9;
  447. // The IP address range of the instance IPs in this cluster.
  448. //
  449. // This is applicable only if `create_subnetwork` is true.
  450. //
  451. // Set to blank to have a range chosen with the default size.
  452. //
  453. // Set to /netmask (e.g. `/14`) to have a range chosen with a specific
  454. // netmask.
  455. //
  456. // Set to a
  457. // [CIDR](http://en.wikipedia.org/wiki/Classless_Inter-Domain_Routing)
  458. // notation (e.g. `10.96.0.0/14`) from the RFC-1918 private networks (e.g.
  459. // `10.0.0.0/8`, `172.16.0.0/12`, `192.168.0.0/16`) to pick a specific range
  460. // to use.
  461. string node_ipv4_cidr_block = 10;
  462. // The IP address range of the services IPs in this cluster. If blank, a range
  463. // will be automatically chosen with the default size.
  464. //
  465. // This field is only applicable when `use_ip_aliases` is true.
  466. //
  467. // Set to blank to have a range chosen with the default size.
  468. //
  469. // Set to /netmask (e.g. `/14`) to have a range chosen with a specific
  470. // netmask.
  471. //
  472. // Set to a
  473. // [CIDR](http://en.wikipedia.org/wiki/Classless_Inter-Domain_Routing)
  474. // notation (e.g. `10.96.0.0/14`) from the RFC-1918 private networks (e.g.
  475. // `10.0.0.0/8`, `172.16.0.0/12`, `192.168.0.0/16`) to pick a specific range
  476. // to use.
  477. string services_ipv4_cidr_block = 11;
  478. }
  479. // Configuration for the PodSecurityPolicy feature.
  480. message PodSecurityPolicyConfig {
  481. // Enable the PodSecurityPolicy controller for this cluster. If enabled, pods
  482. // must be valid under a PodSecurityPolicy to be created.
  483. bool enabled = 1;
  484. }
  485. // A Google Container Engine cluster.
  486. message Cluster {
  487. // The current status of the cluster.
  488. enum Status {
  489. // Not set.
  490. STATUS_UNSPECIFIED = 0;
  491. // The PROVISIONING state indicates the cluster is being created.
  492. PROVISIONING = 1;
  493. // The RUNNING state indicates the cluster has been created and is fully
  494. // usable.
  495. RUNNING = 2;
  496. // The RECONCILING state indicates that some work is actively being done on
  497. // the cluster, such as upgrading the master or node software. Details can
  498. // be found in the `statusMessage` field.
  499. RECONCILING = 3;
  500. // The STOPPING state indicates the cluster is being deleted.
  501. STOPPING = 4;
  502. // The ERROR state indicates the cluster may be unusable. Details
  503. // can be found in the `statusMessage` field.
  504. ERROR = 5;
  505. }
  506. // The name of this cluster. The name must be unique within this project
  507. // and zone, and can be up to 40 characters with the following restrictions:
  508. //
  509. // * Lowercase letters, numbers, and hyphens only.
  510. // * Must start with a letter.
  511. // * Must end with a number or a letter.
  512. string name = 1;
  513. // An optional description of this cluster.
  514. string description = 2;
  515. // The number of nodes to create in this cluster. You must ensure that your
  516. // Compute Engine <a href="/compute/docs/resource-quotas">resource quota</a>
  517. // is sufficient for this number of instances. You must also have available
  518. // firewall and routes quota.
  519. // For requests, this field should only be used in lieu of a
  520. // "node_pool" object, since this configuration (along with the
  521. // "node_config") will be used to create a "NodePool" object with an
  522. // auto-generated name. Do not use this and a node_pool at the same time.
  523. int32 initial_node_count = 3;
  524. // Parameters used in creating the cluster's nodes.
  525. // See `nodeConfig` for the description of its properties.
  526. // For requests, this field should only be used in lieu of a
  527. // "node_pool" object, since this configuration (along with the
  528. // "initial_node_count") will be used to create a "NodePool" object with an
  529. // auto-generated name. Do not use this and a node_pool at the same time.
  530. // For responses, this field will be populated with the node configuration of
  531. // the first node pool.
  532. //
  533. // If unspecified, the defaults are used.
  534. NodeConfig node_config = 4;
  535. // The authentication information for accessing the master endpoint.
  536. MasterAuth master_auth = 5;
  537. // The logging service the cluster should use to write logs.
  538. // Currently available options:
  539. //
  540. // * `logging.googleapis.com` - the Google Cloud Logging service.
  541. // * `none` - no logs will be exported from the cluster.
  542. // * if left as an empty string,`logging.googleapis.com` will be used.
  543. string logging_service = 6;
  544. // The monitoring service the cluster should use to write metrics.
  545. // Currently available options:
  546. //
  547. // * `monitoring.googleapis.com` - the Google Cloud Monitoring service.
  548. // * `none` - no metrics will be exported from the cluster.
  549. // * if left as an empty string, `monitoring.googleapis.com` will be used.
  550. string monitoring_service = 7;
  551. // The name of the Google Compute Engine
  552. // [network](/compute/docs/networks-and-firewalls#networks) to which the
  553. // cluster is connected. If left unspecified, the `default` network
  554. // will be used.
  555. string network = 8;
  556. // The IP address range of the container pods in this cluster, in
  557. // [CIDR](http://en.wikipedia.org/wiki/Classless_Inter-Domain_Routing)
  558. // notation (e.g. `10.96.0.0/14`). Leave blank to have
  559. // one automatically chosen or specify a `/14` block in `10.0.0.0/8`.
  560. string cluster_ipv4_cidr = 9;
  561. // Configurations for the various addons available to run in the cluster.
  562. AddonsConfig addons_config = 10;
  563. // The name of the Google Compute Engine
  564. // [subnetwork](/compute/docs/subnetworks) to which the
  565. // cluster is connected.
  566. string subnetwork = 11;
  567. // The node pools associated with this cluster.
  568. // This field should not be set if "node_config" or "initial_node_count" are
  569. // specified.
  570. repeated NodePool node_pools = 12;
  571. // The list of Google Compute Engine
  572. // [locations](/compute/docs/zones#available) in which the cluster's nodes
  573. // should be located.
  574. repeated string locations = 13;
  575. // Kubernetes alpha features are enabled on this cluster. This includes alpha
  576. // API groups (e.g. v1alpha1) and features that may not be production ready in
  577. // the kubernetes version of the master and nodes.
  578. // The cluster has no SLA for uptime and master/node upgrades are disabled.
  579. // Alpha enabled clusters are automatically deleted thirty days after
  580. // creation.
  581. bool enable_kubernetes_alpha = 14;
  582. // Configuration options for the NetworkPolicy feature.
  583. NetworkPolicy network_policy = 19;
  584. // Configuration for cluster IP allocation.
  585. IPAllocationPolicy ip_allocation_policy = 20;
  586. // The configuration options for master authorized networks feature.
  587. MasterAuthorizedNetworksConfig master_authorized_networks_config = 22;
  588. // Configure the maintenance policy for this cluster.
  589. MaintenancePolicy maintenance_policy = 23;
  590. // Configuration for the PodSecurityPolicy feature.
  591. PodSecurityPolicyConfig pod_security_policy_config = 25;
  592. // [Output only] Server-defined URL for the resource.
  593. string self_link = 100;
  594. // [Output only] The name of the Google Compute Engine
  595. // [zone](/compute/docs/zones#available) in which the cluster
  596. // resides.
  597. // This field is deprecated, use location instead.
  598. string zone = 101;
  599. // [Output only] The IP address of this cluster's master endpoint.
  600. // The endpoint can be accessed from the internet at
  601. // `https://username:password@endpoint/`.
  602. //
  603. // See the `masterAuth` property of this resource for username and
  604. // password information.
  605. string endpoint = 102;
  606. // The initial Kubernetes version for this cluster. Valid versions are those
  607. // found in validMasterVersions returned by getServerConfig. The version can
  608. // be upgraded over time; such upgrades are reflected in
  609. // currentMasterVersion and currentNodeVersion.
  610. string initial_cluster_version = 103;
  611. // [Output only] The current software version of the master endpoint.
  612. string current_master_version = 104;
  613. // [Output only] The current version of the node software components.
  614. // If they are currently at multiple versions because they're in the process
  615. // of being upgraded, this reflects the minimum version of all nodes.
  616. string current_node_version = 105;
  617. // [Output only] The time the cluster was created, in
  618. // [RFC3339](https://www.ietf.org/rfc/rfc3339.txt) text format.
  619. string create_time = 106;
  620. // [Output only] The current status of this cluster.
  621. Status status = 107;
  622. // [Output only] Additional information about the current status of this
  623. // cluster, if available.
  624. string status_message = 108;
  625. // [Output only] The size of the address space on each node for hosting
  626. // containers. This is provisioned from within the `container_ipv4_cidr`
  627. // range.
  628. int32 node_ipv4_cidr_size = 109;
  629. // [Output only] The IP address range of the Kubernetes services in
  630. // this cluster, in
  631. // [CIDR](http://en.wikipedia.org/wiki/Classless_Inter-Domain_Routing)
  632. // notation (e.g. `1.2.3.4/29`). Service addresses are
  633. // typically put in the last `/16` from the container CIDR.
  634. string services_ipv4_cidr = 110;
  635. // [Output only] The resource URLs of [instance
  636. // groups](/compute/docs/instance-groups/) associated with this
  637. // cluster.
  638. repeated string instance_group_urls = 111;
  639. // [Output only] The number of nodes currently in the cluster.
  640. int32 current_node_count = 112;
  641. // [Output only] The time the cluster will be automatically
  642. // deleted in [RFC3339](https://www.ietf.org/rfc/rfc3339.txt) text format.
  643. string expire_time = 113;
  644. // [Output only] The name of the Google Compute Engine
  645. // [zone](/compute/docs/regions-zones/regions-zones#available) or
  646. // [region](/compute/docs/regions-zones/regions-zones#available) in which
  647. // the cluster resides.
  648. string location = 114;
  649. }
  650. // ClusterUpdate describes an update to the cluster. Exactly one update can
  651. // be applied to a cluster with each request, so at most one field can be
  652. // provided.
  653. message ClusterUpdate {
  654. // The Kubernetes version to change the nodes to (typically an
  655. // upgrade). Use `-` to upgrade to the latest version supported by
  656. // the server.
  657. string desired_node_version = 4;
  658. // The monitoring service the cluster should use to write metrics.
  659. // Currently available options:
  660. //
  661. // * "monitoring.googleapis.com" - the Google Cloud Monitoring service
  662. // * "none" - no metrics will be exported from the cluster
  663. string desired_monitoring_service = 5;
  664. // Configurations for the various addons available to run in the cluster.
  665. AddonsConfig desired_addons_config = 6;
  666. // The node pool to be upgraded. This field is mandatory if
  667. // "desired_node_version", "desired_image_family" or
  668. // "desired_node_pool_autoscaling" is specified and there is more than one
  669. // node pool on the cluster.
  670. string desired_node_pool_id = 7;
  671. // The desired image type for the node pool.
  672. // NOTE: Set the "desired_node_pool" field as well.
  673. string desired_image_type = 8;
  674. // Autoscaler configuration for the node pool specified in
  675. // desired_node_pool_id. If there is only one pool in the
  676. // cluster and desired_node_pool_id is not provided then
  677. // the change applies to that single node pool.
  678. NodePoolAutoscaling desired_node_pool_autoscaling = 9;
  679. // The desired list of Google Compute Engine
  680. // [locations](/compute/docs/zones#available) in which the cluster's nodes
  681. // should be located. Changing the locations a cluster is in will result
  682. // in nodes being either created or removed from the cluster, depending on
  683. // whether locations are being added or removed.
  684. //
  685. // This list must always include the cluster's primary zone.
  686. repeated string desired_locations = 10;
  687. // The desired configuration options for master authorized networks feature.
  688. MasterAuthorizedNetworksConfig desired_master_authorized_networks_config = 12;
  689. // The desired configuration options for the PodSecurityPolicy feature.
  690. PodSecurityPolicyConfig desired_pod_security_policy_config = 14;
  691. // The Kubernetes version to change the master to. The only valid value is the
  692. // latest supported version. Use "-" to have the server automatically select
  693. // the latest version.
  694. string desired_master_version = 100;
  695. }
  696. // This operation resource represents operations that may have happened or are
  697. // happening on the cluster. All fields are output only.
  698. message Operation {
  699. // Current status of the operation.
  700. enum Status {
  701. // Not set.
  702. STATUS_UNSPECIFIED = 0;
  703. // The operation has been created.
  704. PENDING = 1;
  705. // The operation is currently running.
  706. RUNNING = 2;
  707. // The operation is done, either cancelled or completed.
  708. DONE = 3;
  709. // The operation is aborting.
  710. ABORTING = 4;
  711. }
  712. // Operation type.
  713. enum Type {
  714. // Not set.
  715. TYPE_UNSPECIFIED = 0;
  716. // Cluster create.
  717. CREATE_CLUSTER = 1;
  718. // Cluster delete.
  719. DELETE_CLUSTER = 2;
  720. // A master upgrade.
  721. UPGRADE_MASTER = 3;
  722. // A node upgrade.
  723. UPGRADE_NODES = 4;
  724. // Cluster repair.
  725. REPAIR_CLUSTER = 5;
  726. // Cluster update.
  727. UPDATE_CLUSTER = 6;
  728. // Node pool create.
  729. CREATE_NODE_POOL = 7;
  730. // Node pool delete.
  731. DELETE_NODE_POOL = 8;
  732. // Set node pool management.
  733. SET_NODE_POOL_MANAGEMENT = 9;
  734. // Automatic node pool repair.
  735. AUTO_REPAIR_NODES = 10;
  736. // Automatic node upgrade.
  737. AUTO_UPGRADE_NODES = 11;
  738. // Set labels.
  739. SET_LABELS = 12;
  740. // Set/generate master auth materials
  741. SET_MASTER_AUTH = 13;
  742. // Set node pool size.
  743. SET_NODE_POOL_SIZE = 14;
  744. // Updates network policy for a cluster.
  745. SET_NETWORK_POLICY = 15;
  746. // Set the maintenance policy.
  747. SET_MAINTENANCE_POLICY = 16;
  748. }
  749. // The server-assigned ID for the operation.
  750. string name = 1;
  751. // The name of the Google Compute Engine
  752. // [zone](/compute/docs/zones#available) in which the operation
  753. // is taking place.
  754. // This field is deprecated, use location instead.
  755. string zone = 2;
  756. // The operation type.
  757. Type operation_type = 3;
  758. // The current status of the operation.
  759. Status status = 4;
  760. // Detailed operation progress, if available.
  761. string detail = 8;
  762. // If an error has occurred, a textual description of the error.
  763. string status_message = 5;
  764. // Server-defined URL for the resource.
  765. string self_link = 6;
  766. // Server-defined URL for the target of the operation.
  767. string target_link = 7;
  768. // [Output only] The name of the Google Compute Engine
  769. // [zone](/compute/docs/regions-zones/regions-zones#available) or
  770. // [region](/compute/docs/regions-zones/regions-zones#available) in which
  771. // the cluster resides.
  772. string location = 9;
  773. // [Output only] The time the operation started, in
  774. // [RFC3339](https://www.ietf.org/rfc/rfc3339.txt) text format.
  775. string start_time = 10;
  776. // [Output only] The time the operation completed, in
  777. // [RFC3339](https://www.ietf.org/rfc/rfc3339.txt) text format.
  778. string end_time = 11;
  779. }
  780. // CreateClusterRequest creates a cluster.
  781. message CreateClusterRequest {
  782. // The Google Developers Console [project ID or project
  783. // number](https://support.google.com/cloud/answer/6158840).
  784. // This field is deprecated, use parent instead.
  785. string project_id = 1;
  786. // The name of the Google Compute Engine
  787. // [zone](/compute/docs/zones#available) in which the cluster
  788. // resides.
  789. // This field is deprecated, use parent instead.
  790. string zone = 2;
  791. // A [cluster
  792. // resource](/container-engine/reference/rest/v1alpha1/projects.zones.clusters)
  793. Cluster cluster = 3;
  794. // The parent (project and location) where the cluster will be created.
  795. // Specified in the format 'projects/*/locations/*'.
  796. string parent = 5;
  797. }
  798. // GetClusterRequest gets the settings of a cluster.
  799. message GetClusterRequest {
  800. // The Google Developers Console [project ID or project
  801. // number](https://support.google.com/cloud/answer/6158840).
  802. // This field is deprecated, use name instead.
  803. string project_id = 1;
  804. // The name of the Google Compute Engine
  805. // [zone](/compute/docs/zones#available) in which the cluster
  806. // resides.
  807. // This field is deprecated, use name instead.
  808. string zone = 2;
  809. // The name of the cluster to retrieve.
  810. // This field is deprecated, use name instead.
  811. string cluster_id = 3;
  812. // The name (project, location, cluster) of the cluster to retrieve.
  813. // Specified in the format 'projects/*/locations/*/clusters/*'.
  814. string name = 5;
  815. }
  816. // UpdateClusterRequest updates the settings of a cluster.
  817. message UpdateClusterRequest {
  818. // The Google Developers Console [project ID or project
  819. // number](https://support.google.com/cloud/answer/6158840).
  820. // This field is deprecated, use name instead.
  821. string project_id = 1;
  822. // The name of the Google Compute Engine
  823. // [zone](/compute/docs/zones#available) in which the cluster
  824. // resides.
  825. // This field is deprecated, use name instead.
  826. string zone = 2;
  827. // The name of the cluster to upgrade.
  828. // This field is deprecated, use name instead.
  829. string cluster_id = 3;
  830. // A description of the update.
  831. ClusterUpdate update = 4;
  832. // The name (project, location, cluster) of the cluster to update.
  833. // Specified in the format 'projects/*/locations/*/clusters/*'.
  834. string name = 5;
  835. }
  836. // SetNodePoolVersionRequest updates the version of a node pool.
  837. message UpdateNodePoolRequest {
  838. // The Google Developers Console [project ID or project
  839. // number](https://support.google.com/cloud/answer/6158840).
  840. // This field is deprecated, use name instead.
  841. string project_id = 1;
  842. // The name of the Google Compute Engine
  843. // [zone](/compute/docs/zones#available) in which the cluster
  844. // resides.
  845. // This field is deprecated, use name instead.
  846. string zone = 2;
  847. // The name of the cluster to upgrade.
  848. // This field is deprecated, use name instead.
  849. string cluster_id = 3;
  850. // The name of the node pool to upgrade.
  851. // This field is deprecated, use name instead.
  852. string node_pool_id = 4;
  853. // The Kubernetes version to change the nodes to (typically an
  854. // upgrade). Use `-` to upgrade to the latest version supported by
  855. // the server.
  856. string node_version = 5;
  857. // The desired image type for the node pool.
  858. string image_type = 6;
  859. // The name (project, location, cluster, node pool) of the node pool to update.
  860. // Specified in the format 'projects/*/locations/*/clusters/*/nodePools/*'.
  861. string name = 8;
  862. }
  863. // SetNodePoolAutoscalingRequest sets the autoscaler settings of a node pool.
  864. message SetNodePoolAutoscalingRequest {
  865. // The Google Developers Console [project ID or project
  866. // number](https://support.google.com/cloud/answer/6158840).
  867. // This field is deprecated, use name instead.
  868. string project_id = 1;
  869. // The name of the Google Compute Engine
  870. // [zone](/compute/docs/zones#available) in which the cluster
  871. // resides.
  872. // This field is deprecated, use name instead.
  873. string zone = 2;
  874. // The name of the cluster to upgrade.
  875. // This field is deprecated, use name instead.
  876. string cluster_id = 3;
  877. // The name of the node pool to upgrade.
  878. // This field is deprecated, use name instead.
  879. string node_pool_id = 4;
  880. // Autoscaling configuration for the node pool.
  881. NodePoolAutoscaling autoscaling = 5;
  882. // The name (project, location, cluster, node pool) of the node pool to set
  883. // autoscaler settings. Specified in the format
  884. // 'projects/*/locations/*/clusters/*/nodePools/*'.
  885. string name = 6;
  886. }
  887. // SetLoggingServiceRequest sets the logging service of a cluster.
  888. message SetLoggingServiceRequest {
  889. // The Google Developers Console [project ID or project
  890. // number](https://support.google.com/cloud/answer/6158840).
  891. // This field is deprecated, use name instead.
  892. string project_id = 1;
  893. // The name of the Google Compute Engine
  894. // [zone](/compute/docs/zones#available) in which the cluster
  895. // resides.
  896. string zone = 2;
  897. // The name of the cluster to upgrade.
  898. // This field is deprecated, use name instead.
  899. string cluster_id = 3;
  900. // The logging service the cluster should use to write metrics.
  901. // Currently available options:
  902. //
  903. // * "logging.googleapis.com" - the Google Cloud Logging service
  904. // * "none" - no metrics will be exported from the cluster
  905. string logging_service = 4;
  906. // The name (project, location, cluster) of the cluster to set logging.
  907. // Specified in the format 'projects/*/locations/*/clusters/*'.
  908. string name = 5;
  909. }
  910. // SetMonitoringServiceRequest sets the monitoring service of a cluster.
  911. message SetMonitoringServiceRequest {
  912. // The Google Developers Console [project ID or project
  913. // number](https://support.google.com/cloud/answer/6158840).
  914. // This field is deprecated, use name instead.
  915. string project_id = 1;
  916. // The name of the Google Compute Engine
  917. // [zone](/compute/docs/zones#available) in which the cluster
  918. // resides.
  919. // This field is deprecated, use name instead.
  920. string zone = 2;
  921. // The name of the cluster to upgrade.
  922. // This field is deprecated, use name instead.
  923. string cluster_id = 3;
  924. // The monitoring service the cluster should use to write metrics.
  925. // Currently available options:
  926. //
  927. // * "monitoring.googleapis.com" - the Google Cloud Monitoring service
  928. // * "none" - no metrics will be exported from the cluster
  929. string monitoring_service = 4;
  930. // The name (project, location, cluster) of the cluster to set monitoring.
  931. // Specified in the format 'projects/*/locations/*/clusters/*'.
  932. string name = 6;
  933. }
  934. // SetAddonsRequest sets the addons associated with the cluster.
  935. message SetAddonsConfigRequest {
  936. // The Google Developers Console [project ID or project
  937. // number](https://support.google.com/cloud/answer/6158840).
  938. // This field is deprecated, use name instead.
  939. string project_id = 1;
  940. // The name of the Google Compute Engine
  941. // [zone](/compute/docs/zones#available) in which the cluster
  942. // resides.
  943. // This field is deprecated, use name instead.
  944. string zone = 2;
  945. // The name of the cluster to upgrade.
  946. // This field is deprecated, use name instead.
  947. string cluster_id = 3;
  948. // The desired configurations for the various addons available to run in the
  949. // cluster.
  950. AddonsConfig addons_config = 4;
  951. // The name (project, location, cluster) of the cluster to set addons.
  952. // Specified in the format 'projects/*/locations/*/clusters/*'.
  953. string name = 6;
  954. }
  955. // SetLocationsRequest sets the locations of the cluster.
  956. message SetLocationsRequest {
  957. // The Google Developers Console [project ID or project
  958. // number](https://support.google.com/cloud/answer/6158840).
  959. // This field is deprecated, use name instead.
  960. string project_id = 1;
  961. // The name of the Google Compute Engine
  962. // [zone](/compute/docs/zones#available) in which the cluster
  963. // resides.
  964. // This field is deprecated, use name instead.
  965. string zone = 2;
  966. // The name of the cluster to upgrade.
  967. // This field is deprecated, use name instead.
  968. string cluster_id = 3;
  969. // The desired list of Google Compute Engine
  970. // [locations](/compute/docs/zones#available) in which the cluster's nodes
  971. // should be located. Changing the locations a cluster is in will result
  972. // in nodes being either created or removed from the cluster, depending on
  973. // whether locations are being added or removed.
  974. //
  975. // This list must always include the cluster's primary zone.
  976. repeated string locations = 4;
  977. // The name (project, location, cluster) of the cluster to set locations.
  978. // Specified in the format 'projects/*/locations/*/clusters/*'.
  979. string name = 6;
  980. }
  981. // UpdateMasterRequest updates the master of the cluster.
  982. message UpdateMasterRequest {
  983. // The Google Developers Console [project ID or project
  984. // number](https://support.google.com/cloud/answer/6158840).
  985. string project_id = 1;
  986. // The name of the Google Compute Engine
  987. // [zone](/compute/docs/zones#available) in which the cluster
  988. // resides.
  989. // This field is deprecated, use name instead.
  990. string zone = 2;
  991. // The name of the cluster to upgrade.
  992. // This field is deprecated, use name instead.
  993. string cluster_id = 3;
  994. // The Kubernetes version to change the master to. The only valid value is the
  995. // latest supported version. Use "-" to have the server automatically select
  996. // the latest version.
  997. string master_version = 4;
  998. // The name (project, location, cluster) of the cluster to update.
  999. // Specified in the format 'projects/*/locations/*/clusters/*'.
  1000. string name = 7;
  1001. }
  1002. // SetMasterAuthRequest updates the admin password of a cluster.
  1003. message SetMasterAuthRequest {
  1004. // Operation type: what type update to perform.
  1005. enum Action {
  1006. // Operation is unknown and will error out.
  1007. UNKNOWN = 0;
  1008. // Set the password to a user generated value.
  1009. SET_PASSWORD = 1;
  1010. // Generate a new password and set it to that.
  1011. GENERATE_PASSWORD = 2;
  1012. // Set the username. If an empty username is provided, basic authentication
  1013. // is disabled for the cluster. If a non-empty username is provided, basic
  1014. // authentication is enabled, with either a provided password or a generated
  1015. // one.
  1016. SET_USERNAME = 3;
  1017. }
  1018. // The Google Developers Console [project ID or project
  1019. // number](https://support.google.com/cloud/answer/6158840).
  1020. // This field is deprecated, use name instead.
  1021. string project_id = 1;
  1022. // The name of the Google Compute Engine
  1023. // [zone](/compute/docs/zones#available) in which the cluster
  1024. // resides.
  1025. // This field is deprecated, use name instead.
  1026. string zone = 2;
  1027. // The name of the cluster to upgrade.
  1028. // This field is deprecated, use name instead.
  1029. string cluster_id = 3;
  1030. // The exact form of action to be taken on the master auth.
  1031. Action action = 4;
  1032. // A description of the update.
  1033. MasterAuth update = 5;
  1034. // The name (project, location, cluster) of the cluster to set auth.
  1035. // Specified in the format 'projects/*/locations/*/clusters/*'.
  1036. string name = 7;
  1037. }
  1038. // DeleteClusterRequest deletes a cluster.
  1039. message DeleteClusterRequest {
  1040. // The Google Developers Console [project ID or project
  1041. // number](https://support.google.com/cloud/answer/6158840).
  1042. // This field is deprecated, use name instead.
  1043. string project_id = 1;
  1044. // The name of the Google Compute Engine
  1045. // [zone](/compute/docs/zones#available) in which the cluster
  1046. // resides.
  1047. // This field is deprecated, use name instead.
  1048. string zone = 2;
  1049. // The name of the cluster to delete.
  1050. // This field is deprecated, use name instead.
  1051. string cluster_id = 3;
  1052. // The name (project, location, cluster) of the cluster to delete.
  1053. // Specified in the format 'projects/*/locations/*/clusters/*'.
  1054. string name = 4;
  1055. }
  1056. // ListClustersRequest lists clusters.
  1057. message ListClustersRequest {
  1058. // The Google Developers Console [project ID or project
  1059. // number](https://support.google.com/cloud/answer/6158840).
  1060. // This field is deprecated, use parent instead.
  1061. string project_id = 1;
  1062. // The name of the Google Compute Engine
  1063. // [zone](/compute/docs/zones#available) in which the cluster
  1064. // resides, or "-" for all zones.
  1065. // This field is deprecated, use parent instead.
  1066. string zone = 2;
  1067. // The parent (project and location) where the clusters will be listed.
  1068. // Specified in the format 'projects/*/locations/*'.
  1069. // Location "-" matches all zones and all regions.
  1070. string parent = 4;
  1071. }
  1072. // ListClustersResponse is the result of ListClustersRequest.
  1073. message ListClustersResponse {
  1074. // A list of clusters in the project in the specified zone, or
  1075. // across all ones.
  1076. repeated Cluster clusters = 1;
  1077. // If any zones are listed here, the list of clusters returned
  1078. // may be missing those zones.
  1079. repeated string missing_zones = 2;
  1080. }
  1081. // GetOperationRequest gets a single operation.
  1082. message GetOperationRequest {
  1083. // The Google Developers Console [project ID or project
  1084. // number](https://support.google.com/cloud/answer/6158840).
  1085. // This field is deprecated, use name instead.
  1086. string project_id = 1;
  1087. // The name of the Google Compute Engine
  1088. // [zone](/compute/docs/zones#available) in which the cluster
  1089. // resides.
  1090. // This field is deprecated, use name instead.
  1091. string zone = 2;
  1092. // The server-assigned `name` of the operation.
  1093. // This field is deprecated, use name instead.
  1094. string operation_id = 3;
  1095. // The name (project, location, operation id) of the operation to get.
  1096. // Specified in the format 'projects/*/locations/*/operations/*'.
  1097. string name = 5;
  1098. }
  1099. // ListOperationsRequest lists operations.
  1100. message ListOperationsRequest {
  1101. // The Google Developers Console [project ID or project
  1102. // number](https://support.google.com/cloud/answer/6158840).
  1103. // This field is deprecated, use parent instead.
  1104. string project_id = 1;
  1105. // The name of the Google Compute Engine [zone](/compute/docs/zones#available)
  1106. // to return operations for, or `-` for all zones.
  1107. // This field is deprecated, use parent instead.
  1108. string zone = 2;
  1109. // The parent (project and location) where the operations will be listed.
  1110. // Specified in the format 'projects/*/locations/*'.
  1111. // Location "-" matches all zones and all regions.
  1112. string parent = 4;
  1113. }
  1114. // CancelOperationRequest cancels a single operation.
  1115. message CancelOperationRequest {
  1116. // The Google Developers Console [project ID or project
  1117. // number](https://support.google.com/cloud/answer/6158840).
  1118. // This field is deprecated, use name instead.
  1119. string project_id = 1;
  1120. // The name of the Google Compute Engine
  1121. // [zone](/compute/docs/zones#available) in which the operation resides.
  1122. // This field is deprecated, use name instead.
  1123. string zone = 2;
  1124. // The server-assigned `name` of the operation.
  1125. // This field is deprecated, use name instead.
  1126. string operation_id = 3;
  1127. // The name (project, location, operation id) of the operation to cancel.
  1128. // Specified in the format 'projects/*/locations/*/operations/*'.
  1129. string name = 4;
  1130. }
  1131. // ListOperationsResponse is the result of ListOperationsRequest.
  1132. message ListOperationsResponse {
  1133. // A list of operations in the project in the specified zone.
  1134. repeated Operation operations = 1;
  1135. // If any zones are listed here, the list of operations returned
  1136. // may be missing the operations from those zones.
  1137. repeated string missing_zones = 2;
  1138. }
  1139. // Gets the current Container Engine service configuration.
  1140. message GetServerConfigRequest {
  1141. // The Google Developers Console [project ID or project
  1142. // number](https://support.google.com/cloud/answer/6158840).
  1143. // This field is deprecated, use name instead.
  1144. string project_id = 1;
  1145. // The name of the Google Compute Engine [zone](/compute/docs/zones#available)
  1146. // to return operations for.
  1147. // This field is deprecated, use name instead.
  1148. string zone = 2;
  1149. // The name (project and location) of the server config to get
  1150. // Specified in the format 'projects/*/locations/*'.
  1151. string name = 4;
  1152. }
  1153. // Container Engine service configuration.
  1154. message ServerConfig {
  1155. // Version of Kubernetes the service deploys by default.
  1156. string default_cluster_version = 1;
  1157. // List of valid node upgrade target versions.
  1158. repeated string valid_node_versions = 3;
  1159. // Default image type.
  1160. string default_image_type = 4;
  1161. // List of valid image types.
  1162. repeated string valid_image_types = 5;
  1163. // List of valid master versions.
  1164. repeated string valid_master_versions = 6;
  1165. }
  1166. // CreateNodePoolRequest creates a node pool for a cluster.
  1167. message CreateNodePoolRequest {
  1168. // The Google Developers Console [project ID or project
  1169. // number](https://developers.google.com/console/help/new/#projectnumber).
  1170. // This field is deprecated, use parent instead.
  1171. string project_id = 1;
  1172. // The name of the Google Compute Engine
  1173. // [zone](/compute/docs/zones#available) in which the cluster
  1174. // resides.
  1175. // This field is deprecated, use parent instead.
  1176. string zone = 2;
  1177. // The name of the cluster.
  1178. // This field is deprecated, use parent instead.
  1179. string cluster_id = 3;
  1180. // The node pool to create.
  1181. NodePool node_pool = 4;
  1182. // The parent (project, location, cluster id) where the node pool will be created.
  1183. // Specified in the format 'projects/*/locations/*/clusters/*/nodePools/*'.
  1184. string parent = 6;
  1185. }
  1186. // DeleteNodePoolRequest deletes a node pool for a cluster.
  1187. message DeleteNodePoolRequest {
  1188. // The Google Developers Console [project ID or project
  1189. // number](https://developers.google.com/console/help/new/#projectnumber).
  1190. // This field is deprecated, use name instead.
  1191. string project_id = 1;
  1192. // The name of the Google Compute Engine
  1193. // [zone](/compute/docs/zones#available) in which the cluster
  1194. // resides.
  1195. // This field is deprecated, use name instead.
  1196. string zone = 2;
  1197. // The name of the cluster.
  1198. // This field is deprecated, use name instead.
  1199. string cluster_id = 3;
  1200. // The name of the node pool to delete.
  1201. // This field is deprecated, use name instead.
  1202. string node_pool_id = 4;
  1203. // The name (project, location, cluster, node pool id) of the node pool to delete.
  1204. // Specified in the format 'projects/*/locations/*/clusters/*/nodePools/*'.
  1205. string name = 6;
  1206. }
  1207. // ListNodePoolsRequest lists the node pool(s) for a cluster.
  1208. message ListNodePoolsRequest {
  1209. // The Google Developers Console [project ID or project
  1210. // number](https://developers.google.com/console/help/new/#projectnumber).
  1211. // This field is deprecated, use parent instead.
  1212. string project_id = 1;
  1213. // The name of the Google Compute Engine
  1214. // [zone](/compute/docs/zones#available) in which the cluster
  1215. // resides.
  1216. // This field is deprecated, use parent instead.
  1217. string zone = 2;
  1218. // The name of the cluster.
  1219. // This field is deprecated, use parent instead.
  1220. string cluster_id = 3;
  1221. // The parent (project, location, cluster id) where the node pools will be listed.
  1222. // Specified in the format 'projects/*/locations/*/clusters/*'.
  1223. string parent = 5;
  1224. }
  1225. // GetNodePoolRequest retrieves a node pool for a cluster.
  1226. message GetNodePoolRequest {
  1227. // The Google Developers Console [project ID or project
  1228. // number](https://developers.google.com/console/help/new/#projectnumber).
  1229. // This field is deprecated, use name instead.
  1230. string project_id = 1;
  1231. // The name of the Google Compute Engine
  1232. // [zone](/compute/docs/zones#available) in which the cluster
  1233. // resides.
  1234. // This field is deprecated, use name instead.
  1235. string zone = 2;
  1236. // The name of the cluster.
  1237. // This field is deprecated, use name instead.
  1238. string cluster_id = 3;
  1239. // The name of the node pool.
  1240. // This field is deprecated, use name instead.
  1241. string node_pool_id = 4;
  1242. // The name (project, location, cluster, node pool id) of the node pool to get.
  1243. // Specified in the format 'projects/*/locations/*/clusters/*/nodePools/*'.
  1244. string name = 6;
  1245. }
  1246. // NodePool contains the name and configuration for a cluster's node pool.
  1247. // Node pools are a set of nodes (i.e. VM's), with a common configuration and
  1248. // specification, under the control of the cluster master. They may have a set
  1249. // of Kubernetes labels applied to them, which may be used to reference them
  1250. // during pod scheduling. They may also be resized up or down, to accommodate
  1251. // the workload.
  1252. message NodePool {
  1253. // The current status of the node pool instance.
  1254. enum Status {
  1255. // Not set.
  1256. STATUS_UNSPECIFIED = 0;
  1257. // The PROVISIONING state indicates the node pool is being created.
  1258. PROVISIONING = 1;
  1259. // The RUNNING state indicates the node pool has been created
  1260. // and is fully usable.
  1261. RUNNING = 2;
  1262. // The RUNNING_WITH_ERROR state indicates the node pool has been created
  1263. // and is partially usable. Some error state has occurred and some
  1264. // functionality may be impaired. Customer may need to reissue a request
  1265. // or trigger a new update.
  1266. RUNNING_WITH_ERROR = 3;
  1267. // The RECONCILING state indicates that some work is actively being done on
  1268. // the node pool, such as upgrading node software. Details can
  1269. // be found in the `statusMessage` field.
  1270. RECONCILING = 4;
  1271. // The STOPPING state indicates the node pool is being deleted.
  1272. STOPPING = 5;
  1273. // The ERROR state indicates the node pool may be unusable. Details
  1274. // can be found in the `statusMessage` field.
  1275. ERROR = 6;
  1276. }
  1277. // The name of the node pool.
  1278. string name = 1;
  1279. // The node configuration of the pool.
  1280. NodeConfig config = 2;
  1281. // The initial node count for the pool. You must ensure that your
  1282. // Compute Engine <a href="/compute/docs/resource-quotas">resource quota</a>
  1283. // is sufficient for this number of instances. You must also have available
  1284. // firewall and routes quota.
  1285. int32 initial_node_count = 3;
  1286. // Autoscaler configuration for this NodePool. Autoscaler is enabled
  1287. // only if a valid configuration is present.
  1288. NodePoolAutoscaling autoscaling = 4;
  1289. // NodeManagement configuration for this NodePool.
  1290. NodeManagement management = 5;
  1291. // [Output only] Server-defined URL for the resource.
  1292. string self_link = 100;
  1293. // [Output only] The version of the Kubernetes of this node.
  1294. string version = 101;
  1295. // [Output only] The resource URLs of [instance
  1296. // groups](/compute/docs/instance-groups/) associated with this
  1297. // node pool.
  1298. repeated string instance_group_urls = 102;
  1299. // [Output only] The status of the nodes in this pool instance.
  1300. Status status = 103;
  1301. // [Output only] Additional information about the current status of this
  1302. // node pool instance, if available.
  1303. string status_message = 104;
  1304. }
  1305. // NodeManagement defines the set of node management services turned on for the
  1306. // node pool.
  1307. message NodeManagement {
  1308. // Whether the nodes will be automatically upgraded.
  1309. bool auto_upgrade = 1;
  1310. // Whether the nodes will be automatically repaired.
  1311. bool auto_repair = 2;
  1312. // Specifies the Auto Upgrade knobs for the node pool.
  1313. AutoUpgradeOptions upgrade_options = 10;
  1314. }
  1315. // AutoUpgradeOptions defines the set of options for the user to control how
  1316. // the Auto Upgrades will proceed.
  1317. message AutoUpgradeOptions {
  1318. // [Output only] This field is set when upgrades are about to commence
  1319. // with the approximate start time for the upgrades, in
  1320. // [RFC3339](https://www.ietf.org/rfc/rfc3339.txt) text format.
  1321. string auto_upgrade_start_time = 1;
  1322. // [Output only] This field is set when upgrades are about to commence
  1323. // with the description of the upgrade.
  1324. string description = 2;
  1325. }
  1326. // MaintenancePolicy defines the maintenance policy to be used for the cluster.
  1327. message MaintenancePolicy {
  1328. // Specifies the maintenance window in which maintenance may be performed.
  1329. MaintenanceWindow window = 1;
  1330. }
  1331. // MaintenanceWindow defines the maintenance window to be used for the cluster.
  1332. message MaintenanceWindow {
  1333. // Unimplemented, reserved for future use.
  1334. // HourlyMaintenanceWindow hourly_maintenance_window = 1;
  1335. oneof policy {
  1336. // DailyMaintenanceWindow specifies a daily maintenance operation window.
  1337. DailyMaintenanceWindow daily_maintenance_window = 2;
  1338. }
  1339. }
  1340. // Time window specified for daily maintenance operations.
  1341. message DailyMaintenanceWindow {
  1342. // Time within the maintenance window to start the maintenance operations.
  1343. // It must be in format "HH:MM”, where HH : [00-23] and MM : [00-59] GMT.
  1344. string start_time = 2;
  1345. // [Output only] Duration of the time window, automatically chosen to be
  1346. // smallest possible in the given scenario.
  1347. string duration = 3;
  1348. }
  1349. // SetNodePoolManagementRequest sets the node management properties of a node
  1350. // pool.
  1351. message SetNodePoolManagementRequest {
  1352. // The Google Developers Console [project ID or project
  1353. // number](https://support.google.com/cloud/answer/6158840).
  1354. // This field is deprecated, use name instead.
  1355. string project_id = 1;
  1356. // The name of the Google Compute Engine
  1357. // [zone](/compute/docs/zones#available) in which the cluster
  1358. // resides.
  1359. // This field is deprecated, use name instead.
  1360. string zone = 2;
  1361. // The name of the cluster to update.
  1362. // This field is deprecated, use name instead.
  1363. string cluster_id = 3;
  1364. // The name of the node pool to update.
  1365. // This field is deprecated, use name instead.
  1366. string node_pool_id = 4;
  1367. // NodeManagement configuration for the node pool.
  1368. NodeManagement management = 5;
  1369. // The name (project, location, cluster, node pool id) of the node pool to set
  1370. // management properties. Specified in the format
  1371. // 'projects/*/locations/*/clusters/*/nodePools/*'.
  1372. string name = 7;
  1373. }
  1374. // SetNodePoolSizeRequest sets the size a node
  1375. // pool.
  1376. message SetNodePoolSizeRequest {
  1377. // The Google Developers Console [project ID or project
  1378. // number](https://support.google.com/cloud/answer/6158840).
  1379. string project_id = 1;
  1380. // The name of the Google Compute Engine
  1381. // [zone](/compute/docs/zones#available) in which the cluster
  1382. // resides.
  1383. // This field is deprecated, use name instead.
  1384. string zone = 2;
  1385. // The name of the cluster to update.
  1386. // This field is deprecated, use name instead.
  1387. string cluster_id = 3;
  1388. // The name of the node pool to update.
  1389. // This field is deprecated, use name instead.
  1390. string node_pool_id = 4;
  1391. // The desired node count for the pool.
  1392. int32 node_count = 5;
  1393. // The name (project, location, cluster, node pool id) of the node pool to set
  1394. // size.
  1395. // Specified in the format 'projects/*/locations/*/clusters/*/nodePools/*'.
  1396. string name = 7;
  1397. }
  1398. // RollbackNodePoolUpgradeRequest rollbacks the previously Aborted or Failed
  1399. // NodePool upgrade. This will be an no-op if the last upgrade successfully
  1400. // completed.
  1401. message RollbackNodePoolUpgradeRequest {
  1402. // The Google Developers Console [project ID or project
  1403. // number](https://support.google.com/cloud/answer/6158840).
  1404. // This field is deprecated, use name instead.
  1405. string project_id = 1;
  1406. // The name of the Google Compute Engine
  1407. // [zone](/compute/docs/zones#available) in which the cluster
  1408. // resides.
  1409. // This field is deprecated, use name instead.
  1410. string zone = 2;
  1411. // The name of the cluster to rollback.
  1412. // This field is deprecated, use name instead.
  1413. string cluster_id = 3;
  1414. // The name of the node pool to rollback.
  1415. // This field is deprecated, use name instead.
  1416. string node_pool_id = 4;
  1417. // The name (project, location, cluster, node pool id) of the node poll to
  1418. // rollback upgrade.
  1419. // Specified in the format 'projects/*/locations/*/clusters/*/nodePools/*'.
  1420. string name = 6;
  1421. }
  1422. // ListNodePoolsResponse is the result of ListNodePoolsRequest.
  1423. message ListNodePoolsResponse {
  1424. // A list of node pools for a cluster.
  1425. repeated NodePool node_pools = 1;
  1426. }
  1427. // NodePoolAutoscaling contains information required by cluster autoscaler to
  1428. // adjust the size of the node pool to the current cluster usage.
  1429. message NodePoolAutoscaling {
  1430. // Is autoscaling enabled for this node pool.
  1431. bool enabled = 1;
  1432. // Minimum number of nodes in the NodePool. Must be >= 1 and <=
  1433. // max_node_count.
  1434. int32 min_node_count = 2;
  1435. // Maximum number of nodes in the NodePool. Must be >= min_node_count. There
  1436. // has to enough quota to scale up the cluster.
  1437. int32 max_node_count = 3;
  1438. }
  1439. // SetLabelsRequest sets the Google Cloud Platform labels on a Google Container
  1440. // Engine cluster, which will in turn set them for Google Compute Engine
  1441. // resources used by that cluster
  1442. message SetLabelsRequest {
  1443. // The Google Developers Console [project ID or project
  1444. // number](https://developers.google.com/console/help/new/#projectnumber).
  1445. // This field is deprecated, use name instead.
  1446. string project_id = 1;
  1447. // The name of the Google Compute Engine
  1448. // [zone](/compute/docs/zones#available) in which the cluster
  1449. // resides.
  1450. // This field is deprecated, use name instead.
  1451. string zone = 2;
  1452. // The name of the cluster.
  1453. // This field is deprecated, use name instead.
  1454. string cluster_id = 3;
  1455. // The labels to set for that cluster.
  1456. map<string, string> resource_labels = 4;
  1457. // The fingerprint of the previous set of labels for this resource,
  1458. // used to detect conflicts. The fingerprint is initially generated by
  1459. // Container Engine and changes after every request to modify or update
  1460. // labels. You must always provide an up-to-date fingerprint hash when
  1461. // updating or changing labels. Make a <code>get()</code> request to the
  1462. // resource to get the latest fingerprint.
  1463. string label_fingerprint = 5;
  1464. // The name (project, location, cluster id) of the cluster to set labels.
  1465. // Specified in the format 'projects/*/locations/*/clusters/*'.
  1466. string name = 7;
  1467. }
  1468. // SetLegacyAbacRequest enables or disables the ABAC authorization mechanism for
  1469. // a cluster.
  1470. message SetLegacyAbacRequest {
  1471. // The Google Developers Console [project ID or project
  1472. // number](https://support.google.com/cloud/answer/6158840).
  1473. // This field is deprecated, use name instead.
  1474. string project_id = 1;
  1475. // The name of the Google Compute Engine
  1476. // [zone](/compute/docs/zones#available) in which the cluster
  1477. // resides.
  1478. // This field is deprecated, use name instead.
  1479. string zone = 2;
  1480. // The name of the cluster to update.
  1481. // This field is deprecated, use name instead.
  1482. string cluster_id = 3;
  1483. // Whether ABAC authorization will be enabled in the cluster.
  1484. bool enabled = 4;
  1485. // The name (project, location, cluster id) of the cluster to set legacy abac.
  1486. // Specified in the format 'projects/*/locations/*/clusters/*'.
  1487. string name = 6;
  1488. }
  1489. // StartIPRotationRequest creates a new IP for the cluster and then performs
  1490. // a node upgrade on each node pool to point to the new IP.
  1491. message StartIPRotationRequest {
  1492. // The Google Developers Console [project ID or project
  1493. // number](https://developers.google.com/console/help/new/#projectnumber).
  1494. // This field is deprecated, use name instead.
  1495. string project_id = 1;
  1496. // The name of the Google Compute Engine
  1497. // [zone](/compute/docs/zones#available) in which the cluster
  1498. // resides.
  1499. // This field is deprecated, use name instead.
  1500. string zone = 2;
  1501. // The name of the cluster.
  1502. // This field is deprecated, use name instead.
  1503. string cluster_id = 3;
  1504. // The name (project, location, cluster id) of the cluster to start IP rotation.
  1505. // Specified in the format 'projects/*/locations/*/clusters/*'.
  1506. string name = 6;
  1507. }
  1508. // CompleteIPRotationRequest moves the cluster master back into single-IP mode.
  1509. message CompleteIPRotationRequest {
  1510. // The Google Developers Console [project ID or project
  1511. // number](https://developers.google.com/console/help/new/#projectnumber).
  1512. // This field is deprecated, use name instead.
  1513. string project_id = 1;
  1514. // The name of the Google Compute Engine
  1515. // [zone](/compute/docs/zones#available) in which the cluster
  1516. // resides.
  1517. // This field is deprecated, use name instead.
  1518. string zone = 2;
  1519. // The name of the cluster.
  1520. // This field is deprecated, use name instead.
  1521. string cluster_id = 3;
  1522. // The name (project, location, cluster id) of the cluster to complete IP rotation.
  1523. // Specified in the format 'projects/*/locations/*/clusters/*'.
  1524. string name = 7;
  1525. }
  1526. // AcceleratorConfig represents a Hardware Accelerator request.
  1527. message AcceleratorConfig {
  1528. // The number of the accelerator cards exposed to an instance.
  1529. int64 accelerator_count = 1;
  1530. // The accelerator type resource name. List of supported accelerators
  1531. // [here](/compute/docs/gpus/#Introduction)
  1532. string accelerator_type = 2;
  1533. }
  1534. // SetNetworkPolicyRequest enables/disables network policy for a cluster.
  1535. message SetNetworkPolicyRequest {
  1536. // The Google Developers Console [project ID or project
  1537. // number](https://developers.google.com/console/help/new/#projectnumber).
  1538. // This field is deprecated, use name instead.
  1539. string project_id = 1;
  1540. // The name of the Google Compute Engine
  1541. // [zone](/compute/docs/zones#available) in which the cluster
  1542. // resides.
  1543. // This field is deprecated, use name instead.
  1544. string zone = 2;
  1545. // The name of the cluster.
  1546. // This field is deprecated, use name instead.
  1547. string cluster_id = 3;
  1548. // Configuration options for the NetworkPolicy feature.
  1549. NetworkPolicy network_policy = 4;
  1550. // The name (project, location, cluster id) of the cluster to set networking
  1551. // policy.
  1552. // Specified in the format 'projects/*/locations/*/clusters/*'.
  1553. string name = 6;
  1554. }
  1555. // SetMaintenancePolicyRequest sets the maintenance policy for a cluster.
  1556. message SetMaintenancePolicyRequest {
  1557. // The Google Developers Console [project ID or project
  1558. // number](https://support.google.com/cloud/answer/6158840).
  1559. string project_id = 1;
  1560. // The name of the Google Compute Engine
  1561. // [zone](/compute/docs/zones#available) in which the cluster
  1562. // resides.
  1563. string zone = 2;
  1564. // The name of the cluster to update.
  1565. string cluster_id = 3;
  1566. // The maintenance policy to be set for the cluster. An empty field
  1567. // clears the existing maintenance policy.
  1568. MaintenancePolicy maintenance_policy = 4;
  1569. // The name (project, location, cluster id) of the cluster to set maintenance
  1570. // policy.
  1571. // Specified in the format 'projects/*/locations/*/clusters/*'.
  1572. string name = 5;
  1573. }