cluster_service.proto 127 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171117211731174117511761177117811791180118111821183118411851186118711881189119011911192119311941195119611971198119912001201120212031204120512061207120812091210121112121213121412151216121712181219122012211222122312241225122612271228122912301231123212331234123512361237123812391240124112421243124412451246124712481249125012511252125312541255125612571258125912601261126212631264126512661267126812691270127112721273127412751276127712781279128012811282128312841285128612871288128912901291129212931294129512961297129812991300130113021303130413051306130713081309131013111312131313141315131613171318131913201321132213231324132513261327132813291330133113321333133413351336133713381339134013411342134313441345134613471348134913501351135213531354135513561357135813591360136113621363136413651366136713681369137013711372137313741375137613771378137913801381138213831384138513861387138813891390139113921393139413951396139713981399140014011402140314041405140614071408140914101411141214131414141514161417141814191420142114221423142414251426142714281429143014311432143314341435143614371438143914401441144214431444144514461447144814491450145114521453145414551456145714581459146014611462146314641465146614671468146914701471147214731474147514761477147814791480148114821483148414851486148714881489149014911492149314941495149614971498149915001501150215031504150515061507150815091510151115121513151415151516151715181519152015211522152315241525152615271528152915301531153215331534153515361537153815391540154115421543154415451546154715481549155015511552155315541555155615571558155915601561156215631564156515661567156815691570157115721573157415751576157715781579158015811582158315841585158615871588158915901591159215931594159515961597159815991600160116021603160416051606160716081609161016111612161316141615161616171618161916201621162216231624162516261627162816291630163116321633163416351636163716381639164016411642164316441645164616471648164916501651165216531654165516561657165816591660166116621663166416651666166716681669167016711672167316741675167616771678167916801681168216831684168516861687168816891690169116921693169416951696169716981699170017011702170317041705170617071708170917101711171217131714171517161717171817191720172117221723172417251726172717281729173017311732173317341735173617371738173917401741174217431744174517461747174817491750175117521753175417551756175717581759176017611762176317641765176617671768176917701771177217731774177517761777177817791780178117821783178417851786178717881789179017911792179317941795179617971798179918001801180218031804180518061807180818091810181118121813181418151816181718181819182018211822182318241825182618271828182918301831183218331834183518361837183818391840184118421843184418451846184718481849185018511852185318541855185618571858185918601861186218631864186518661867186818691870187118721873187418751876187718781879188018811882188318841885188618871888188918901891189218931894189518961897189818991900190119021903190419051906190719081909191019111912191319141915191619171918191919201921192219231924192519261927192819291930193119321933193419351936193719381939194019411942194319441945194619471948194919501951195219531954195519561957195819591960196119621963196419651966196719681969197019711972197319741975197619771978197919801981198219831984198519861987198819891990199119921993199419951996199719981999200020012002200320042005200620072008200920102011201220132014201520162017201820192020202120222023202420252026202720282029203020312032203320342035203620372038203920402041204220432044204520462047204820492050205120522053205420552056205720582059206020612062206320642065206620672068206920702071207220732074207520762077207820792080208120822083208420852086208720882089209020912092209320942095209620972098209921002101210221032104210521062107210821092110211121122113211421152116211721182119212021212122212321242125212621272128212921302131213221332134213521362137213821392140214121422143214421452146214721482149215021512152215321542155215621572158215921602161216221632164216521662167216821692170217121722173217421752176217721782179218021812182218321842185218621872188218921902191219221932194219521962197219821992200220122022203220422052206220722082209221022112212221322142215221622172218221922202221222222232224222522262227222822292230223122322233223422352236223722382239224022412242224322442245224622472248224922502251225222532254225522562257225822592260226122622263226422652266226722682269227022712272227322742275227622772278227922802281228222832284228522862287228822892290229122922293229422952296229722982299230023012302230323042305230623072308230923102311231223132314231523162317231823192320232123222323232423252326232723282329233023312332233323342335233623372338233923402341234223432344234523462347234823492350235123522353235423552356235723582359236023612362236323642365236623672368236923702371237223732374237523762377237823792380238123822383238423852386238723882389239023912392239323942395239623972398239924002401240224032404240524062407240824092410241124122413241424152416241724182419242024212422242324242425242624272428242924302431243224332434243524362437243824392440244124422443244424452446244724482449245024512452245324542455245624572458245924602461246224632464246524662467246824692470247124722473247424752476247724782479248024812482248324842485248624872488248924902491249224932494249524962497249824992500250125022503250425052506250725082509251025112512251325142515251625172518251925202521252225232524252525262527252825292530253125322533253425352536253725382539254025412542254325442545254625472548254925502551255225532554255525562557255825592560256125622563256425652566256725682569257025712572257325742575257625772578257925802581258225832584258525862587258825892590259125922593259425952596259725982599260026012602260326042605260626072608260926102611261226132614261526162617261826192620262126222623262426252626262726282629263026312632263326342635263626372638263926402641264226432644264526462647264826492650265126522653265426552656265726582659266026612662266326642665266626672668266926702671267226732674267526762677267826792680268126822683268426852686268726882689269026912692269326942695269626972698269927002701270227032704270527062707270827092710271127122713271427152716271727182719272027212722272327242725272627272728272927302731273227332734273527362737273827392740274127422743274427452746274727482749275027512752275327542755275627572758275927602761276227632764276527662767276827692770277127722773277427752776277727782779278027812782278327842785278627872788278927902791279227932794279527962797279827992800280128022803280428052806280728082809281028112812281328142815281628172818281928202821282228232824282528262827282828292830283128322833283428352836283728382839284028412842284328442845284628472848284928502851285228532854285528562857285828592860286128622863286428652866286728682869287028712872287328742875287628772878287928802881288228832884288528862887288828892890289128922893289428952896289728982899290029012902290329042905290629072908290929102911291229132914291529162917291829192920292129222923292429252926292729282929293029312932293329342935293629372938293929402941294229432944294529462947294829492950295129522953295429552956295729582959296029612962296329642965296629672968296929702971297229732974297529762977297829792980298129822983298429852986298729882989299029912992299329942995299629972998299930003001300230033004300530063007300830093010301130123013301430153016301730183019302030213022302330243025302630273028302930303031303230333034303530363037303830393040304130423043304430453046304730483049305030513052305330543055305630573058305930603061306230633064306530663067306830693070307130723073307430753076307730783079308030813082308330843085308630873088308930903091309230933094309530963097309830993100310131023103310431053106310731083109311031113112311331143115311631173118311931203121312231233124312531263127312831293130313131323133313431353136313731383139314031413142314331443145314631473148314931503151315231533154315531563157315831593160316131623163316431653166316731683169317031713172317331743175317631773178317931803181318231833184318531863187318831893190319131923193319431953196319731983199320032013202320332043205320632073208320932103211321232133214321532163217321832193220322132223223322432253226322732283229323032313232323332343235323632373238323932403241324232433244324532463247324832493250325132523253325432553256325732583259326032613262326332643265326632673268326932703271327232733274327532763277327832793280328132823283328432853286328732883289329032913292329332943295329632973298329933003301330233033304330533063307330833093310331133123313331433153316331733183319332033213322332333243325332633273328332933303331333233333334333533363337333833393340334133423343334433453346334733483349335033513352335333543355335633573358
  1. // Copyright 2021 Google LLC
  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.v1;
  16. import "google/api/annotations.proto";
  17. import "google/api/client.proto";
  18. import "google/api/field_behavior.proto";
  19. import "google/protobuf/empty.proto";
  20. import "google/protobuf/timestamp.proto";
  21. option csharp_namespace = "Google.Cloud.Container.V1";
  22. option go_package = "google.golang.org/genproto/googleapis/container/v1;container";
  23. option java_multiple_files = true;
  24. option java_outer_classname = "ClusterServiceProto";
  25. option java_package = "com.google.container.v1";
  26. option php_namespace = "Google\\Cloud\\Container\\V1";
  27. option ruby_package = "Google::Cloud::Container::V1";
  28. // Google Kubernetes Engine Cluster Manager v1
  29. service ClusterManager {
  30. option (google.api.default_host) = "container.googleapis.com";
  31. option (google.api.oauth_scopes) = "https://www.googleapis.com/auth/cloud-platform";
  32. // Lists all clusters owned by a project in either the specified zone or all
  33. // zones.
  34. rpc ListClusters(ListClustersRequest) returns (ListClustersResponse) {
  35. option (google.api.http) = {
  36. get: "/v1/{parent=projects/*/locations/*}/clusters"
  37. additional_bindings {
  38. get: "/v1/projects/{project_id}/zones/{zone}/clusters"
  39. }
  40. };
  41. option (google.api.method_signature) = "project_id,zone";
  42. option (google.api.method_signature) = "parent";
  43. }
  44. // Gets the details of a specific cluster.
  45. rpc GetCluster(GetClusterRequest) returns (Cluster) {
  46. option (google.api.http) = {
  47. get: "/v1/{name=projects/*/locations/*/clusters/*}"
  48. additional_bindings {
  49. get: "/v1/projects/{project_id}/zones/{zone}/clusters/{cluster_id}"
  50. }
  51. };
  52. option (google.api.method_signature) = "project_id,zone,cluster_id";
  53. option (google.api.method_signature) = "name";
  54. }
  55. // Creates a cluster, consisting of the specified number and type of Google
  56. // Compute Engine instances.
  57. //
  58. // By default, the cluster is created in the project's
  59. // [default
  60. // network](https://cloud.google.com/compute/docs/networks-and-firewalls#networks).
  61. //
  62. // One firewall is added for the cluster. After cluster creation,
  63. // the Kubelet creates routes for each node to allow the containers
  64. // on that node to communicate with all other instances in the
  65. // cluster.
  66. //
  67. // Finally, an entry is added to the project's global metadata indicating
  68. // which CIDR range the cluster is using.
  69. rpc CreateCluster(CreateClusterRequest) returns (Operation) {
  70. option (google.api.http) = {
  71. post: "/v1/{parent=projects/*/locations/*}/clusters"
  72. body: "*"
  73. additional_bindings {
  74. post: "/v1/projects/{project_id}/zones/{zone}/clusters"
  75. body: "*"
  76. }
  77. };
  78. option (google.api.method_signature) = "project_id,zone,cluster";
  79. option (google.api.method_signature) = "parent,cluster";
  80. }
  81. // Updates the settings of a specific cluster.
  82. rpc UpdateCluster(UpdateClusterRequest) returns (Operation) {
  83. option (google.api.http) = {
  84. put: "/v1/{name=projects/*/locations/*/clusters/*}"
  85. body: "*"
  86. additional_bindings {
  87. put: "/v1/projects/{project_id}/zones/{zone}/clusters/{cluster_id}"
  88. body: "*"
  89. }
  90. };
  91. option (google.api.method_signature) = "project_id,zone,cluster_id,update";
  92. option (google.api.method_signature) = "name,update";
  93. }
  94. // Updates the version and/or image type for the specified node pool.
  95. rpc UpdateNodePool(UpdateNodePoolRequest) returns (Operation) {
  96. option (google.api.http) = {
  97. put: "/v1/{name=projects/*/locations/*/clusters/*/nodePools/*}"
  98. body: "*"
  99. additional_bindings {
  100. post: "/v1/projects/{project_id}/zones/{zone}/clusters/{cluster_id}/nodePools/{node_pool_id}/update"
  101. body: "*"
  102. }
  103. };
  104. }
  105. // Sets the autoscaling settings for the specified node pool.
  106. rpc SetNodePoolAutoscaling(SetNodePoolAutoscalingRequest) returns (Operation) {
  107. option (google.api.http) = {
  108. post: "/v1/{name=projects/*/locations/*/clusters/*/nodePools/*}:setAutoscaling"
  109. body: "*"
  110. additional_bindings {
  111. post: "/v1/projects/{project_id}/zones/{zone}/clusters/{cluster_id}/nodePools/{node_pool_id}/autoscaling"
  112. body: "*"
  113. }
  114. };
  115. }
  116. // Sets the logging service for a specific cluster.
  117. rpc SetLoggingService(SetLoggingServiceRequest) returns (Operation) {
  118. option (google.api.http) = {
  119. post: "/v1/{name=projects/*/locations/*/clusters/*}:setLogging"
  120. body: "*"
  121. additional_bindings {
  122. post: "/v1/projects/{project_id}/zones/{zone}/clusters/{cluster_id}/logging"
  123. body: "*"
  124. }
  125. };
  126. option (google.api.method_signature) = "project_id,zone,cluster_id,logging_service";
  127. option (google.api.method_signature) = "name,logging_service";
  128. }
  129. // Sets the monitoring service for a specific cluster.
  130. rpc SetMonitoringService(SetMonitoringServiceRequest) returns (Operation) {
  131. option (google.api.http) = {
  132. post: "/v1/{name=projects/*/locations/*/clusters/*}:setMonitoring"
  133. body: "*"
  134. additional_bindings {
  135. post: "/v1/projects/{project_id}/zones/{zone}/clusters/{cluster_id}/monitoring"
  136. body: "*"
  137. }
  138. };
  139. option (google.api.method_signature) = "project_id,zone,cluster_id,monitoring_service";
  140. option (google.api.method_signature) = "name,monitoring_service";
  141. }
  142. // Sets the addons for a specific cluster.
  143. rpc SetAddonsConfig(SetAddonsConfigRequest) returns (Operation) {
  144. option (google.api.http) = {
  145. post: "/v1/{name=projects/*/locations/*/clusters/*}:setAddons"
  146. body: "*"
  147. additional_bindings {
  148. post: "/v1/projects/{project_id}/zones/{zone}/clusters/{cluster_id}/addons"
  149. body: "*"
  150. }
  151. };
  152. option (google.api.method_signature) = "project_id,zone,cluster_id,addons_config";
  153. option (google.api.method_signature) = "name,addons_config";
  154. }
  155. // Sets the locations for a specific cluster.
  156. // Deprecated. Use
  157. // [projects.locations.clusters.update](https://cloud.google.com/kubernetes-engine/docs/reference/rest/v1/projects.locations.clusters/update)
  158. // instead.
  159. rpc SetLocations(SetLocationsRequest) returns (Operation) {
  160. option deprecated = true;
  161. option (google.api.http) = {
  162. post: "/v1/{name=projects/*/locations/*/clusters/*}:setLocations"
  163. body: "*"
  164. additional_bindings {
  165. post: "/v1/projects/{project_id}/zones/{zone}/clusters/{cluster_id}/locations"
  166. body: "*"
  167. }
  168. };
  169. option (google.api.method_signature) = "project_id,zone,cluster_id,locations";
  170. option (google.api.method_signature) = "name,locations";
  171. }
  172. // Updates the master for a specific cluster.
  173. rpc UpdateMaster(UpdateMasterRequest) returns (Operation) {
  174. option (google.api.http) = {
  175. post: "/v1/{name=projects/*/locations/*/clusters/*}:updateMaster"
  176. body: "*"
  177. additional_bindings {
  178. post: "/v1/projects/{project_id}/zones/{zone}/clusters/{cluster_id}/master"
  179. body: "*"
  180. }
  181. };
  182. option (google.api.method_signature) = "project_id,zone,cluster_id,master_version";
  183. option (google.api.method_signature) = "name,master_version";
  184. }
  185. // Sets master auth materials. Currently supports changing the admin password
  186. // or a specific cluster, either via password generation or explicitly setting
  187. // the password.
  188. rpc SetMasterAuth(SetMasterAuthRequest) returns (Operation) {
  189. option (google.api.http) = {
  190. post: "/v1/{name=projects/*/locations/*/clusters/*}:setMasterAuth"
  191. body: "*"
  192. additional_bindings {
  193. post: "/v1/projects/{project_id}/zones/{zone}/clusters/{cluster_id}:setMasterAuth"
  194. body: "*"
  195. }
  196. };
  197. }
  198. // Deletes the cluster, including the Kubernetes endpoint and all worker
  199. // nodes.
  200. //
  201. // Firewalls and routes that were configured during cluster creation
  202. // are also deleted.
  203. //
  204. // Other Google Compute Engine resources that might be in use by the cluster,
  205. // such as load balancer resources, are not deleted if they weren't present
  206. // when the cluster was initially created.
  207. rpc DeleteCluster(DeleteClusterRequest) returns (Operation) {
  208. option (google.api.http) = {
  209. delete: "/v1/{name=projects/*/locations/*/clusters/*}"
  210. additional_bindings {
  211. delete: "/v1/projects/{project_id}/zones/{zone}/clusters/{cluster_id}"
  212. }
  213. };
  214. option (google.api.method_signature) = "project_id,zone,cluster_id";
  215. option (google.api.method_signature) = "name";
  216. }
  217. // Lists all operations in a project in a specific zone or all zones.
  218. rpc ListOperations(ListOperationsRequest) returns (ListOperationsResponse) {
  219. option (google.api.http) = {
  220. get: "/v1/{parent=projects/*/locations/*}/operations"
  221. additional_bindings {
  222. get: "/v1/projects/{project_id}/zones/{zone}/operations"
  223. }
  224. };
  225. option (google.api.method_signature) = "project_id,zone";
  226. }
  227. // Gets the specified operation.
  228. rpc GetOperation(GetOperationRequest) returns (Operation) {
  229. option (google.api.http) = {
  230. get: "/v1/{name=projects/*/locations/*/operations/*}"
  231. additional_bindings {
  232. get: "/v1/projects/{project_id}/zones/{zone}/operations/{operation_id}"
  233. }
  234. };
  235. option (google.api.method_signature) = "project_id,zone,operation_id";
  236. option (google.api.method_signature) = "name";
  237. }
  238. // Cancels the specified operation.
  239. rpc CancelOperation(CancelOperationRequest) returns (google.protobuf.Empty) {
  240. option (google.api.http) = {
  241. post: "/v1/{name=projects/*/locations/*/operations/*}:cancel"
  242. body: "*"
  243. additional_bindings {
  244. post: "/v1/projects/{project_id}/zones/{zone}/operations/{operation_id}:cancel"
  245. body: "*"
  246. }
  247. };
  248. option (google.api.method_signature) = "project_id,zone,operation_id";
  249. option (google.api.method_signature) = "name";
  250. }
  251. // Returns configuration info about the Google Kubernetes Engine service.
  252. rpc GetServerConfig(GetServerConfigRequest) returns (ServerConfig) {
  253. option (google.api.http) = {
  254. get: "/v1/{name=projects/*/locations/*}/serverConfig"
  255. additional_bindings {
  256. get: "/v1/projects/{project_id}/zones/{zone}/serverconfig"
  257. }
  258. };
  259. option (google.api.method_signature) = "project_id,zone";
  260. option (google.api.method_signature) = "name";
  261. }
  262. // Gets the public component of the cluster signing keys in
  263. // JSON Web Key format.
  264. // This API is not yet intended for general use, and is not available for all
  265. // clusters.
  266. rpc GetJSONWebKeys(GetJSONWebKeysRequest) returns (GetJSONWebKeysResponse) {
  267. option (google.api.http) = {
  268. get: "/v1/{parent=projects/*/locations/*/clusters/*}/jwks"
  269. };
  270. }
  271. // Lists the node pools for a cluster.
  272. rpc ListNodePools(ListNodePoolsRequest) returns (ListNodePoolsResponse) {
  273. option (google.api.http) = {
  274. get: "/v1/{parent=projects/*/locations/*/clusters/*}/nodePools"
  275. additional_bindings {
  276. get: "/v1/projects/{project_id}/zones/{zone}/clusters/{cluster_id}/nodePools"
  277. }
  278. };
  279. option (google.api.method_signature) = "project_id,zone,cluster_id";
  280. option (google.api.method_signature) = "parent";
  281. }
  282. // Retrieves the requested node pool.
  283. rpc GetNodePool(GetNodePoolRequest) returns (NodePool) {
  284. option (google.api.http) = {
  285. get: "/v1/{name=projects/*/locations/*/clusters/*/nodePools/*}"
  286. additional_bindings {
  287. get: "/v1/projects/{project_id}/zones/{zone}/clusters/{cluster_id}/nodePools/{node_pool_id}"
  288. }
  289. };
  290. option (google.api.method_signature) = "project_id,zone,cluster_id,node_pool_id";
  291. option (google.api.method_signature) = "name";
  292. }
  293. // Creates a node pool for a cluster.
  294. rpc CreateNodePool(CreateNodePoolRequest) returns (Operation) {
  295. option (google.api.http) = {
  296. post: "/v1/{parent=projects/*/locations/*/clusters/*}/nodePools"
  297. body: "*"
  298. additional_bindings {
  299. post: "/v1/projects/{project_id}/zones/{zone}/clusters/{cluster_id}/nodePools"
  300. body: "*"
  301. }
  302. };
  303. option (google.api.method_signature) = "project_id,zone,cluster_id,node_pool";
  304. option (google.api.method_signature) = "parent,node_pool";
  305. }
  306. // Deletes a node pool from a cluster.
  307. rpc DeleteNodePool(DeleteNodePoolRequest) returns (Operation) {
  308. option (google.api.http) = {
  309. delete: "/v1/{name=projects/*/locations/*/clusters/*/nodePools/*}"
  310. additional_bindings {
  311. delete: "/v1/projects/{project_id}/zones/{zone}/clusters/{cluster_id}/nodePools/{node_pool_id}"
  312. }
  313. };
  314. option (google.api.method_signature) = "project_id,zone,cluster_id,node_pool_id";
  315. option (google.api.method_signature) = "name";
  316. }
  317. // Rolls back a previously Aborted or Failed NodePool upgrade.
  318. // This makes no changes if the last upgrade successfully completed.
  319. rpc RollbackNodePoolUpgrade(RollbackNodePoolUpgradeRequest) returns (Operation) {
  320. option (google.api.http) = {
  321. post: "/v1/{name=projects/*/locations/*/clusters/*/nodePools/*}:rollback"
  322. body: "*"
  323. additional_bindings {
  324. post: "/v1/projects/{project_id}/zones/{zone}/clusters/{cluster_id}/nodePools/{node_pool_id}:rollback"
  325. body: "*"
  326. }
  327. };
  328. option (google.api.method_signature) = "project_id,zone,cluster_id,node_pool_id";
  329. option (google.api.method_signature) = "name";
  330. }
  331. // Sets the NodeManagement options for a node pool.
  332. rpc SetNodePoolManagement(SetNodePoolManagementRequest) returns (Operation) {
  333. option (google.api.http) = {
  334. post: "/v1/{name=projects/*/locations/*/clusters/*/nodePools/*}:setManagement"
  335. body: "*"
  336. additional_bindings {
  337. post: "/v1/projects/{project_id}/zones/{zone}/clusters/{cluster_id}/nodePools/{node_pool_id}/setManagement"
  338. body: "*"
  339. }
  340. };
  341. }
  342. // Sets labels on a cluster.
  343. rpc SetLabels(SetLabelsRequest) returns (Operation) {
  344. option (google.api.http) = {
  345. post: "/v1/{name=projects/*/locations/*/clusters/*}:setResourceLabels"
  346. body: "*"
  347. additional_bindings {
  348. post: "/v1/projects/{project_id}/zones/{zone}/clusters/{cluster_id}/resourceLabels"
  349. body: "*"
  350. }
  351. };
  352. }
  353. // Enables or disables the ABAC authorization mechanism on a cluster.
  354. rpc SetLegacyAbac(SetLegacyAbacRequest) returns (Operation) {
  355. option (google.api.http) = {
  356. post: "/v1/{name=projects/*/locations/*/clusters/*}:setLegacyAbac"
  357. body: "*"
  358. additional_bindings {
  359. post: "/v1/projects/{project_id}/zones/{zone}/clusters/{cluster_id}/legacyAbac"
  360. body: "*"
  361. }
  362. };
  363. option (google.api.method_signature) = "project_id,zone,cluster_id,enabled";
  364. option (google.api.method_signature) = "name,enabled";
  365. }
  366. // Starts master IP rotation.
  367. rpc StartIPRotation(StartIPRotationRequest) returns (Operation) {
  368. option (google.api.http) = {
  369. post: "/v1/{name=projects/*/locations/*/clusters/*}:startIpRotation"
  370. body: "*"
  371. additional_bindings {
  372. post: "/v1/projects/{project_id}/zones/{zone}/clusters/{cluster_id}:startIpRotation"
  373. body: "*"
  374. }
  375. };
  376. option (google.api.method_signature) = "project_id,zone,cluster_id";
  377. option (google.api.method_signature) = "name";
  378. }
  379. // Completes master IP rotation.
  380. rpc CompleteIPRotation(CompleteIPRotationRequest) returns (Operation) {
  381. option (google.api.http) = {
  382. post: "/v1/{name=projects/*/locations/*/clusters/*}:completeIpRotation"
  383. body: "*"
  384. additional_bindings {
  385. post: "/v1/projects/{project_id}/zones/{zone}/clusters/{cluster_id}:completeIpRotation"
  386. body: "*"
  387. }
  388. };
  389. option (google.api.method_signature) = "project_id,zone,cluster_id";
  390. option (google.api.method_signature) = "name";
  391. }
  392. // Sets the size for a specific node pool.
  393. rpc SetNodePoolSize(SetNodePoolSizeRequest) returns (Operation) {
  394. option (google.api.http) = {
  395. post: "/v1/{name=projects/*/locations/*/clusters/*/nodePools/*}:setSize"
  396. body: "*"
  397. additional_bindings {
  398. post: "/v1/projects/{project_id}/zones/{zone}/clusters/{cluster_id}/nodePools/{node_pool_id}/setSize"
  399. body: "*"
  400. }
  401. };
  402. }
  403. // Enables or disables Network Policy for a cluster.
  404. rpc SetNetworkPolicy(SetNetworkPolicyRequest) returns (Operation) {
  405. option (google.api.http) = {
  406. post: "/v1/{name=projects/*/locations/*/clusters/*}:setNetworkPolicy"
  407. body: "*"
  408. additional_bindings {
  409. post: "/v1/projects/{project_id}/zones/{zone}/clusters/{cluster_id}:setNetworkPolicy"
  410. body: "*"
  411. }
  412. };
  413. option (google.api.method_signature) = "project_id,zone,cluster_id,network_policy";
  414. option (google.api.method_signature) = "name,network_policy";
  415. }
  416. // Sets the maintenance policy for a cluster.
  417. rpc SetMaintenancePolicy(SetMaintenancePolicyRequest) returns (Operation) {
  418. option (google.api.http) = {
  419. post: "/v1/{name=projects/*/locations/*/clusters/*}:setMaintenancePolicy"
  420. body: "*"
  421. additional_bindings {
  422. post: "/v1/projects/{project_id}/zones/{zone}/clusters/{cluster_id}:setMaintenancePolicy"
  423. body: "*"
  424. }
  425. };
  426. option (google.api.method_signature) = "project_id,zone,cluster_id,maintenance_policy";
  427. option (google.api.method_signature) = "name,maintenance_policy";
  428. }
  429. // Lists subnetworks that are usable for creating clusters in a project.
  430. rpc ListUsableSubnetworks(ListUsableSubnetworksRequest) returns (ListUsableSubnetworksResponse) {
  431. option (google.api.http) = {
  432. get: "/v1/{parent=projects/*}/aggregated/usableSubnetworks"
  433. };
  434. }
  435. }
  436. // Parameters that describe the nodes in a cluster.
  437. message NodeConfig {
  438. // The name of a Google Compute Engine [machine
  439. // type](https://cloud.google.com/compute/docs/machine-types)
  440. //
  441. // If unspecified, the default machine type is `e2-medium`.
  442. string machine_type = 1;
  443. // Size of the disk attached to each node, specified in GB.
  444. // The smallest allowed disk size is 10GB.
  445. //
  446. // If unspecified, the default disk size is 100GB.
  447. int32 disk_size_gb = 2;
  448. // The set of Google API scopes to be made available on all of the
  449. // node VMs under the "default" service account.
  450. //
  451. // The following scopes are recommended, but not required, and by default are
  452. // not included:
  453. //
  454. // * `https://www.googleapis.com/auth/compute` is required for mounting
  455. // persistent storage on your nodes.
  456. // * `https://www.googleapis.com/auth/devstorage.read_only` is required for
  457. // communicating with **gcr.io**
  458. // (the [Google Container
  459. // Registry](https://cloud.google.com/container-registry/)).
  460. //
  461. // If unspecified, no scopes are added, unless Cloud Logging or Cloud
  462. // Monitoring are enabled, in which case their required scopes will be added.
  463. repeated string oauth_scopes = 3;
  464. // The Google Cloud Platform Service Account to be used by the node VMs.
  465. // Specify the email address of the Service Account; otherwise, if no Service
  466. // Account is specified, the "default" service account is used.
  467. string service_account = 9;
  468. // The metadata key/value pairs assigned to instances in the cluster.
  469. //
  470. // Keys must conform to the regexp `[a-zA-Z0-9-_]+` and be less than 128 bytes
  471. // in length. These are reflected as part of a URL in the metadata server.
  472. // Additionally, to avoid ambiguity, keys must not conflict with any other
  473. // metadata keys for the project or be one of the reserved keys:
  474. // - "cluster-location"
  475. // - "cluster-name"
  476. // - "cluster-uid"
  477. // - "configure-sh"
  478. // - "containerd-configure-sh"
  479. // - "enable-os-login"
  480. // - "gci-ensure-gke-docker"
  481. // - "gci-metrics-enabled"
  482. // - "gci-update-strategy"
  483. // - "instance-template"
  484. // - "kube-env"
  485. // - "startup-script"
  486. // - "user-data"
  487. // - "disable-address-manager"
  488. // - "windows-startup-script-ps1"
  489. // - "common-psm1"
  490. // - "k8s-node-setup-psm1"
  491. // - "install-ssh-psm1"
  492. // - "user-profile-psm1"
  493. //
  494. // The following keys are reserved for Windows nodes:
  495. // - "serial-port-logging-enable"
  496. //
  497. // Values are free-form strings, and only have meaning as interpreted by
  498. // the image running in the instance. The only restriction placed on them is
  499. // that each value's size must be less than or equal to 32 KB.
  500. //
  501. // The total size of all keys and values must be less than 512 KB.
  502. map<string, string> metadata = 4;
  503. // The image type to use for this node. Note that for a given image type,
  504. // the latest version of it will be used.
  505. string image_type = 5;
  506. // The map of Kubernetes labels (key/value pairs) to be applied to each node.
  507. // These will added in addition to any default label(s) that
  508. // Kubernetes may apply to the node.
  509. // In case of conflict in label keys, the applied set may differ depending on
  510. // the Kubernetes version -- it's best to assume the behavior is undefined
  511. // and conflicts should be avoided.
  512. // For more information, including usage and the valid values, see:
  513. // https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/
  514. map<string, string> labels = 6;
  515. // The number of local SSD disks to be attached to the node.
  516. //
  517. // The limit for this value is dependent upon the maximum number of
  518. // disks available on a machine per zone. See:
  519. // https://cloud.google.com/compute/docs/disks/local-ssd
  520. // for more information.
  521. int32 local_ssd_count = 7;
  522. // The list of instance tags applied to all nodes. Tags are used to identify
  523. // valid sources or targets for network firewalls and are specified by
  524. // the client during cluster or node pool creation. Each tag within the list
  525. // must comply with RFC1035.
  526. repeated string tags = 8;
  527. // Whether the nodes are created as preemptible VM instances. See:
  528. // https://cloud.google.com/compute/docs/instances/preemptible for more
  529. // information about preemptible VM instances.
  530. bool preemptible = 10;
  531. // A list of hardware accelerators to be attached to each node.
  532. // See https://cloud.google.com/compute/docs/gpus for more information about
  533. // support for GPUs.
  534. repeated AcceleratorConfig accelerators = 11;
  535. // Type of the disk attached to each node (e.g. 'pd-standard', 'pd-ssd' or
  536. // 'pd-balanced')
  537. //
  538. // If unspecified, the default disk type is 'pd-standard'
  539. string disk_type = 12;
  540. // Minimum CPU platform to be used by this instance. The instance may be
  541. // scheduled on the specified or newer CPU platform. Applicable values are the
  542. // friendly names of CPU platforms, such as
  543. // `minCpuPlatform: "Intel Haswell"` or
  544. // `minCpuPlatform: "Intel Sandy Bridge"`. For more
  545. // information, read [how to specify min CPU
  546. // platform](https://cloud.google.com/compute/docs/instances/specify-min-cpu-platform)
  547. string min_cpu_platform = 13;
  548. // The workload metadata configuration for this node.
  549. WorkloadMetadataConfig workload_metadata_config = 14;
  550. // List of kubernetes taints to be applied to each node.
  551. //
  552. // For more information, including usage and the valid values, see:
  553. // https://kubernetes.io/docs/concepts/configuration/taint-and-toleration/
  554. repeated NodeTaint taints = 15;
  555. // Sandbox configuration for this node.
  556. SandboxConfig sandbox_config = 17;
  557. // Setting this field will assign instances of this
  558. // pool to run on the specified node group. This is useful for running
  559. // workloads on [sole tenant
  560. // nodes](https://cloud.google.com/compute/docs/nodes/sole-tenant-nodes).
  561. string node_group = 18;
  562. // The optional reservation affinity. Setting this field will apply
  563. // the specified [Zonal Compute
  564. // Reservation](https://cloud.google.com/compute/docs/instances/reserving-zonal-resources)
  565. // to this node pool.
  566. ReservationAffinity reservation_affinity = 19;
  567. // Shielded Instance options.
  568. ShieldedInstanceConfig shielded_instance_config = 20;
  569. //
  570. // The Customer Managed Encryption Key used to encrypt the boot disk attached
  571. // to each node in the node pool. This should be of the form
  572. // projects/[KEY_PROJECT_ID]/locations/[LOCATION]/keyRings/[RING_NAME]/cryptoKeys/[KEY_NAME].
  573. // For more information about protecting resources with Cloud KMS Keys please
  574. // see:
  575. // https://cloud.google.com/compute/docs/disks/customer-managed-encryption
  576. string boot_disk_kms_key = 23;
  577. }
  578. // A set of Shielded Instance options.
  579. message ShieldedInstanceConfig {
  580. // Defines whether the instance has Secure Boot enabled.
  581. //
  582. // Secure Boot helps ensure that the system only runs authentic software by
  583. // verifying the digital signature of all boot components, and halting the
  584. // boot process if signature verification fails.
  585. bool enable_secure_boot = 1;
  586. // Defines whether the instance has integrity monitoring enabled.
  587. //
  588. // Enables monitoring and attestation of the boot integrity of the instance.
  589. // The attestation is performed against the integrity policy baseline. This
  590. // baseline is initially derived from the implicitly trusted boot image when
  591. // the instance is created.
  592. bool enable_integrity_monitoring = 2;
  593. }
  594. // SandboxConfig contains configurations of the sandbox to use for the node.
  595. message SandboxConfig {
  596. // Possible types of sandboxes.
  597. enum Type {
  598. // Default value. This should not be used.
  599. UNSPECIFIED = 0;
  600. // Run sandbox using gvisor.
  601. GVISOR = 1;
  602. }
  603. // Type of the sandbox to use for the node.
  604. Type type = 2;
  605. }
  606. // [ReservationAffinity](https://cloud.google.com/compute/docs/instances/reserving-zonal-resources)
  607. // is the configuration of desired reservation which instances could take
  608. // capacity from.
  609. message ReservationAffinity {
  610. // Indicates whether to consume capacity from a reservation or not.
  611. enum Type {
  612. // Default value. This should not be used.
  613. UNSPECIFIED = 0;
  614. // Do not consume from any reserved capacity.
  615. NO_RESERVATION = 1;
  616. // Consume any reservation available.
  617. ANY_RESERVATION = 2;
  618. // Must consume from a specific reservation. Must specify key value fields
  619. // for specifying the reservations.
  620. SPECIFIC_RESERVATION = 3;
  621. }
  622. // Corresponds to the type of reservation consumption.
  623. Type consume_reservation_type = 1;
  624. // Corresponds to the label key of a reservation resource. To target a
  625. // SPECIFIC_RESERVATION by name, specify "googleapis.com/reservation-name" as
  626. // the key and specify the name of your reservation as its value.
  627. string key = 2;
  628. // Corresponds to the label value(s) of reservation resource(s).
  629. repeated string values = 3;
  630. }
  631. // Kubernetes taint is comprised of three fields: key, value, and effect. Effect
  632. // can only be one of three types: NoSchedule, PreferNoSchedule or NoExecute.
  633. //
  634. // See
  635. // [here](https://kubernetes.io/docs/concepts/configuration/taint-and-toleration)
  636. // for more information, including usage and the valid values.
  637. message NodeTaint {
  638. // Possible values for Effect in taint.
  639. enum Effect {
  640. // Not set
  641. EFFECT_UNSPECIFIED = 0;
  642. // NoSchedule
  643. NO_SCHEDULE = 1;
  644. // PreferNoSchedule
  645. PREFER_NO_SCHEDULE = 2;
  646. // NoExecute
  647. NO_EXECUTE = 3;
  648. }
  649. // Key for taint.
  650. string key = 1;
  651. // Value for taint.
  652. string value = 2;
  653. // Effect for taint.
  654. Effect effect = 3;
  655. }
  656. // The authentication information for accessing the master endpoint.
  657. // Authentication can be done using HTTP basic auth or using client
  658. // certificates.
  659. message MasterAuth {
  660. // The username to use for HTTP basic authentication to the master endpoint.
  661. // For clusters v1.6.0 and later, basic authentication can be disabled by
  662. // leaving username unspecified (or setting it to the empty string).
  663. //
  664. // Warning: basic authentication is deprecated, and will be removed in GKE
  665. // control plane versions 1.19 and newer. For a list of recommended
  666. // authentication methods, see:
  667. // https://cloud.google.com/kubernetes-engine/docs/how-to/api-server-authentication
  668. string username = 1 [deprecated = true];
  669. // The password to use for HTTP basic authentication to the master endpoint.
  670. // Because the master endpoint is open to the Internet, you should create a
  671. // strong password. If a password is provided for cluster creation, username
  672. // must be non-empty.
  673. //
  674. // Warning: basic authentication is deprecated, and will be removed in GKE
  675. // control plane versions 1.19 and newer. For a list of recommended
  676. // authentication methods, see:
  677. // https://cloud.google.com/kubernetes-engine/docs/how-to/api-server-authentication
  678. string password = 2 [deprecated = true];
  679. // Configuration for client certificate authentication on the cluster. For
  680. // clusters before v1.12, if no configuration is specified, a client
  681. // certificate is issued.
  682. ClientCertificateConfig client_certificate_config = 3;
  683. // [Output only] Base64-encoded public certificate that is the root of
  684. // trust for the cluster.
  685. string cluster_ca_certificate = 100;
  686. // [Output only] Base64-encoded public certificate used by clients to
  687. // authenticate to the cluster endpoint.
  688. string client_certificate = 101;
  689. // [Output only] Base64-encoded private key used by clients to authenticate
  690. // to the cluster endpoint.
  691. string client_key = 102;
  692. }
  693. // Configuration for client certificates on the cluster.
  694. message ClientCertificateConfig {
  695. // Issue a client certificate.
  696. bool issue_client_certificate = 1;
  697. }
  698. // Configuration for the addons that can be automatically spun up in the
  699. // cluster, enabling additional functionality.
  700. message AddonsConfig {
  701. // Configuration for the HTTP (L7) load balancing controller addon, which
  702. // makes it easy to set up HTTP load balancers for services in a cluster.
  703. HttpLoadBalancing http_load_balancing = 1;
  704. // Configuration for the horizontal pod autoscaling feature, which
  705. // increases or decreases the number of replica pods a replication controller
  706. // has based on the resource usage of the existing pods.
  707. HorizontalPodAutoscaling horizontal_pod_autoscaling = 2;
  708. // Configuration for the Kubernetes Dashboard.
  709. // This addon is deprecated, and will be disabled in 1.15. It is recommended
  710. // to use the Cloud Console to manage and monitor your Kubernetes clusters,
  711. // workloads and applications. For more information, see:
  712. // https://cloud.google.com/kubernetes-engine/docs/concepts/dashboards
  713. KubernetesDashboard kubernetes_dashboard = 3 [deprecated = true];
  714. // Configuration for NetworkPolicy. This only tracks whether the addon
  715. // is enabled or not on the Master, it does not track whether network policy
  716. // is enabled for the nodes.
  717. NetworkPolicyConfig network_policy_config = 4;
  718. // Configuration for the Cloud Run addon, which allows the user to use a
  719. // managed Knative service.
  720. CloudRunConfig cloud_run_config = 7;
  721. // Configuration for NodeLocalDNS, a dns cache running on cluster nodes
  722. DnsCacheConfig dns_cache_config = 8;
  723. // Configuration for the ConfigConnector add-on, a Kubernetes
  724. // extension to manage hosted GCP services through the Kubernetes API
  725. ConfigConnectorConfig config_connector_config = 10;
  726. }
  727. // Configuration options for the HTTP (L7) load balancing controller addon,
  728. // which makes it easy to set up HTTP load balancers for services in a cluster.
  729. message HttpLoadBalancing {
  730. // Whether the HTTP Load Balancing controller is enabled in the cluster.
  731. // When enabled, it runs a small pod in the cluster that manages the load
  732. // balancers.
  733. bool disabled = 1;
  734. }
  735. // Configuration options for the horizontal pod autoscaling feature, which
  736. // increases or decreases the number of replica pods a replication controller
  737. // has based on the resource usage of the existing pods.
  738. message HorizontalPodAutoscaling {
  739. // Whether the Horizontal Pod Autoscaling feature is enabled in the cluster.
  740. // When enabled, it ensures that metrics are collected into Stackdriver
  741. // Monitoring.
  742. bool disabled = 1;
  743. }
  744. // Configuration for the Kubernetes Dashboard.
  745. message KubernetesDashboard {
  746. // Whether the Kubernetes Dashboard is enabled for this cluster.
  747. bool disabled = 1;
  748. }
  749. // Configuration for NetworkPolicy. This only tracks whether the addon
  750. // is enabled or not on the Master, it does not track whether network policy
  751. // is enabled for the nodes.
  752. message NetworkPolicyConfig {
  753. // Whether NetworkPolicy is enabled for this cluster.
  754. bool disabled = 1;
  755. }
  756. // Configuration for NodeLocal DNSCache
  757. message DnsCacheConfig {
  758. // Whether NodeLocal DNSCache is enabled for this cluster.
  759. bool enabled = 1;
  760. }
  761. // Configuration for controlling master global access settings.
  762. message PrivateClusterMasterGlobalAccessConfig {
  763. // Whenever master is accessible globally or not.
  764. bool enabled = 1;
  765. }
  766. // Configuration options for private clusters.
  767. message PrivateClusterConfig {
  768. // Whether nodes have internal IP addresses only. If enabled, all nodes are
  769. // given only RFC 1918 private addresses and communicate with the master via
  770. // private networking.
  771. bool enable_private_nodes = 1;
  772. // Whether the master's internal IP address is used as the cluster endpoint.
  773. bool enable_private_endpoint = 2;
  774. // The IP range in CIDR notation to use for the hosted master network. This
  775. // range will be used for assigning internal IP addresses to the master or
  776. // set of masters, as well as the ILB VIP. This range must not overlap with
  777. // any other ranges in use within the cluster's network.
  778. string master_ipv4_cidr_block = 3;
  779. // Output only. The internal IP address of this cluster's master endpoint.
  780. string private_endpoint = 4;
  781. // Output only. The external IP address of this cluster's master endpoint.
  782. string public_endpoint = 5;
  783. // Output only. The peering name in the customer VPC used by this cluster.
  784. string peering_name = 7;
  785. // Controls master global access settings.
  786. PrivateClusterMasterGlobalAccessConfig master_global_access_config = 8;
  787. }
  788. // Configuration for returning group information from authenticators.
  789. message AuthenticatorGroupsConfig {
  790. // Whether this cluster should return group membership lookups
  791. // during authentication using a group of security groups.
  792. bool enabled = 1;
  793. // The name of the security group-of-groups to be used. Only relevant
  794. // if enabled = true.
  795. string security_group = 2;
  796. }
  797. // Configuration options for the Cloud Run feature.
  798. message CloudRunConfig {
  799. // Load balancer type of ingress service of Cloud Run.
  800. enum LoadBalancerType {
  801. // Load balancer type for Cloud Run is unspecified.
  802. LOAD_BALANCER_TYPE_UNSPECIFIED = 0;
  803. // Install external load balancer for Cloud Run.
  804. LOAD_BALANCER_TYPE_EXTERNAL = 1;
  805. // Install internal load balancer for Cloud Run.
  806. LOAD_BALANCER_TYPE_INTERNAL = 2;
  807. }
  808. // Whether Cloud Run addon is enabled for this cluster.
  809. bool disabled = 1;
  810. // Which load balancer type is installed for Cloud Run.
  811. LoadBalancerType load_balancer_type = 3;
  812. }
  813. // Configuration options for the Config Connector add-on.
  814. message ConfigConnectorConfig {
  815. // Whether Cloud Connector is enabled for this cluster.
  816. bool enabled = 1;
  817. }
  818. // Configuration options for the master authorized networks feature. Enabled
  819. // master authorized networks will disallow all external traffic to access
  820. // Kubernetes master through HTTPS except traffic from the given CIDR blocks,
  821. // Google Compute Engine Public IPs and Google Prod IPs.
  822. message MasterAuthorizedNetworksConfig {
  823. // CidrBlock contains an optional name and one CIDR block.
  824. message CidrBlock {
  825. // display_name is an optional field for users to identify CIDR blocks.
  826. string display_name = 1;
  827. // cidr_block must be specified in CIDR notation.
  828. string cidr_block = 2;
  829. }
  830. // Whether or not master authorized networks is enabled.
  831. bool enabled = 1;
  832. // cidr_blocks define up to 50 external networks that could access
  833. // Kubernetes master through HTTPS.
  834. repeated CidrBlock cidr_blocks = 2;
  835. }
  836. // Configuration for the legacy Attribute Based Access Control authorization
  837. // mode.
  838. message LegacyAbac {
  839. // Whether the ABAC authorizer is enabled for this cluster. When enabled,
  840. // identities in the system, including service accounts, nodes, and
  841. // controllers, will have statically granted permissions beyond those
  842. // provided by the RBAC configuration or IAM.
  843. bool enabled = 1;
  844. }
  845. // Configuration options for the NetworkPolicy feature.
  846. // https://kubernetes.io/docs/concepts/services-networking/networkpolicies/
  847. message NetworkPolicy {
  848. // Allowed Network Policy providers.
  849. enum Provider {
  850. // Not set
  851. PROVIDER_UNSPECIFIED = 0;
  852. // Tigera (Calico Felix).
  853. CALICO = 1;
  854. }
  855. // The selected network policy provider.
  856. Provider provider = 1;
  857. // Whether network policy is enabled on the cluster.
  858. bool enabled = 2;
  859. }
  860. // Configuration for Binary Authorization.
  861. message BinaryAuthorization {
  862. // Enable Binary Authorization for this cluster. If enabled, all container
  863. // images will be validated by Binary Authorization.
  864. bool enabled = 1;
  865. }
  866. // Configuration for controlling how IPs are allocated in the cluster.
  867. message IPAllocationPolicy {
  868. // Whether alias IPs will be used for pod IPs in the cluster.
  869. // This is used in conjunction with use_routes. It cannot
  870. // be true if use_routes is true. If both use_ip_aliases and use_routes are
  871. // false, then the server picks the default IP allocation mode
  872. bool use_ip_aliases = 1;
  873. // Whether a new subnetwork will be created automatically for the cluster.
  874. //
  875. // This field is only applicable when `use_ip_aliases` is true.
  876. bool create_subnetwork = 2;
  877. // A custom subnetwork name to be used if `create_subnetwork` is true. If
  878. // this field is empty, then an automatic name will be chosen for the new
  879. // subnetwork.
  880. string subnetwork_name = 3;
  881. // This field is deprecated, use cluster_ipv4_cidr_block.
  882. string cluster_ipv4_cidr = 4 [deprecated = true];
  883. // This field is deprecated, use node_ipv4_cidr_block.
  884. string node_ipv4_cidr = 5 [deprecated = true];
  885. // This field is deprecated, use services_ipv4_cidr_block.
  886. string services_ipv4_cidr = 6 [deprecated = true];
  887. // The name of the secondary range to be used for the cluster CIDR
  888. // block. The secondary range will be used for pod IP
  889. // addresses. This must be an existing secondary range associated
  890. // with the cluster subnetwork.
  891. //
  892. // This field is only applicable with use_ip_aliases is true and
  893. // create_subnetwork is false.
  894. string cluster_secondary_range_name = 7;
  895. // The name of the secondary range to be used as for the services
  896. // CIDR block. The secondary range will be used for service
  897. // ClusterIPs. This must be an existing secondary range associated
  898. // with the cluster subnetwork.
  899. //
  900. // This field is only applicable with use_ip_aliases is true and
  901. // create_subnetwork is false.
  902. string services_secondary_range_name = 8;
  903. // The IP address range for the cluster pod IPs. If this field is set, then
  904. // `cluster.cluster_ipv4_cidr` must be left blank.
  905. //
  906. // This field is only applicable when `use_ip_aliases` is true.
  907. //
  908. // Set to blank to have a range chosen with the default size.
  909. //
  910. // Set to /netmask (e.g. `/14`) to have a range chosen with a specific
  911. // netmask.
  912. //
  913. // Set to a
  914. // [CIDR](http://en.wikipedia.org/wiki/Classless_Inter-Domain_Routing)
  915. // notation (e.g. `10.96.0.0/14`) from the RFC-1918 private networks (e.g.
  916. // `10.0.0.0/8`, `172.16.0.0/12`, `192.168.0.0/16`) to pick a specific range
  917. // to use.
  918. string cluster_ipv4_cidr_block = 9;
  919. // The IP address range of the instance IPs in this cluster.
  920. //
  921. // This is applicable only if `create_subnetwork` is true.
  922. //
  923. // Set to blank to have a range chosen with the default size.
  924. //
  925. // Set to /netmask (e.g. `/14`) to have a range chosen with a specific
  926. // netmask.
  927. //
  928. // Set to a
  929. // [CIDR](http://en.wikipedia.org/wiki/Classless_Inter-Domain_Routing)
  930. // notation (e.g. `10.96.0.0/14`) from the RFC-1918 private networks (e.g.
  931. // `10.0.0.0/8`, `172.16.0.0/12`, `192.168.0.0/16`) to pick a specific range
  932. // to use.
  933. string node_ipv4_cidr_block = 10;
  934. // The IP address range of the services IPs in this cluster. If blank, a range
  935. // will be automatically chosen with the default size.
  936. //
  937. // This field is only applicable when `use_ip_aliases` is true.
  938. //
  939. // Set to blank to have a range chosen with the default size.
  940. //
  941. // Set to /netmask (e.g. `/14`) to have a range chosen with a specific
  942. // netmask.
  943. //
  944. // Set to a
  945. // [CIDR](http://en.wikipedia.org/wiki/Classless_Inter-Domain_Routing)
  946. // notation (e.g. `10.96.0.0/14`) from the RFC-1918 private networks (e.g.
  947. // `10.0.0.0/8`, `172.16.0.0/12`, `192.168.0.0/16`) to pick a specific range
  948. // to use.
  949. string services_ipv4_cidr_block = 11;
  950. // The IP address range of the Cloud TPUs in this cluster. If unspecified, a
  951. // range will be automatically chosen with the default size.
  952. //
  953. // This field is only applicable when `use_ip_aliases` is true.
  954. //
  955. // If unspecified, the range will use the default size.
  956. //
  957. // Set to /netmask (e.g. `/14`) to have a range chosen with a specific
  958. // netmask.
  959. //
  960. // Set to a
  961. // [CIDR](http://en.wikipedia.org/wiki/Classless_Inter-Domain_Routing)
  962. // notation (e.g. `10.96.0.0/14`) from the RFC-1918 private networks (e.g.
  963. // `10.0.0.0/8`, `172.16.0.0/12`, `192.168.0.0/16`) to pick a specific range
  964. // to use.
  965. string tpu_ipv4_cidr_block = 13;
  966. // Whether routes will be used for pod IPs in the cluster.
  967. // This is used in conjunction with use_ip_aliases. It cannot be true if
  968. // use_ip_aliases is true. If both use_ip_aliases and use_routes are false,
  969. // then the server picks the default IP allocation mode
  970. bool use_routes = 15;
  971. }
  972. // A Google Kubernetes Engine cluster.
  973. message Cluster {
  974. // The current status of the cluster.
  975. enum Status {
  976. // Not set.
  977. STATUS_UNSPECIFIED = 0;
  978. // The PROVISIONING state indicates the cluster is being created.
  979. PROVISIONING = 1;
  980. // The RUNNING state indicates the cluster has been created and is fully
  981. // usable.
  982. RUNNING = 2;
  983. // The RECONCILING state indicates that some work is actively being done on
  984. // the cluster, such as upgrading the master or node software. Details can
  985. // be found in the `statusMessage` field.
  986. RECONCILING = 3;
  987. // The STOPPING state indicates the cluster is being deleted.
  988. STOPPING = 4;
  989. // The ERROR state indicates the cluster is unusable. It will be
  990. // automatically deleted. Details can be found in the `statusMessage` field.
  991. ERROR = 5;
  992. // The DEGRADED state indicates the cluster requires user action to restore
  993. // full functionality. Details can be found in the `statusMessage` field.
  994. DEGRADED = 6;
  995. }
  996. // The name of this cluster. The name must be unique within this project
  997. // and location (e.g. zone or region), and can be up to 40 characters with
  998. // the following restrictions:
  999. //
  1000. // * Lowercase letters, numbers, and hyphens only.
  1001. // * Must start with a letter.
  1002. // * Must end with a number or a letter.
  1003. string name = 1;
  1004. // An optional description of this cluster.
  1005. string description = 2;
  1006. // The number of nodes to create in this cluster. You must ensure that your
  1007. // Compute Engine [resource quota](https://cloud.google.com/compute/quotas)
  1008. // is sufficient for this number of instances. You must also have available
  1009. // firewall and routes quota.
  1010. // For requests, this field should only be used in lieu of a
  1011. // "node_pool" object, since this configuration (along with the
  1012. // "node_config") will be used to create a "NodePool" object with an
  1013. // auto-generated name. Do not use this and a node_pool at the same time.
  1014. //
  1015. // This field is deprecated, use node_pool.initial_node_count instead.
  1016. int32 initial_node_count = 3 [deprecated = true];
  1017. // Parameters used in creating the cluster's nodes.
  1018. // For requests, this field should only be used in lieu of a
  1019. // "node_pool" object, since this configuration (along with the
  1020. // "initial_node_count") will be used to create a "NodePool" object with an
  1021. // auto-generated name. Do not use this and a node_pool at the same time.
  1022. // For responses, this field will be populated with the node configuration of
  1023. // the first node pool. (For configuration of each node pool, see
  1024. // `node_pool.config`)
  1025. //
  1026. // If unspecified, the defaults are used.
  1027. // This field is deprecated, use node_pool.config instead.
  1028. NodeConfig node_config = 4 [deprecated = true];
  1029. // The authentication information for accessing the master endpoint.
  1030. // If unspecified, the defaults are used:
  1031. // For clusters before v1.12, if master_auth is unspecified, `username` will
  1032. // be set to "admin", a random password will be generated, and a client
  1033. // certificate will be issued.
  1034. MasterAuth master_auth = 5;
  1035. // The logging service the cluster should use to write logs.
  1036. // Currently available options:
  1037. //
  1038. // * `logging.googleapis.com/kubernetes` - The Cloud Logging
  1039. // service with a Kubernetes-native resource model
  1040. // * `logging.googleapis.com` - The legacy Cloud Logging service (no longer
  1041. // available as of GKE 1.15).
  1042. // * `none` - no logs will be exported from the cluster.
  1043. //
  1044. // If left as an empty string,`logging.googleapis.com/kubernetes` will be
  1045. // used for GKE 1.14+ or `logging.googleapis.com` for earlier versions.
  1046. string logging_service = 6;
  1047. // The monitoring service the cluster should use to write metrics.
  1048. // Currently available options:
  1049. //
  1050. // * "monitoring.googleapis.com/kubernetes" - The Cloud Monitoring
  1051. // service with a Kubernetes-native resource model
  1052. // * `monitoring.googleapis.com` - The legacy Cloud Monitoring service (no
  1053. // longer available as of GKE 1.15).
  1054. // * `none` - No metrics will be exported from the cluster.
  1055. //
  1056. // If left as an empty string,`monitoring.googleapis.com/kubernetes` will be
  1057. // used for GKE 1.14+ or `monitoring.googleapis.com` for earlier versions.
  1058. string monitoring_service = 7;
  1059. // The name of the Google Compute Engine
  1060. // [network](https://cloud.google.com/compute/docs/networks-and-firewalls#networks)
  1061. // to which the cluster is connected. If left unspecified, the `default`
  1062. // network will be used.
  1063. string network = 8;
  1064. // The IP address range of the container pods in this cluster, in
  1065. // [CIDR](http://en.wikipedia.org/wiki/Classless_Inter-Domain_Routing)
  1066. // notation (e.g. `10.96.0.0/14`). Leave blank to have
  1067. // one automatically chosen or specify a `/14` block in `10.0.0.0/8`.
  1068. string cluster_ipv4_cidr = 9;
  1069. // Configurations for the various addons available to run in the cluster.
  1070. AddonsConfig addons_config = 10;
  1071. // The name of the Google Compute Engine
  1072. // [subnetwork](https://cloud.google.com/compute/docs/subnetworks) to which
  1073. // the cluster is connected.
  1074. string subnetwork = 11;
  1075. // The node pools associated with this cluster.
  1076. // This field should not be set if "node_config" or "initial_node_count" are
  1077. // specified.
  1078. repeated NodePool node_pools = 12;
  1079. // The list of Google Compute Engine
  1080. // [zones](https://cloud.google.com/compute/docs/zones#available) in which the
  1081. // cluster's nodes should be located.
  1082. //
  1083. // This field provides a default value if
  1084. // [NodePool.Locations](https://cloud.google.com/kubernetes-engine/docs/reference/rest/v1/projects.locations.clusters.nodePools#NodePool.FIELDS.locations)
  1085. // are not specified during node pool creation.
  1086. //
  1087. // Warning: changing cluster locations will update the
  1088. // [NodePool.Locations](https://cloud.google.com/kubernetes-engine/docs/reference/rest/v1/projects.locations.clusters.nodePools#NodePool.FIELDS.locations)
  1089. // of all node pools and will result in nodes being added and/or removed.
  1090. repeated string locations = 13;
  1091. // Kubernetes alpha features are enabled on this cluster. This includes alpha
  1092. // API groups (e.g. v1alpha1) and features that may not be production ready in
  1093. // the kubernetes version of the master and nodes.
  1094. // The cluster has no SLA for uptime and master/node upgrades are disabled.
  1095. // Alpha enabled clusters are automatically deleted thirty days after
  1096. // creation.
  1097. bool enable_kubernetes_alpha = 14;
  1098. // The resource labels for the cluster to use to annotate any related
  1099. // Google Compute Engine resources.
  1100. map<string, string> resource_labels = 15;
  1101. // The fingerprint of the set of labels for this cluster.
  1102. string label_fingerprint = 16;
  1103. // Configuration for the legacy ABAC authorization mode.
  1104. LegacyAbac legacy_abac = 18;
  1105. // Configuration options for the NetworkPolicy feature.
  1106. NetworkPolicy network_policy = 19;
  1107. // Configuration for cluster IP allocation.
  1108. IPAllocationPolicy ip_allocation_policy = 20;
  1109. // The configuration options for master authorized networks feature.
  1110. MasterAuthorizedNetworksConfig master_authorized_networks_config = 22;
  1111. // Configure the maintenance policy for this cluster.
  1112. MaintenancePolicy maintenance_policy = 23;
  1113. // Configuration for Binary Authorization.
  1114. BinaryAuthorization binary_authorization = 24;
  1115. // Cluster-level autoscaling configuration.
  1116. ClusterAutoscaling autoscaling = 26;
  1117. // Configuration for cluster networking.
  1118. NetworkConfig network_config = 27;
  1119. // The default constraint on the maximum number of pods that can be run
  1120. // simultaneously on a node in the node pool of this cluster. Only honored
  1121. // if cluster created with IP Alias support.
  1122. MaxPodsConstraint default_max_pods_constraint = 30;
  1123. // Configuration for exporting resource usages. Resource usage export is
  1124. // disabled when this config is unspecified.
  1125. ResourceUsageExportConfig resource_usage_export_config = 33;
  1126. // Configuration controlling RBAC group membership information.
  1127. AuthenticatorGroupsConfig authenticator_groups_config = 34;
  1128. // Configuration for private cluster.
  1129. PrivateClusterConfig private_cluster_config = 37;
  1130. // Configuration of etcd encryption.
  1131. DatabaseEncryption database_encryption = 38;
  1132. // Cluster-level Vertical Pod Autoscaling configuration.
  1133. VerticalPodAutoscaling vertical_pod_autoscaling = 39;
  1134. // Shielded Nodes configuration.
  1135. ShieldedNodes shielded_nodes = 40;
  1136. // Release channel configuration.
  1137. ReleaseChannel release_channel = 41;
  1138. // Configuration for the use of Kubernetes Service Accounts in GCP IAM
  1139. // policies.
  1140. WorkloadIdentityConfig workload_identity_config = 43;
  1141. // [Output only] Server-defined URL for the resource.
  1142. string self_link = 100;
  1143. // [Output only] The name of the Google Compute Engine
  1144. // [zone](https://cloud.google.com/compute/docs/zones#available) in which the
  1145. // cluster resides. This field is deprecated, use location instead.
  1146. string zone = 101 [deprecated = true];
  1147. // [Output only] The IP address of this cluster's master endpoint.
  1148. // The endpoint can be accessed from the internet at
  1149. // `https://username:password@endpoint/`.
  1150. //
  1151. // See the `masterAuth` property of this resource for username and
  1152. // password information.
  1153. string endpoint = 102;
  1154. // The initial Kubernetes version for this cluster. Valid versions are those
  1155. // found in validMasterVersions returned by getServerConfig. The version can
  1156. // be upgraded over time; such upgrades are reflected in
  1157. // currentMasterVersion and currentNodeVersion.
  1158. //
  1159. // Users may specify either explicit versions offered by
  1160. // Kubernetes Engine or version aliases, which have the following behavior:
  1161. //
  1162. // - "latest": picks the highest valid Kubernetes version
  1163. // - "1.X": picks the highest valid patch+gke.N patch in the 1.X version
  1164. // - "1.X.Y": picks the highest valid gke.N patch in the 1.X.Y version
  1165. // - "1.X.Y-gke.N": picks an explicit Kubernetes version
  1166. // - "","-": picks the default Kubernetes version
  1167. string initial_cluster_version = 103;
  1168. // [Output only] The current software version of the master endpoint.
  1169. string current_master_version = 104;
  1170. // [Output only] Deprecated, use
  1171. // [NodePools.version](https://cloud.google.com/kubernetes-engine/docs/reference/rest/v1/projects.locations.clusters.nodePools)
  1172. // instead. The current version of the node software components. If they are
  1173. // currently at multiple versions because they're in the process of being
  1174. // upgraded, this reflects the minimum version of all nodes.
  1175. string current_node_version = 105 [deprecated = true];
  1176. // [Output only] The time the cluster was created, in
  1177. // [RFC3339](https://www.ietf.org/rfc/rfc3339.txt) text format.
  1178. string create_time = 106;
  1179. // [Output only] The current status of this cluster.
  1180. Status status = 107;
  1181. // [Output only] Deprecated. Use conditions instead.
  1182. // Additional information about the current status of this
  1183. // cluster, if available.
  1184. string status_message = 108 [deprecated = true];
  1185. // [Output only] The size of the address space on each node for hosting
  1186. // containers. This is provisioned from within the `container_ipv4_cidr`
  1187. // range. This field will only be set when cluster is in route-based network
  1188. // mode.
  1189. int32 node_ipv4_cidr_size = 109;
  1190. // [Output only] The IP address range of the Kubernetes services in
  1191. // this cluster, in
  1192. // [CIDR](http://en.wikipedia.org/wiki/Classless_Inter-Domain_Routing)
  1193. // notation (e.g. `1.2.3.4/29`). Service addresses are
  1194. // typically put in the last `/16` from the container CIDR.
  1195. string services_ipv4_cidr = 110;
  1196. // Deprecated. Use node_pools.instance_group_urls.
  1197. repeated string instance_group_urls = 111 [deprecated = true];
  1198. // [Output only] The number of nodes currently in the cluster. Deprecated.
  1199. // Call Kubernetes API directly to retrieve node information.
  1200. int32 current_node_count = 112 [deprecated = true];
  1201. // [Output only] The time the cluster will be automatically
  1202. // deleted in [RFC3339](https://www.ietf.org/rfc/rfc3339.txt) text format.
  1203. string expire_time = 113;
  1204. // [Output only] The name of the Google Compute Engine
  1205. // [zone](https://cloud.google.com/compute/docs/regions-zones/regions-zones#available)
  1206. // or
  1207. // [region](https://cloud.google.com/compute/docs/regions-zones/regions-zones#available)
  1208. // in which the cluster resides.
  1209. string location = 114;
  1210. // Enable the ability to use Cloud TPUs in this cluster.
  1211. bool enable_tpu = 115;
  1212. // [Output only] The IP address range of the Cloud TPUs in this cluster, in
  1213. // [CIDR](http://en.wikipedia.org/wiki/Classless_Inter-Domain_Routing)
  1214. // notation (e.g. `1.2.3.4/29`).
  1215. string tpu_ipv4_cidr_block = 116;
  1216. // Which conditions caused the current cluster state.
  1217. repeated StatusCondition conditions = 118;
  1218. }
  1219. // ClusterUpdate describes an update to the cluster. Exactly one update can
  1220. // be applied to a cluster with each request, so at most one field can be
  1221. // provided.
  1222. message ClusterUpdate {
  1223. // The Kubernetes version to change the nodes to (typically an
  1224. // upgrade).
  1225. //
  1226. // Users may specify either explicit versions offered by
  1227. // Kubernetes Engine or version aliases, which have the following behavior:
  1228. //
  1229. // - "latest": picks the highest valid Kubernetes version
  1230. // - "1.X": picks the highest valid patch+gke.N patch in the 1.X version
  1231. // - "1.X.Y": picks the highest valid gke.N patch in the 1.X.Y version
  1232. // - "1.X.Y-gke.N": picks an explicit Kubernetes version
  1233. // - "-": picks the Kubernetes master version
  1234. string desired_node_version = 4;
  1235. // The monitoring service the cluster should use to write metrics.
  1236. // Currently available options:
  1237. //
  1238. // * "monitoring.googleapis.com/kubernetes" - The Cloud Monitoring
  1239. // service with a Kubernetes-native resource model
  1240. // * `monitoring.googleapis.com` - The legacy Cloud Monitoring service (no
  1241. // longer available as of GKE 1.15).
  1242. // * `none` - No metrics will be exported from the cluster.
  1243. //
  1244. // If left as an empty string,`monitoring.googleapis.com/kubernetes` will be
  1245. // used for GKE 1.14+ or `monitoring.googleapis.com` for earlier versions.
  1246. string desired_monitoring_service = 5;
  1247. // Configurations for the various addons available to run in the cluster.
  1248. AddonsConfig desired_addons_config = 6;
  1249. // The node pool to be upgraded. This field is mandatory if
  1250. // "desired_node_version", "desired_image_family" or
  1251. // "desired_node_pool_autoscaling" is specified and there is more than one
  1252. // node pool on the cluster.
  1253. string desired_node_pool_id = 7;
  1254. // The desired image type for the node pool.
  1255. // NOTE: Set the "desired_node_pool" field as well.
  1256. string desired_image_type = 8;
  1257. // Configuration of etcd encryption.
  1258. DatabaseEncryption desired_database_encryption = 46;
  1259. // Configuration for Workload Identity.
  1260. WorkloadIdentityConfig desired_workload_identity_config = 47;
  1261. // Configuration for Shielded Nodes.
  1262. ShieldedNodes desired_shielded_nodes = 48;
  1263. // Autoscaler configuration for the node pool specified in
  1264. // desired_node_pool_id. If there is only one pool in the
  1265. // cluster and desired_node_pool_id is not provided then
  1266. // the change applies to that single node pool.
  1267. NodePoolAutoscaling desired_node_pool_autoscaling = 9;
  1268. // The desired list of Google Compute Engine
  1269. // [zones](https://cloud.google.com/compute/docs/zones#available) in which the
  1270. // cluster's nodes should be located.
  1271. //
  1272. // This list must always include the cluster's primary zone.
  1273. //
  1274. // Warning: changing cluster locations will update the locations of all node
  1275. // pools and will result in nodes being added and/or removed.
  1276. repeated string desired_locations = 10;
  1277. // The desired configuration options for master authorized networks feature.
  1278. MasterAuthorizedNetworksConfig desired_master_authorized_networks_config = 12;
  1279. // Cluster-level autoscaling configuration.
  1280. ClusterAutoscaling desired_cluster_autoscaling = 15;
  1281. // The desired configuration options for the Binary Authorization feature.
  1282. BinaryAuthorization desired_binary_authorization = 16;
  1283. // The logging service the cluster should use to write logs.
  1284. // Currently available options:
  1285. //
  1286. // * `logging.googleapis.com/kubernetes` - The Cloud Logging
  1287. // service with a Kubernetes-native resource model
  1288. // * `logging.googleapis.com` - The legacy Cloud Logging service (no longer
  1289. // available as of GKE 1.15).
  1290. // * `none` - no logs will be exported from the cluster.
  1291. //
  1292. // If left as an empty string,`logging.googleapis.com/kubernetes` will be
  1293. // used for GKE 1.14+ or `logging.googleapis.com` for earlier versions.
  1294. string desired_logging_service = 19;
  1295. // The desired configuration for exporting resource usage.
  1296. ResourceUsageExportConfig desired_resource_usage_export_config = 21;
  1297. // Cluster-level Vertical Pod Autoscaling configuration.
  1298. VerticalPodAutoscaling desired_vertical_pod_autoscaling = 22;
  1299. // The desired private cluster configuration.
  1300. PrivateClusterConfig desired_private_cluster_config = 25;
  1301. // The desired config of Intra-node visibility.
  1302. IntraNodeVisibilityConfig desired_intra_node_visibility_config = 26;
  1303. // The desired status of whether to disable default sNAT for this cluster.
  1304. DefaultSnatStatus desired_default_snat_status = 28;
  1305. // The desired release channel configuration.
  1306. ReleaseChannel desired_release_channel = 31;
  1307. // The desired authenticator groups config for the cluster.
  1308. AuthenticatorGroupsConfig desired_authenticator_groups_config = 63;
  1309. // The Kubernetes version to change the master to.
  1310. //
  1311. // Users may specify either explicit versions offered by
  1312. // Kubernetes Engine or version aliases, which have the following behavior:
  1313. //
  1314. // - "latest": picks the highest valid Kubernetes version
  1315. // - "1.X": picks the highest valid patch+gke.N patch in the 1.X version
  1316. // - "1.X.Y": picks the highest valid gke.N patch in the 1.X.Y version
  1317. // - "1.X.Y-gke.N": picks an explicit Kubernetes version
  1318. // - "-": picks the default Kubernetes version
  1319. string desired_master_version = 100;
  1320. }
  1321. // This operation resource represents operations that may have happened or are
  1322. // happening on the cluster. All fields are output only.
  1323. message Operation {
  1324. // Current status of the operation.
  1325. enum Status {
  1326. // Not set.
  1327. STATUS_UNSPECIFIED = 0;
  1328. // The operation has been created.
  1329. PENDING = 1;
  1330. // The operation is currently running.
  1331. RUNNING = 2;
  1332. // The operation is done, either cancelled or completed.
  1333. DONE = 3;
  1334. // The operation is aborting.
  1335. ABORTING = 4;
  1336. }
  1337. // Operation type.
  1338. enum Type {
  1339. // Not set.
  1340. TYPE_UNSPECIFIED = 0;
  1341. // Cluster create.
  1342. CREATE_CLUSTER = 1;
  1343. // Cluster delete.
  1344. DELETE_CLUSTER = 2;
  1345. // A master upgrade.
  1346. UPGRADE_MASTER = 3;
  1347. // A node upgrade.
  1348. UPGRADE_NODES = 4;
  1349. // Cluster repair.
  1350. REPAIR_CLUSTER = 5;
  1351. // Cluster update.
  1352. UPDATE_CLUSTER = 6;
  1353. // Node pool create.
  1354. CREATE_NODE_POOL = 7;
  1355. // Node pool delete.
  1356. DELETE_NODE_POOL = 8;
  1357. // Set node pool management.
  1358. SET_NODE_POOL_MANAGEMENT = 9;
  1359. // Automatic node pool repair.
  1360. AUTO_REPAIR_NODES = 10;
  1361. // Automatic node upgrade.
  1362. AUTO_UPGRADE_NODES = 11;
  1363. // Set labels.
  1364. SET_LABELS = 12;
  1365. // Set/generate master auth materials
  1366. SET_MASTER_AUTH = 13;
  1367. // Set node pool size.
  1368. SET_NODE_POOL_SIZE = 14;
  1369. // Updates network policy for a cluster.
  1370. SET_NETWORK_POLICY = 15;
  1371. // Set the maintenance policy.
  1372. SET_MAINTENANCE_POLICY = 16;
  1373. }
  1374. // The server-assigned ID for the operation.
  1375. string name = 1;
  1376. // The name of the Google Compute Engine
  1377. // [zone](https://cloud.google.com/compute/docs/zones#available) in which the
  1378. // operation is taking place. This field is deprecated, use location instead.
  1379. string zone = 2 [deprecated = true];
  1380. // The operation type.
  1381. Type operation_type = 3;
  1382. // The current status of the operation.
  1383. Status status = 4;
  1384. // Detailed operation progress, if available.
  1385. string detail = 8;
  1386. // Output only. If an error has occurred, a textual description of the error.
  1387. string status_message = 5 [(google.api.field_behavior) = OUTPUT_ONLY];
  1388. // Server-defined URL for the resource.
  1389. string self_link = 6;
  1390. // Server-defined URL for the target of the operation.
  1391. string target_link = 7;
  1392. // [Output only] The name of the Google Compute Engine
  1393. // [zone](https://cloud.google.com/compute/docs/regions-zones/regions-zones#available)
  1394. // or
  1395. // [region](https://cloud.google.com/compute/docs/regions-zones/regions-zones#available)
  1396. // in which the cluster resides.
  1397. string location = 9;
  1398. // [Output only] The time the operation started, in
  1399. // [RFC3339](https://www.ietf.org/rfc/rfc3339.txt) text format.
  1400. string start_time = 10;
  1401. // [Output only] The time the operation completed, in
  1402. // [RFC3339](https://www.ietf.org/rfc/rfc3339.txt) text format.
  1403. string end_time = 11;
  1404. // Output only. [Output only] Progress information for an operation.
  1405. OperationProgress progress = 12 [(google.api.field_behavior) = OUTPUT_ONLY];
  1406. // Which conditions caused the current cluster state.
  1407. repeated StatusCondition cluster_conditions = 13;
  1408. // Which conditions caused the current node pool state.
  1409. repeated StatusCondition nodepool_conditions = 14;
  1410. }
  1411. // Information about operation (or operation stage) progress.
  1412. message OperationProgress {
  1413. // Progress metric is (string, int|float|string) pair.
  1414. message Metric {
  1415. // Required. Metric name, e.g., "nodes total", "percent done".
  1416. string name = 1 [(google.api.field_behavior) = REQUIRED];
  1417. // Strictly one of the values is required.
  1418. oneof value {
  1419. // For metrics with integer value.
  1420. int64 int_value = 2;
  1421. // For metrics with floating point value.
  1422. double double_value = 3;
  1423. // For metrics with custom values (ratios, visual progress, etc.).
  1424. string string_value = 4;
  1425. }
  1426. }
  1427. // A non-parameterized string describing an operation stage.
  1428. // Unset for single-stage operations.
  1429. string name = 1;
  1430. // Status of an operation stage.
  1431. // Unset for single-stage operations.
  1432. Operation.Status status = 2;
  1433. // Progress metric bundle, for example:
  1434. // metrics: [{name: "nodes done", int_value: 15},
  1435. // {name: "nodes total", int_value: 32}]
  1436. // or
  1437. // metrics: [{name: "progress", double_value: 0.56},
  1438. // {name: "progress scale", double_value: 1.0}]
  1439. repeated Metric metrics = 3;
  1440. // Substages of an operation or a stage.
  1441. repeated OperationProgress stages = 4;
  1442. }
  1443. // CreateClusterRequest creates a cluster.
  1444. message CreateClusterRequest {
  1445. // Deprecated. The Google Developers Console [project ID or project
  1446. // number](https://support.google.com/cloud/answer/6158840).
  1447. // This field has been deprecated and replaced by the parent field.
  1448. string project_id = 1 [deprecated = true];
  1449. // Deprecated. The name of the Google Compute Engine
  1450. // [zone](https://cloud.google.com/compute/docs/zones#available) in which the
  1451. // cluster resides. This field has been deprecated and replaced by the parent
  1452. // field.
  1453. string zone = 2 [deprecated = true];
  1454. // Required. A [cluster
  1455. // resource](https://cloud.google.com/container-engine/reference/rest/v1/projects.locations.clusters)
  1456. Cluster cluster = 3 [(google.api.field_behavior) = REQUIRED];
  1457. // The parent (project and location) where the cluster will be created.
  1458. // Specified in the format `projects/*/locations/*`.
  1459. string parent = 5;
  1460. }
  1461. // GetClusterRequest gets the settings of a cluster.
  1462. message GetClusterRequest {
  1463. // Deprecated. The Google Developers Console [project ID or project
  1464. // number](https://support.google.com/cloud/answer/6158840).
  1465. // This field has been deprecated and replaced by the name field.
  1466. string project_id = 1 [deprecated = true];
  1467. // Deprecated. The name of the Google Compute Engine
  1468. // [zone](https://cloud.google.com/compute/docs/zones#available) in which the
  1469. // cluster resides. This field has been deprecated and replaced by the name
  1470. // field.
  1471. string zone = 2 [deprecated = true];
  1472. // Deprecated. The name of the cluster to retrieve.
  1473. // This field has been deprecated and replaced by the name field.
  1474. string cluster_id = 3 [deprecated = true];
  1475. // The name (project, location, cluster) of the cluster to retrieve.
  1476. // Specified in the format `projects/*/locations/*/clusters/*`.
  1477. string name = 5;
  1478. }
  1479. // UpdateClusterRequest updates the settings of a cluster.
  1480. message UpdateClusterRequest {
  1481. // Deprecated. The Google Developers Console [project ID or project
  1482. // number](https://support.google.com/cloud/answer/6158840).
  1483. // This field has been deprecated and replaced by the name field.
  1484. string project_id = 1 [deprecated = true];
  1485. // Deprecated. The name of the Google Compute Engine
  1486. // [zone](https://cloud.google.com/compute/docs/zones#available) in which the
  1487. // cluster resides. This field has been deprecated and replaced by the name
  1488. // field.
  1489. string zone = 2 [deprecated = true];
  1490. // Deprecated. The name of the cluster to upgrade.
  1491. // This field has been deprecated and replaced by the name field.
  1492. string cluster_id = 3 [deprecated = true];
  1493. // Required. A description of the update.
  1494. ClusterUpdate update = 4 [(google.api.field_behavior) = REQUIRED];
  1495. // The name (project, location, cluster) of the cluster to update.
  1496. // Specified in the format `projects/*/locations/*/clusters/*`.
  1497. string name = 5;
  1498. }
  1499. // UpdateNodePoolRequests update a node pool's image and/or version.
  1500. message UpdateNodePoolRequest {
  1501. // Deprecated. The Google Developers Console [project ID or project
  1502. // number](https://support.google.com/cloud/answer/6158840).
  1503. // This field has been deprecated and replaced by the name field.
  1504. string project_id = 1 [deprecated = true];
  1505. // Deprecated. The name of the Google Compute Engine
  1506. // [zone](https://cloud.google.com/compute/docs/zones#available) in which the
  1507. // cluster resides. This field has been deprecated and replaced by the name
  1508. // field.
  1509. string zone = 2 [deprecated = true];
  1510. // Deprecated. The name of the cluster to upgrade.
  1511. // This field has been deprecated and replaced by the name field.
  1512. string cluster_id = 3 [deprecated = true];
  1513. // Deprecated. The name of the node pool to upgrade.
  1514. // This field has been deprecated and replaced by the name field.
  1515. string node_pool_id = 4 [deprecated = true];
  1516. // Required. The Kubernetes version to change the nodes to (typically an
  1517. // upgrade).
  1518. //
  1519. // Users may specify either explicit versions offered by Kubernetes Engine or
  1520. // version aliases, which have the following behavior:
  1521. //
  1522. // - "latest": picks the highest valid Kubernetes version
  1523. // - "1.X": picks the highest valid patch+gke.N patch in the 1.X version
  1524. // - "1.X.Y": picks the highest valid gke.N patch in the 1.X.Y version
  1525. // - "1.X.Y-gke.N": picks an explicit Kubernetes version
  1526. // - "-": picks the Kubernetes master version
  1527. string node_version = 5 [(google.api.field_behavior) = REQUIRED];
  1528. // Required. The desired image type for the node pool.
  1529. string image_type = 6 [(google.api.field_behavior) = REQUIRED];
  1530. // The name (project, location, cluster, node pool) of the node pool to
  1531. // update. Specified in the format
  1532. // `projects/*/locations/*/clusters/*/nodePools/*`.
  1533. string name = 8;
  1534. // The desired list of Google Compute Engine
  1535. // [zones](https://cloud.google.com/compute/docs/zones#available) in which the
  1536. // node pool's nodes should be located. Changing the locations for a node pool
  1537. // will result in nodes being either created or removed from the node pool,
  1538. // depending on whether locations are being added or removed.
  1539. repeated string locations = 13;
  1540. // The desired workload metadata config for the node pool.
  1541. WorkloadMetadataConfig workload_metadata_config = 14;
  1542. // Upgrade settings control disruption and speed of the upgrade.
  1543. NodePool.UpgradeSettings upgrade_settings = 15;
  1544. }
  1545. // SetNodePoolAutoscalingRequest sets the autoscaler settings of a node pool.
  1546. message SetNodePoolAutoscalingRequest {
  1547. // Deprecated. The Google Developers Console [project ID or project
  1548. // number](https://support.google.com/cloud/answer/6158840).
  1549. // This field has been deprecated and replaced by the name field.
  1550. string project_id = 1 [deprecated = true];
  1551. // Deprecated. The name of the Google Compute Engine
  1552. // [zone](https://cloud.google.com/compute/docs/zones#available) in which the
  1553. // cluster resides. This field has been deprecated and replaced by the name
  1554. // field.
  1555. string zone = 2 [deprecated = true];
  1556. // Deprecated. The name of the cluster to upgrade.
  1557. // This field has been deprecated and replaced by the name field.
  1558. string cluster_id = 3 [deprecated = true];
  1559. // Deprecated. The name of the node pool to upgrade.
  1560. // This field has been deprecated and replaced by the name field.
  1561. string node_pool_id = 4 [deprecated = true];
  1562. // Required. Autoscaling configuration for the node pool.
  1563. NodePoolAutoscaling autoscaling = 5 [(google.api.field_behavior) = REQUIRED];
  1564. // The name (project, location, cluster, node pool) of the node pool to set
  1565. // autoscaler settings. Specified in the format
  1566. // `projects/*/locations/*/clusters/*/nodePools/*`.
  1567. string name = 6;
  1568. }
  1569. // SetLoggingServiceRequest sets the logging service of a cluster.
  1570. message SetLoggingServiceRequest {
  1571. // Deprecated. The Google Developers Console [project ID or project
  1572. // number](https://support.google.com/cloud/answer/6158840).
  1573. // This field has been deprecated and replaced by the name field.
  1574. string project_id = 1 [deprecated = true];
  1575. // Deprecated. The name of the Google Compute Engine
  1576. // [zone](https://cloud.google.com/compute/docs/zones#available) in which the
  1577. // cluster resides. This field has been deprecated and replaced by the name
  1578. // field.
  1579. string zone = 2 [deprecated = true];
  1580. // Deprecated. The name of the cluster to upgrade.
  1581. // This field has been deprecated and replaced by the name field.
  1582. string cluster_id = 3 [deprecated = true];
  1583. // Required. The logging service the cluster should use to write logs.
  1584. // Currently available options:
  1585. //
  1586. // * `logging.googleapis.com/kubernetes` - The Cloud Logging
  1587. // service with a Kubernetes-native resource model
  1588. // * `logging.googleapis.com` - The legacy Cloud Logging service (no longer
  1589. // available as of GKE 1.15).
  1590. // * `none` - no logs will be exported from the cluster.
  1591. //
  1592. // If left as an empty string,`logging.googleapis.com/kubernetes` will be
  1593. // used for GKE 1.14+ or `logging.googleapis.com` for earlier versions.
  1594. string logging_service = 4 [(google.api.field_behavior) = REQUIRED];
  1595. // The name (project, location, cluster) of the cluster to set logging.
  1596. // Specified in the format `projects/*/locations/*/clusters/*`.
  1597. string name = 5;
  1598. }
  1599. // SetMonitoringServiceRequest sets the monitoring service of a cluster.
  1600. message SetMonitoringServiceRequest {
  1601. // Deprecated. The Google Developers Console [project ID or project
  1602. // number](https://support.google.com/cloud/answer/6158840).
  1603. // This field has been deprecated and replaced by the name field.
  1604. string project_id = 1 [deprecated = true];
  1605. // Deprecated. The name of the Google Compute Engine
  1606. // [zone](https://cloud.google.com/compute/docs/zones#available) in which the
  1607. // cluster resides. This field has been deprecated and replaced by the name
  1608. // field.
  1609. string zone = 2 [deprecated = true];
  1610. // Deprecated. The name of the cluster to upgrade.
  1611. // This field has been deprecated and replaced by the name field.
  1612. string cluster_id = 3 [deprecated = true];
  1613. // Required. The monitoring service the cluster should use to write metrics.
  1614. // Currently available options:
  1615. //
  1616. // * "monitoring.googleapis.com/kubernetes" - The Cloud Monitoring
  1617. // service with a Kubernetes-native resource model
  1618. // * `monitoring.googleapis.com` - The legacy Cloud Monitoring service (no
  1619. // longer available as of GKE 1.15).
  1620. // * `none` - No metrics will be exported from the cluster.
  1621. //
  1622. // If left as an empty string,`monitoring.googleapis.com/kubernetes` will be
  1623. // used for GKE 1.14+ or `monitoring.googleapis.com` for earlier versions.
  1624. string monitoring_service = 4 [(google.api.field_behavior) = REQUIRED];
  1625. // The name (project, location, cluster) of the cluster to set monitoring.
  1626. // Specified in the format `projects/*/locations/*/clusters/*`.
  1627. string name = 6;
  1628. }
  1629. // SetAddonsConfigRequest sets the addons associated with the cluster.
  1630. message SetAddonsConfigRequest {
  1631. // Deprecated. The Google Developers Console [project ID or project
  1632. // number](https://support.google.com/cloud/answer/6158840).
  1633. // This field has been deprecated and replaced by the name field.
  1634. string project_id = 1 [deprecated = true];
  1635. // Deprecated. The name of the Google Compute Engine
  1636. // [zone](https://cloud.google.com/compute/docs/zones#available) in which the
  1637. // cluster resides. This field has been deprecated and replaced by the name
  1638. // field.
  1639. string zone = 2 [deprecated = true];
  1640. // Deprecated. The name of the cluster to upgrade.
  1641. // This field has been deprecated and replaced by the name field.
  1642. string cluster_id = 3 [deprecated = true];
  1643. // Required. The desired configurations for the various addons available to run in the
  1644. // cluster.
  1645. AddonsConfig addons_config = 4 [(google.api.field_behavior) = REQUIRED];
  1646. // The name (project, location, cluster) of the cluster to set addons.
  1647. // Specified in the format `projects/*/locations/*/clusters/*`.
  1648. string name = 6;
  1649. }
  1650. // SetLocationsRequest sets the locations of the cluster.
  1651. message SetLocationsRequest {
  1652. // Deprecated. The Google Developers Console [project ID or project
  1653. // number](https://support.google.com/cloud/answer/6158840).
  1654. // This field has been deprecated and replaced by the name field.
  1655. string project_id = 1 [deprecated = true];
  1656. // Deprecated. The name of the Google Compute Engine
  1657. // [zone](https://cloud.google.com/compute/docs/zones#available) in which the
  1658. // cluster resides. This field has been deprecated and replaced by the name
  1659. // field.
  1660. string zone = 2 [deprecated = true];
  1661. // Deprecated. The name of the cluster to upgrade.
  1662. // This field has been deprecated and replaced by the name field.
  1663. string cluster_id = 3 [deprecated = true];
  1664. // Required. The desired list of Google Compute Engine
  1665. // [zones](https://cloud.google.com/compute/docs/zones#available) in which the
  1666. // cluster's nodes should be located. Changing the locations a cluster is in
  1667. // will result in nodes being either created or removed from the cluster,
  1668. // depending on whether locations are being added or removed.
  1669. //
  1670. // This list must always include the cluster's primary zone.
  1671. repeated string locations = 4 [(google.api.field_behavior) = REQUIRED];
  1672. // The name (project, location, cluster) of the cluster to set locations.
  1673. // Specified in the format `projects/*/locations/*/clusters/*`.
  1674. string name = 6;
  1675. }
  1676. // UpdateMasterRequest updates the master of the cluster.
  1677. message UpdateMasterRequest {
  1678. // Deprecated. The Google Developers Console [project ID or project
  1679. // number](https://support.google.com/cloud/answer/6158840).
  1680. // This field has been deprecated and replaced by the name field.
  1681. string project_id = 1 [deprecated = true];
  1682. // Deprecated. The name of the Google Compute Engine
  1683. // [zone](https://cloud.google.com/compute/docs/zones#available) in which the
  1684. // cluster resides. This field has been deprecated and replaced by the name
  1685. // field.
  1686. string zone = 2 [deprecated = true];
  1687. // Deprecated. The name of the cluster to upgrade.
  1688. // This field has been deprecated and replaced by the name field.
  1689. string cluster_id = 3 [deprecated = true];
  1690. // Required. The Kubernetes version to change the master to.
  1691. //
  1692. // Users may specify either explicit versions offered by Kubernetes Engine or
  1693. // version aliases, which have the following behavior:
  1694. //
  1695. // - "latest": picks the highest valid Kubernetes version
  1696. // - "1.X": picks the highest valid patch+gke.N patch in the 1.X version
  1697. // - "1.X.Y": picks the highest valid gke.N patch in the 1.X.Y version
  1698. // - "1.X.Y-gke.N": picks an explicit Kubernetes version
  1699. // - "-": picks the default Kubernetes version
  1700. string master_version = 4 [(google.api.field_behavior) = REQUIRED];
  1701. // The name (project, location, cluster) of the cluster to update.
  1702. // Specified in the format `projects/*/locations/*/clusters/*`.
  1703. string name = 7;
  1704. }
  1705. // SetMasterAuthRequest updates the admin password of a cluster.
  1706. message SetMasterAuthRequest {
  1707. // Operation type: what type update to perform.
  1708. enum Action {
  1709. // Operation is unknown and will error out.
  1710. UNKNOWN = 0;
  1711. // Set the password to a user generated value.
  1712. SET_PASSWORD = 1;
  1713. // Generate a new password and set it to that.
  1714. GENERATE_PASSWORD = 2;
  1715. // Set the username. If an empty username is provided, basic authentication
  1716. // is disabled for the cluster. If a non-empty username is provided, basic
  1717. // authentication is enabled, with either a provided password or a generated
  1718. // one.
  1719. SET_USERNAME = 3;
  1720. }
  1721. // Deprecated. The Google Developers Console [project ID or project
  1722. // number](https://support.google.com/cloud/answer/6158840).
  1723. // This field has been deprecated and replaced by the name field.
  1724. string project_id = 1 [deprecated = true];
  1725. // Deprecated. The name of the Google Compute Engine
  1726. // [zone](https://cloud.google.com/compute/docs/zones#available) in which the
  1727. // cluster resides. This field has been deprecated and replaced by the name
  1728. // field.
  1729. string zone = 2 [deprecated = true];
  1730. // Deprecated. The name of the cluster to upgrade.
  1731. // This field has been deprecated and replaced by the name field.
  1732. string cluster_id = 3 [deprecated = true];
  1733. // Required. The exact form of action to be taken on the master auth.
  1734. Action action = 4 [(google.api.field_behavior) = REQUIRED];
  1735. // Required. A description of the update.
  1736. MasterAuth update = 5 [(google.api.field_behavior) = REQUIRED];
  1737. // The name (project, location, cluster) of the cluster to set auth.
  1738. // Specified in the format `projects/*/locations/*/clusters/*`.
  1739. string name = 7;
  1740. }
  1741. // DeleteClusterRequest deletes a cluster.
  1742. message DeleteClusterRequest {
  1743. // Deprecated. The Google Developers Console [project ID or project
  1744. // number](https://support.google.com/cloud/answer/6158840).
  1745. // This field has been deprecated and replaced by the name field.
  1746. string project_id = 1 [deprecated = true];
  1747. // Deprecated. The name of the Google Compute Engine
  1748. // [zone](https://cloud.google.com/compute/docs/zones#available) in which the
  1749. // cluster resides. This field has been deprecated and replaced by the name
  1750. // field.
  1751. string zone = 2 [deprecated = true];
  1752. // Deprecated. The name of the cluster to delete.
  1753. // This field has been deprecated and replaced by the name field.
  1754. string cluster_id = 3 [deprecated = true];
  1755. // The name (project, location, cluster) of the cluster to delete.
  1756. // Specified in the format `projects/*/locations/*/clusters/*`.
  1757. string name = 4;
  1758. }
  1759. // ListClustersRequest lists clusters.
  1760. message ListClustersRequest {
  1761. // Deprecated. The Google Developers Console [project ID or project
  1762. // number](https://support.google.com/cloud/answer/6158840).
  1763. // This field has been deprecated and replaced by the parent field.
  1764. string project_id = 1 [deprecated = true];
  1765. // Deprecated. The name of the Google Compute Engine
  1766. // [zone](https://cloud.google.com/compute/docs/zones#available) in which the
  1767. // cluster resides, or "-" for all zones. This field has been deprecated and
  1768. // replaced by the parent field.
  1769. string zone = 2 [deprecated = true];
  1770. // The parent (project and location) where the clusters will be listed.
  1771. // Specified in the format `projects/*/locations/*`.
  1772. // Location "-" matches all zones and all regions.
  1773. string parent = 4;
  1774. }
  1775. // ListClustersResponse is the result of ListClustersRequest.
  1776. message ListClustersResponse {
  1777. // A list of clusters in the project in the specified zone, or
  1778. // across all ones.
  1779. repeated Cluster clusters = 1;
  1780. // If any zones are listed here, the list of clusters returned
  1781. // may be missing those zones.
  1782. repeated string missing_zones = 2;
  1783. }
  1784. // GetOperationRequest gets a single operation.
  1785. message GetOperationRequest {
  1786. // Deprecated. The Google Developers Console [project ID or project
  1787. // number](https://support.google.com/cloud/answer/6158840).
  1788. // This field has been deprecated and replaced by the name field.
  1789. string project_id = 1 [deprecated = true];
  1790. // Deprecated. The name of the Google Compute Engine
  1791. // [zone](https://cloud.google.com/compute/docs/zones#available) in which the
  1792. // cluster resides. This field has been deprecated and replaced by the name
  1793. // field.
  1794. string zone = 2 [deprecated = true];
  1795. // Deprecated. The server-assigned `name` of the operation.
  1796. // This field has been deprecated and replaced by the name field.
  1797. string operation_id = 3 [deprecated = true];
  1798. // The name (project, location, operation id) of the operation to get.
  1799. // Specified in the format `projects/*/locations/*/operations/*`.
  1800. string name = 5;
  1801. }
  1802. // ListOperationsRequest lists operations.
  1803. message ListOperationsRequest {
  1804. // Deprecated. The Google Developers Console [project ID or project
  1805. // number](https://support.google.com/cloud/answer/6158840).
  1806. // This field has been deprecated and replaced by the parent field.
  1807. string project_id = 1 [deprecated = true];
  1808. // Deprecated. The name of the Google Compute Engine
  1809. // [zone](https://cloud.google.com/compute/docs/zones#available) to return
  1810. // operations for, or `-` for all zones. This field has been deprecated and
  1811. // replaced by the parent field.
  1812. string zone = 2 [deprecated = true];
  1813. // The parent (project and location) where the operations will be listed.
  1814. // Specified in the format `projects/*/locations/*`.
  1815. // Location "-" matches all zones and all regions.
  1816. string parent = 4;
  1817. }
  1818. // CancelOperationRequest cancels a single operation.
  1819. message CancelOperationRequest {
  1820. // Deprecated. The Google Developers Console [project ID or project
  1821. // number](https://support.google.com/cloud/answer/6158840).
  1822. // This field has been deprecated and replaced by the name field.
  1823. string project_id = 1 [deprecated = true];
  1824. // Deprecated. The name of the Google Compute Engine
  1825. // [zone](https://cloud.google.com/compute/docs/zones#available) in which the
  1826. // operation resides. This field has been deprecated and replaced by the name
  1827. // field.
  1828. string zone = 2 [deprecated = true];
  1829. // Deprecated. The server-assigned `name` of the operation.
  1830. // This field has been deprecated and replaced by the name field.
  1831. string operation_id = 3 [deprecated = true];
  1832. // The name (project, location, operation id) of the operation to cancel.
  1833. // Specified in the format `projects/*/locations/*/operations/*`.
  1834. string name = 4;
  1835. }
  1836. // ListOperationsResponse is the result of ListOperationsRequest.
  1837. message ListOperationsResponse {
  1838. // A list of operations in the project in the specified zone.
  1839. repeated Operation operations = 1;
  1840. // If any zones are listed here, the list of operations returned
  1841. // may be missing the operations from those zones.
  1842. repeated string missing_zones = 2;
  1843. }
  1844. // Gets the current Kubernetes Engine service configuration.
  1845. message GetServerConfigRequest {
  1846. // Deprecated. The Google Developers Console [project ID or project
  1847. // number](https://support.google.com/cloud/answer/6158840).
  1848. // This field has been deprecated and replaced by the name field.
  1849. string project_id = 1 [deprecated = true];
  1850. // Deprecated. The name of the Google Compute Engine
  1851. // [zone](https://cloud.google.com/compute/docs/zones#available) to return
  1852. // operations for. This field has been deprecated and replaced by the name
  1853. // field.
  1854. string zone = 2 [deprecated = true];
  1855. // The name (project and location) of the server config to get,
  1856. // specified in the format `projects/*/locations/*`.
  1857. string name = 4;
  1858. }
  1859. // Kubernetes Engine service configuration.
  1860. message ServerConfig {
  1861. // ReleaseChannelConfig exposes configuration for a release channel.
  1862. message ReleaseChannelConfig {
  1863. // The release channel this configuration applies to.
  1864. ReleaseChannel.Channel channel = 1;
  1865. // The default version for newly created clusters on the channel.
  1866. string default_version = 2;
  1867. // List of valid versions for the channel.
  1868. repeated string valid_versions = 4;
  1869. }
  1870. // Version of Kubernetes the service deploys by default.
  1871. string default_cluster_version = 1;
  1872. // List of valid node upgrade target versions, in descending order.
  1873. repeated string valid_node_versions = 3;
  1874. // Default image type.
  1875. string default_image_type = 4;
  1876. // List of valid image types.
  1877. repeated string valid_image_types = 5;
  1878. // List of valid master versions, in descending order.
  1879. repeated string valid_master_versions = 6;
  1880. // List of release channel configurations.
  1881. repeated ReleaseChannelConfig channels = 9;
  1882. }
  1883. // CreateNodePoolRequest creates a node pool for a cluster.
  1884. message CreateNodePoolRequest {
  1885. // Deprecated. The Google Developers Console [project ID or project
  1886. // number](https://developers.google.com/console/help/new/#projectnumber).
  1887. // This field has been deprecated and replaced by the parent field.
  1888. string project_id = 1 [deprecated = true];
  1889. // Deprecated. The name of the Google Compute Engine
  1890. // [zone](https://cloud.google.com/compute/docs/zones#available) in which the
  1891. // cluster resides. This field has been deprecated and replaced by the parent
  1892. // field.
  1893. string zone = 2 [deprecated = true];
  1894. // Deprecated. The name of the cluster.
  1895. // This field has been deprecated and replaced by the parent field.
  1896. string cluster_id = 3 [deprecated = true];
  1897. // Required. The node pool to create.
  1898. NodePool node_pool = 4 [(google.api.field_behavior) = REQUIRED];
  1899. // The parent (project, location, cluster id) where the node pool will be
  1900. // created. Specified in the format
  1901. // `projects/*/locations/*/clusters/*`.
  1902. string parent = 6;
  1903. }
  1904. // DeleteNodePoolRequest deletes a node pool for a cluster.
  1905. message DeleteNodePoolRequest {
  1906. // Deprecated. The Google Developers Console [project ID or project
  1907. // number](https://developers.google.com/console/help/new/#projectnumber).
  1908. // This field has been deprecated and replaced by the name field.
  1909. string project_id = 1 [deprecated = true];
  1910. // Deprecated. The name of the Google Compute Engine
  1911. // [zone](https://cloud.google.com/compute/docs/zones#available) in which the
  1912. // cluster resides. This field has been deprecated and replaced by the name
  1913. // field.
  1914. string zone = 2 [deprecated = true];
  1915. // Deprecated. The name of the cluster.
  1916. // This field has been deprecated and replaced by the name field.
  1917. string cluster_id = 3 [deprecated = true];
  1918. // Deprecated. The name of the node pool to delete.
  1919. // This field has been deprecated and replaced by the name field.
  1920. string node_pool_id = 4 [deprecated = true];
  1921. // The name (project, location, cluster, node pool id) of the node pool to
  1922. // delete. Specified in the format
  1923. // `projects/*/locations/*/clusters/*/nodePools/*`.
  1924. string name = 6;
  1925. }
  1926. // ListNodePoolsRequest lists the node pool(s) for a cluster.
  1927. message ListNodePoolsRequest {
  1928. // Deprecated. The Google Developers Console [project ID or project
  1929. // number](https://developers.google.com/console/help/new/#projectnumber).
  1930. // This field has been deprecated and replaced by the parent field.
  1931. string project_id = 1 [deprecated = true];
  1932. // Deprecated. The name of the Google Compute Engine
  1933. // [zone](https://cloud.google.com/compute/docs/zones#available) in which the
  1934. // cluster resides. This field has been deprecated and replaced by the parent
  1935. // field.
  1936. string zone = 2 [deprecated = true];
  1937. // Deprecated. The name of the cluster.
  1938. // This field has been deprecated and replaced by the parent field.
  1939. string cluster_id = 3 [deprecated = true];
  1940. // The parent (project, location, cluster id) where the node pools will be
  1941. // listed. Specified in the format `projects/*/locations/*/clusters/*`.
  1942. string parent = 5;
  1943. }
  1944. // GetNodePoolRequest retrieves a node pool for a cluster.
  1945. message GetNodePoolRequest {
  1946. // Deprecated. The Google Developers Console [project ID or project
  1947. // number](https://developers.google.com/console/help/new/#projectnumber).
  1948. // This field has been deprecated and replaced by the name field.
  1949. string project_id = 1 [deprecated = true];
  1950. // Deprecated. The name of the Google Compute Engine
  1951. // [zone](https://cloud.google.com/compute/docs/zones#available) in which the
  1952. // cluster resides. This field has been deprecated and replaced by the name
  1953. // field.
  1954. string zone = 2 [deprecated = true];
  1955. // Deprecated. The name of the cluster.
  1956. // This field has been deprecated and replaced by the name field.
  1957. string cluster_id = 3 [deprecated = true];
  1958. // Deprecated. The name of the node pool.
  1959. // This field has been deprecated and replaced by the name field.
  1960. string node_pool_id = 4 [deprecated = true];
  1961. // The name (project, location, cluster, node pool id) of the node pool to
  1962. // get. Specified in the format
  1963. // `projects/*/locations/*/clusters/*/nodePools/*`.
  1964. string name = 6;
  1965. }
  1966. // NodePool contains the name and configuration for a cluster's node pool.
  1967. // Node pools are a set of nodes (i.e. VM's), with a common configuration and
  1968. // specification, under the control of the cluster master. They may have a set
  1969. // of Kubernetes labels applied to them, which may be used to reference them
  1970. // during pod scheduling. They may also be resized up or down, to accommodate
  1971. // the workload.
  1972. message NodePool {
  1973. // These upgrade settings control the level of parallelism and the level of
  1974. // disruption caused by an upgrade.
  1975. //
  1976. // maxUnavailable controls the number of nodes that can be simultaneously
  1977. // unavailable.
  1978. //
  1979. // maxSurge controls the number of additional nodes that can be added to the
  1980. // node pool temporarily for the time of the upgrade to increase the number of
  1981. // available nodes.
  1982. //
  1983. // (maxUnavailable + maxSurge) determines the level of parallelism (how many
  1984. // nodes are being upgraded at the same time).
  1985. //
  1986. // Note: upgrades inevitably introduce some disruption since workloads need to
  1987. // be moved from old nodes to new, upgraded ones. Even if maxUnavailable=0,
  1988. // this holds true. (Disruption stays within the limits of
  1989. // PodDisruptionBudget, if it is configured.)
  1990. //
  1991. // Consider a hypothetical node pool with 5 nodes having maxSurge=2,
  1992. // maxUnavailable=1. This means the upgrade process upgrades 3 nodes
  1993. // simultaneously. It creates 2 additional (upgraded) nodes, then it brings
  1994. // down 3 old (not yet upgraded) nodes at the same time. This ensures that
  1995. // there are always at least 4 nodes available.
  1996. message UpgradeSettings {
  1997. // The maximum number of nodes that can be created beyond the current size
  1998. // of the node pool during the upgrade process.
  1999. int32 max_surge = 1;
  2000. // The maximum number of nodes that can be simultaneously unavailable during
  2001. // the upgrade process. A node is considered available if its status is
  2002. // Ready.
  2003. int32 max_unavailable = 2;
  2004. }
  2005. // The current status of the node pool instance.
  2006. enum Status {
  2007. // Not set.
  2008. STATUS_UNSPECIFIED = 0;
  2009. // The PROVISIONING state indicates the node pool is being created.
  2010. PROVISIONING = 1;
  2011. // The RUNNING state indicates the node pool has been created
  2012. // and is fully usable.
  2013. RUNNING = 2;
  2014. // The RUNNING_WITH_ERROR state indicates the node pool has been created
  2015. // and is partially usable. Some error state has occurred and some
  2016. // functionality may be impaired. Customer may need to reissue a request
  2017. // or trigger a new update.
  2018. RUNNING_WITH_ERROR = 3;
  2019. // The RECONCILING state indicates that some work is actively being done on
  2020. // the node pool, such as upgrading node software. Details can
  2021. // be found in the `statusMessage` field.
  2022. RECONCILING = 4;
  2023. // The STOPPING state indicates the node pool is being deleted.
  2024. STOPPING = 5;
  2025. // The ERROR state indicates the node pool may be unusable. Details
  2026. // can be found in the `statusMessage` field.
  2027. ERROR = 6;
  2028. }
  2029. // The name of the node pool.
  2030. string name = 1;
  2031. // The node configuration of the pool.
  2032. NodeConfig config = 2;
  2033. // The initial node count for the pool. You must ensure that your
  2034. // Compute Engine [resource quota](https://cloud.google.com/compute/quotas)
  2035. // is sufficient for this number of instances. You must also have available
  2036. // firewall and routes quota.
  2037. int32 initial_node_count = 3;
  2038. // The list of Google Compute Engine
  2039. // [zones](https://cloud.google.com/compute/docs/zones#available) in which the
  2040. // NodePool's nodes should be located.
  2041. //
  2042. // If this value is unspecified during node pool creation, the
  2043. // [Cluster.Locations](https://cloud.google.com/kubernetes-engine/docs/reference/rest/v1/projects.locations.clusters#Cluster.FIELDS.locations)
  2044. // value will be used, instead.
  2045. //
  2046. // Warning: changing node pool locations will result in nodes being added
  2047. // and/or removed.
  2048. repeated string locations = 13;
  2049. // [Output only] Server-defined URL for the resource.
  2050. string self_link = 100;
  2051. // The version of the Kubernetes of this node.
  2052. string version = 101;
  2053. // [Output only] The resource URLs of the [managed instance
  2054. // groups](https://cloud.google.com/compute/docs/instance-groups/creating-groups-of-managed-instances)
  2055. // associated with this node pool.
  2056. repeated string instance_group_urls = 102;
  2057. // [Output only] The status of the nodes in this pool instance.
  2058. Status status = 103;
  2059. // [Output only] Deprecated. Use conditions instead.
  2060. // Additional information about the current status of this
  2061. // node pool instance, if available.
  2062. string status_message = 104 [deprecated = true];
  2063. // Autoscaler configuration for this NodePool. Autoscaler is enabled
  2064. // only if a valid configuration is present.
  2065. NodePoolAutoscaling autoscaling = 4;
  2066. // NodeManagement configuration for this NodePool.
  2067. NodeManagement management = 5;
  2068. // The constraint on the maximum number of pods that can be run
  2069. // simultaneously on a node in the node pool.
  2070. MaxPodsConstraint max_pods_constraint = 6;
  2071. // Which conditions caused the current node pool state.
  2072. repeated StatusCondition conditions = 105;
  2073. // [Output only] The pod CIDR block size per node in this node pool.
  2074. int32 pod_ipv4_cidr_size = 7;
  2075. // Upgrade settings control disruption and speed of the upgrade.
  2076. UpgradeSettings upgrade_settings = 107;
  2077. }
  2078. // NodeManagement defines the set of node management services turned on for the
  2079. // node pool.
  2080. message NodeManagement {
  2081. // A flag that specifies whether node auto-upgrade is enabled for the node
  2082. // pool. If enabled, node auto-upgrade helps keep the nodes in your node pool
  2083. // up to date with the latest release version of Kubernetes.
  2084. bool auto_upgrade = 1;
  2085. // A flag that specifies whether the node auto-repair is enabled for the node
  2086. // pool. If enabled, the nodes in this node pool will be monitored and, if
  2087. // they fail health checks too many times, an automatic repair action will be
  2088. // triggered.
  2089. bool auto_repair = 2;
  2090. // Specifies the Auto Upgrade knobs for the node pool.
  2091. AutoUpgradeOptions upgrade_options = 10;
  2092. }
  2093. // AutoUpgradeOptions defines the set of options for the user to control how
  2094. // the Auto Upgrades will proceed.
  2095. message AutoUpgradeOptions {
  2096. // [Output only] This field is set when upgrades are about to commence
  2097. // with the approximate start time for the upgrades, in
  2098. // [RFC3339](https://www.ietf.org/rfc/rfc3339.txt) text format.
  2099. string auto_upgrade_start_time = 1;
  2100. // [Output only] This field is set when upgrades are about to commence
  2101. // with the description of the upgrade.
  2102. string description = 2;
  2103. }
  2104. // MaintenancePolicy defines the maintenance policy to be used for the cluster.
  2105. message MaintenancePolicy {
  2106. // Specifies the maintenance window in which maintenance may be performed.
  2107. MaintenanceWindow window = 1;
  2108. // A hash identifying the version of this policy, so that updates to fields of
  2109. // the policy won't accidentally undo intermediate changes (and so that users
  2110. // of the API unaware of some fields won't accidentally remove other fields).
  2111. // Make a `get()` request to the cluster to get the current
  2112. // resource version and include it with requests to set the policy.
  2113. string resource_version = 3;
  2114. }
  2115. // MaintenanceWindow defines the maintenance window to be used for the cluster.
  2116. message MaintenanceWindow {
  2117. oneof policy {
  2118. // DailyMaintenanceWindow specifies a daily maintenance operation window.
  2119. DailyMaintenanceWindow daily_maintenance_window = 2;
  2120. // RecurringWindow specifies some number of recurring time periods for
  2121. // maintenance to occur. The time windows may be overlapping. If no
  2122. // maintenance windows are set, maintenance can occur at any time.
  2123. RecurringTimeWindow recurring_window = 3;
  2124. }
  2125. // Exceptions to maintenance window. Non-emergency maintenance should not
  2126. // occur in these windows.
  2127. map<string, TimeWindow> maintenance_exclusions = 4;
  2128. }
  2129. // Represents an arbitrary window of time.
  2130. message TimeWindow {
  2131. // The time that the window first starts.
  2132. google.protobuf.Timestamp start_time = 1;
  2133. // The time that the window ends. The end time should take place after the
  2134. // start time.
  2135. google.protobuf.Timestamp end_time = 2;
  2136. }
  2137. // Represents an arbitrary window of time that recurs.
  2138. message RecurringTimeWindow {
  2139. // The window of the first recurrence.
  2140. TimeWindow window = 1;
  2141. // An RRULE (https://tools.ietf.org/html/rfc5545#section-3.8.5.3) for how
  2142. // this window reccurs. They go on for the span of time between the start and
  2143. // end time.
  2144. //
  2145. // For example, to have something repeat every weekday, you'd use:
  2146. // `FREQ=WEEKLY;BYDAY=MO,TU,WE,TH,FR`
  2147. //
  2148. // To repeat some window daily (equivalent to the DailyMaintenanceWindow):
  2149. // `FREQ=DAILY`
  2150. //
  2151. // For the first weekend of every month:
  2152. // `FREQ=MONTHLY;BYSETPOS=1;BYDAY=SA,SU`
  2153. //
  2154. // This specifies how frequently the window starts. Eg, if you wanted to have
  2155. // a 9-5 UTC-4 window every weekday, you'd use something like:
  2156. // ```
  2157. // start time = 2019-01-01T09:00:00-0400
  2158. // end time = 2019-01-01T17:00:00-0400
  2159. // recurrence = FREQ=WEEKLY;BYDAY=MO,TU,WE,TH,FR
  2160. // ```
  2161. //
  2162. // Windows can span multiple days. Eg, to make the window encompass every
  2163. // weekend from midnight Saturday till the last minute of Sunday UTC:
  2164. // ```
  2165. // start time = 2019-01-05T00:00:00Z
  2166. // end time = 2019-01-07T23:59:00Z
  2167. // recurrence = FREQ=WEEKLY;BYDAY=SA
  2168. // ```
  2169. //
  2170. // Note the start and end time's specific dates are largely arbitrary except
  2171. // to specify duration of the window and when it first starts.
  2172. // The FREQ values of HOURLY, MINUTELY, and SECONDLY are not supported.
  2173. string recurrence = 2;
  2174. }
  2175. // Time window specified for daily maintenance operations.
  2176. message DailyMaintenanceWindow {
  2177. // Time within the maintenance window to start the maintenance operations.
  2178. // Time format should be in [RFC3339](https://www.ietf.org/rfc/rfc3339.txt)
  2179. // format "HH:MM", where HH : [00-23] and MM : [00-59] GMT.
  2180. string start_time = 2;
  2181. // [Output only] Duration of the time window, automatically chosen to be
  2182. // smallest possible in the given scenario.
  2183. // Duration will be in [RFC3339](https://www.ietf.org/rfc/rfc3339.txt)
  2184. // format "PTnHnMnS".
  2185. string duration = 3;
  2186. }
  2187. // SetNodePoolManagementRequest sets the node management properties of a node
  2188. // pool.
  2189. message SetNodePoolManagementRequest {
  2190. // Deprecated. The Google Developers Console [project ID or project
  2191. // number](https://support.google.com/cloud/answer/6158840).
  2192. // This field has been deprecated and replaced by the name field.
  2193. string project_id = 1 [deprecated = true];
  2194. // Deprecated. The name of the Google Compute Engine
  2195. // [zone](https://cloud.google.com/compute/docs/zones#available) in which the
  2196. // cluster resides. This field has been deprecated and replaced by the name
  2197. // field.
  2198. string zone = 2 [deprecated = true];
  2199. // Deprecated. The name of the cluster to update.
  2200. // This field has been deprecated and replaced by the name field.
  2201. string cluster_id = 3 [deprecated = true];
  2202. // Deprecated. The name of the node pool to update.
  2203. // This field has been deprecated and replaced by the name field.
  2204. string node_pool_id = 4 [deprecated = true];
  2205. // Required. NodeManagement configuration for the node pool.
  2206. NodeManagement management = 5 [(google.api.field_behavior) = REQUIRED];
  2207. // The name (project, location, cluster, node pool id) of the node pool to set
  2208. // management properties. Specified in the format
  2209. // `projects/*/locations/*/clusters/*/nodePools/*`.
  2210. string name = 7;
  2211. }
  2212. // SetNodePoolSizeRequest sets the size a node
  2213. // pool.
  2214. message SetNodePoolSizeRequest {
  2215. // Deprecated. The Google Developers Console [project ID or project
  2216. // number](https://support.google.com/cloud/answer/6158840).
  2217. // This field has been deprecated and replaced by the name field.
  2218. string project_id = 1 [deprecated = true];
  2219. // Deprecated. The name of the Google Compute Engine
  2220. // [zone](https://cloud.google.com/compute/docs/zones#available) in which the
  2221. // cluster resides. This field has been deprecated and replaced by the name
  2222. // field.
  2223. string zone = 2 [deprecated = true];
  2224. // Deprecated. The name of the cluster to update.
  2225. // This field has been deprecated and replaced by the name field.
  2226. string cluster_id = 3 [deprecated = true];
  2227. // Deprecated. The name of the node pool to update.
  2228. // This field has been deprecated and replaced by the name field.
  2229. string node_pool_id = 4 [deprecated = true];
  2230. // Required. The desired node count for the pool.
  2231. int32 node_count = 5 [(google.api.field_behavior) = REQUIRED];
  2232. // The name (project, location, cluster, node pool id) of the node pool to set
  2233. // size.
  2234. // Specified in the format `projects/*/locations/*/clusters/*/nodePools/*`.
  2235. string name = 7;
  2236. }
  2237. // RollbackNodePoolUpgradeRequest rollbacks the previously Aborted or Failed
  2238. // NodePool upgrade. This will be an no-op if the last upgrade successfully
  2239. // completed.
  2240. message RollbackNodePoolUpgradeRequest {
  2241. // Deprecated. The Google Developers Console [project ID or project
  2242. // number](https://support.google.com/cloud/answer/6158840).
  2243. // This field has been deprecated and replaced by the name field.
  2244. string project_id = 1 [deprecated = true];
  2245. // Deprecated. The name of the Google Compute Engine
  2246. // [zone](https://cloud.google.com/compute/docs/zones#available) in which the
  2247. // cluster resides. This field has been deprecated and replaced by the name
  2248. // field.
  2249. string zone = 2 [deprecated = true];
  2250. // Deprecated. The name of the cluster to rollback.
  2251. // This field has been deprecated and replaced by the name field.
  2252. string cluster_id = 3 [deprecated = true];
  2253. // Deprecated. The name of the node pool to rollback.
  2254. // This field has been deprecated and replaced by the name field.
  2255. string node_pool_id = 4 [deprecated = true];
  2256. // The name (project, location, cluster, node pool id) of the node poll to
  2257. // rollback upgrade.
  2258. // Specified in the format `projects/*/locations/*/clusters/*/nodePools/*`.
  2259. string name = 6;
  2260. }
  2261. // ListNodePoolsResponse is the result of ListNodePoolsRequest.
  2262. message ListNodePoolsResponse {
  2263. // A list of node pools for a cluster.
  2264. repeated NodePool node_pools = 1;
  2265. }
  2266. // ClusterAutoscaling contains global, per-cluster information
  2267. // required by Cluster Autoscaler to automatically adjust
  2268. // the size of the cluster and create/delete
  2269. // node pools based on the current needs.
  2270. message ClusterAutoscaling {
  2271. // Enables automatic node pool creation and deletion.
  2272. bool enable_node_autoprovisioning = 1;
  2273. // Contains global constraints regarding minimum and maximum
  2274. // amount of resources in the cluster.
  2275. repeated ResourceLimit resource_limits = 2;
  2276. // AutoprovisioningNodePoolDefaults contains defaults for a node pool
  2277. // created by NAP.
  2278. AutoprovisioningNodePoolDefaults autoprovisioning_node_pool_defaults = 4;
  2279. // The list of Google Compute Engine
  2280. // [zones](https://cloud.google.com/compute/docs/zones#available) in which the
  2281. // NodePool's nodes can be created by NAP.
  2282. repeated string autoprovisioning_locations = 5;
  2283. }
  2284. // AutoprovisioningNodePoolDefaults contains defaults for a node pool created
  2285. // by NAP.
  2286. message AutoprovisioningNodePoolDefaults {
  2287. // Scopes that are used by NAP when creating node pools.
  2288. repeated string oauth_scopes = 1;
  2289. // The Google Cloud Platform Service Account to be used by the node VMs.
  2290. string service_account = 2;
  2291. // Specifies the upgrade settings for NAP created node pools
  2292. NodePool.UpgradeSettings upgrade_settings = 3;
  2293. // Specifies the node management options for NAP created node-pools.
  2294. NodeManagement management = 4;
  2295. // Minimum CPU platform to be used for NAP created node pools.
  2296. // The instance may be scheduled on the specified or newer CPU platform.
  2297. // Applicable values are the friendly names of CPU platforms, such as
  2298. // minCpuPlatform: Intel Haswell or
  2299. // minCpuPlatform: Intel Sandy Bridge. For more
  2300. // information, read [how to specify min CPU
  2301. // platform](https://cloud.google.com/compute/docs/instances/specify-min-cpu-platform)
  2302. // To unset the min cpu platform field pass "automatic"
  2303. // as field value.
  2304. string min_cpu_platform = 5;
  2305. // Size of the disk attached to each node, specified in GB.
  2306. // The smallest allowed disk size is 10GB.
  2307. //
  2308. // If unspecified, the default disk size is 100GB.
  2309. int32 disk_size_gb = 6;
  2310. // Type of the disk attached to each node (e.g. 'pd-standard', 'pd-ssd' or
  2311. // 'pd-balanced')
  2312. //
  2313. // If unspecified, the default disk type is 'pd-standard'
  2314. string disk_type = 7;
  2315. // Shielded Instance options.
  2316. ShieldedInstanceConfig shielded_instance_config = 8;
  2317. // The Customer Managed Encryption Key used to encrypt the boot disk attached
  2318. // to each node in the node pool. This should be of the form
  2319. // projects/[KEY_PROJECT_ID]/locations/[LOCATION]/keyRings/[RING_NAME]/cryptoKeys/[KEY_NAME].
  2320. // For more information about protecting resources with Cloud KMS Keys please
  2321. // see:
  2322. // https://cloud.google.com/compute/docs/disks/customer-managed-encryption
  2323. string boot_disk_kms_key = 9;
  2324. // The image type to use for NAP created node.
  2325. string image_type = 10;
  2326. }
  2327. // Contains information about amount of some resource in the cluster.
  2328. // For memory, value should be in GB.
  2329. message ResourceLimit {
  2330. // Resource name "cpu", "memory" or gpu-specific string.
  2331. string resource_type = 1;
  2332. // Minimum amount of the resource in the cluster.
  2333. int64 minimum = 2;
  2334. // Maximum amount of the resource in the cluster.
  2335. int64 maximum = 3;
  2336. }
  2337. // NodePoolAutoscaling contains information required by cluster autoscaler to
  2338. // adjust the size of the node pool to the current cluster usage.
  2339. message NodePoolAutoscaling {
  2340. // Is autoscaling enabled for this node pool.
  2341. bool enabled = 1;
  2342. // Minimum number of nodes in the NodePool. Must be >= 1 and <=
  2343. // max_node_count.
  2344. int32 min_node_count = 2;
  2345. // Maximum number of nodes in the NodePool. Must be >= min_node_count. There
  2346. // has to enough quota to scale up the cluster.
  2347. int32 max_node_count = 3;
  2348. // Can this node pool be deleted automatically.
  2349. bool autoprovisioned = 4;
  2350. }
  2351. // SetLabelsRequest sets the Google Cloud Platform labels on a Google Container
  2352. // Engine cluster, which will in turn set them for Google Compute Engine
  2353. // resources used by that cluster
  2354. message SetLabelsRequest {
  2355. // Deprecated. The Google Developers Console [project ID or project
  2356. // number](https://developers.google.com/console/help/new/#projectnumber).
  2357. // This field has been deprecated and replaced by the name field.
  2358. string project_id = 1 [deprecated = true];
  2359. // Deprecated. The name of the Google Compute Engine
  2360. // [zone](https://cloud.google.com/compute/docs/zones#available) in which the
  2361. // cluster resides. This field has been deprecated and replaced by the name
  2362. // field.
  2363. string zone = 2 [deprecated = true];
  2364. // Deprecated. The name of the cluster.
  2365. // This field has been deprecated and replaced by the name field.
  2366. string cluster_id = 3 [deprecated = true];
  2367. // Required. The labels to set for that cluster.
  2368. map<string, string> resource_labels = 4 [(google.api.field_behavior) = REQUIRED];
  2369. // Required. The fingerprint of the previous set of labels for this resource,
  2370. // used to detect conflicts. The fingerprint is initially generated by
  2371. // Kubernetes Engine and changes after every request to modify or update
  2372. // labels. You must always provide an up-to-date fingerprint hash when
  2373. // updating or changing labels. Make a `get()` request to the
  2374. // resource to get the latest fingerprint.
  2375. string label_fingerprint = 5 [(google.api.field_behavior) = REQUIRED];
  2376. // The name (project, location, cluster id) of the cluster to set labels.
  2377. // Specified in the format `projects/*/locations/*/clusters/*`.
  2378. string name = 7;
  2379. }
  2380. // SetLegacyAbacRequest enables or disables the ABAC authorization mechanism for
  2381. // a cluster.
  2382. message SetLegacyAbacRequest {
  2383. // Deprecated. The Google Developers Console [project ID or project
  2384. // number](https://support.google.com/cloud/answer/6158840).
  2385. // This field has been deprecated and replaced by the name field.
  2386. string project_id = 1 [deprecated = true];
  2387. // Deprecated. The name of the Google Compute Engine
  2388. // [zone](https://cloud.google.com/compute/docs/zones#available) in which the
  2389. // cluster resides. This field has been deprecated and replaced by the name
  2390. // field.
  2391. string zone = 2 [deprecated = true];
  2392. // Deprecated. The name of the cluster to update.
  2393. // This field has been deprecated and replaced by the name field.
  2394. string cluster_id = 3 [deprecated = true];
  2395. // Required. Whether ABAC authorization will be enabled in the cluster.
  2396. bool enabled = 4 [(google.api.field_behavior) = REQUIRED];
  2397. // The name (project, location, cluster id) of the cluster to set legacy abac.
  2398. // Specified in the format `projects/*/locations/*/clusters/*`.
  2399. string name = 6;
  2400. }
  2401. // StartIPRotationRequest creates a new IP for the cluster and then performs
  2402. // a node upgrade on each node pool to point to the new IP.
  2403. message StartIPRotationRequest {
  2404. // Deprecated. The Google Developers Console [project ID or project
  2405. // number](https://developers.google.com/console/help/new/#projectnumber).
  2406. // This field has been deprecated and replaced by the name field.
  2407. string project_id = 1 [deprecated = true];
  2408. // Deprecated. The name of the Google Compute Engine
  2409. // [zone](https://cloud.google.com/compute/docs/zones#available) in which the
  2410. // cluster resides. This field has been deprecated and replaced by the name
  2411. // field.
  2412. string zone = 2 [deprecated = true];
  2413. // Deprecated. The name of the cluster.
  2414. // This field has been deprecated and replaced by the name field.
  2415. string cluster_id = 3 [deprecated = true];
  2416. // The name (project, location, cluster id) of the cluster to start IP
  2417. // rotation. Specified in the format `projects/*/locations/*/clusters/*`.
  2418. string name = 6;
  2419. // Whether to rotate credentials during IP rotation.
  2420. bool rotate_credentials = 7;
  2421. }
  2422. // CompleteIPRotationRequest moves the cluster master back into single-IP mode.
  2423. message CompleteIPRotationRequest {
  2424. // Deprecated. The Google Developers Console [project ID or project
  2425. // number](https://developers.google.com/console/help/new/#projectnumber).
  2426. // This field has been deprecated and replaced by the name field.
  2427. string project_id = 1 [deprecated = true];
  2428. // Deprecated. The name of the Google Compute Engine
  2429. // [zone](https://cloud.google.com/compute/docs/zones#available) in which the
  2430. // cluster resides. This field has been deprecated and replaced by the name
  2431. // field.
  2432. string zone = 2 [deprecated = true];
  2433. // Deprecated. The name of the cluster.
  2434. // This field has been deprecated and replaced by the name field.
  2435. string cluster_id = 3 [deprecated = true];
  2436. // The name (project, location, cluster id) of the cluster to complete IP
  2437. // rotation. Specified in the format `projects/*/locations/*/clusters/*`.
  2438. string name = 7;
  2439. }
  2440. // AcceleratorConfig represents a Hardware Accelerator request.
  2441. message AcceleratorConfig {
  2442. // The number of the accelerator cards exposed to an instance.
  2443. int64 accelerator_count = 1;
  2444. // The accelerator type resource name. List of supported accelerators
  2445. // [here](https://cloud.google.com/compute/docs/gpus)
  2446. string accelerator_type = 2;
  2447. }
  2448. // WorkloadMetadataConfig defines the metadata configuration to expose to
  2449. // workloads on the node pool.
  2450. message WorkloadMetadataConfig {
  2451. // Mode is the configuration for how to expose metadata to workloads running
  2452. // on the node.
  2453. enum Mode {
  2454. // Not set.
  2455. MODE_UNSPECIFIED = 0;
  2456. // Expose all Compute Engine metadata to pods.
  2457. GCE_METADATA = 1;
  2458. // Run the GKE Metadata Server on this node. The GKE Metadata Server exposes
  2459. // a metadata API to workloads that is compatible with the V1 Compute
  2460. // Metadata APIs exposed by the Compute Engine and App Engine Metadata
  2461. // Servers. This feature can only be enabled if Workload Identity is enabled
  2462. // at the cluster level.
  2463. GKE_METADATA = 2;
  2464. }
  2465. // Mode is the configuration for how to expose metadata to workloads running
  2466. // on the node pool.
  2467. Mode mode = 2;
  2468. }
  2469. // SetNetworkPolicyRequest enables/disables network policy for a cluster.
  2470. message SetNetworkPolicyRequest {
  2471. // Deprecated. The Google Developers Console [project ID or project
  2472. // number](https://developers.google.com/console/help/new/#projectnumber).
  2473. // This field has been deprecated and replaced by the name field.
  2474. string project_id = 1 [deprecated = true];
  2475. // Deprecated. The name of the Google Compute Engine
  2476. // [zone](https://cloud.google.com/compute/docs/zones#available) in which the
  2477. // cluster resides. This field has been deprecated and replaced by the name
  2478. // field.
  2479. string zone = 2 [deprecated = true];
  2480. // Deprecated. The name of the cluster.
  2481. // This field has been deprecated and replaced by the name field.
  2482. string cluster_id = 3 [deprecated = true];
  2483. // Required. Configuration options for the NetworkPolicy feature.
  2484. NetworkPolicy network_policy = 4 [(google.api.field_behavior) = REQUIRED];
  2485. // The name (project, location, cluster id) of the cluster to set networking
  2486. // policy. Specified in the format `projects/*/locations/*/clusters/*`.
  2487. string name = 6;
  2488. }
  2489. // SetMaintenancePolicyRequest sets the maintenance policy for a cluster.
  2490. message SetMaintenancePolicyRequest {
  2491. // Required. The Google Developers Console [project ID or project
  2492. // number](https://support.google.com/cloud/answer/6158840).
  2493. string project_id = 1 [(google.api.field_behavior) = REQUIRED];
  2494. // Required. The name of the Google Compute Engine
  2495. // [zone](https://cloud.google.com/compute/docs/zones#available) in which the
  2496. // cluster resides.
  2497. string zone = 2 [(google.api.field_behavior) = REQUIRED];
  2498. // Required. The name of the cluster to update.
  2499. string cluster_id = 3 [(google.api.field_behavior) = REQUIRED];
  2500. // Required. The maintenance policy to be set for the cluster. An empty field
  2501. // clears the existing maintenance policy.
  2502. MaintenancePolicy maintenance_policy = 4 [(google.api.field_behavior) = REQUIRED];
  2503. // The name (project, location, cluster id) of the cluster to set maintenance
  2504. // policy.
  2505. // Specified in the format `projects/*/locations/*/clusters/*`.
  2506. string name = 5;
  2507. }
  2508. // StatusCondition describes why a cluster or a node pool has a certain status
  2509. // (e.g., ERROR or DEGRADED).
  2510. message StatusCondition {
  2511. // Code for each condition
  2512. enum Code {
  2513. // UNKNOWN indicates a generic condition.
  2514. UNKNOWN = 0;
  2515. // GCE_STOCKOUT indicates that Google Compute Engine resources are
  2516. // temporarily unavailable.
  2517. GCE_STOCKOUT = 1;
  2518. // GKE_SERVICE_ACCOUNT_DELETED indicates that the user deleted their robot
  2519. // service account.
  2520. GKE_SERVICE_ACCOUNT_DELETED = 2;
  2521. // Google Compute Engine quota was exceeded.
  2522. GCE_QUOTA_EXCEEDED = 3;
  2523. // Cluster state was manually changed by an SRE due to a system logic error.
  2524. SET_BY_OPERATOR = 4;
  2525. // Unable to perform an encrypt operation against the CloudKMS key used for
  2526. // etcd level encryption.
  2527. // More codes TBA
  2528. CLOUD_KMS_KEY_ERROR = 7;
  2529. }
  2530. // Machine-friendly representation of the condition
  2531. Code code = 1;
  2532. // Human-friendly representation of the condition
  2533. string message = 2;
  2534. }
  2535. // NetworkConfig reports the relative names of network & subnetwork.
  2536. message NetworkConfig {
  2537. // Output only. The relative name of the Google Compute Engine
  2538. // [network][google.container.v1.NetworkConfig.network](https://cloud.google.com/compute/docs/networks-and-firewalls#networks)
  2539. // to which the cluster is connected. Example:
  2540. // projects/my-project/global/networks/my-network
  2541. string network = 1;
  2542. // Output only. The relative name of the Google Compute Engine
  2543. // [subnetwork](https://cloud.google.com/compute/docs/vpc) to which the
  2544. // cluster is connected. Example:
  2545. // projects/my-project/regions/us-central1/subnetworks/my-subnet
  2546. string subnetwork = 2;
  2547. // Whether Intra-node visibility is enabled for this cluster.
  2548. // This makes same node pod to pod traffic visible for VPC network.
  2549. bool enable_intra_node_visibility = 5;
  2550. // Whether the cluster disables default in-node sNAT rules. In-node sNAT rules
  2551. // will be disabled when default_snat_status is disabled. When disabled is set
  2552. // to false, default IP masquerade rules will be applied to the nodes to
  2553. // prevent sNAT on cluster internal traffic.
  2554. DefaultSnatStatus default_snat_status = 7;
  2555. }
  2556. // GetOpenIDConfigRequest gets the OIDC discovery document for the
  2557. // cluster. See the OpenID Connect Discovery 1.0 specification for details.
  2558. message GetOpenIDConfigRequest {
  2559. // The cluster (project, location, cluster id) to get the discovery document
  2560. // for. Specified in the format `projects/*/locations/*/clusters/*`.
  2561. string parent = 1;
  2562. }
  2563. // GetOpenIDConfigResponse is an OIDC discovery document for the cluster.
  2564. // See the OpenID Connect Discovery 1.0 specification for details.
  2565. message GetOpenIDConfigResponse {
  2566. // OIDC Issuer.
  2567. string issuer = 1;
  2568. // JSON Web Key uri.
  2569. string jwks_uri = 2;
  2570. // Supported response types.
  2571. repeated string response_types_supported = 3;
  2572. // Supported subject types.
  2573. repeated string subject_types_supported = 4;
  2574. // supported ID Token signing Algorithms.
  2575. repeated string id_token_signing_alg_values_supported = 5;
  2576. // Supported claims.
  2577. repeated string claims_supported = 6;
  2578. // Supported grant types.
  2579. repeated string grant_types = 7;
  2580. }
  2581. // GetJSONWebKeysRequest gets the public component of the keys used by the
  2582. // cluster to sign token requests. This will be the jwks_uri for the discover
  2583. // document returned by getOpenIDConfig. See the OpenID Connect
  2584. // Discovery 1.0 specification for details.
  2585. message GetJSONWebKeysRequest {
  2586. // The cluster (project, location, cluster id) to get keys for. Specified in
  2587. // the format `projects/*/locations/*/clusters/*`.
  2588. string parent = 1;
  2589. }
  2590. // Jwk is a JSON Web Key as specified in RFC 7517
  2591. message Jwk {
  2592. // Key Type.
  2593. string kty = 1;
  2594. // Algorithm.
  2595. string alg = 2;
  2596. // Permitted uses for the public keys.
  2597. string use = 3;
  2598. // Key ID.
  2599. string kid = 4;
  2600. // Used for RSA keys.
  2601. string n = 5;
  2602. // Used for RSA keys.
  2603. string e = 6;
  2604. // Used for ECDSA keys.
  2605. string x = 7;
  2606. // Used for ECDSA keys.
  2607. string y = 8;
  2608. // Used for ECDSA keys.
  2609. string crv = 9;
  2610. }
  2611. // GetJSONWebKeysResponse is a valid JSON Web Key Set as specififed in rfc 7517
  2612. message GetJSONWebKeysResponse {
  2613. // The public component of the keys used by the cluster to sign token
  2614. // requests.
  2615. repeated Jwk keys = 1;
  2616. }
  2617. // ReleaseChannel indicates which release channel a cluster is
  2618. // subscribed to. Release channels are arranged in order of risk.
  2619. //
  2620. // When a cluster is subscribed to a release channel, Google maintains
  2621. // both the master version and the node version. Node auto-upgrade
  2622. // defaults to true and cannot be disabled.
  2623. message ReleaseChannel {
  2624. // Possible values for 'channel'.
  2625. enum Channel {
  2626. // No channel specified.
  2627. UNSPECIFIED = 0;
  2628. // RAPID channel is offered on an early access basis for customers who want
  2629. // to test new releases.
  2630. //
  2631. // WARNING: Versions available in the RAPID Channel may be subject to
  2632. // unresolved issues with no known workaround and are not subject to any
  2633. // SLAs.
  2634. RAPID = 1;
  2635. // Clusters subscribed to REGULAR receive versions that are considered GA
  2636. // quality. REGULAR is intended for production users who want to take
  2637. // advantage of new features.
  2638. REGULAR = 2;
  2639. // Clusters subscribed to STABLE receive versions that are known to be
  2640. // stable and reliable in production.
  2641. STABLE = 3;
  2642. }
  2643. // channel specifies which release channel the cluster is subscribed to.
  2644. Channel channel = 1;
  2645. }
  2646. // IntraNodeVisibilityConfig contains the desired config of the intra-node
  2647. // visibility on this cluster.
  2648. message IntraNodeVisibilityConfig {
  2649. // Enables intra node visibility for this cluster.
  2650. bool enabled = 1;
  2651. }
  2652. // Constraints applied to pods.
  2653. message MaxPodsConstraint {
  2654. // Constraint enforced on the max num of pods per node.
  2655. int64 max_pods_per_node = 1;
  2656. }
  2657. // Configuration for the use of Kubernetes Service Accounts in GCP IAM
  2658. // policies.
  2659. message WorkloadIdentityConfig {
  2660. // The workload pool to attach all Kubernetes service accounts to.
  2661. string workload_pool = 2;
  2662. }
  2663. // Configuration of etcd encryption.
  2664. message DatabaseEncryption {
  2665. // State of etcd encryption.
  2666. enum State {
  2667. // Should never be set
  2668. UNKNOWN = 0;
  2669. // Secrets in etcd are encrypted.
  2670. ENCRYPTED = 1;
  2671. // Secrets in etcd are stored in plain text (at etcd level) - this is
  2672. // unrelated to Compute Engine level full disk encryption.
  2673. DECRYPTED = 2;
  2674. }
  2675. // Denotes the state of etcd encryption.
  2676. State state = 2;
  2677. // Name of CloudKMS key to use for the encryption of secrets in etcd.
  2678. // Ex. projects/my-project/locations/global/keyRings/my-ring/cryptoKeys/my-key
  2679. string key_name = 1;
  2680. }
  2681. // ListUsableSubnetworksRequest requests the list of usable subnetworks
  2682. // available to a user for creating clusters.
  2683. message ListUsableSubnetworksRequest {
  2684. // The parent project where subnetworks are usable.
  2685. // Specified in the format `projects/*`.
  2686. string parent = 1;
  2687. // Filtering currently only supports equality on the networkProjectId and must
  2688. // be in the form: "networkProjectId=[PROJECTID]", where `networkProjectId`
  2689. // is the project which owns the listed subnetworks. This defaults to the
  2690. // parent project ID.
  2691. string filter = 2;
  2692. // The max number of results per page that should be returned. If the number
  2693. // of available results is larger than `page_size`, a `next_page_token` is
  2694. // returned which can be used to get the next page of results in subsequent
  2695. // requests. Acceptable values are 0 to 500, inclusive. (Default: 500)
  2696. int32 page_size = 3;
  2697. // Specifies a page token to use. Set this to the nextPageToken returned by
  2698. // previous list requests to get the next page of results.
  2699. string page_token = 4;
  2700. }
  2701. // ListUsableSubnetworksResponse is the response of
  2702. // ListUsableSubnetworksRequest.
  2703. message ListUsableSubnetworksResponse {
  2704. // A list of usable subnetworks in the specified network project.
  2705. repeated UsableSubnetwork subnetworks = 1;
  2706. // This token allows you to get the next page of results for list requests.
  2707. // If the number of results is larger than `page_size`, use the
  2708. // `next_page_token` as a value for the query parameter `page_token` in the
  2709. // next request. The value will become empty when there are no more pages.
  2710. string next_page_token = 2;
  2711. }
  2712. // Secondary IP range of a usable subnetwork.
  2713. message UsableSubnetworkSecondaryRange {
  2714. // Status shows the current usage of a secondary IP range.
  2715. enum Status {
  2716. // UNKNOWN is the zero value of the Status enum. It's not a valid status.
  2717. UNKNOWN = 0;
  2718. // UNUSED denotes that this range is unclaimed by any cluster.
  2719. UNUSED = 1;
  2720. // IN_USE_SERVICE denotes that this range is claimed by a cluster for
  2721. // services. It cannot be used for other clusters.
  2722. IN_USE_SERVICE = 2;
  2723. // IN_USE_SHAREABLE_POD denotes this range was created by the network admin
  2724. // and is currently claimed by a cluster for pods. It can only be used by
  2725. // other clusters as a pod range.
  2726. IN_USE_SHAREABLE_POD = 3;
  2727. // IN_USE_MANAGED_POD denotes this range was created by GKE and is claimed
  2728. // for pods. It cannot be used for other clusters.
  2729. IN_USE_MANAGED_POD = 4;
  2730. }
  2731. // The name associated with this subnetwork secondary range, used when adding
  2732. // an alias IP range to a VM instance.
  2733. string range_name = 1;
  2734. // The range of IP addresses belonging to this subnetwork secondary range.
  2735. string ip_cidr_range = 2;
  2736. // This field is to determine the status of the secondary range programmably.
  2737. Status status = 3;
  2738. }
  2739. // UsableSubnetwork resource returns the subnetwork name, its associated network
  2740. // and the primary CIDR range.
  2741. message UsableSubnetwork {
  2742. // Subnetwork Name.
  2743. // Example: projects/my-project/regions/us-central1/subnetworks/my-subnet
  2744. string subnetwork = 1;
  2745. // Network Name.
  2746. // Example: projects/my-project/global/networks/my-network
  2747. string network = 2;
  2748. // The range of internal addresses that are owned by this subnetwork.
  2749. string ip_cidr_range = 3;
  2750. // Secondary IP ranges.
  2751. repeated UsableSubnetworkSecondaryRange secondary_ip_ranges = 4;
  2752. // A human readable status message representing the reasons for cases where
  2753. // the caller cannot use the secondary ranges under the subnet. For example if
  2754. // the secondary_ip_ranges is empty due to a permission issue, an insufficient
  2755. // permission message will be given by status_message.
  2756. string status_message = 5;
  2757. }
  2758. // Configuration for exporting cluster resource usages.
  2759. message ResourceUsageExportConfig {
  2760. // Parameters for using BigQuery as the destination of resource usage export.
  2761. message BigQueryDestination {
  2762. // The ID of a BigQuery Dataset.
  2763. string dataset_id = 1;
  2764. }
  2765. // Parameters for controlling consumption metering.
  2766. message ConsumptionMeteringConfig {
  2767. // Whether to enable consumption metering for this cluster. If enabled, a
  2768. // second BigQuery table will be created to hold resource consumption
  2769. // records.
  2770. bool enabled = 1;
  2771. }
  2772. // Configuration to use BigQuery as usage export destination.
  2773. BigQueryDestination bigquery_destination = 1;
  2774. // Whether to enable network egress metering for this cluster. If enabled, a
  2775. // daemonset will be created in the cluster to meter network egress traffic.
  2776. bool enable_network_egress_metering = 2;
  2777. // Configuration to enable resource consumption metering.
  2778. ConsumptionMeteringConfig consumption_metering_config = 3;
  2779. }
  2780. // VerticalPodAutoscaling contains global, per-cluster information
  2781. // required by Vertical Pod Autoscaler to automatically adjust
  2782. // the resources of pods controlled by it.
  2783. message VerticalPodAutoscaling {
  2784. // Enables vertical pod autoscaling.
  2785. bool enabled = 1;
  2786. }
  2787. // DefaultSnatStatus contains the desired state of whether default sNAT should
  2788. // be disabled on the cluster.
  2789. message DefaultSnatStatus {
  2790. // Disables cluster default sNAT rules.
  2791. bool disabled = 1;
  2792. }
  2793. // Configuration of Shielded Nodes feature.
  2794. message ShieldedNodes {
  2795. // Whether Shielded Nodes features are enabled on all nodes in this cluster.
  2796. bool enabled = 1;
  2797. }