google-cloud-container-v1 1.7.0 → 1.9.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -33,6 +33,7 @@ module Google
33
33
  # net.core.busy_read
34
34
  # net.core.netdev_max_backlog
35
35
  # net.core.rmem_max
36
+ # net.core.rmem_default
36
37
  # net.core.wmem_default
37
38
  # net.core.wmem_max
38
39
  # net.core.optmem_max
@@ -40,15 +41,56 @@ module Google
40
41
  # net.ipv4.tcp_rmem
41
42
  # net.ipv4.tcp_wmem
42
43
  # net.ipv4.tcp_tw_reuse
44
+ # net.ipv4.tcp_max_orphans
45
+ # net.netfilter.nf_conntrack_max
46
+ # net.netfilter.nf_conntrack_buckets
47
+ # net.netfilter.nf_conntrack_tcp_timeout_close_wait
48
+ # net.netfilter.nf_conntrack_tcp_timeout_time_wait
49
+ # net.netfilter.nf_conntrack_tcp_timeout_established
50
+ # net.netfilter.nf_conntrack_acct
43
51
  # kernel.shmmni
44
52
  # kernel.shmmax
45
53
  # kernel.shmall
54
+ # fs.aio-max-nr
55
+ # fs.file-max
56
+ # fs.inotify.max_user_instances
57
+ # fs.inotify.max_user_watches
58
+ # fs.nr_open
59
+ # vm.dirty_background_ratio
60
+ # vm.dirty_expire_centisecs
61
+ # vm.dirty_ratio
62
+ # vm.dirty_writeback_centisecs
63
+ # vm.max_map_count
64
+ # vm.overcommit_memory
65
+ # vm.overcommit_ratio
66
+ # vm.vfs_cache_pressure
67
+ # vm.swappiness
68
+ # vm.watermark_scale_factor
69
+ # vm.min_free_kbytes
46
70
  # @!attribute [rw] cgroup_mode
47
71
  # @return [::Google::Cloud::Container::V1::LinuxNodeConfig::CgroupMode]
48
72
  # cgroup_mode specifies the cgroup mode to be used on the node.
49
73
  # @!attribute [rw] hugepages
50
74
  # @return [::Google::Cloud::Container::V1::LinuxNodeConfig::HugepagesConfig]
51
75
  # Optional. Amounts for 2M and 1G hugepages
76
+ # @!attribute [rw] transparent_hugepage_enabled
77
+ # @return [::Google::Cloud::Container::V1::LinuxNodeConfig::TransparentHugepageEnabled]
78
+ # Optional. Transparent hugepage support for anonymous memory can be entirely
79
+ # disabled (mostly for debugging purposes) or only enabled inside
80
+ # MADV_HUGEPAGE regions (to avoid the risk of consuming more memory
81
+ # resources) or enabled system wide.
82
+ #
83
+ # See https://docs.kernel.org/admin-guide/mm/transhuge.html
84
+ # for more details.
85
+ # @!attribute [rw] transparent_hugepage_defrag
86
+ # @return [::Google::Cloud::Container::V1::LinuxNodeConfig::TransparentHugepageDefrag]
87
+ # Optional. Defines the transparent hugepage defrag configuration on the
88
+ # node. VM hugepage allocation can be managed by either limiting
89
+ # defragmentation for delayed allocation or skipping it entirely for
90
+ # immediate allocation only.
91
+ #
92
+ # See https://docs.kernel.org/admin-guide/mm/transhuge.html
93
+ # for more details.
52
94
  class LinuxNodeConfig
53
95
  include ::Google::Protobuf::MessageExts
54
96
  extend ::Google::Protobuf::MessageExts::ClassMethods
@@ -88,27 +130,76 @@ module Google
88
130
  # the node image.
89
131
  CGROUP_MODE_V2 = 2
90
132
  end
133
+
134
+ # Possible values for transparent hugepage enabled support.
135
+ module TransparentHugepageEnabled
136
+ # Default value. GKE will not modify the kernel configuration.
137
+ TRANSPARENT_HUGEPAGE_ENABLED_UNSPECIFIED = 0
138
+
139
+ # Transparent hugepage support for anonymous memory is enabled system wide.
140
+ TRANSPARENT_HUGEPAGE_ENABLED_ALWAYS = 1
141
+
142
+ # Transparent hugepage support for anonymous memory is enabled inside
143
+ # MADV_HUGEPAGE regions. This is the default kernel configuration.
144
+ TRANSPARENT_HUGEPAGE_ENABLED_MADVISE = 2
145
+
146
+ # Transparent hugepage support for anonymous memory is disabled.
147
+ TRANSPARENT_HUGEPAGE_ENABLED_NEVER = 3
148
+ end
149
+
150
+ # Possible values for transparent hugepage defrag support.
151
+ module TransparentHugepageDefrag
152
+ # Default value. GKE will not modify the kernel configuration.
153
+ TRANSPARENT_HUGEPAGE_DEFRAG_UNSPECIFIED = 0
154
+
155
+ # It means that an application requesting THP will stall on allocation
156
+ # failure and directly reclaim pages and compact memory in an effort to
157
+ # allocate a THP immediately.
158
+ TRANSPARENT_HUGEPAGE_DEFRAG_ALWAYS = 1
159
+
160
+ # It means that an application will wake kswapd in the background to
161
+ # reclaim pages and wake kcompactd to compact memory so that THP is
162
+ # available in the near future. It’s the responsibility of khugepaged to
163
+ # then install the THP pages later.
164
+ TRANSPARENT_HUGEPAGE_DEFRAG_DEFER = 2
165
+
166
+ # It means that an application will enter direct reclaim and compaction
167
+ # like always, but only for regions that have used madvise(MADV_HUGEPAGE);
168
+ # all other regions will wake kswapd in the background to reclaim pages and
169
+ # wake kcompactd to compact memory so that THP is available in the near
170
+ # future.
171
+ TRANSPARENT_HUGEPAGE_DEFRAG_DEFER_WITH_MADVISE = 3
172
+
173
+ # It means that an application will enter direct reclaim like always but
174
+ # only for regions that are have used madvise(MADV_HUGEPAGE). This is the
175
+ # default kernel configuration.
176
+ TRANSPARENT_HUGEPAGE_DEFRAG_MADVISE = 4
177
+
178
+ # It means that an application will never enter direct reclaim or
179
+ # compaction.
180
+ TRANSPARENT_HUGEPAGE_DEFRAG_NEVER = 5
181
+ end
91
182
  end
92
183
 
93
184
  # Parameters that can be configured on Windows nodes.
94
185
  # Windows Node Config that define the parameters that will be used to
95
- # configure the Windows node pool settings
186
+ # configure the Windows node pool settings.
96
187
  # @!attribute [rw] os_version
97
188
  # @return [::Google::Cloud::Container::V1::WindowsNodeConfig::OSVersion]
98
- # OSVersion specifies the Windows node config to be used on the node
189
+ # OSVersion specifies the Windows node config to be used on the node.
99
190
  class WindowsNodeConfig
100
191
  include ::Google::Protobuf::MessageExts
101
192
  extend ::Google::Protobuf::MessageExts::ClassMethods
102
193
 
103
194
  # Possible OS version that can be used.
104
195
  module OSVersion
105
- # When OSVersion is not specified
196
+ # When OSVersion is not specified.
106
197
  OS_VERSION_UNSPECIFIED = 0
107
198
 
108
- # LTSC2019 specifies to use LTSC2019 as the Windows Servercore Base Image
199
+ # LTSC2019 specifies to use LTSC2019 as the Windows Servercore Base Image.
109
200
  OS_VERSION_LTSC2019 = 1
110
201
 
111
- # LTSC2022 specifies to use LTSC2022 as the Windows Servercore Base Image
202
+ # LTSC2022 specifies to use LTSC2022 as the Windows Servercore Base Image.
112
203
  OS_VERSION_LTSC2022 = 2
113
204
  end
114
205
  end
@@ -125,6 +216,16 @@ module Google
125
216
  # * "static": allows pods with certain resource characteristics to be granted
126
217
  # increased CPU affinity and exclusivity on the node.
127
218
  # The default value is 'none' if unspecified.
219
+ # @!attribute [rw] topology_manager
220
+ # @return [::Google::Cloud::Container::V1::TopologyManager]
221
+ # Optional. Controls Topology Manager configuration on the node.
222
+ # For more information, see:
223
+ # https://kubernetes.io/docs/tasks/administer-cluster/topology-manager/
224
+ # @!attribute [rw] memory_manager
225
+ # @return [::Google::Cloud::Container::V1::MemoryManager]
226
+ # Optional. Controls NUMA-aware Memory Manager configuration on the
227
+ # node. For more information, see:
228
+ # https://kubernetes.io/docs/tasks/administer-cluster/memory-manager/
128
229
  # @!attribute [rw] cpu_cfs_quota
129
230
  # @return [::Google::Protobuf::BoolValue]
130
231
  # Enable CPU CFS quota enforcement for containers that specify CPU limits.
@@ -156,11 +257,325 @@ module Google
156
257
  # @!attribute [rw] insecure_kubelet_readonly_port_enabled
157
258
  # @return [::Boolean]
158
259
  # Enable or disable Kubelet read only port.
260
+ # @!attribute [rw] image_gc_low_threshold_percent
261
+ # @return [::Integer]
262
+ # Optional. Defines the percent of disk usage before which image garbage
263
+ # collection is never run. Lowest disk usage to garbage collect to. The
264
+ # percent is calculated as this field value out of 100.
265
+ #
266
+ # The value must be between 10 and 85, inclusive and smaller than
267
+ # image_gc_high_threshold_percent.
268
+ #
269
+ # The default value is 80 if unspecified.
270
+ # @!attribute [rw] image_gc_high_threshold_percent
271
+ # @return [::Integer]
272
+ # Optional. Defines the percent of disk usage after which image garbage
273
+ # collection is always run. The percent is calculated as this field value out
274
+ # of 100.
275
+ #
276
+ # The value must be between 10 and 85, inclusive and greater than
277
+ # image_gc_low_threshold_percent.
278
+ #
279
+ # The default value is 85 if unspecified.
280
+ # @!attribute [rw] image_minimum_gc_age
281
+ # @return [::String]
282
+ # Optional. Defines the minimum age for an unused image before it is garbage
283
+ # collected.
284
+ #
285
+ # The string must be a sequence of decimal numbers, each with optional
286
+ # fraction and a unit suffix, such as "300s", "1.5h", and "2h45m". Valid time
287
+ # units are "ns", "us" (or "µs"), "ms", "s", "m", "h".
288
+ #
289
+ # The value must be a positive duration less than or equal to 2 minutes.
290
+ #
291
+ # The default value is "2m0s" if unspecified.
292
+ # @!attribute [rw] image_maximum_gc_age
293
+ # @return [::String]
294
+ # Optional. Defines the maximum age an image can be unused before it is
295
+ # garbage collected. The string must be a sequence of decimal numbers, each
296
+ # with optional fraction and a unit suffix, such as "300s", "1.5h", and
297
+ # "2h45m". Valid time units are "ns", "us" (or "µs"), "ms", "s", "m", "h".
298
+ #
299
+ # The value must be a positive duration greater than image_minimum_gc_age
300
+ # or "0s".
301
+ #
302
+ # The default value is "0s" if unspecified, which disables this field,
303
+ # meaning images won't be garbage collected based on being unused for too
304
+ # long.
305
+ # @!attribute [rw] container_log_max_size
306
+ # @return [::String]
307
+ # Optional. Defines the maximum size of the container log file before it is
308
+ # rotated. See
309
+ # https://kubernetes.io/docs/concepts/cluster-administration/logging/#log-rotation
310
+ #
311
+ # Valid format is positive number + unit, e.g. 100Ki, 10Mi. Valid units are
312
+ # Ki, Mi, Gi.
313
+ # The value must be between 10Mi and 500Mi, inclusive.
314
+ #
315
+ # Note that the total container log size (container_log_max_size *
316
+ # container_log_max_files) cannot exceed 1% of the total
317
+ # storage of the node, to avoid disk pressure caused by log files.
318
+ #
319
+ # The default value is 10Mi if unspecified.
320
+ # @!attribute [rw] container_log_max_files
321
+ # @return [::Integer]
322
+ # Optional. Defines the maximum number of container log files that can be
323
+ # present for a container. See
324
+ # https://kubernetes.io/docs/concepts/cluster-administration/logging/#log-rotation
325
+ #
326
+ # The value must be an integer between 2 and 10, inclusive.
327
+ # The default value is 5 if unspecified.
328
+ # @!attribute [rw] allowed_unsafe_sysctls
329
+ # @return [::Array<::String>]
330
+ # Optional. Defines a comma-separated allowlist of unsafe sysctls or sysctl
331
+ # patterns (ending in `*`).
332
+ #
333
+ # The unsafe namespaced sysctl groups are `kernel.shm*`, `kernel.msg*`,
334
+ # `kernel.sem`, `fs.mqueue.*`, and `net.*`. Leaving this allowlist empty
335
+ # means they cannot be set on Pods.
336
+ #
337
+ # To allow certain sysctls or sysctl patterns to be set on Pods, list them
338
+ # separated by commas.
339
+ # For example: `kernel.msg*,net.ipv4.route.min_pmtu`.
340
+ #
341
+ # See https://kubernetes.io/docs/tasks/administer-cluster/sysctl-cluster/
342
+ # for more details.
343
+ # @!attribute [rw] eviction_soft
344
+ # @return [::Google::Cloud::Container::V1::EvictionSignals]
345
+ # Optional. eviction_soft is a map of signal names to quantities that defines
346
+ # soft eviction thresholds. Each signal is compared to its corresponding
347
+ # threshold to determine if a pod eviction should occur.
348
+ # @!attribute [rw] eviction_soft_grace_period
349
+ # @return [::Google::Cloud::Container::V1::EvictionGracePeriod]
350
+ # Optional. eviction_soft_grace_period is a map of signal names to quantities
351
+ # that defines grace periods for each soft eviction signal. The grace period
352
+ # is the amount of time that a pod must be under pressure before an eviction
353
+ # occurs.
354
+ # @!attribute [rw] eviction_minimum_reclaim
355
+ # @return [::Google::Cloud::Container::V1::EvictionMinimumReclaim]
356
+ # Optional. eviction_minimum_reclaim is a map of signal names to quantities
357
+ # that defines minimum reclaims, which describe the minimum amount of a given
358
+ # resource the kubelet will reclaim when performing a pod eviction while that
359
+ # resource is under pressure.
360
+ # @!attribute [rw] eviction_max_pod_grace_period_seconds
361
+ # @return [::Integer]
362
+ # Optional. eviction_max_pod_grace_period_seconds is the maximum allowed
363
+ # grace period (in seconds) to use when terminating pods in response to a
364
+ # soft eviction threshold being met. This value effectively caps the Pod's
365
+ # terminationGracePeriodSeconds value during soft evictions. Default: 0.
366
+ # Range: [0, 300].
367
+ # @!attribute [rw] max_parallel_image_pulls
368
+ # @return [::Integer]
369
+ # Optional. Defines the maximum number of image pulls in parallel.
370
+ # The range is 2 to 5, inclusive.
371
+ # The default value is 2 or 3 depending on the disk type.
372
+ #
373
+ # See
374
+ # https://kubernetes.io/docs/concepts/containers/images/#maximum-parallel-image-pulls
375
+ # for more details.
376
+ # @!attribute [rw] single_process_oom_kill
377
+ # @return [::Boolean]
378
+ # Optional. Defines whether to enable single process OOM killer.
379
+ # If true, will prevent the memory.oom.group flag from being set for
380
+ # container cgroups in cgroups v2. This causes processes in the container to
381
+ # be OOM killed individually instead of as a group.
159
382
  class NodeKubeletConfig
160
383
  include ::Google::Protobuf::MessageExts
161
384
  extend ::Google::Protobuf::MessageExts::ClassMethods
162
385
  end
163
386
 
387
+ # TopologyManager defines the configuration options for Topology Manager
388
+ # feature. See
389
+ # https://kubernetes.io/docs/tasks/administer-cluster/topology-manager/
390
+ # @!attribute [rw] policy
391
+ # @return [::String]
392
+ # Configures the strategy for resource alignment.
393
+ # Allowed values are:
394
+ #
395
+ # * none: the default policy, and does not perform any topology alignment.
396
+ # * restricted: the topology manager stores the preferred NUMA node affinity
397
+ # for the container, and will reject the pod if the affinity if not
398
+ # preferred.
399
+ # * best-effort: the topology manager stores the preferred NUMA node affinity
400
+ # for the container. If the affinity is not preferred, the topology manager
401
+ # will admit the pod to the node anyway.
402
+ # * single-numa-node: the topology manager determines if the single NUMA node
403
+ # affinity is possible. If it is, Topology Manager will store this and the
404
+ # Hint Providers can then use this information when making the resource
405
+ # allocation decision. If, however, this is not possible then the
406
+ # Topology Manager will reject the pod from the node. This will result in a
407
+ # pod in a Terminated state with a pod admission failure.
408
+ #
409
+ # The default policy value is 'none' if unspecified.
410
+ # Details about each strategy can be found
411
+ # [here](https://kubernetes.io/docs/tasks/administer-cluster/topology-manager/#topology-manager-policies).
412
+ # @!attribute [rw] scope
413
+ # @return [::String]
414
+ # The Topology Manager aligns resources in following scopes:
415
+ #
416
+ # * container
417
+ # * pod
418
+ #
419
+ # The default scope is 'container' if unspecified.
420
+ # See
421
+ # https://kubernetes.io/docs/tasks/administer-cluster/topology-manager/#topology-manager-scopes
422
+ class TopologyManager
423
+ include ::Google::Protobuf::MessageExts
424
+ extend ::Google::Protobuf::MessageExts::ClassMethods
425
+ end
426
+
427
+ # The option enables the Kubernetes NUMA-aware Memory Manager feature.
428
+ # Detailed description about the feature can be found
429
+ # [here](https://kubernetes.io/docs/tasks/administer-cluster/memory-manager/).
430
+ # @!attribute [rw] policy
431
+ # @return [::String]
432
+ # Controls the memory management policy on the Node.
433
+ # See
434
+ # https://kubernetes.io/docs/tasks/administer-cluster/memory-manager/#policies
435
+ #
436
+ # The following values are allowed.
437
+ # * "none"
438
+ # * "static"
439
+ # The default value is 'none' if unspecified.
440
+ class MemoryManager
441
+ include ::Google::Protobuf::MessageExts
442
+ extend ::Google::Protobuf::MessageExts::ClassMethods
443
+ end
444
+
445
+ # Eviction signals are the current state of a particular resource at a specific
446
+ # point in time. The kubelet uses eviction signals to make eviction decisions
447
+ # by comparing the signals to eviction thresholds, which are the minimum amount
448
+ # of the resource that should be available on the node.
449
+ # @!attribute [rw] memory_available
450
+ # @return [::String]
451
+ # Optional. Memory available (i.e. capacity - workingSet), in bytes. Defines
452
+ # the amount of "memory.available" signal in kubelet. Default is unset, if
453
+ # not specified in the kubelet config. Format: positive number + unit, e.g.
454
+ # 100Ki, 10Mi, 5Gi. Valid units are Ki, Mi, Gi. Must be >= 100Mi and <= 50%
455
+ # of the node's memory. See
456
+ # https://kubernetes.io/docs/concepts/scheduling-eviction/node-pressure-eviction/#eviction-signals
457
+ # @!attribute [rw] nodefs_available
458
+ # @return [::String]
459
+ # Optional. Amount of storage available on filesystem that kubelet uses for
460
+ # volumes, daemon logs, etc. Defines the amount of "nodefs.available" signal
461
+ # in kubelet. Default is unset, if not specified in the kubelet config. It
462
+ # takses percentage value for now. Sample format: "30%". Must be >= 10% and
463
+ # <= 50%. See
464
+ # https://kubernetes.io/docs/concepts/scheduling-eviction/node-pressure-eviction/#eviction-signals
465
+ # @!attribute [rw] nodefs_inodes_free
466
+ # @return [::String]
467
+ # Optional. Amount of inodes available on filesystem that kubelet uses for
468
+ # volumes, daemon logs, etc. Defines the amount of "nodefs.inodesFree" signal
469
+ # in kubelet. Default is unset, if not specified in the kubelet config. Linux
470
+ # only. It takses percentage value for now. Sample format: "30%". Must be >=
471
+ # 5% and <= 50%. See
472
+ # https://kubernetes.io/docs/concepts/scheduling-eviction/node-pressure-eviction/#eviction-signals
473
+ # @!attribute [rw] imagefs_available
474
+ # @return [::String]
475
+ # Optional. Amount of storage available on filesystem that container runtime
476
+ # uses for storing images layers. If the container filesystem and image
477
+ # filesystem are not separate, then imagefs can store both image layers and
478
+ # writeable layers. Defines the amount of "imagefs.available" signal in
479
+ # kubelet. Default is unset, if not specified in the kubelet config. It
480
+ # takses percentage value for now. Sample format: "30%". Must be >= 15% and
481
+ # <= 50%. See
482
+ # https://kubernetes.io/docs/concepts/scheduling-eviction/node-pressure-eviction/#eviction-signals
483
+ # @!attribute [rw] imagefs_inodes_free
484
+ # @return [::String]
485
+ # Optional. Amount of inodes available on filesystem that container runtime
486
+ # uses for storing images layers. Defines the amount of "imagefs.inodesFree"
487
+ # signal in kubelet. Default is unset, if not specified in the kubelet
488
+ # config. Linux only. It takses percentage value for now. Sample format:
489
+ # "30%". Must be >= 5% and <= 50%. See
490
+ # https://kubernetes.io/docs/concepts/scheduling-eviction/node-pressure-eviction/#eviction-signals
491
+ # @!attribute [rw] pid_available
492
+ # @return [::String]
493
+ # Optional. Amount of PID available for pod allocation. Defines the amount of
494
+ # "pid.available" signal in kubelet. Default is unset, if not specified in
495
+ # the kubelet config. It takses percentage value for now. Sample format:
496
+ # "30%". Must be >= 10% and <= 50%. See
497
+ # https://kubernetes.io/docs/concepts/scheduling-eviction/node-pressure-eviction/#eviction-signals
498
+ class EvictionSignals
499
+ include ::Google::Protobuf::MessageExts
500
+ extend ::Google::Protobuf::MessageExts::ClassMethods
501
+ end
502
+
503
+ # Eviction grace periods are grace periods for each eviction signal.
504
+ # @!attribute [rw] memory_available
505
+ # @return [::String]
506
+ # Optional. Grace period for eviction due to memory available signal. Sample
507
+ # format: "10s". Must be >= 0. See
508
+ # https://kubernetes.io/docs/concepts/scheduling-eviction/node-pressure-eviction/#eviction-signals
509
+ # @!attribute [rw] nodefs_available
510
+ # @return [::String]
511
+ # Optional. Grace period for eviction due to nodefs available signal. Sample
512
+ # format: "10s". Must be >= 0. See
513
+ # https://kubernetes.io/docs/concepts/scheduling-eviction/node-pressure-eviction/#eviction-signals
514
+ # @!attribute [rw] nodefs_inodes_free
515
+ # @return [::String]
516
+ # Optional. Grace period for eviction due to nodefs inodes free signal.
517
+ # Sample format: "10s". Must be >= 0. See
518
+ # https://kubernetes.io/docs/concepts/scheduling-eviction/node-pressure-eviction/#eviction-signals
519
+ # @!attribute [rw] imagefs_available
520
+ # @return [::String]
521
+ # Optional. Grace period for eviction due to imagefs available signal. Sample
522
+ # format: "10s". Must be >= 0. See
523
+ # https://kubernetes.io/docs/concepts/scheduling-eviction/node-pressure-eviction/#eviction-signals
524
+ # @!attribute [rw] imagefs_inodes_free
525
+ # @return [::String]
526
+ # Optional. Grace period for eviction due to imagefs inodes free signal.
527
+ # Sample format: "10s". Must be >= 0. See
528
+ # https://kubernetes.io/docs/concepts/scheduling-eviction/node-pressure-eviction/#eviction-signals
529
+ # @!attribute [rw] pid_available
530
+ # @return [::String]
531
+ # Optional. Grace period for eviction due to pid available signal. Sample
532
+ # format: "10s". Must be >= 0. See
533
+ # https://kubernetes.io/docs/concepts/scheduling-eviction/node-pressure-eviction/#eviction-signals
534
+ class EvictionGracePeriod
535
+ include ::Google::Protobuf::MessageExts
536
+ extend ::Google::Protobuf::MessageExts::ClassMethods
537
+ end
538
+
539
+ # Eviction minimum reclaims are the resource amounts of minimum reclaims for
540
+ # each eviction signal.
541
+ # @!attribute [rw] memory_available
542
+ # @return [::String]
543
+ # Optional. Minimum reclaim for eviction due to memory available signal. Only
544
+ # take percentage value for now. Sample format: "10%". Must be <=10%. See
545
+ # https://kubernetes.io/docs/concepts/scheduling-eviction/node-pressure-eviction/#eviction-signals
546
+ # @!attribute [rw] nodefs_available
547
+ # @return [::String]
548
+ # Optional. Minimum reclaim for eviction due to nodefs available signal. Only
549
+ # take percentage value for now. Sample format: "10%". Must be <=10%. See
550
+ # https://kubernetes.io/docs/concepts/scheduling-eviction/node-pressure-eviction/#eviction-signals
551
+ # @!attribute [rw] nodefs_inodes_free
552
+ # @return [::String]
553
+ # Optional. Minimum reclaim for eviction due to nodefs inodes free signal.
554
+ # Only take percentage value for now. Sample format: "10%". Must be <=10%.
555
+ # See
556
+ # https://kubernetes.io/docs/concepts/scheduling-eviction/node-pressure-eviction/#eviction-signals
557
+ # @!attribute [rw] imagefs_available
558
+ # @return [::String]
559
+ # Optional. Minimum reclaim for eviction due to imagefs available signal.
560
+ # Only take percentage value for now. Sample format: "10%". Must be <=10%.
561
+ # See
562
+ # https://kubernetes.io/docs/concepts/scheduling-eviction/node-pressure-eviction/#eviction-signals
563
+ # @!attribute [rw] imagefs_inodes_free
564
+ # @return [::String]
565
+ # Optional. Minimum reclaim for eviction due to imagefs inodes free signal.
566
+ # Only take percentage value for now. Sample format: "10%". Must be <=10%.
567
+ # See
568
+ # https://kubernetes.io/docs/concepts/scheduling-eviction/node-pressure-eviction/#eviction-signals
569
+ # @!attribute [rw] pid_available
570
+ # @return [::String]
571
+ # Optional. Minimum reclaim for eviction due to pid available signal. Only
572
+ # take percentage value for now. Sample format: "10%". Must be <=10%. See
573
+ # https://kubernetes.io/docs/concepts/scheduling-eviction/node-pressure-eviction/#eviction-signals
574
+ class EvictionMinimumReclaim
575
+ include ::Google::Protobuf::MessageExts
576
+ extend ::Google::Protobuf::MessageExts::ClassMethods
577
+ end
578
+
164
579
  # Parameters that describe the nodes in a cluster.
165
580
  #
166
581
  # GKE Autopilot clusters do not
@@ -239,8 +654,8 @@ module Google
239
654
  # @return [::String]
240
655
  # The image type to use for this node. Note that for a given image type,
241
656
  # the latest version of it will be used. Please see
242
- # https://cloud.google.com/kubernetes-engine/docs/concepts/node-images for
243
- # available image types.
657
+ # https://cloud.google.com/kubernetes-engine/docs/concepts/node-images
658
+ # for available image types.
244
659
  # @!attribute [rw] labels
245
660
  # @return [::Google::Protobuf::Map{::String => ::String}]
246
661
  # The map of Kubernetes labels (key/value pairs) to be applied to each node.
@@ -268,13 +683,14 @@ module Google
268
683
  # @!attribute [rw] preemptible
269
684
  # @return [::Boolean]
270
685
  # Whether the nodes are created as preemptible VM instances. See:
271
- # https://cloud.google.com/compute/docs/instances/preemptible for more
272
- # information about preemptible VM instances.
686
+ # https://cloud.google.com/compute/docs/instances/preemptible
687
+ # for more information about preemptible VM instances.
273
688
  # @!attribute [rw] accelerators
274
689
  # @return [::Array<::Google::Cloud::Container::V1::AcceleratorConfig>]
275
690
  # A list of hardware accelerators to be attached to each node.
276
- # See https://cloud.google.com/compute/docs/gpus for more information about
277
- # support for GPUs.
691
+ # See
692
+ # https://cloud.google.com/compute/docs/gpus
693
+ # for more information about support for GPUs.
278
694
  # @!attribute [rw] disk_type
279
695
  # @return [::String]
280
696
  # Type of the disk attached to each node (e.g. 'pd-standard', 'pd-ssd' or
@@ -389,16 +805,26 @@ module Google
389
805
  # @!attribute [rw] secondary_boot_disk_update_strategy
390
806
  # @return [::Google::Cloud::Container::V1::SecondaryBootDiskUpdateStrategy]
391
807
  # Secondary boot disk update strategy.
808
+ # @!attribute [rw] max_run_duration
809
+ # @return [::Google::Protobuf::Duration]
810
+ # The maximum duration for the nodes to exist.
811
+ # If unspecified, the nodes can exist indefinitely.
392
812
  # @!attribute [rw] local_ssd_encryption_mode
393
813
  # @return [::Google::Cloud::Container::V1::NodeConfig::LocalSsdEncryptionMode]
394
814
  # Specifies which method should be used for encrypting the
395
- # Local SSDs attahced to the node.
815
+ # Local SSDs attached to the node.
396
816
  # @!attribute [r] effective_cgroup_mode
397
817
  # @return [::Google::Cloud::Container::V1::NodeConfig::EffectiveCgroupMode]
398
818
  # Output only. effective_cgroup_mode is the cgroup mode actually used by the
399
819
  # node pool. It is determined by the cgroup mode specified in the
400
820
  # LinuxNodeConfig or the default cgroup mode based on the cluster creation
401
821
  # version.
822
+ # @!attribute [rw] flex_start
823
+ # @return [::Boolean]
824
+ # Flex Start flag for enabling Flex Start VM.
825
+ # @!attribute [rw] boot_disk
826
+ # @return [::Google::Cloud::Container::V1::BootDisk]
827
+ # The boot disk configuration for the node pool.
402
828
  class NodeConfig
403
829
  include ::Google::Protobuf::MessageExts
404
830
  extend ::Google::Protobuf::MessageExts::ClassMethods
@@ -475,9 +901,28 @@ module Google
475
901
  # @!attribute [rw] enable_nested_virtualization
476
902
  # @return [::Boolean]
477
903
  # Whether or not to enable nested virtualization (defaults to false).
904
+ # @!attribute [rw] performance_monitoring_unit
905
+ # @return [::Google::Cloud::Container::V1::AdvancedMachineFeatures::PerformanceMonitoringUnit]
906
+ # Type of Performance Monitoring Unit (PMU) requested on node pool instances.
907
+ # If unset, PMU will not be available to the node.
478
908
  class AdvancedMachineFeatures
479
909
  include ::Google::Protobuf::MessageExts
480
910
  extend ::Google::Protobuf::MessageExts::ClassMethods
911
+
912
+ # Level of PMU access.
913
+ module PerformanceMonitoringUnit
914
+ # PMU not enabled.
915
+ PERFORMANCE_MONITORING_UNIT_UNSPECIFIED = 0
916
+
917
+ # Architecturally defined non-LLC events.
918
+ ARCHITECTURAL = 1
919
+
920
+ # Most documented core/L2 events.
921
+ STANDARD = 2
922
+
923
+ # Most documented core/L2 and LLC events.
924
+ ENHANCED = 3
925
+ end
481
926
  end
482
927
 
483
928
  # Parameters for node pool-level network config.
@@ -557,6 +1002,13 @@ module Google
557
1002
  # Output only. The utilization of the IPv4 range for the pod.
558
1003
  # The ratio is Usage/[Total number of IPs in the secondary range],
559
1004
  # Usage=numNodes*numZones*podIPsPerNode.
1005
+ # @!attribute [r] subnetwork
1006
+ # @return [::String]
1007
+ # Output only. The subnetwork path for the node pool.
1008
+ # Format: projects/\\{project}/regions/\\{region}/subnetworks/\\{subnetwork}
1009
+ # If the cluster is associated with multiple subnetworks, the subnetwork for
1010
+ # the node pool is picked based on the IP utilization during node pool
1011
+ # creation and is immutable.
560
1012
  class NodeNetworkConfig
561
1013
  include ::Google::Protobuf::MessageExts
562
1014
  extend ::Google::Protobuf::MessageExts::ClassMethods
@@ -700,6 +1152,11 @@ module Google
700
1152
  # @!attribute [rw] node_affinities
701
1153
  # @return [::Array<::Google::Cloud::Container::V1::SoleTenantConfig::NodeAffinity>]
702
1154
  # NodeAffinities used to match to a shared sole tenant node group.
1155
+ # @!attribute [rw] min_node_cpus
1156
+ # @return [::Integer]
1157
+ # Optional. The minimum number of virtual CPUs this instance will consume
1158
+ # when running on a sole-tenant node. This field can only be set if the node
1159
+ # pool is created in a shared sole-tenant node group.
703
1160
  class SoleTenantConfig
704
1161
  include ::Google::Protobuf::MessageExts
705
1162
  extend ::Google::Protobuf::MessageExts::ClassMethods
@@ -762,7 +1219,7 @@ module Google
762
1219
  # @return [::Array<::String>]
763
1220
  # List of fully qualified domain names (FQDN).
764
1221
  # Specifying port is supported.
765
- # Wilcards are NOT supported.
1222
+ # Wildcards are NOT supported.
766
1223
  # Examples:
767
1224
  # - my.customdomain.com
768
1225
  # - 10.0.1.2:5000
@@ -774,7 +1231,8 @@ module Google
774
1231
  extend ::Google::Protobuf::MessageExts::ClassMethods
775
1232
 
776
1233
  # GCPSecretManagerCertificateConfig configures a secret from
777
- # [Google Secret Manager](https://cloud.google.com/secret-manager).
1234
+ # [Google Secret
1235
+ # Manager](https://cloud.google.com/secret-manager).
778
1236
  # @!attribute [rw] secret_uri
779
1237
  # @return [::String]
780
1238
  # Secret URI, in the form
@@ -995,6 +1453,12 @@ module Google
995
1453
  # @!attribute [rw] ray_operator_config
996
1454
  # @return [::Google::Cloud::Container::V1::RayOperatorConfig]
997
1455
  # Optional. Configuration for Ray Operator addon.
1456
+ # @!attribute [rw] high_scale_checkpointing_config
1457
+ # @return [::Google::Cloud::Container::V1::HighScaleCheckpointingConfig]
1458
+ # Configuration for the High Scale Checkpointing add-on.
1459
+ # @!attribute [rw] lustre_csi_driver_config
1460
+ # @return [::Google::Cloud::Container::V1::LustreCsiDriverConfig]
1461
+ # Configuration for the Lustre CSI driver.
998
1462
  class AddonsConfig
999
1463
  include ::Google::Protobuf::MessageExts
1000
1464
  extend ::Google::Protobuf::MessageExts::ClassMethods
@@ -1214,6 +1678,29 @@ module Google
1214
1678
  extend ::Google::Protobuf::MessageExts::ClassMethods
1215
1679
  end
1216
1680
 
1681
+ # Configuration for the High Scale Checkpointing.
1682
+ # @!attribute [rw] enabled
1683
+ # @return [::Boolean]
1684
+ # Whether the High Scale Checkpointing is enabled for this
1685
+ # cluster.
1686
+ class HighScaleCheckpointingConfig
1687
+ include ::Google::Protobuf::MessageExts
1688
+ extend ::Google::Protobuf::MessageExts::ClassMethods
1689
+ end
1690
+
1691
+ # Configuration for the Lustre CSI driver.
1692
+ # @!attribute [rw] enabled
1693
+ # @return [::Boolean]
1694
+ # Whether the Lustre CSI driver is enabled for this cluster.
1695
+ # @!attribute [rw] enable_legacy_lustre_port
1696
+ # @return [::Boolean]
1697
+ # If set to true, the Lustre CSI driver will install Lustre kernel modules
1698
+ # using port 6988.
1699
+ class LustreCsiDriverConfig
1700
+ include ::Google::Protobuf::MessageExts
1701
+ extend ::Google::Protobuf::MessageExts::ClassMethods
1702
+ end
1703
+
1217
1704
  # Configuration options for the Ray Operator add-on.
1218
1705
  # @!attribute [rw] enabled
1219
1706
  # @return [::Boolean]
@@ -1260,7 +1747,7 @@ module Google
1260
1747
  # Kubernetes master through HTTPS.
1261
1748
  # @!attribute [rw] gcp_public_cidrs_access_enabled
1262
1749
  # @return [::Boolean]
1263
- # Whether master is accessbile via Google Compute Engine Public IP addresses.
1750
+ # Whether master is accessible via Google Compute Engine Public IP addresses.
1264
1751
  # @!attribute [rw] private_endpoint_enforcement_enabled
1265
1752
  # @return [::Boolean]
1266
1753
  # Whether master authorized networks is enforced on private endpoint or not.
@@ -1455,6 +1942,7 @@ module Google
1455
1942
  # `10.0.0.0/8`, `172.16.0.0/12`, `192.168.0.0/16`) to pick a specific range
1456
1943
  # to use.
1457
1944
  # @!attribute [rw] tpu_ipv4_cidr_block
1945
+ # @deprecated This field is deprecated and may be removed in the next major version update.
1458
1946
  # @return [::String]
1459
1947
  # The IP address range of the Cloud TPUs in this cluster. If unspecified, a
1460
1948
  # range will be automatically chosen with the default size.
@@ -1471,6 +1959,9 @@ module Google
1471
1959
  # notation (e.g. `10.96.0.0/14`) from the RFC-1918 private networks (e.g.
1472
1960
  # `10.0.0.0/8`, `172.16.0.0/12`, `192.168.0.0/16`) to pick a specific range
1473
1961
  # to use.
1962
+ #
1963
+ # This field is deprecated due to the deprecation of 2VM TPU. The end of life
1964
+ # date for 2VM TPU is 2025-04-25.
1474
1965
  # @!attribute [rw] use_routes
1475
1966
  # @return [::Boolean]
1476
1967
  # Whether routes will be used for pod IPs in the cluster.
@@ -1514,6 +2005,16 @@ module Google
1514
2005
  # Output only. The utilization of the cluster default IPv4 range for the
1515
2006
  # pod. The ratio is Usage/[Total number of IPs in the secondary range],
1516
2007
  # Usage=numNodes*numZones*podIPsPerNode.
2008
+ # @!attribute [r] additional_ip_ranges_configs
2009
+ # @return [::Array<::Google::Cloud::Container::V1::AdditionalIPRangesConfig>]
2010
+ # Output only. The additional IP ranges that are added to the cluster.
2011
+ # These IP ranges can be used by new node pools to allocate node and pod IPs
2012
+ # automatically.
2013
+ # Each AdditionalIPRangesConfig corresponds to a single subnetwork.
2014
+ # Once a range is removed it will not show up in IPAllocationPolicy.
2015
+ # @!attribute [rw] auto_ipam_config
2016
+ # @return [::Google::Cloud::Container::V1::AutoIpamConfig]
2017
+ # Optional. AutoIpamConfig contains all information related to Auto IPAM
1517
2018
  class IPAllocationPolicy
1518
2019
  include ::Google::Protobuf::MessageExts
1519
2020
  extend ::Google::Protobuf::MessageExts::ClassMethods
@@ -1536,7 +2037,8 @@ module Google
1536
2037
  # @deprecated This field is deprecated and may be removed in the next major version update.
1537
2038
  # @return [::Integer]
1538
2039
  # The number of nodes to create in this cluster. You must ensure that your
1539
- # Compute Engine [resource quota](https://cloud.google.com/compute/quotas)
2040
+ # Compute Engine [resource
2041
+ # quota](https://cloud.google.com/compute/quotas)
1540
2042
  # is sufficient for this number of instances. You must also have available
1541
2043
  # firewall and routes quota.
1542
2044
  # For requests, this field should only be used in lieu of a
@@ -1584,7 +2086,7 @@ module Google
1584
2086
  # The monitoring service the cluster should use to write metrics.
1585
2087
  # Currently available options:
1586
2088
  #
1587
- # * "monitoring.googleapis.com/kubernetes" - The Cloud Monitoring
2089
+ # * `monitoring.googleapis.com/kubernetes` - The Cloud Monitoring
1588
2090
  # service with a Kubernetes-native resource model
1589
2091
  # * `monitoring.googleapis.com` - The legacy Cloud Monitoring service (no
1590
2092
  # longer available as of GKE 1.15).
@@ -1610,8 +2112,8 @@ module Google
1610
2112
  # @!attribute [rw] subnetwork
1611
2113
  # @return [::String]
1612
2114
  # The name of the Google Compute Engine
1613
- # [subnetwork](https://cloud.google.com/compute/docs/subnetworks) to which
1614
- # the cluster is connected.
2115
+ # [subnetwork](https://cloud.google.com/compute/docs/subnetworks)
2116
+ # to which the cluster is connected.
1615
2117
  # @!attribute [rw] node_pools
1616
2118
  # @return [::Array<::Google::Cloud::Container::V1::NodePool>]
1617
2119
  # The node pools associated with this cluster.
@@ -1620,8 +2122,8 @@ module Google
1620
2122
  # @!attribute [rw] locations
1621
2123
  # @return [::Array<::String>]
1622
2124
  # The list of Google Compute Engine
1623
- # [zones](https://cloud.google.com/compute/docs/zones#available) in which the
1624
- # cluster's nodes should be located.
2125
+ # [zones](https://cloud.google.com/compute/docs/zones#available)
2126
+ # in which the cluster's nodes should be located.
1625
2127
  #
1626
2128
  # This field provides a default value if
1627
2129
  # [NodePool.Locations](https://cloud.google.com/kubernetes-engine/docs/reference/rest/v1/projects.locations.clusters.nodePools#NodePool.FIELDS.locations)
@@ -1638,6 +2140,11 @@ module Google
1638
2140
  # The cluster has no SLA for uptime and master/node upgrades are disabled.
1639
2141
  # Alpha enabled clusters are automatically deleted thirty days after
1640
2142
  # creation.
2143
+ # @!attribute [rw] alpha_cluster_feature_gates
2144
+ # @return [::Array<::String>]
2145
+ # The list of user specified Kubernetes feature gates.
2146
+ # Each string represents the activation status of a feature gate (e.g.
2147
+ # "featureX=true" or "featureX=false")
1641
2148
  # @!attribute [rw] resource_labels
1642
2149
  # @return [::Google::Protobuf::Map{::String => ::String}]
1643
2150
  # The resource labels for the cluster to use to annotate any related
@@ -1734,8 +2241,9 @@ module Google
1734
2241
  # @deprecated This field is deprecated and may be removed in the next major version update.
1735
2242
  # @return [::String]
1736
2243
  # Output only. The name of the Google Compute Engine
1737
- # [zone](https://cloud.google.com/compute/docs/zones#available) in which the
1738
- # cluster resides. This field is deprecated, use location instead.
2244
+ # [zone](https://cloud.google.com/compute/docs/zones#available)
2245
+ # in which the cluster resides. This field is deprecated, use location
2246
+ # instead.
1739
2247
  # @!attribute [r] endpoint
1740
2248
  # @return [::String]
1741
2249
  # Output only. The IP address of this cluster's master endpoint.
@@ -1817,13 +2325,19 @@ module Google
1817
2325
  # [region](https://cloud.google.com/compute/docs/regions-zones/regions-zones#available)
1818
2326
  # in which the cluster resides.
1819
2327
  # @!attribute [rw] enable_tpu
2328
+ # @deprecated This field is deprecated and may be removed in the next major version update.
1820
2329
  # @return [::Boolean]
1821
2330
  # Enable the ability to use Cloud TPUs in this cluster.
2331
+ # This field is deprecated due to the deprecation of 2VM TPU. The end of life
2332
+ # date for 2VM TPU is 2025-04-25.
1822
2333
  # @!attribute [r] tpu_ipv4_cidr_block
2334
+ # @deprecated This field is deprecated and may be removed in the next major version update.
1823
2335
  # @return [::String]
1824
2336
  # Output only. The IP address range of the Cloud TPUs in this cluster, in
1825
2337
  # [CIDR](http://en.wikipedia.org/wiki/Classless_Inter-Domain_Routing)
1826
2338
  # notation (e.g. `1.2.3.4/29`).
2339
+ # This field is deprecated due to the deprecation of 2VM TPU. The end of life
2340
+ # date for 2VM TPU is 2025-04-25.
1827
2341
  # @!attribute [rw] conditions
1828
2342
  # @return [::Array<::Google::Cloud::Container::V1::StatusCondition>]
1829
2343
  # Which conditions caused the current cluster state.
@@ -1847,6 +2361,9 @@ module Google
1847
2361
  # @return [::Google::Cloud::Container::V1::NodePoolAutoConfig]
1848
2362
  # Node pool configs that apply to all auto-provisioned node pools
1849
2363
  # in autopilot clusters and node auto-provisioning enabled clusters.
2364
+ # @!attribute [rw] pod_autoscaling
2365
+ # @return [::Google::Cloud::Container::V1::PodAutoscaling]
2366
+ # The config for pod autoscaling.
1850
2367
  # @!attribute [rw] etag
1851
2368
  # @return [::String]
1852
2369
  # This checksum is computed by the server based on the value of cluster
@@ -1886,6 +2403,13 @@ module Google
1886
2403
  # @return [::Google::Cloud::Container::V1::RBACBindingConfig]
1887
2404
  # RBACBindingConfig allows user to restrict ClusterRoleBindings an
1888
2405
  # RoleBindings that can be created.
2406
+ # @!attribute [rw] gke_auto_upgrade_config
2407
+ # @return [::Google::Cloud::Container::V1::GkeAutoUpgradeConfig]
2408
+ # Configuration for GKE auto upgrades.
2409
+ # @!attribute [rw] anonymous_authentication_config
2410
+ # @return [::Google::Cloud::Container::V1::AnonymousAuthenticationConfig]
2411
+ # Configuration for limiting anonymous access to all endpoints except the
2412
+ # health checks.
1889
2413
  class Cluster
1890
2414
  include ::Google::Protobuf::MessageExts
1891
2415
  extend ::Google::Protobuf::MessageExts::ClassMethods
@@ -1989,6 +2513,29 @@ module Google
1989
2513
  extend ::Google::Protobuf::MessageExts::ClassMethods
1990
2514
  end
1991
2515
 
2516
+ # AnonymousAuthenticationConfig defines the settings needed to limit endpoints
2517
+ # that allow anonymous authentication.
2518
+ # @!attribute [rw] mode
2519
+ # @return [::Google::Cloud::Container::V1::AnonymousAuthenticationConfig::Mode]
2520
+ # Defines the mode of limiting anonymous access in the cluster.
2521
+ class AnonymousAuthenticationConfig
2522
+ include ::Google::Protobuf::MessageExts
2523
+ extend ::Google::Protobuf::MessageExts::ClassMethods
2524
+
2525
+ # Mode defines the mode of anonymous authentication
2526
+ # allowed in the cluster.
2527
+ module Mode
2528
+ # Default value not specified.
2529
+ MODE_UNSPECIFIED = 0
2530
+
2531
+ # Anonymous authentication is allowed for all endpoints.
2532
+ ENABLED = 1
2533
+
2534
+ # Anonymous authentication is allowed for only health check endpoints.
2535
+ LIMITED = 2
2536
+ end
2537
+ end
2538
+
1992
2539
  # CompliancePostureConfig defines the settings needed to enable/disable
1993
2540
  # features for the Compliance Posture.
1994
2541
  # @!attribute [rw] mode
@@ -2151,7 +2698,7 @@ module Google
2151
2698
  # The monitoring service the cluster should use to write metrics.
2152
2699
  # Currently available options:
2153
2700
  #
2154
- # * "monitoring.googleapis.com/kubernetes" - The Cloud Monitoring
2701
+ # * `monitoring.googleapis.com/kubernetes` - The Cloud Monitoring
2155
2702
  # service with a Kubernetes-native resource model
2156
2703
  # * `monitoring.googleapis.com` - The legacy Cloud Monitoring service (no
2157
2704
  # longer available as of GKE 1.15).
@@ -2200,8 +2747,8 @@ module Google
2200
2747
  # @!attribute [rw] desired_locations
2201
2748
  # @return [::Array<::String>]
2202
2749
  # The desired list of Google Compute Engine
2203
- # [zones](https://cloud.google.com/compute/docs/zones#available) in which the
2204
- # cluster's nodes should be located.
2750
+ # [zones](https://cloud.google.com/compute/docs/zones#available)
2751
+ # in which the cluster's nodes should be located.
2205
2752
  #
2206
2753
  # This list must always include the cluster's primary zone.
2207
2754
  #
@@ -2328,6 +2875,9 @@ module Google
2328
2875
  # @return [::Google::Cloud::Container::V1::NetworkTags]
2329
2876
  # The desired network tags that apply to all auto-provisioned node pools
2330
2877
  # in autopilot clusters and node auto-provisioning enabled clusters.
2878
+ # @!attribute [rw] desired_pod_autoscaling
2879
+ # @return [::Google::Cloud::Container::V1::PodAutoscaling]
2880
+ # The desired config for pod autoscaling.
2331
2881
  # @!attribute [rw] desired_gateway_api_config
2332
2882
  # @return [::Google::Cloud::Container::V1::GatewayAPIConfig]
2333
2883
  # The desired config of Gateway API on this cluster.
@@ -2370,7 +2920,7 @@ module Google
2370
2920
  # Enable/Disable FQDN Network Policy for the cluster.
2371
2921
  # @!attribute [rw] desired_autopilot_workload_policy_config
2372
2922
  # @return [::Google::Cloud::Container::V1::WorkloadPolicyConfig]
2373
- # The desired workload policy configuration for the autopilot cluster.
2923
+ # WorkloadPolicyConfig is the configuration related to GCW workload policy
2374
2924
  # @!attribute [rw] desired_k8s_beta_apis
2375
2925
  # @return [::Google::Cloud::Container::V1::K8sBetaAPIConfig]
2376
2926
  # Desired Beta APIs to be enabled for cluster.
@@ -2404,21 +2954,46 @@ module Google
2404
2954
  # The desired node kubelet config for all auto-provisioned node pools
2405
2955
  # in autopilot clusters and node auto-provisioning enabled clusters.
2406
2956
  # @!attribute [rw] user_managed_keys_config
2957
+ # @deprecated This field is deprecated and may be removed in the next major version update.
2407
2958
  # @return [::Google::Cloud::Container::V1::UserManagedKeysConfig]
2408
2959
  # The Custom keys configuration for the cluster.
2960
+ #
2961
+ # This field is deprecated.
2962
+ # Use
2963
+ # {::Google::Cloud::Container::V1::ClusterUpdate#desired_user_managed_keys_config ClusterUpdate.desired_user_managed_keys_config}
2964
+ # instead.
2409
2965
  # @!attribute [rw] desired_rbac_binding_config
2410
2966
  # @return [::Google::Cloud::Container::V1::RBACBindingConfig]
2411
2967
  # RBACBindingConfig allows user to restrict ClusterRoleBindings an
2412
2968
  # RoleBindings that can be created.
2969
+ # @!attribute [rw] desired_additional_ip_ranges_config
2970
+ # @return [::Google::Cloud::Container::V1::DesiredAdditionalIPRangesConfig]
2971
+ # The desired config for additional subnetworks attached to the cluster.
2413
2972
  # @!attribute [rw] desired_enterprise_config
2414
2973
  # @return [::Google::Cloud::Container::V1::DesiredEnterpriseConfig]
2415
2974
  # The desired enterprise configuration for the cluster.
2975
+ # @!attribute [rw] desired_auto_ipam_config
2976
+ # @return [::Google::Cloud::Container::V1::AutoIpamConfig]
2977
+ # AutoIpamConfig contains all information related to Auto IPAM
2978
+ # @!attribute [rw] desired_disable_l4_lb_firewall_reconciliation
2979
+ # @return [::Boolean]
2980
+ # Enable/Disable L4 LB VPC firewall reconciliation for the cluster.
2416
2981
  # @!attribute [rw] desired_node_pool_auto_config_linux_node_config
2417
2982
  # @return [::Google::Cloud::Container::V1::LinuxNodeConfig]
2418
2983
  # The desired Linux node config for all auto-provisioned node pools
2419
2984
  # in autopilot clusters and node auto-provisioning enabled clusters.
2420
2985
  #
2421
2986
  # Currently only `cgroup_mode` can be set here.
2987
+ # @!attribute [rw] desired_user_managed_keys_config
2988
+ # @return [::Google::Cloud::Container::V1::UserManagedKeysConfig]
2989
+ # The desired user managed keys config for the cluster.
2990
+ # @!attribute [rw] desired_anonymous_authentication_config
2991
+ # @return [::Google::Cloud::Container::V1::AnonymousAuthenticationConfig]
2992
+ # Configuration for limiting anonymous access to all endpoints except the
2993
+ # health checks.
2994
+ # @!attribute [rw] gke_auto_upgrade_config
2995
+ # @return [::Google::Cloud::Container::V1::GkeAutoUpgradeConfig]
2996
+ # Configuration for GKE auto upgrade.
2422
2997
  class ClusterUpdate
2423
2998
  include ::Google::Protobuf::MessageExts
2424
2999
  extend ::Google::Protobuf::MessageExts::ClassMethods
@@ -2437,6 +3012,42 @@ module Google
2437
3012
  extend ::Google::Protobuf::MessageExts::ClassMethods
2438
3013
  end
2439
3014
 
3015
+ # AdditionalIPRangesConfig is the configuration for individual additional
3016
+ # subnetwork attached to the cluster
3017
+ # @!attribute [rw] subnetwork
3018
+ # @return [::String]
3019
+ # Name of the subnetwork. This can be the full path of the subnetwork or
3020
+ # just the name.
3021
+ # Example1: my-subnet
3022
+ # Example2: projects/gke-project/regions/us-central1/subnetworks/my-subnet
3023
+ # @!attribute [rw] pod_ipv4_range_names
3024
+ # @return [::Array<::String>]
3025
+ # List of secondary ranges names within this subnetwork that can be used for
3026
+ # pod IPs.
3027
+ # Example1: gke-pod-range1
3028
+ # Example2: gke-pod-range1,gke-pod-range2
3029
+ class AdditionalIPRangesConfig
3030
+ include ::Google::Protobuf::MessageExts
3031
+ extend ::Google::Protobuf::MessageExts::ClassMethods
3032
+ end
3033
+
3034
+ # DesiredAdditionalIPRangesConfig is a wrapper used for cluster update
3035
+ # operation and contains multiple AdditionalIPRangesConfigs.
3036
+ # @!attribute [rw] additional_ip_ranges_configs
3037
+ # @return [::Array<::Google::Cloud::Container::V1::AdditionalIPRangesConfig>]
3038
+ # List of additional IP ranges configs where each AdditionalIPRangesConfig
3039
+ # corresponds to one subnetwork's IP ranges
3040
+ class DesiredAdditionalIPRangesConfig
3041
+ include ::Google::Protobuf::MessageExts
3042
+ extend ::Google::Protobuf::MessageExts::ClassMethods
3043
+ end
3044
+
3045
+ # AutoIpamConfig contains all information related to Auto IPAM
3046
+ class AutoIpamConfig
3047
+ include ::Google::Protobuf::MessageExts
3048
+ extend ::Google::Protobuf::MessageExts::ClassMethods
3049
+ end
3050
+
2440
3051
  # RangeInfo contains the range name and the range utilization by this cluster.
2441
3052
  # @!attribute [r] range_name
2442
3053
  # @return [::String]
@@ -2467,8 +3078,9 @@ module Google
2467
3078
  # @deprecated This field is deprecated and may be removed in the next major version update.
2468
3079
  # @return [::String]
2469
3080
  # Output only. The name of the Google Compute Engine
2470
- # [zone](https://cloud.google.com/compute/docs/zones#available) in which the
2471
- # operation is taking place. This field is deprecated, use location instead.
3081
+ # [zone](https://cloud.google.com/compute/docs/zones#available)
3082
+ # in which the operation is taking place. This field is deprecated, use
3083
+ # location instead.
2472
3084
  # @!attribute [r] operation_type
2473
3085
  # @return [::Google::Cloud::Container::V1::Operation::Type]
2474
3086
  # Output only. The operation type.
@@ -2565,16 +3177,17 @@ module Google
2565
3177
  # The cluster is being created. The cluster should be assumed to be
2566
3178
  # unusable until the operation finishes.
2567
3179
  #
2568
- # In the event of the operation failing, the cluster will enter the [ERROR
2569
- # state][Cluster.Status.ERROR] and eventually be deleted.
3180
+ # In the event of the operation failing, the cluster will enter the
3181
+ # {::Google::Cloud::Container::V1::Cluster::Status::ERROR ERROR state} and eventually be
3182
+ # deleted.
2570
3183
  CREATE_CLUSTER = 1
2571
3184
 
2572
3185
  # The cluster is being deleted. The cluster should be assumed to be
2573
3186
  # unusable as soon as this operation starts.
2574
3187
  #
2575
- # In the event of the operation failing, the cluster will enter the [ERROR
2576
- # state][Cluster.Status.ERROR] and the deletion will be automatically
2577
- # retried until completed.
3188
+ # In the event of the operation failing, the cluster will enter the
3189
+ # {::Google::Cloud::Container::V1::Cluster::Status::ERROR ERROR state} and the deletion
3190
+ # will be automatically retried until completed.
2578
3191
  DELETE_CLUSTER = 2
2579
3192
 
2580
3193
  # The [cluster
@@ -2743,9 +3356,9 @@ module Google
2743
3356
  # @deprecated This field is deprecated and may be removed in the next major version update.
2744
3357
  # @return [::String]
2745
3358
  # Deprecated. The name of the Google Compute Engine
2746
- # [zone](https://cloud.google.com/compute/docs/zones#available) in which the
2747
- # cluster resides. This field has been deprecated and replaced by the parent
2748
- # field.
3359
+ # [zone](https://cloud.google.com/compute/docs/zones#available)
3360
+ # in which the cluster resides. This field has been deprecated and replaced
3361
+ # by the parent field.
2749
3362
  # @!attribute [rw] cluster
2750
3363
  # @return [::Google::Cloud::Container::V1::Cluster]
2751
3364
  # Required. A [cluster
@@ -2770,9 +3383,9 @@ module Google
2770
3383
  # @deprecated This field is deprecated and may be removed in the next major version update.
2771
3384
  # @return [::String]
2772
3385
  # Deprecated. The name of the Google Compute Engine
2773
- # [zone](https://cloud.google.com/compute/docs/zones#available) in which the
2774
- # cluster resides. This field has been deprecated and replaced by the name
2775
- # field.
3386
+ # [zone](https://cloud.google.com/compute/docs/zones#available)
3387
+ # in which the cluster resides. This field has been deprecated and replaced
3388
+ # by the name field.
2776
3389
  # @!attribute [rw] cluster_id
2777
3390
  # @deprecated This field is deprecated and may be removed in the next major version update.
2778
3391
  # @return [::String]
@@ -2798,9 +3411,9 @@ module Google
2798
3411
  # @deprecated This field is deprecated and may be removed in the next major version update.
2799
3412
  # @return [::String]
2800
3413
  # Deprecated. The name of the Google Compute Engine
2801
- # [zone](https://cloud.google.com/compute/docs/zones#available) in which the
2802
- # cluster resides. This field has been deprecated and replaced by the name
2803
- # field.
3414
+ # [zone](https://cloud.google.com/compute/docs/zones#available)
3415
+ # in which the cluster resides. This field has been deprecated and replaced
3416
+ # by the name field.
2804
3417
  # @!attribute [rw] cluster_id
2805
3418
  # @deprecated This field is deprecated and may be removed in the next major version update.
2806
3419
  # @return [::String]
@@ -2829,9 +3442,9 @@ module Google
2829
3442
  # @deprecated This field is deprecated and may be removed in the next major version update.
2830
3443
  # @return [::String]
2831
3444
  # Deprecated. The name of the Google Compute Engine
2832
- # [zone](https://cloud.google.com/compute/docs/zones#available) in which the
2833
- # cluster resides. This field has been deprecated and replaced by the name
2834
- # field.
3445
+ # [zone](https://cloud.google.com/compute/docs/zones#available)
3446
+ # in which the cluster resides. This field has been deprecated and replaced
3447
+ # by the name field.
2835
3448
  # @!attribute [rw] cluster_id
2836
3449
  # @deprecated This field is deprecated and may be removed in the next major version update.
2837
3450
  # @return [::String]
@@ -2858,8 +3471,8 @@ module Google
2858
3471
  # @!attribute [rw] image_type
2859
3472
  # @return [::String]
2860
3473
  # Required. The desired image type for the node pool. Please see
2861
- # https://cloud.google.com/kubernetes-engine/docs/concepts/node-images for
2862
- # available image types.
3474
+ # https://cloud.google.com/kubernetes-engine/docs/concepts/node-images
3475
+ # for available image types.
2863
3476
  # @!attribute [rw] name
2864
3477
  # @return [::String]
2865
3478
  # The name (project, location, cluster, node pool) of the node pool to
@@ -2868,10 +3481,10 @@ module Google
2868
3481
  # @!attribute [rw] locations
2869
3482
  # @return [::Array<::String>]
2870
3483
  # The desired list of Google Compute Engine
2871
- # [zones](https://cloud.google.com/compute/docs/zones#available) in which the
2872
- # node pool's nodes should be located. Changing the locations for a node pool
2873
- # will result in nodes being either created or removed from the node pool,
2874
- # depending on whether locations are being added or removed.
3484
+ # [zones](https://cloud.google.com/compute/docs/zones#available)
3485
+ # in which the node pool's nodes should be located. Changing the locations
3486
+ # for a node pool will result in nodes being either created or removed from
3487
+ # the node pool, depending on whether locations are being added or removed.
2875
3488
  # @!attribute [rw] workload_metadata_config
2876
3489
  # @return [::Google::Cloud::Container::V1::WorkloadMetadataConfig]
2877
3490
  # The desired workload metadata config for the node pool.
@@ -2933,14 +3546,15 @@ module Google
2933
3546
  # @!attribute [rw] accelerators
2934
3547
  # @return [::Array<::Google::Cloud::Container::V1::AcceleratorConfig>]
2935
3548
  # A list of hardware accelerators to be attached to each node.
2936
- # See https://cloud.google.com/compute/docs/gpus for more information about
2937
- # support for GPUs.
3549
+ # See
3550
+ # https://cloud.google.com/compute/docs/gpus
3551
+ # for more information about support for GPUs.
2938
3552
  # @!attribute [rw] machine_type
2939
3553
  # @return [::String]
2940
3554
  # Optional. The desired [Google Compute Engine machine
2941
- # type](https://cloud.google.com/compute/docs/machine-types) for nodes in the
2942
- # node pool. Initiates an upgrade operation that migrates the nodes in the
2943
- # node pool to the specified machine type.
3555
+ # type](https://cloud.google.com/compute/docs/machine-types)
3556
+ # for nodes in the node pool. Initiates an upgrade operation that migrates
3557
+ # the nodes in the node pool to the specified machine type.
2944
3558
  # @!attribute [rw] disk_type
2945
3559
  # @return [::String]
2946
3560
  # Optional. The desired disk type (e.g. 'pd-standard', 'pd-ssd' or
@@ -2970,6 +3584,18 @@ module Google
2970
3584
  # @return [::Array<::String>]
2971
3585
  # List of Storage Pools where boot disks are provisioned.
2972
3586
  # Existing Storage Pools will be replaced with storage-pools.
3587
+ # @!attribute [rw] max_run_duration
3588
+ # @return [::Google::Protobuf::Duration]
3589
+ # The maximum duration for the nodes to exist.
3590
+ # If unspecified, the nodes can exist indefinitely.
3591
+ # @!attribute [rw] flex_start
3592
+ # @return [::Boolean]
3593
+ # Flex Start flag for enabling Flex Start VM.
3594
+ # @!attribute [rw] boot_disk
3595
+ # @return [::Google::Cloud::Container::V1::BootDisk]
3596
+ # The desired boot disk config for nodes in the node pool.
3597
+ # Initiates an upgrade operation that migrates the nodes in the
3598
+ # node pool to the specified boot disk config.
2973
3599
  class UpdateNodePoolRequest
2974
3600
  include ::Google::Protobuf::MessageExts
2975
3601
  extend ::Google::Protobuf::MessageExts::ClassMethods
@@ -2986,9 +3612,9 @@ module Google
2986
3612
  # @deprecated This field is deprecated and may be removed in the next major version update.
2987
3613
  # @return [::String]
2988
3614
  # Deprecated. The name of the Google Compute Engine
2989
- # [zone](https://cloud.google.com/compute/docs/zones#available) in which the
2990
- # cluster resides. This field has been deprecated and replaced by the name
2991
- # field.
3615
+ # [zone](https://cloud.google.com/compute/docs/zones#available)
3616
+ # in which the cluster resides. This field has been deprecated and replaced
3617
+ # by the name field.
2992
3618
  # @!attribute [rw] cluster_id
2993
3619
  # @deprecated This field is deprecated and may be removed in the next major version update.
2994
3620
  # @return [::String]
@@ -3023,9 +3649,9 @@ module Google
3023
3649
  # @deprecated This field is deprecated and may be removed in the next major version update.
3024
3650
  # @return [::String]
3025
3651
  # Deprecated. The name of the Google Compute Engine
3026
- # [zone](https://cloud.google.com/compute/docs/zones#available) in which the
3027
- # cluster resides. This field has been deprecated and replaced by the name
3028
- # field.
3652
+ # [zone](https://cloud.google.com/compute/docs/zones#available)
3653
+ # in which the cluster resides. This field has been deprecated and replaced
3654
+ # by the name field.
3029
3655
  # @!attribute [rw] cluster_id
3030
3656
  # @deprecated This field is deprecated and may be removed in the next major version update.
3031
3657
  # @return [::String]
@@ -3064,9 +3690,9 @@ module Google
3064
3690
  # @deprecated This field is deprecated and may be removed in the next major version update.
3065
3691
  # @return [::String]
3066
3692
  # Deprecated. The name of the Google Compute Engine
3067
- # [zone](https://cloud.google.com/compute/docs/zones#available) in which the
3068
- # cluster resides. This field has been deprecated and replaced by the name
3069
- # field.
3693
+ # [zone](https://cloud.google.com/compute/docs/zones#available)
3694
+ # in which the cluster resides. This field has been deprecated and replaced
3695
+ # by the name field.
3070
3696
  # @!attribute [rw] cluster_id
3071
3697
  # @deprecated This field is deprecated and may be removed in the next major version update.
3072
3698
  # @return [::String]
@@ -3077,7 +3703,7 @@ module Google
3077
3703
  # Required. The monitoring service the cluster should use to write metrics.
3078
3704
  # Currently available options:
3079
3705
  #
3080
- # * "monitoring.googleapis.com/kubernetes" - The Cloud Monitoring
3706
+ # * `monitoring.googleapis.com/kubernetes` - The Cloud Monitoring
3081
3707
  # service with a Kubernetes-native resource model
3082
3708
  # * `monitoring.googleapis.com` - The legacy Cloud Monitoring service (no
3083
3709
  # longer available as of GKE 1.15).
@@ -3105,9 +3731,9 @@ module Google
3105
3731
  # @deprecated This field is deprecated and may be removed in the next major version update.
3106
3732
  # @return [::String]
3107
3733
  # Deprecated. The name of the Google Compute Engine
3108
- # [zone](https://cloud.google.com/compute/docs/zones#available) in which the
3109
- # cluster resides. This field has been deprecated and replaced by the name
3110
- # field.
3734
+ # [zone](https://cloud.google.com/compute/docs/zones#available)
3735
+ # in which the cluster resides. This field has been deprecated and replaced
3736
+ # by the name field.
3111
3737
  # @!attribute [rw] cluster_id
3112
3738
  # @deprecated This field is deprecated and may be removed in the next major version update.
3113
3739
  # @return [::String]
@@ -3137,9 +3763,9 @@ module Google
3137
3763
  # @deprecated This field is deprecated and may be removed in the next major version update.
3138
3764
  # @return [::String]
3139
3765
  # Deprecated. The name of the Google Compute Engine
3140
- # [zone](https://cloud.google.com/compute/docs/zones#available) in which the
3141
- # cluster resides. This field has been deprecated and replaced by the name
3142
- # field.
3766
+ # [zone](https://cloud.google.com/compute/docs/zones#available)
3767
+ # in which the cluster resides. This field has been deprecated and replaced
3768
+ # by the name field.
3143
3769
  # @!attribute [rw] cluster_id
3144
3770
  # @deprecated This field is deprecated and may be removed in the next major version update.
3145
3771
  # @return [::String]
@@ -3148,10 +3774,10 @@ module Google
3148
3774
  # @!attribute [rw] locations
3149
3775
  # @return [::Array<::String>]
3150
3776
  # Required. The desired list of Google Compute Engine
3151
- # [zones](https://cloud.google.com/compute/docs/zones#available) in which the
3152
- # cluster's nodes should be located. Changing the locations a cluster is in
3153
- # will result in nodes being either created or removed from the cluster,
3154
- # depending on whether locations are being added or removed.
3777
+ # [zones](https://cloud.google.com/compute/docs/zones#available)
3778
+ # in which the cluster's nodes should be located. Changing the locations a
3779
+ # cluster is in will result in nodes being either created or removed from the
3780
+ # cluster, depending on whether locations are being added or removed.
3155
3781
  #
3156
3782
  # This list must always include the cluster's primary zone.
3157
3783
  # @!attribute [rw] name
@@ -3174,9 +3800,9 @@ module Google
3174
3800
  # @deprecated This field is deprecated and may be removed in the next major version update.
3175
3801
  # @return [::String]
3176
3802
  # Deprecated. The name of the Google Compute Engine
3177
- # [zone](https://cloud.google.com/compute/docs/zones#available) in which the
3178
- # cluster resides. This field has been deprecated and replaced by the name
3179
- # field.
3803
+ # [zone](https://cloud.google.com/compute/docs/zones#available)
3804
+ # in which the cluster resides. This field has been deprecated and replaced
3805
+ # by the name field.
3180
3806
  # @!attribute [rw] cluster_id
3181
3807
  # @deprecated This field is deprecated and may be removed in the next major version update.
3182
3808
  # @return [::String]
@@ -3214,9 +3840,9 @@ module Google
3214
3840
  # @deprecated This field is deprecated and may be removed in the next major version update.
3215
3841
  # @return [::String]
3216
3842
  # Deprecated. The name of the Google Compute Engine
3217
- # [zone](https://cloud.google.com/compute/docs/zones#available) in which the
3218
- # cluster resides. This field has been deprecated and replaced by the name
3219
- # field.
3843
+ # [zone](https://cloud.google.com/compute/docs/zones#available)
3844
+ # in which the cluster resides. This field has been deprecated and replaced
3845
+ # by the name field.
3220
3846
  # @!attribute [rw] cluster_id
3221
3847
  # @deprecated This field is deprecated and may be removed in the next major version update.
3222
3848
  # @return [::String]
@@ -3266,9 +3892,9 @@ module Google
3266
3892
  # @deprecated This field is deprecated and may be removed in the next major version update.
3267
3893
  # @return [::String]
3268
3894
  # Deprecated. The name of the Google Compute Engine
3269
- # [zone](https://cloud.google.com/compute/docs/zones#available) in which the
3270
- # cluster resides. This field has been deprecated and replaced by the name
3271
- # field.
3895
+ # [zone](https://cloud.google.com/compute/docs/zones#available)
3896
+ # in which the cluster resides. This field has been deprecated and replaced
3897
+ # by the name field.
3272
3898
  # @!attribute [rw] cluster_id
3273
3899
  # @deprecated This field is deprecated and may be removed in the next major version update.
3274
3900
  # @return [::String]
@@ -3294,9 +3920,9 @@ module Google
3294
3920
  # @deprecated This field is deprecated and may be removed in the next major version update.
3295
3921
  # @return [::String]
3296
3922
  # Deprecated. The name of the Google Compute Engine
3297
- # [zone](https://cloud.google.com/compute/docs/zones#available) in which the
3298
- # cluster resides, or "-" for all zones. This field has been deprecated and
3299
- # replaced by the parent field.
3923
+ # [zone](https://cloud.google.com/compute/docs/zones#available)
3924
+ # in which the cluster resides, or "-" for all zones. This field has been
3925
+ # deprecated and replaced by the parent field.
3300
3926
  # @!attribute [rw] parent
3301
3927
  # @return [::String]
3302
3928
  # The parent (project and location) where the clusters will be listed.
@@ -3332,9 +3958,9 @@ module Google
3332
3958
  # @deprecated This field is deprecated and may be removed in the next major version update.
3333
3959
  # @return [::String]
3334
3960
  # Deprecated. The name of the Google Compute Engine
3335
- # [zone](https://cloud.google.com/compute/docs/zones#available) in which the
3336
- # cluster resides. This field has been deprecated and replaced by the name
3337
- # field.
3961
+ # [zone](https://cloud.google.com/compute/docs/zones#available)
3962
+ # in which the cluster resides. This field has been deprecated and replaced
3963
+ # by the name field.
3338
3964
  # @!attribute [rw] operation_id
3339
3965
  # @deprecated This field is deprecated and may be removed in the next major version update.
3340
3966
  # @return [::String]
@@ -3360,9 +3986,9 @@ module Google
3360
3986
  # @deprecated This field is deprecated and may be removed in the next major version update.
3361
3987
  # @return [::String]
3362
3988
  # Deprecated. The name of the Google Compute Engine
3363
- # [zone](https://cloud.google.com/compute/docs/zones#available) to return
3364
- # operations for, or `-` for all zones. This field has been deprecated and
3365
- # replaced by the parent field.
3989
+ # [zone](https://cloud.google.com/compute/docs/zones#available)
3990
+ # to return operations for, or `-` for all zones. This field has been
3991
+ # deprecated and replaced by the parent field.
3366
3992
  # @!attribute [rw] parent
3367
3993
  # @return [::String]
3368
3994
  # The parent (project and location) where the operations will be listed.
@@ -3384,9 +4010,9 @@ module Google
3384
4010
  # @deprecated This field is deprecated and may be removed in the next major version update.
3385
4011
  # @return [::String]
3386
4012
  # Deprecated. The name of the Google Compute Engine
3387
- # [zone](https://cloud.google.com/compute/docs/zones#available) in which the
3388
- # operation resides. This field has been deprecated and replaced by the name
3389
- # field.
4013
+ # [zone](https://cloud.google.com/compute/docs/zones#available)
4014
+ # in which the operation resides. This field has been deprecated and replaced
4015
+ # by the name field.
3390
4016
  # @!attribute [rw] operation_id
3391
4017
  # @deprecated This field is deprecated and may be removed in the next major version update.
3392
4018
  # @return [::String]
@@ -3425,9 +4051,9 @@ module Google
3425
4051
  # @deprecated This field is deprecated and may be removed in the next major version update.
3426
4052
  # @return [::String]
3427
4053
  # Deprecated. The name of the Google Compute Engine
3428
- # [zone](https://cloud.google.com/compute/docs/zones#available) to return
3429
- # operations for. This field has been deprecated and replaced by the name
3430
- # field.
4054
+ # [zone](https://cloud.google.com/compute/docs/zones#available)
4055
+ # to return operations for. This field has been deprecated and replaced by
4056
+ # the name field.
3431
4057
  # @!attribute [rw] name
3432
4058
  # @return [::String]
3433
4059
  # The name (project and location) of the server config to get,
@@ -3490,9 +4116,9 @@ module Google
3490
4116
  # @deprecated This field is deprecated and may be removed in the next major version update.
3491
4117
  # @return [::String]
3492
4118
  # Deprecated. The name of the Google Compute Engine
3493
- # [zone](https://cloud.google.com/compute/docs/zones#available) in which the
3494
- # cluster resides. This field has been deprecated and replaced by the parent
3495
- # field.
4119
+ # [zone](https://cloud.google.com/compute/docs/zones#available)
4120
+ # in which the cluster resides. This field has been deprecated and replaced
4121
+ # by the parent field.
3496
4122
  # @!attribute [rw] cluster_id
3497
4123
  # @deprecated This field is deprecated and may be removed in the next major version update.
3498
4124
  # @return [::String]
@@ -3522,9 +4148,9 @@ module Google
3522
4148
  # @deprecated This field is deprecated and may be removed in the next major version update.
3523
4149
  # @return [::String]
3524
4150
  # Deprecated. The name of the Google Compute Engine
3525
- # [zone](https://cloud.google.com/compute/docs/zones#available) in which the
3526
- # cluster resides. This field has been deprecated and replaced by the name
3527
- # field.
4151
+ # [zone](https://cloud.google.com/compute/docs/zones#available)
4152
+ # in which the cluster resides. This field has been deprecated and replaced
4153
+ # by the name field.
3528
4154
  # @!attribute [rw] cluster_id
3529
4155
  # @deprecated This field is deprecated and may be removed in the next major version update.
3530
4156
  # @return [::String]
@@ -3556,9 +4182,9 @@ module Google
3556
4182
  # @deprecated This field is deprecated and may be removed in the next major version update.
3557
4183
  # @return [::String]
3558
4184
  # Deprecated. The name of the Google Compute Engine
3559
- # [zone](https://cloud.google.com/compute/docs/zones#available) in which the
3560
- # cluster resides. This field has been deprecated and replaced by the parent
3561
- # field.
4185
+ # [zone](https://cloud.google.com/compute/docs/zones#available)
4186
+ # in which the cluster resides. This field has been deprecated and replaced
4187
+ # by the parent field.
3562
4188
  # @!attribute [rw] cluster_id
3563
4189
  # @deprecated This field is deprecated and may be removed in the next major version update.
3564
4190
  # @return [::String]
@@ -3584,9 +4210,9 @@ module Google
3584
4210
  # @deprecated This field is deprecated and may be removed in the next major version update.
3585
4211
  # @return [::String]
3586
4212
  # Deprecated. The name of the Google Compute Engine
3587
- # [zone](https://cloud.google.com/compute/docs/zones#available) in which the
3588
- # cluster resides. This field has been deprecated and replaced by the name
3589
- # field.
4213
+ # [zone](https://cloud.google.com/compute/docs/zones#available)
4214
+ # in which the cluster resides. This field has been deprecated and replaced
4215
+ # by the name field.
3590
4216
  # @!attribute [rw] cluster_id
3591
4217
  # @deprecated This field is deprecated and may be removed in the next major version update.
3592
4218
  # @return [::String]
@@ -3655,14 +4281,15 @@ module Google
3655
4281
  # @!attribute [rw] initial_node_count
3656
4282
  # @return [::Integer]
3657
4283
  # The initial node count for the pool. You must ensure that your
3658
- # Compute Engine [resource quota](https://cloud.google.com/compute/quotas)
4284
+ # Compute Engine [resource
4285
+ # quota](https://cloud.google.com/compute/quotas)
3659
4286
  # is sufficient for this number of instances. You must also have available
3660
4287
  # firewall and routes quota.
3661
4288
  # @!attribute [rw] locations
3662
4289
  # @return [::Array<::String>]
3663
4290
  # The list of Google Compute Engine
3664
- # [zones](https://cloud.google.com/compute/docs/zones#available) in which the
3665
- # NodePool's nodes should be located.
4291
+ # [zones](https://cloud.google.com/compute/docs/zones#available)
4292
+ # in which the NodePool's nodes should be located.
3666
4293
  #
3667
4294
  # If this value is unspecified during node pool creation, the
3668
4295
  # [Cluster.Locations](https://cloud.google.com/kubernetes-engine/docs/reference/rest/v1/projects.locations.clusters#Cluster.FIELDS.locations)
@@ -4157,9 +4784,9 @@ module Google
4157
4784
  # @deprecated This field is deprecated and may be removed in the next major version update.
4158
4785
  # @return [::String]
4159
4786
  # Deprecated. The name of the Google Compute Engine
4160
- # [zone](https://cloud.google.com/compute/docs/zones#available) in which the
4161
- # cluster resides. This field has been deprecated and replaced by the name
4162
- # field.
4787
+ # [zone](https://cloud.google.com/compute/docs/zones#available)
4788
+ # in which the cluster resides. This field has been deprecated and replaced
4789
+ # by the name field.
4163
4790
  # @!attribute [rw] cluster_id
4164
4791
  # @deprecated This field is deprecated and may be removed in the next major version update.
4165
4792
  # @return [::String]
@@ -4194,9 +4821,9 @@ module Google
4194
4821
  # @deprecated This field is deprecated and may be removed in the next major version update.
4195
4822
  # @return [::String]
4196
4823
  # Deprecated. The name of the Google Compute Engine
4197
- # [zone](https://cloud.google.com/compute/docs/zones#available) in which the
4198
- # cluster resides. This field has been deprecated and replaced by the name
4199
- # field.
4824
+ # [zone](https://cloud.google.com/compute/docs/zones#available)
4825
+ # in which the cluster resides. This field has been deprecated and replaced
4826
+ # by the name field.
4200
4827
  # @!attribute [rw] cluster_id
4201
4828
  # @deprecated This field is deprecated and may be removed in the next major version update.
4202
4829
  # @return [::String]
@@ -4233,8 +4860,8 @@ module Google
4233
4860
  end
4234
4861
 
4235
4862
  # RollbackNodePoolUpgradeRequest rollbacks the previously Aborted or Failed
4236
- # NodePool upgrade. This will be an no-op if the last upgrade successfully
4237
- # completed.
4863
+ # NodePool upgrade. This will be an no-op if the last upgrade successfully
4864
+ # completed.
4238
4865
  # @!attribute [rw] project_id
4239
4866
  # @deprecated This field is deprecated and may be removed in the next major version update.
4240
4867
  # @return [::String]
@@ -4245,9 +4872,9 @@ module Google
4245
4872
  # @deprecated This field is deprecated and may be removed in the next major version update.
4246
4873
  # @return [::String]
4247
4874
  # Deprecated. The name of the Google Compute Engine
4248
- # [zone](https://cloud.google.com/compute/docs/zones#available) in which the
4249
- # cluster resides. This field has been deprecated and replaced by the name
4250
- # field.
4875
+ # [zone](https://cloud.google.com/compute/docs/zones#available)
4876
+ # in which the cluster resides. This field has been deprecated and replaced
4877
+ # by the name field.
4251
4878
  # @!attribute [rw] cluster_id
4252
4879
  # @deprecated This field is deprecated and may be removed in the next major version update.
4253
4880
  # @return [::String]
@@ -4302,8 +4929,11 @@ module Google
4302
4929
  # @!attribute [rw] autoprovisioning_locations
4303
4930
  # @return [::Array<::String>]
4304
4931
  # The list of Google Compute Engine
4305
- # [zones](https://cloud.google.com/compute/docs/zones#available) in which the
4306
- # NodePool's nodes can be created by NAP.
4932
+ # [zones](https://cloud.google.com/compute/docs/zones#available)
4933
+ # in which the NodePool's nodes can be created by NAP.
4934
+ # @!attribute [rw] default_compute_class_config
4935
+ # @return [::Google::Cloud::Container::V1::DefaultComputeClassConfig]
4936
+ # Default compute class is a configuration for default compute class.
4307
4937
  class ClusterAutoscaling
4308
4938
  include ::Google::Protobuf::MessageExts
4309
4939
  extend ::Google::Protobuf::MessageExts::ClassMethods
@@ -4375,11 +5005,11 @@ module Google
4375
5005
  # @!attribute [rw] image_type
4376
5006
  # @return [::String]
4377
5007
  # The image type to use for NAP created node. Please see
4378
- # https://cloud.google.com/kubernetes-engine/docs/concepts/node-images for
4379
- # available image types.
5008
+ # https://cloud.google.com/kubernetes-engine/docs/concepts/node-images
5009
+ # for available image types.
4380
5010
  # @!attribute [rw] insecure_kubelet_readonly_port_enabled
4381
5011
  # @return [::Boolean]
4382
- # Enable or disable Kubelet read only port.
5012
+ # DEPRECATED. Use NodePoolAutoConfig.NodeKubeletConfig instead.
4383
5013
  class AutoprovisioningNodePoolDefaults
4384
5014
  include ::Google::Protobuf::MessageExts
4385
5015
  extend ::Google::Protobuf::MessageExts::ClassMethods
@@ -4401,6 +5031,16 @@ module Google
4401
5031
  extend ::Google::Protobuf::MessageExts::ClassMethods
4402
5032
  end
4403
5033
 
5034
+ # DefaultComputeClassConfig defines default compute class
5035
+ # configuration.
5036
+ # @!attribute [rw] enabled
5037
+ # @return [::Boolean]
5038
+ # Enables default compute class.
5039
+ class DefaultComputeClassConfig
5040
+ include ::Google::Protobuf::MessageExts
5041
+ extend ::Google::Protobuf::MessageExts::ClassMethods
5042
+ end
5043
+
4404
5044
  # NodePoolAutoscaling contains information required by cluster autoscaler to
4405
5045
  # adjust the size of the node pool to the current cluster usage.
4406
5046
  # @!attribute [rw] enabled
@@ -4464,9 +5104,9 @@ module Google
4464
5104
  # @deprecated This field is deprecated and may be removed in the next major version update.
4465
5105
  # @return [::String]
4466
5106
  # Deprecated. The name of the Google Compute Engine
4467
- # [zone](https://cloud.google.com/compute/docs/zones#available) in which the
4468
- # cluster resides. This field has been deprecated and replaced by the name
4469
- # field.
5107
+ # [zone](https://cloud.google.com/compute/docs/zones#available)
5108
+ # in which the cluster resides. This field has been deprecated and replaced
5109
+ # by the name field.
4470
5110
  # @!attribute [rw] cluster_id
4471
5111
  # @deprecated This field is deprecated and may be removed in the next major version update.
4472
5112
  # @return [::String]
@@ -4513,9 +5153,9 @@ module Google
4513
5153
  # @deprecated This field is deprecated and may be removed in the next major version update.
4514
5154
  # @return [::String]
4515
5155
  # Deprecated. The name of the Google Compute Engine
4516
- # [zone](https://cloud.google.com/compute/docs/zones#available) in which the
4517
- # cluster resides. This field has been deprecated and replaced by the name
4518
- # field.
5156
+ # [zone](https://cloud.google.com/compute/docs/zones#available)
5157
+ # in which the cluster resides. This field has been deprecated and replaced
5158
+ # by the name field.
4519
5159
  # @!attribute [rw] cluster_id
4520
5160
  # @deprecated This field is deprecated and may be removed in the next major version update.
4521
5161
  # @return [::String]
@@ -4545,9 +5185,9 @@ module Google
4545
5185
  # @deprecated This field is deprecated and may be removed in the next major version update.
4546
5186
  # @return [::String]
4547
5187
  # Deprecated. The name of the Google Compute Engine
4548
- # [zone](https://cloud.google.com/compute/docs/zones#available) in which the
4549
- # cluster resides. This field has been deprecated and replaced by the name
4550
- # field.
5188
+ # [zone](https://cloud.google.com/compute/docs/zones#available)
5189
+ # in which the cluster resides. This field has been deprecated and replaced
5190
+ # by the name field.
4551
5191
  # @!attribute [rw] cluster_id
4552
5192
  # @deprecated This field is deprecated and may be removed in the next major version update.
4553
5193
  # @return [::String]
@@ -4576,9 +5216,9 @@ module Google
4576
5216
  # @deprecated This field is deprecated and may be removed in the next major version update.
4577
5217
  # @return [::String]
4578
5218
  # Deprecated. The name of the Google Compute Engine
4579
- # [zone](https://cloud.google.com/compute/docs/zones#available) in which the
4580
- # cluster resides. This field has been deprecated and replaced by the name
4581
- # field.
5219
+ # [zone](https://cloud.google.com/compute/docs/zones#available)
5220
+ # in which the cluster resides. This field has been deprecated and replaced
5221
+ # by the name field.
4582
5222
  # @!attribute [rw] cluster_id
4583
5223
  # @deprecated This field is deprecated and may be removed in the next major version update.
4584
5224
  # @return [::String]
@@ -4706,9 +5346,9 @@ module Google
4706
5346
  # @deprecated This field is deprecated and may be removed in the next major version update.
4707
5347
  # @return [::String]
4708
5348
  # Deprecated. The name of the Google Compute Engine
4709
- # [zone](https://cloud.google.com/compute/docs/zones#available) in which the
4710
- # cluster resides. This field has been deprecated and replaced by the name
4711
- # field.
5349
+ # [zone](https://cloud.google.com/compute/docs/zones#available)
5350
+ # in which the cluster resides. This field has been deprecated and replaced
5351
+ # by the name field.
4712
5352
  # @!attribute [rw] cluster_id
4713
5353
  # @deprecated This field is deprecated and may be removed in the next major version update.
4714
5354
  # @return [::String]
@@ -4734,8 +5374,8 @@ module Google
4734
5374
  # @!attribute [rw] zone
4735
5375
  # @return [::String]
4736
5376
  # Required. The name of the Google Compute Engine
4737
- # [zone](https://cloud.google.com/compute/docs/zones#available) in which the
4738
- # cluster resides.
5377
+ # [zone](https://cloud.google.com/compute/docs/zones#available)
5378
+ # in which the cluster resides.
4739
5379
  # @!attribute [rw] cluster_id
4740
5380
  # @return [::String]
4741
5381
  # Required. The name of the cluster to update.
@@ -4795,6 +5435,13 @@ module Google
4795
5435
 
4796
5436
  # Cluster CA is expiring soon.
4797
5437
  CA_EXPIRING = 9
5438
+
5439
+ # Node service account is missing permissions.
5440
+ NODE_SERVICE_ACCOUNT_MISSING_PERMISSIONS = 10
5441
+
5442
+ # Cloud KMS key version used for etcd level encryption has been destroyed.
5443
+ # This is a permanent error.
5444
+ CLOUD_KMS_KEY_DESTROYED = 11
4798
5445
  end
4799
5446
  end
4800
5447
 
@@ -4808,8 +5455,8 @@ module Google
4808
5455
  # @!attribute [r] subnetwork
4809
5456
  # @return [::String]
4810
5457
  # Output only. The relative name of the Google Compute Engine
4811
- # [subnetwork](https://cloud.google.com/compute/docs/vpc) to which the
4812
- # cluster is connected. Example:
5458
+ # [subnetwork](https://cloud.google.com/compute/docs/vpc)
5459
+ # to which the cluster is connected. Example:
4813
5460
  # projects/my-project/regions/us-central1/subnetworks/my-subnet
4814
5461
  # @!attribute [rw] enable_intra_node_visibility
4815
5462
  # @return [::Boolean]
@@ -4867,6 +5514,9 @@ module Google
4867
5514
  # and this field at the same time.
4868
5515
  # To update the default setting, use
4869
5516
  # {::Google::Cloud::Container::V1::ClusterUpdate#desired_default_enable_private_nodes ClusterUpdate.desired_default_enable_private_nodes}
5517
+ # @!attribute [rw] disable_l4_lb_firewall_reconciliation
5518
+ # @return [::Boolean]
5519
+ # Disable L4 load balancer VPC firewalls to enable firewall policies.
4870
5520
  class NetworkConfig
4871
5521
  include ::Google::Protobuf::MessageExts
4872
5522
  extend ::Google::Protobuf::MessageExts::ClassMethods
@@ -5010,7 +5660,7 @@ module Google
5010
5660
  extend ::Google::Protobuf::MessageExts::ClassMethods
5011
5661
  end
5012
5662
 
5013
- # GetJSONWebKeysResponse is a valid JSON Web Key Set as specififed in rfc 7517
5663
+ # GetJSONWebKeysResponse is a valid JSON Web Key Set as specified in rfc 7517
5014
5664
  # @!attribute [rw] keys
5015
5665
  # @return [::Array<::Google::Cloud::Container::V1::Jwk>]
5016
5666
  # The public component of the keys used by the cluster to sign token
@@ -5047,7 +5697,7 @@ module Google
5047
5697
  # The name of the resources which are subject to this issue.
5048
5698
  # @!attribute [rw] documentation_url
5049
5699
  # @return [::String]
5050
- # A URL to a public documnetation, which addresses resolving this issue.
5700
+ # A URL to a public documentation, which addresses resolving this issue.
5051
5701
  # @!attribute [rw] description
5052
5702
  # @return [::String]
5053
5703
  # The description of the issue.
@@ -5575,6 +6225,9 @@ module Google
5575
6225
 
5576
6226
  # Corresponds with SecurityBulletinEvent.
5577
6227
  SECURITY_BULLETIN_EVENT = 3
6228
+
6229
+ # Corresponds with UpgradeInfoEvent.
6230
+ UPGRADE_INFO_EVENT = 4
5578
6231
  end
5579
6232
  end
5580
6233
 
@@ -5583,9 +6236,27 @@ module Google
5583
6236
  # @!attribute [rw] enabled
5584
6237
  # @return [::Boolean]
5585
6238
  # Whether Confidential Nodes feature is enabled.
6239
+ # @!attribute [rw] confidential_instance_type
6240
+ # @return [::Google::Cloud::Container::V1::ConfidentialNodes::ConfidentialInstanceType]
6241
+ # Defines the type of technology used by the confidential node.
5586
6242
  class ConfidentialNodes
5587
6243
  include ::Google::Protobuf::MessageExts
5588
6244
  extend ::Google::Protobuf::MessageExts::ClassMethods
6245
+
6246
+ # The type of technology used by the confidential node.
6247
+ module ConfidentialInstanceType
6248
+ # No type specified. Do not use this value.
6249
+ CONFIDENTIAL_INSTANCE_TYPE_UNSPECIFIED = 0
6250
+
6251
+ # AMD Secure Encrypted Virtualization.
6252
+ SEV = 1
6253
+
6254
+ # AMD Secure Encrypted Virtualization - Secure Nested Paging.
6255
+ SEV_SNP = 2
6256
+
6257
+ # Intel Trust Domain eXtension.
6258
+ TDX = 3
6259
+ end
5589
6260
  end
5590
6261
 
5591
6262
  # UpgradeEvent is a notification sent to customers by the cluster server when
@@ -5641,9 +6312,18 @@ module Google
5641
6312
  # @!attribute [r] state
5642
6313
  # @return [::Google::Cloud::Container::V1::UpgradeInfoEvent::State]
5643
6314
  # Output only. The state of the upgrade.
6315
+ # @!attribute [rw] standard_support_end_time
6316
+ # @return [::Google::Protobuf::Timestamp]
6317
+ # The end of standard support timestamp.
6318
+ # @!attribute [rw] extended_support_end_time
6319
+ # @return [::Google::Protobuf::Timestamp]
6320
+ # The end of extended support timestamp.
5644
6321
  # @!attribute [rw] description
5645
6322
  # @return [::String]
5646
6323
  # A brief description of the event.
6324
+ # @!attribute [rw] event_type
6325
+ # @return [::Google::Cloud::Container::V1::UpgradeInfoEvent::EventType]
6326
+ # The type of the event.
5647
6327
  class UpgradeInfoEvent
5648
6328
  include ::Google::Protobuf::MessageExts
5649
6329
  extend ::Google::Protobuf::MessageExts::ClassMethods
@@ -5665,6 +6345,24 @@ module Google
5665
6345
  # CANCELED indicates the upgrade has canceled.
5666
6346
  CANCELED = 6
5667
6347
  end
6348
+
6349
+ # The type of the event.
6350
+ module EventType
6351
+ # EVENT_TYPE_UNSPECIFIED indicates the event type is unspecified.
6352
+ EVENT_TYPE_UNSPECIFIED = 0
6353
+
6354
+ # END_OF_SUPPORT indicates GKE version reaches end of support, check
6355
+ # standard_support_end_time and extended_support_end_time for more details.
6356
+ END_OF_SUPPORT = 1
6357
+
6358
+ # COS_MILESTONE_VERSION_UPDATE indicates that the COS node image will
6359
+ # update COS milestone version for new patch versions starting with
6360
+ # the one in the description.
6361
+ COS_MILESTONE_VERSION_UPDATE = 2
6362
+
6363
+ # UPGRADE_LIFECYCLE indicates the event is about the upgrade lifecycle.
6364
+ UPGRADE_LIFECYCLE = 3
6365
+ end
5668
6366
  end
5669
6367
 
5670
6368
  # UpgradeAvailableEvent is a notification sent to customers when a new
@@ -5728,6 +6426,9 @@ module Google
5728
6426
  # @return [::Boolean]
5729
6427
  # If this field is specified, it means there are manual steps that the user
5730
6428
  # must take to make their clusters safe.
6429
+ # @!attribute [rw] mitigated_versions
6430
+ # @return [::Array<::String>]
6431
+ # The GKE versions where this vulnerability is mitigated.
5731
6432
  class SecurityBulletinEvent
5732
6433
  include ::Google::Protobuf::MessageExts
5733
6434
  extend ::Google::Protobuf::MessageExts::ClassMethods
@@ -5739,17 +6440,20 @@ module Google
5739
6440
  # Enable Autopilot
5740
6441
  # @!attribute [rw] workload_policy_config
5741
6442
  # @return [::Google::Cloud::Container::V1::WorkloadPolicyConfig]
5742
- # Workload policy configuration for Autopilot.
6443
+ # WorkloadPolicyConfig is the configuration related to GCW workload policy
5743
6444
  class Autopilot
5744
6445
  include ::Google::Protobuf::MessageExts
5745
6446
  extend ::Google::Protobuf::MessageExts::ClassMethods
5746
6447
  end
5747
6448
 
5748
- # WorkloadPolicyConfig is the configuration of workload policy for autopilot
5749
- # clusters.
6449
+ # WorkloadPolicyConfig is the configuration related to GCW workload policy
5750
6450
  # @!attribute [rw] allow_net_admin
5751
6451
  # @return [::Boolean]
5752
6452
  # If true, workloads can use NET_ADMIN capability.
6453
+ # @!attribute [rw] autopilot_compatibility_auditing_enabled
6454
+ # @return [::Boolean]
6455
+ # If true, enables the GCW Auditor that audits workloads on
6456
+ # standard clusters.
5753
6457
  class WorkloadPolicyConfig
5754
6458
  include ::Google::Protobuf::MessageExts
5755
6459
  extend ::Google::Protobuf::MessageExts::ClassMethods
@@ -5797,6 +6501,9 @@ module Google
5797
6501
 
5798
6502
  # kcp connection logs
5799
6503
  KCP_CONNECTION = 8
6504
+
6505
+ # horizontal pod autoscaler decision logs
6506
+ KCP_HPA = 9
5800
6507
  end
5801
6508
  end
5802
6509
 
@@ -5948,6 +6655,9 @@ module Google
5948
6655
 
5949
6656
  # NVIDIA Data Center GPU Manager (DCGM)
5950
6657
  DCGM = 15
6658
+
6659
+ # JobSet
6660
+ JOBSET = 16
5951
6661
  end
5952
6662
  end
5953
6663
 
@@ -5956,11 +6666,60 @@ module Google
5956
6666
  # @!attribute [rw] enabled
5957
6667
  # @return [::Boolean]
5958
6668
  # Enable Managed Collection.
6669
+ # @!attribute [rw] auto_monitoring_config
6670
+ # @return [::Google::Cloud::Container::V1::AutoMonitoringConfig]
6671
+ # GKE Workload Auto-Monitoring Configuration.
5959
6672
  class ManagedPrometheusConfig
5960
6673
  include ::Google::Protobuf::MessageExts
5961
6674
  extend ::Google::Protobuf::MessageExts::ClassMethods
5962
6675
  end
5963
6676
 
6677
+ # AutoMonitoringConfig defines the configuration for GKE Workload
6678
+ # Auto-Monitoring.
6679
+ # @!attribute [rw] scope
6680
+ # @return [::Google::Cloud::Container::V1::AutoMonitoringConfig::Scope]
6681
+ # Scope for GKE Workload Auto-Monitoring.
6682
+ class AutoMonitoringConfig
6683
+ include ::Google::Protobuf::MessageExts
6684
+ extend ::Google::Protobuf::MessageExts::ClassMethods
6685
+
6686
+ # Scope for applications monitored by Auto-Monitoring
6687
+ module Scope
6688
+ # Not set.
6689
+ SCOPE_UNSPECIFIED = 0
6690
+
6691
+ # Auto-Monitoring is enabled for all supported applications.
6692
+ ALL = 1
6693
+
6694
+ # Disable Auto-Monitoring.
6695
+ NONE = 2
6696
+ end
6697
+ end
6698
+
6699
+ # PodAutoscaling is used for configuration of parameters
6700
+ # for workload autoscaling.
6701
+ # @!attribute [rw] hpa_profile
6702
+ # @return [::Google::Cloud::Container::V1::PodAutoscaling::HPAProfile]
6703
+ # Selected Horizontal Pod Autoscaling profile.
6704
+ class PodAutoscaling
6705
+ include ::Google::Protobuf::MessageExts
6706
+ extend ::Google::Protobuf::MessageExts::ClassMethods
6707
+
6708
+ # Possible types of Horizontal Pod Autoscaling profile.
6709
+ module HPAProfile
6710
+ # HPA_PROFILE_UNSPECIFIED is used when no custom HPA profile is set.
6711
+ HPA_PROFILE_UNSPECIFIED = 0
6712
+
6713
+ # Customers explicitly opt-out of HPA profiles.
6714
+ NONE = 1
6715
+
6716
+ # PERFORMANCE is used when customers opt-in to the performance HPA profile.
6717
+ # In this profile we support a higher number of HPAs per cluster and faster
6718
+ # metrics collection for workload autoscaling.
6719
+ PERFORMANCE = 2
6720
+ end
6721
+ end
6722
+
5964
6723
  # Fleet is the fleet configuration for the cluster.
5965
6724
  # @!attribute [rw] project
5966
6725
  # @return [::String]
@@ -6101,6 +6860,9 @@ module Google
6101
6860
  # ssds), 0 will be provisioned. See
6102
6861
  # https://cloud.google.com/compute/docs/disks/local-ssd#choose_number_local_ssds
6103
6862
  # for more info.
6863
+ # @!attribute [rw] data_cache_count
6864
+ # @return [::Integer]
6865
+ # Number of local SSDs to use for GKE Data Cache.
6104
6866
  class EphemeralStorageLocalSsdConfig
6105
6867
  include ::Google::Protobuf::MessageExts
6106
6868
  extend ::Google::Protobuf::MessageExts::ClassMethods
@@ -6165,6 +6927,25 @@ module Google
6165
6927
  extend ::Google::Protobuf::MessageExts::ClassMethods
6166
6928
  end
6167
6929
 
6930
+ # BootDisk specifies the boot disk configuration for nodepools.
6931
+ # @!attribute [rw] disk_type
6932
+ # @return [::String]
6933
+ # Disk type of the boot disk.
6934
+ # (i.e. Hyperdisk-Balanced, PD-Balanced, etc.)
6935
+ # @!attribute [rw] size_gb
6936
+ # @return [::Integer]
6937
+ # Disk size in GB. Replaces NodeConfig.disk_size_gb
6938
+ # @!attribute [rw] provisioned_iops
6939
+ # @return [::Integer]
6940
+ # For Hyperdisk-Balanced only, the provisioned IOPS config value.
6941
+ # @!attribute [rw] provisioned_throughput
6942
+ # @return [::Integer]
6943
+ # For Hyperdisk-Balanced only, the provisioned throughput config value.
6944
+ class BootDisk
6945
+ include ::Google::Protobuf::MessageExts
6946
+ extend ::Google::Protobuf::MessageExts::ClassMethods
6947
+ end
6948
+
6168
6949
  # SecondaryBootDisk represents a persistent disk attached to a node
6169
6950
  # with special configurations based on its mode.
6170
6951
  # @!attribute [rw] mode
@@ -6196,6 +6977,252 @@ module Google
6196
6977
  extend ::Google::Protobuf::MessageExts::ClassMethods
6197
6978
  end
6198
6979
 
6980
+ # FetchClusterUpgradeInfoRequest fetches the upgrade information of a cluster.
6981
+ # @!attribute [rw] name
6982
+ # @return [::String]
6983
+ # Required. The name (project, location, cluster) of the cluster to get.
6984
+ # Specified in the format `projects/*/locations/*/clusters/*` or
6985
+ # `projects/*/zones/*/clusters/*`.
6986
+ # @!attribute [rw] version
6987
+ # @return [::String]
6988
+ # API request version that initiates this operation.
6989
+ class FetchClusterUpgradeInfoRequest
6990
+ include ::Google::Protobuf::MessageExts
6991
+ extend ::Google::Protobuf::MessageExts::ClassMethods
6992
+ end
6993
+
6994
+ # ClusterUpgradeInfo contains the upgrade information of a cluster.
6995
+ # @!attribute [rw] minor_target_version
6996
+ # @return [::String]
6997
+ # minor_target_version indicates the target version for minor upgrade.
6998
+ # @!attribute [rw] patch_target_version
6999
+ # @return [::String]
7000
+ # patch_target_version indicates the target version for patch upgrade.
7001
+ # @!attribute [rw] auto_upgrade_status
7002
+ # @return [::Array<::Google::Cloud::Container::V1::ClusterUpgradeInfo::AutoUpgradeStatus>]
7003
+ # The auto upgrade status.
7004
+ # @!attribute [rw] paused_reason
7005
+ # @return [::Array<::Google::Cloud::Container::V1::ClusterUpgradeInfo::AutoUpgradePausedReason>]
7006
+ # The auto upgrade paused reason.
7007
+ # @!attribute [rw] upgrade_details
7008
+ # @return [::Array<::Google::Cloud::Container::V1::UpgradeDetails>]
7009
+ # The list of past auto upgrades.
7010
+ # @!attribute [rw] end_of_standard_support_timestamp
7011
+ # @return [::String]
7012
+ # The cluster's current minor version's end of standard support timestamp.
7013
+ # @!attribute [rw] end_of_extended_support_timestamp
7014
+ # @return [::String]
7015
+ # The cluster's current minor version's end of extended support timestamp.
7016
+ class ClusterUpgradeInfo
7017
+ include ::Google::Protobuf::MessageExts
7018
+ extend ::Google::Protobuf::MessageExts::ClassMethods
7019
+
7020
+ # AutoUpgradeStatus indicates the status of auto upgrade.
7021
+ module AutoUpgradeStatus
7022
+ # UNKNOWN indicates an unknown status.
7023
+ UNKNOWN = 0
7024
+
7025
+ # ACTIVE indicates an active status.
7026
+ ACTIVE = 1
7027
+
7028
+ # MINOR_UPGRADE_PAUSED indicates the minor version upgrade is
7029
+ # paused.
7030
+ MINOR_UPGRADE_PAUSED = 4
7031
+
7032
+ # UPGRADE_PAUSED indicates the upgrade is paused.
7033
+ UPGRADE_PAUSED = 5
7034
+ end
7035
+
7036
+ # AutoUpgradePausedReason indicates the reason for auto upgrade paused
7037
+ # status.
7038
+ module AutoUpgradePausedReason
7039
+ # AUTO_UPGRADE_PAUSED_REASON_UNSPECIFIED indicates an unspecified reason.
7040
+ AUTO_UPGRADE_PAUSED_REASON_UNSPECIFIED = 0
7041
+
7042
+ # MAINTENANCE_WINDOW indicates the cluster is outside customer maintenance
7043
+ # window.
7044
+ MAINTENANCE_WINDOW = 1
7045
+
7046
+ # MAINTENANCE_EXCLUSION_NO_UPGRADES indicates the cluster is in a
7047
+ # maintenance exclusion with scope NO_UPGRADES.
7048
+ MAINTENANCE_EXCLUSION_NO_UPGRADES = 5
7049
+
7050
+ # MAINTENANCE_EXCLUSION_NO_MINOR_UPGRADES indicates the cluster is in a
7051
+ # maintenance exclusion with scope NO_MINOR_UPGRADES.
7052
+ MAINTENANCE_EXCLUSION_NO_MINOR_UPGRADES = 6
7053
+
7054
+ # CLUSTER_DISRUPTION_BUDGET indicates the cluster is outside the cluster
7055
+ # disruption budget.
7056
+ CLUSTER_DISRUPTION_BUDGET = 4
7057
+
7058
+ # CLUSTER_DISRUPTION_BUDGET_MINOR_UPGRADE indicates the cluster is outside
7059
+ # the cluster disruption budget for minor version upgrade.
7060
+ CLUSTER_DISRUPTION_BUDGET_MINOR_UPGRADE = 7
7061
+
7062
+ # SYSTEM_CONFIG indicates the cluster upgrade is paused by system config.
7063
+ SYSTEM_CONFIG = 8
7064
+ end
7065
+ end
7066
+
7067
+ # UpgradeDetails contains detailed information of each individual upgrade
7068
+ # operation.
7069
+ # @!attribute [r] state
7070
+ # @return [::Google::Cloud::Container::V1::UpgradeDetails::State]
7071
+ # Output only. The state of the upgrade.
7072
+ # @!attribute [rw] start_time
7073
+ # @return [::Google::Protobuf::Timestamp]
7074
+ # The start timestamp of the upgrade.
7075
+ # @!attribute [rw] end_time
7076
+ # @return [::Google::Protobuf::Timestamp]
7077
+ # The end timestamp of the upgrade.
7078
+ # @!attribute [rw] initial_version
7079
+ # @return [::String]
7080
+ # The version before the upgrade.
7081
+ # @!attribute [rw] target_version
7082
+ # @return [::String]
7083
+ # The version after the upgrade.
7084
+ # @!attribute [rw] start_type
7085
+ # @return [::Google::Cloud::Container::V1::UpgradeDetails::StartType]
7086
+ # The start type of the upgrade.
7087
+ class UpgradeDetails
7088
+ include ::Google::Protobuf::MessageExts
7089
+ extend ::Google::Protobuf::MessageExts::ClassMethods
7090
+
7091
+ # State indicates the state of the upgrade.
7092
+ module State
7093
+ # Upgrade state is unknown.
7094
+ UNKNOWN = 0
7095
+
7096
+ # Upgrade has failed with an error.
7097
+ FAILED = 1
7098
+
7099
+ # Upgrade has succeeded.
7100
+ SUCCEEDED = 2
7101
+
7102
+ # Upgrade has been canceled.
7103
+ CANCELED = 3
7104
+
7105
+ # Upgrade is running.
7106
+ RUNNING = 4
7107
+ end
7108
+
7109
+ # StartType indicates the type of starting the upgrade.
7110
+ module StartType
7111
+ # Upgrade start type is unspecified.
7112
+ START_TYPE_UNSPECIFIED = 0
7113
+
7114
+ # Upgrade started automatically.
7115
+ AUTOMATIC = 1
7116
+
7117
+ # Upgrade started manually.
7118
+ MANUAL = 2
7119
+ end
7120
+ end
7121
+
7122
+ # FetchNodePoolUpgradeInfoRequest fetches the upgrade information of a
7123
+ # nodepool.
7124
+ # @!attribute [rw] name
7125
+ # @return [::String]
7126
+ # Required. The name (project, location, cluster, nodepool) of the nodepool
7127
+ # to get. Specified in the format
7128
+ # `projects/*/locations/*/clusters/*/nodePools/*` or
7129
+ # `projects/*/zones/*/clusters/*/nodePools/*`.
7130
+ # @!attribute [rw] version
7131
+ # @return [::String]
7132
+ # API request version that initiates this operation.
7133
+ class FetchNodePoolUpgradeInfoRequest
7134
+ include ::Google::Protobuf::MessageExts
7135
+ extend ::Google::Protobuf::MessageExts::ClassMethods
7136
+ end
7137
+
7138
+ # NodePoolUpgradeInfo contains the upgrade information of a nodepool.
7139
+ # @!attribute [rw] minor_target_version
7140
+ # @return [::String]
7141
+ # minor_target_version indicates the target version for minor upgrade.
7142
+ # @!attribute [rw] patch_target_version
7143
+ # @return [::String]
7144
+ # patch_target_version indicates the target version for patch upgrade.
7145
+ # @!attribute [rw] auto_upgrade_status
7146
+ # @return [::Array<::Google::Cloud::Container::V1::NodePoolUpgradeInfo::AutoUpgradeStatus>]
7147
+ # The auto upgrade status.
7148
+ # @!attribute [rw] paused_reason
7149
+ # @return [::Array<::Google::Cloud::Container::V1::NodePoolUpgradeInfo::AutoUpgradePausedReason>]
7150
+ # The auto upgrade paused reason.
7151
+ # @!attribute [rw] upgrade_details
7152
+ # @return [::Array<::Google::Cloud::Container::V1::UpgradeDetails>]
7153
+ # The list of past auto upgrades.
7154
+ # @!attribute [rw] end_of_standard_support_timestamp
7155
+ # @return [::String]
7156
+ # The nodepool's current minor version's end of standard support timestamp.
7157
+ # @!attribute [rw] end_of_extended_support_timestamp
7158
+ # @return [::String]
7159
+ # The nodepool's current minor version's end of extended support timestamp.
7160
+ class NodePoolUpgradeInfo
7161
+ include ::Google::Protobuf::MessageExts
7162
+ extend ::Google::Protobuf::MessageExts::ClassMethods
7163
+
7164
+ # AutoUpgradeStatus indicates the status of auto upgrade.
7165
+ module AutoUpgradeStatus
7166
+ # UNKNOWN indicates an unknown status.
7167
+ UNKNOWN = 0
7168
+
7169
+ # ACTIVE indicates an active status.
7170
+ ACTIVE = 1
7171
+
7172
+ # MINOR_UPGRADE_PAUSED indicates the minor version upgrade is
7173
+ # paused.
7174
+ MINOR_UPGRADE_PAUSED = 2
7175
+
7176
+ # UPGRADE_PAUSED indicates the upgrade is paused.
7177
+ UPGRADE_PAUSED = 3
7178
+ end
7179
+
7180
+ # AutoUpgradePausedReason indicates the reason for auto upgrade paused
7181
+ # status.
7182
+ module AutoUpgradePausedReason
7183
+ # AUTO_UPGRADE_PAUSED_REASON_UNSPECIFIED indicates an unspecified reason.
7184
+ AUTO_UPGRADE_PAUSED_REASON_UNSPECIFIED = 0
7185
+
7186
+ # MAINTENANCE_WINDOW indicates the cluster is outside customer maintenance
7187
+ # window.
7188
+ MAINTENANCE_WINDOW = 1
7189
+
7190
+ # MAINTENANCE_EXCLUSION_NO_UPGRADES indicates the cluster is in a
7191
+ # maintenance exclusion with scope NO_UPGRADES.
7192
+ MAINTENANCE_EXCLUSION_NO_UPGRADES = 2
7193
+
7194
+ # MAINTENANCE_EXCLUSION_NO_MINOR_UPGRADES indicates the cluster is in a
7195
+ # maintenance exclusion with scope NO_MINOR_UPGRADES.
7196
+ MAINTENANCE_EXCLUSION_NO_MINOR_UPGRADES = 3
7197
+
7198
+ # SYSTEM_CONFIG indicates the cluster upgrade is paused by system config.
7199
+ SYSTEM_CONFIG = 4
7200
+ end
7201
+ end
7202
+
7203
+ # GkeAutoUpgradeConfig is the configuration for GKE auto upgrades.
7204
+ # @!attribute [rw] patch_mode
7205
+ # @return [::Google::Cloud::Container::V1::GkeAutoUpgradeConfig::PatchMode]
7206
+ # PatchMode specifies how auto upgrade patch builds should be
7207
+ # selected.
7208
+ class GkeAutoUpgradeConfig
7209
+ include ::Google::Protobuf::MessageExts
7210
+ extend ::Google::Protobuf::MessageExts::ClassMethods
7211
+
7212
+ # PatchMode specifies how auto upgrade patch builds should be
7213
+ # selected.
7214
+ module PatchMode
7215
+ # PATCH_MODE_UNSPECIFIED defaults to using the upgrade target from the
7216
+ # channel's patch upgrade targets as the upgrade target for the
7217
+ # version.
7218
+ PATCH_MODE_UNSPECIFIED = 0
7219
+
7220
+ # ACCELERATED denotes that the latest patch build in the channel should be
7221
+ # used as the upgrade target for the version.
7222
+ ACCELERATED = 1
7223
+ end
7224
+ end
7225
+
6199
7226
  # PrivateIPv6GoogleAccess controls whether and how the pods can communicate
6200
7227
  # with Google Services through gRPC over IPv6.
6201
7228
  module PrivateIPv6GoogleAccess