google-apis-container_v1beta1 0.43.0 → 0.80.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.
@@ -37,6 +37,12 @@ module Google
37
37
  # @return [String]
38
38
  attr_accessor :accelerator_type
39
39
 
40
+ # GPUDriverInstallationConfig specifies the version of GPU driver to be auto
41
+ # installed.
42
+ # Corresponds to the JSON property `gpuDriverInstallationConfig`
43
+ # @return [Google::Apis::ContainerV1beta1::GpuDriverInstallationConfig]
44
+ attr_accessor :gpu_driver_installation_config
45
+
40
46
  # Size of partitions to create on the GPU. Valid values are described in the
41
47
  # NVIDIA [mig user guide](https://docs.nvidia.com/datacenter/tesla/mig-user-
42
48
  # guide/#partitioning).
@@ -63,12 +69,105 @@ module Google
63
69
  def update!(**args)
64
70
  @accelerator_count = args[:accelerator_count] if args.key?(:accelerator_count)
65
71
  @accelerator_type = args[:accelerator_type] if args.key?(:accelerator_type)
72
+ @gpu_driver_installation_config = args[:gpu_driver_installation_config] if args.key?(:gpu_driver_installation_config)
66
73
  @gpu_partition_size = args[:gpu_partition_size] if args.key?(:gpu_partition_size)
67
74
  @gpu_sharing_config = args[:gpu_sharing_config] if args.key?(:gpu_sharing_config)
68
75
  @max_time_shared_clients_per_gpu = args[:max_time_shared_clients_per_gpu] if args.key?(:max_time_shared_clients_per_gpu)
69
76
  end
70
77
  end
71
78
 
79
+ # AdditionalNodeNetworkConfig is the configuration for additional node networks
80
+ # within the NodeNetworkConfig message
81
+ class AdditionalNodeNetworkConfig
82
+ include Google::Apis::Core::Hashable
83
+
84
+ # Name of the VPC where the additional interface belongs
85
+ # Corresponds to the JSON property `network`
86
+ # @return [String]
87
+ attr_accessor :network
88
+
89
+ # Name of the subnetwork where the additional interface belongs
90
+ # Corresponds to the JSON property `subnetwork`
91
+ # @return [String]
92
+ attr_accessor :subnetwork
93
+
94
+ def initialize(**args)
95
+ update!(**args)
96
+ end
97
+
98
+ # Update properties of this object
99
+ def update!(**args)
100
+ @network = args[:network] if args.key?(:network)
101
+ @subnetwork = args[:subnetwork] if args.key?(:subnetwork)
102
+ end
103
+ end
104
+
105
+ # AdditionalPodNetworkConfig is the configuration for additional pod networks
106
+ # within the NodeNetworkConfig message
107
+ class AdditionalPodNetworkConfig
108
+ include Google::Apis::Core::Hashable
109
+
110
+ # Constraints applied to pods.
111
+ # Corresponds to the JSON property `maxPodsPerNode`
112
+ # @return [Google::Apis::ContainerV1beta1::MaxPodsConstraint]
113
+ attr_accessor :max_pods_per_node
114
+
115
+ # The name of the network attachment for pods to communicate to; cannot be
116
+ # specified along with subnetwork or secondary_pod_range.
117
+ # Corresponds to the JSON property `networkAttachment`
118
+ # @return [String]
119
+ attr_accessor :network_attachment
120
+
121
+ # The name of the secondary range on the subnet which provides IP address for
122
+ # this pod range.
123
+ # Corresponds to the JSON property `secondaryPodRange`
124
+ # @return [String]
125
+ attr_accessor :secondary_pod_range
126
+
127
+ # Name of the subnetwork where the additional pod network belongs.
128
+ # Corresponds to the JSON property `subnetwork`
129
+ # @return [String]
130
+ attr_accessor :subnetwork
131
+
132
+ def initialize(**args)
133
+ update!(**args)
134
+ end
135
+
136
+ # Update properties of this object
137
+ def update!(**args)
138
+ @max_pods_per_node = args[:max_pods_per_node] if args.key?(:max_pods_per_node)
139
+ @network_attachment = args[:network_attachment] if args.key?(:network_attachment)
140
+ @secondary_pod_range = args[:secondary_pod_range] if args.key?(:secondary_pod_range)
141
+ @subnetwork = args[:subnetwork] if args.key?(:subnetwork)
142
+ end
143
+ end
144
+
145
+ # AdditionalPodRangesConfig is the configuration for additional pod secondary
146
+ # ranges supporting the ClusterUpdate message.
147
+ class AdditionalPodRangesConfig
148
+ include Google::Apis::Core::Hashable
149
+
150
+ # Output only. Information for additional pod range.
151
+ # Corresponds to the JSON property `podRangeInfo`
152
+ # @return [Array<Google::Apis::ContainerV1beta1::RangeInfo>]
153
+ attr_accessor :pod_range_info
154
+
155
+ # Name for pod secondary ipv4 range which has the actual range defined ahead.
156
+ # Corresponds to the JSON property `podRangeNames`
157
+ # @return [Array<String>]
158
+ attr_accessor :pod_range_names
159
+
160
+ def initialize(**args)
161
+ update!(**args)
162
+ end
163
+
164
+ # Update properties of this object
165
+ def update!(**args)
166
+ @pod_range_info = args[:pod_range_info] if args.key?(:pod_range_info)
167
+ @pod_range_names = args[:pod_range_names] if args.key?(:pod_range_names)
168
+ end
169
+ end
170
+
72
171
  # Configuration for the addons that can be automatically spun up in the cluster,
73
172
  # enabling additional functionality.
74
173
  class AddonsConfig
@@ -99,6 +198,11 @@ module Google
99
198
  # @return [Google::Apis::ContainerV1beta1::GcpFilestoreCsiDriverConfig]
100
199
  attr_accessor :gcp_filestore_csi_driver_config
101
200
 
201
+ # Configuration for the Cloud Storage Fuse CSI driver.
202
+ # Corresponds to the JSON property `gcsFuseCsiDriverConfig`
203
+ # @return [Google::Apis::ContainerV1beta1::GcsFuseCsiDriverConfig]
204
+ attr_accessor :gcs_fuse_csi_driver_config
205
+
102
206
  # Configuration for the Backup for GKE Agent.
103
207
  # Corresponds to the JSON property `gkeBackupAgentConfig`
104
208
  # @return [Google::Apis::ContainerV1beta1::GkeBackupAgentConfig]
@@ -139,6 +243,21 @@ module Google
139
243
  # @return [Google::Apis::ContainerV1beta1::NetworkPolicyConfig]
140
244
  attr_accessor :network_policy_config
141
245
 
246
+ # Configuration for the Cloud Storage Parallelstore CSI driver.
247
+ # Corresponds to the JSON property `parallelstoreCsiDriverConfig`
248
+ # @return [Google::Apis::ContainerV1beta1::ParallelstoreCsiDriverConfig]
249
+ attr_accessor :parallelstore_csi_driver_config
250
+
251
+ # Configuration options for the Ray Operator add-on.
252
+ # Corresponds to the JSON property `rayOperatorConfig`
253
+ # @return [Google::Apis::ContainerV1beta1::RayOperatorConfig]
254
+ attr_accessor :ray_operator_config
255
+
256
+ # Configuration for the Stateful HA add-on.
257
+ # Corresponds to the JSON property `statefulHaConfig`
258
+ # @return [Google::Apis::ContainerV1beta1::StatefulHaConfig]
259
+ attr_accessor :stateful_ha_config
260
+
142
261
  def initialize(**args)
143
262
  update!(**args)
144
263
  end
@@ -150,6 +269,7 @@ module Google
150
269
  @dns_cache_config = args[:dns_cache_config] if args.key?(:dns_cache_config)
151
270
  @gce_persistent_disk_csi_driver_config = args[:gce_persistent_disk_csi_driver_config] if args.key?(:gce_persistent_disk_csi_driver_config)
152
271
  @gcp_filestore_csi_driver_config = args[:gcp_filestore_csi_driver_config] if args.key?(:gcp_filestore_csi_driver_config)
272
+ @gcs_fuse_csi_driver_config = args[:gcs_fuse_csi_driver_config] if args.key?(:gcs_fuse_csi_driver_config)
153
273
  @gke_backup_agent_config = args[:gke_backup_agent_config] if args.key?(:gke_backup_agent_config)
154
274
  @horizontal_pod_autoscaling = args[:horizontal_pod_autoscaling] if args.key?(:horizontal_pod_autoscaling)
155
275
  @http_load_balancing = args[:http_load_balancing] if args.key?(:http_load_balancing)
@@ -157,6 +277,43 @@ module Google
157
277
  @kalm_config = args[:kalm_config] if args.key?(:kalm_config)
158
278
  @kubernetes_dashboard = args[:kubernetes_dashboard] if args.key?(:kubernetes_dashboard)
159
279
  @network_policy_config = args[:network_policy_config] if args.key?(:network_policy_config)
280
+ @parallelstore_csi_driver_config = args[:parallelstore_csi_driver_config] if args.key?(:parallelstore_csi_driver_config)
281
+ @ray_operator_config = args[:ray_operator_config] if args.key?(:ray_operator_config)
282
+ @stateful_ha_config = args[:stateful_ha_config] if args.key?(:stateful_ha_config)
283
+ end
284
+ end
285
+
286
+ # AdvancedDatapathObservabilityConfig specifies configuration of observability
287
+ # features of advanced datapath.
288
+ class AdvancedDatapathObservabilityConfig
289
+ include Google::Apis::Core::Hashable
290
+
291
+ # Expose flow metrics on nodes
292
+ # Corresponds to the JSON property `enableMetrics`
293
+ # @return [Boolean]
294
+ attr_accessor :enable_metrics
295
+ alias_method :enable_metrics?, :enable_metrics
296
+
297
+ # Enable Relay component
298
+ # Corresponds to the JSON property `enableRelay`
299
+ # @return [Boolean]
300
+ attr_accessor :enable_relay
301
+ alias_method :enable_relay?, :enable_relay
302
+
303
+ # Method used to make Relay available
304
+ # Corresponds to the JSON property `relayMode`
305
+ # @return [String]
306
+ attr_accessor :relay_mode
307
+
308
+ def initialize(**args)
309
+ update!(**args)
310
+ end
311
+
312
+ # Update properties of this object
313
+ def update!(**args)
314
+ @enable_metrics = args[:enable_metrics] if args.key?(:enable_metrics)
315
+ @enable_relay = args[:enable_relay] if args.key?(:enable_relay)
316
+ @relay_mode = args[:relay_mode] if args.key?(:relay_mode)
160
317
  end
161
318
  end
162
319
 
@@ -164,6 +321,12 @@ module Google
164
321
  class AdvancedMachineFeatures
165
322
  include Google::Apis::Core::Hashable
166
323
 
324
+ # Whether or not to enable nested virtualization (defaults to false).
325
+ # Corresponds to the JSON property `enableNestedVirtualization`
326
+ # @return [Boolean]
327
+ attr_accessor :enable_nested_virtualization
328
+ alias_method :enable_nested_virtualization?, :enable_nested_virtualization
329
+
167
330
  # The number of threads per physical core. To disable simultaneous
168
331
  # multithreading (SMT) set this to 1. If unset, the maximum number of threads
169
332
  # supported per core by the underlying processor is assumed.
@@ -177,6 +340,7 @@ module Google
177
340
 
178
341
  # Update properties of this object
179
342
  def update!(**args)
343
+ @enable_nested_virtualization = args[:enable_nested_virtualization] if args.key?(:enable_nested_virtualization)
180
344
  @threads_per_core = args[:threads_per_core] if args.key?(:threads_per_core)
181
345
  end
182
346
  end
@@ -209,19 +373,39 @@ module Google
209
373
  end
210
374
  end
211
375
 
376
+ # AutoMonitoringConfig defines the configuration for GKE Workload Auto-
377
+ # Monitoring.
378
+ class AutoMonitoringConfig
379
+ include Google::Apis::Core::Hashable
380
+
381
+ # Scope for GKE Workload Auto-Monitoring.
382
+ # Corresponds to the JSON property `scope`
383
+ # @return [String]
384
+ attr_accessor :scope
385
+
386
+ def initialize(**args)
387
+ update!(**args)
388
+ end
389
+
390
+ # Update properties of this object
391
+ def update!(**args)
392
+ @scope = args[:scope] if args.key?(:scope)
393
+ end
394
+ end
395
+
212
396
  # AutoUpgradeOptions defines the set of options for the user to control how the
213
397
  # Auto Upgrades will proceed.
214
398
  class AutoUpgradeOptions
215
399
  include Google::Apis::Core::Hashable
216
400
 
217
- # [Output only] This field is set when upgrades are about to commence with the
401
+ # Output only. This field is set when upgrades are about to commence with the
218
402
  # approximate start time for the upgrades, in [RFC3339](https://www.ietf.org/rfc/
219
403
  # rfc3339.txt) text format.
220
404
  # Corresponds to the JSON property `autoUpgradeStartTime`
221
405
  # @return [String]
222
406
  attr_accessor :auto_upgrade_start_time
223
407
 
224
- # [Output only] This field is set when upgrades are about to commence with the
408
+ # Output only. This field is set when upgrades are about to commence with the
225
409
  # description of the upgrade.
226
410
  # Corresponds to the JSON property `description`
227
411
  # @return [String]
@@ -242,12 +426,94 @@ module Google
242
426
  class Autopilot
243
427
  include Google::Apis::Core::Hashable
244
428
 
429
+ # AutopilotConversionStatus represents conversion status.
430
+ # Corresponds to the JSON property `conversionStatus`
431
+ # @return [Google::Apis::ContainerV1beta1::AutopilotConversionStatus]
432
+ attr_accessor :conversion_status
433
+
245
434
  # Enable Autopilot
246
435
  # Corresponds to the JSON property `enabled`
247
436
  # @return [Boolean]
248
437
  attr_accessor :enabled
249
438
  alias_method :enabled?, :enabled
250
439
 
440
+ # WorkloadPolicyConfig is the configuration related to GCW workload policy
441
+ # Corresponds to the JSON property `workloadPolicyConfig`
442
+ # @return [Google::Apis::ContainerV1beta1::WorkloadPolicyConfig]
443
+ attr_accessor :workload_policy_config
444
+
445
+ def initialize(**args)
446
+ update!(**args)
447
+ end
448
+
449
+ # Update properties of this object
450
+ def update!(**args)
451
+ @conversion_status = args[:conversion_status] if args.key?(:conversion_status)
452
+ @enabled = args[:enabled] if args.key?(:enabled)
453
+ @workload_policy_config = args[:workload_policy_config] if args.key?(:workload_policy_config)
454
+ end
455
+ end
456
+
457
+ # AutopilotCompatibilityIssue contains information about a specific
458
+ # compatibility issue with Autopilot mode.
459
+ class AutopilotCompatibilityIssue
460
+ include Google::Apis::Core::Hashable
461
+
462
+ # The constraint type of the issue.
463
+ # Corresponds to the JSON property `constraintType`
464
+ # @return [String]
465
+ attr_accessor :constraint_type
466
+
467
+ # The description of the issue.
468
+ # Corresponds to the JSON property `description`
469
+ # @return [String]
470
+ attr_accessor :description
471
+
472
+ # A URL to a public documentation, which addresses resolving this issue.
473
+ # Corresponds to the JSON property `documentationUrl`
474
+ # @return [String]
475
+ attr_accessor :documentation_url
476
+
477
+ # The incompatibility type of this issue.
478
+ # Corresponds to the JSON property `incompatibilityType`
479
+ # @return [String]
480
+ attr_accessor :incompatibility_type
481
+
482
+ # The last time when this issue was observed.
483
+ # Corresponds to the JSON property `lastObservation`
484
+ # @return [String]
485
+ attr_accessor :last_observation
486
+
487
+ # The name of the resources which are subject to this issue.
488
+ # Corresponds to the JSON property `subjects`
489
+ # @return [Array<String>]
490
+ attr_accessor :subjects
491
+
492
+ def initialize(**args)
493
+ update!(**args)
494
+ end
495
+
496
+ # Update properties of this object
497
+ def update!(**args)
498
+ @constraint_type = args[:constraint_type] if args.key?(:constraint_type)
499
+ @description = args[:description] if args.key?(:description)
500
+ @documentation_url = args[:documentation_url] if args.key?(:documentation_url)
501
+ @incompatibility_type = args[:incompatibility_type] if args.key?(:incompatibility_type)
502
+ @last_observation = args[:last_observation] if args.key?(:last_observation)
503
+ @subjects = args[:subjects] if args.key?(:subjects)
504
+ end
505
+ end
506
+
507
+ # AutopilotConfig contains configuration of autopilot feature for this nodepool.
508
+ class AutopilotConfig
509
+ include Google::Apis::Core::Hashable
510
+
511
+ # Denotes that nodes belonging to this node pool are Autopilot nodes.
512
+ # Corresponds to the JSON property `enabled`
513
+ # @return [Boolean]
514
+ attr_accessor :enabled
515
+ alias_method :enabled?, :enabled
516
+
251
517
  def initialize(**args)
252
518
  update!(**args)
253
519
  end
@@ -258,6 +524,25 @@ module Google
258
524
  end
259
525
  end
260
526
 
527
+ # AutopilotConversionStatus represents conversion status.
528
+ class AutopilotConversionStatus
529
+ include Google::Apis::Core::Hashable
530
+
531
+ # Output only. The current state of the conversion.
532
+ # Corresponds to the JSON property `state`
533
+ # @return [String]
534
+ attr_accessor :state
535
+
536
+ def initialize(**args)
537
+ update!(**args)
538
+ end
539
+
540
+ # Update properties of this object
541
+ def update!(**args)
542
+ @state = args[:state] if args.key?(:state)
543
+ end
544
+ end
545
+
261
546
  # AutoprovisioningNodePoolDefaults contains defaults for a node pool created by
262
547
  # NAP.
263
548
  class AutoprovisioningNodePoolDefaults
@@ -284,11 +569,18 @@ module Google
284
569
  # @return [String]
285
570
  attr_accessor :disk_type
286
571
 
287
- # The image type to use for NAP created node.
572
+ # The image type to use for NAP created node. Please see https://cloud.google.
573
+ # com/kubernetes-engine/docs/concepts/node-images for available image types.
288
574
  # Corresponds to the JSON property `imageType`
289
575
  # @return [String]
290
576
  attr_accessor :image_type
291
577
 
578
+ # DEPRECATED. Use NodePoolAutoConfig.NodeKubeletConfig instead.
579
+ # Corresponds to the JSON property `insecureKubeletReadonlyPortEnabled`
580
+ # @return [Boolean]
581
+ attr_accessor :insecure_kubelet_readonly_port_enabled
582
+ alias_method :insecure_kubelet_readonly_port_enabled?, :insecure_kubelet_readonly_port_enabled
583
+
292
584
  # NodeManagement defines the set of node management services turned on for the
293
585
  # node pool.
294
586
  # Corresponds to the JSON property `management`
@@ -301,7 +593,7 @@ module Google
301
593
  # Haswell or minCpuPlatform: Intel Sandy Bridge. For more information, read [how
302
594
  # to specify min CPU platform](https://cloud.google.com/compute/docs/instances/
303
595
  # specify-min-cpu-platform). This field is deprecated, min_cpu_platform should
304
- # be specified using https://cloud.google.com/requested-min-cpu-platform label
596
+ # be specified using `cloud.google.com/requested-min-cpu-platform` label
305
597
  # selector on the pod. To unset the min cpu platform field pass "automatic" as
306
598
  # field value.
307
599
  # Corresponds to the JSON property `minCpuPlatform`
@@ -333,6 +625,20 @@ module Google
333
625
  # @return [Google::Apis::ContainerV1beta1::ShieldedInstanceConfig]
334
626
  attr_accessor :shielded_instance_config
335
627
 
628
+ # These upgrade settings control the level of parallelism and the level of
629
+ # disruption caused by an upgrade. maxUnavailable controls the number of nodes
630
+ # that can be simultaneously unavailable. maxSurge controls the number of
631
+ # additional nodes that can be added to the node pool temporarily for the time
632
+ # of the upgrade to increase the number of available nodes. (maxUnavailable +
633
+ # maxSurge) determines the level of parallelism (how many nodes are being
634
+ # upgraded at the same time). Note: upgrades inevitably introduce some
635
+ # disruption since workloads need to be moved from old nodes to new, upgraded
636
+ # ones. Even if maxUnavailable=0, this holds true. (Disruption stays within the
637
+ # limits of PodDisruptionBudget, if it is configured.) Consider a hypothetical
638
+ # node pool with 5 nodes having maxSurge=2, maxUnavailable=1. This means the
639
+ # upgrade process upgrades 3 nodes simultaneously. It creates 2 additional (
640
+ # upgraded) nodes, then it brings down 3 old (not yet upgraded) nodes at the
641
+ # same time. This ensures that there are always at least 4 nodes available.
336
642
  # These upgrade settings configure the upgrade strategy for the node pool. Use
337
643
  # strategy to switch between the strategies applied to the node pool. If the
338
644
  # strategy is SURGE, use max_surge and max_unavailable to control the level of
@@ -364,6 +670,7 @@ module Google
364
670
  @disk_size_gb = args[:disk_size_gb] if args.key?(:disk_size_gb)
365
671
  @disk_type = args[:disk_type] if args.key?(:disk_type)
366
672
  @image_type = args[:image_type] if args.key?(:image_type)
673
+ @insecure_kubelet_readonly_port_enabled = args[:insecure_kubelet_readonly_port_enabled] if args.key?(:insecure_kubelet_readonly_port_enabled)
367
674
  @management = args[:management] if args.key?(:management)
368
675
  @min_cpu_platform = args[:min_cpu_platform] if args.key?(:min_cpu_platform)
369
676
  @oauth_scopes = args[:oauth_scopes] if args.key?(:oauth_scopes)
@@ -373,6 +680,20 @@ module Google
373
680
  end
374
681
  end
375
682
 
683
+ # Autoscaled rollout policy uses cluster autoscaler during blue-green upgrades
684
+ # to scale both the green and blue pools.
685
+ class AutoscaledRolloutPolicy
686
+ include Google::Apis::Core::Hashable
687
+
688
+ def initialize(**args)
689
+ update!(**args)
690
+ end
691
+
692
+ # Update properties of this object
693
+ def update!(**args)
694
+ end
695
+ end
696
+
376
697
  # Deprecated.
377
698
  class AvailableVersion
378
699
  include Google::Apis::Core::Hashable
@@ -398,6 +719,36 @@ module Google
398
719
  end
399
720
  end
400
721
 
722
+ # Best effort provisioning.
723
+ class BestEffortProvisioning
724
+ include Google::Apis::Core::Hashable
725
+
726
+ # When this is enabled, cluster/node pool creations will ignore non-fatal errors
727
+ # like stockout to best provision as many nodes as possible right now and
728
+ # eventually bring up all target number of nodes
729
+ # Corresponds to the JSON property `enabled`
730
+ # @return [Boolean]
731
+ attr_accessor :enabled
732
+ alias_method :enabled?, :enabled
733
+
734
+ # Minimum number of nodes to be provisioned to be considered as succeeded, and
735
+ # the rest of nodes will be provisioned gradually and eventually when stockout
736
+ # issue has been resolved.
737
+ # Corresponds to the JSON property `minProvisionNodes`
738
+ # @return [Fixnum]
739
+ attr_accessor :min_provision_nodes
740
+
741
+ def initialize(**args)
742
+ update!(**args)
743
+ end
744
+
745
+ # Update properties of this object
746
+ def update!(**args)
747
+ @enabled = args[:enabled] if args.key?(:enabled)
748
+ @min_provision_nodes = args[:min_provision_nodes] if args.key?(:min_provision_nodes)
749
+ end
750
+ end
751
+
401
752
  # Parameters for using BigQuery as the destination of resource usage export.
402
753
  class BigQueryDestination
403
754
  include Google::Apis::Core::Hashable
@@ -435,6 +786,11 @@ module Google
435
786
  # @return [String]
436
787
  attr_accessor :evaluation_mode
437
788
 
789
+ # Optional. Binauthz policies that apply to this cluster.
790
+ # Corresponds to the JSON property `policyBindings`
791
+ # @return [Array<Google::Apis::ContainerV1beta1::PolicyBinding>]
792
+ attr_accessor :policy_bindings
793
+
438
794
  def initialize(**args)
439
795
  update!(**args)
440
796
  end
@@ -443,6 +799,7 @@ module Google
443
799
  def update!(**args)
444
800
  @enabled = args[:enabled] if args.key?(:enabled)
445
801
  @evaluation_mode = args[:evaluation_mode] if args.key?(:evaluation_mode)
802
+ @policy_bindings = args[:policy_bindings] if args.key?(:policy_bindings)
446
803
  end
447
804
  end
448
805
 
@@ -496,6 +853,12 @@ module Google
496
853
  class BlueGreenSettings
497
854
  include Google::Apis::Core::Hashable
498
855
 
856
+ # Autoscaled rollout policy uses cluster autoscaler during blue-green upgrades
857
+ # to scale both the green and blue pools.
858
+ # Corresponds to the JSON property `autoscaledRolloutPolicy`
859
+ # @return [Google::Apis::ContainerV1beta1::AutoscaledRolloutPolicy]
860
+ attr_accessor :autoscaled_rollout_policy
861
+
499
862
  # Time needed after draining entire blue pool. After this period, blue pool will
500
863
  # be cleaned up.
501
864
  # Corresponds to the JSON property `nodePoolSoakDuration`
@@ -513,6 +876,7 @@ module Google
513
876
 
514
877
  # Update properties of this object
515
878
  def update!(**args)
879
+ @autoscaled_rollout_policy = args[:autoscaled_rollout_policy] if args.key?(:autoscaled_rollout_policy)
516
880
  @node_pool_soak_duration = args[:node_pool_soak_duration] if args.key?(:node_pool_soak_duration)
517
881
  @standard_rollout_policy = args[:standard_rollout_policy] if args.key?(:standard_rollout_policy)
518
882
  end
@@ -561,6 +925,59 @@ module Google
561
925
  end
562
926
  end
563
927
 
928
+ # CertificateAuthorityDomainConfig configures one or more fully qualified domain
929
+ # names (FQDN) to a specific certificate.
930
+ class CertificateAuthorityDomainConfig
931
+ include Google::Apis::Core::Hashable
932
+
933
+ # List of fully qualified domain names (FQDN). Specifying port is supported.
934
+ # Wildcards are NOT supported. Examples: - my.customdomain.com - 10.0.1.2:5000
935
+ # Corresponds to the JSON property `fqdns`
936
+ # @return [Array<String>]
937
+ attr_accessor :fqdns
938
+
939
+ # GCPSecretManagerCertificateConfig configures a secret from [Google Secret
940
+ # Manager](https://cloud.google.com/secret-manager).
941
+ # Corresponds to the JSON property `gcpSecretManagerCertificateConfig`
942
+ # @return [Google::Apis::ContainerV1beta1::GcpSecretManagerCertificateConfig]
943
+ attr_accessor :gcp_secret_manager_certificate_config
944
+
945
+ def initialize(**args)
946
+ update!(**args)
947
+ end
948
+
949
+ # Update properties of this object
950
+ def update!(**args)
951
+ @fqdns = args[:fqdns] if args.key?(:fqdns)
952
+ @gcp_secret_manager_certificate_config = args[:gcp_secret_manager_certificate_config] if args.key?(:gcp_secret_manager_certificate_config)
953
+ end
954
+ end
955
+
956
+ # CheckAutopilotCompatibilityResponse has a list of compatibility issues.
957
+ class CheckAutopilotCompatibilityResponse
958
+ include Google::Apis::Core::Hashable
959
+
960
+ # The list of issues for the given operation.
961
+ # Corresponds to the JSON property `issues`
962
+ # @return [Array<Google::Apis::ContainerV1beta1::AutopilotCompatibilityIssue>]
963
+ attr_accessor :issues
964
+
965
+ # The summary of the autopilot compatibility response.
966
+ # Corresponds to the JSON property `summary`
967
+ # @return [String]
968
+ attr_accessor :summary
969
+
970
+ def initialize(**args)
971
+ update!(**args)
972
+ end
973
+
974
+ # Update properties of this object
975
+ def update!(**args)
976
+ @issues = args[:issues] if args.key?(:issues)
977
+ @summary = args[:summary] if args.key?(:summary)
978
+ end
979
+ end
980
+
564
981
  # CidrBlock contains an optional name and one CIDR block.
565
982
  class CidrBlock
566
983
  include Google::Apis::Core::Hashable
@@ -677,6 +1094,12 @@ module Google
677
1094
  # @return [Google::Apis::ContainerV1beta1::ClusterTelemetry]
678
1095
  attr_accessor :cluster_telemetry
679
1096
 
1097
+ # CompliancePostureConfig defines the settings needed to enable/disable features
1098
+ # for the Compliance Posture.
1099
+ # Corresponds to the JSON property `compliancePostureConfig`
1100
+ # @return [Google::Apis::ContainerV1beta1::CompliancePostureConfig]
1101
+ attr_accessor :compliance_posture_config
1102
+
680
1103
  # Which conditions caused the current cluster state.
681
1104
  # Corresponds to the JSON property `conditions`
682
1105
  # @return [Array<Google::Apis::ContainerV1beta1::StatusCondition>]
@@ -688,29 +1111,34 @@ module Google
688
1111
  # @return [Google::Apis::ContainerV1beta1::ConfidentialNodes]
689
1112
  attr_accessor :confidential_nodes
690
1113
 
1114
+ # Configuration for all of the cluster's control plane endpoints.
1115
+ # Corresponds to the JSON property `controlPlaneEndpointsConfig`
1116
+ # @return [Google::Apis::ContainerV1beta1::ControlPlaneEndpointsConfig]
1117
+ attr_accessor :control_plane_endpoints_config
1118
+
691
1119
  # Configuration for fine-grained cost management feature.
692
1120
  # Corresponds to the JSON property `costManagementConfig`
693
1121
  # @return [Google::Apis::ContainerV1beta1::CostManagementConfig]
694
1122
  attr_accessor :cost_management_config
695
1123
 
696
- # [Output only] The time the cluster was created, in [RFC3339](https://www.ietf.
1124
+ # Output only. The time the cluster was created, in [RFC3339](https://www.ietf.
697
1125
  # org/rfc/rfc3339.txt) text format.
698
1126
  # Corresponds to the JSON property `createTime`
699
1127
  # @return [String]
700
1128
  attr_accessor :create_time
701
1129
 
702
- # [Output only] The current software version of the master endpoint.
1130
+ # Output only. The current software version of the master endpoint.
703
1131
  # Corresponds to the JSON property `currentMasterVersion`
704
1132
  # @return [String]
705
1133
  attr_accessor :current_master_version
706
1134
 
707
- # [Output only] The number of nodes currently in the cluster. Deprecated. Call
1135
+ # Output only. The number of nodes currently in the cluster. Deprecated. Call
708
1136
  # Kubernetes API directly to retrieve node information.
709
1137
  # Corresponds to the JSON property `currentNodeCount`
710
1138
  # @return [Fixnum]
711
1139
  attr_accessor :current_node_count
712
1140
 
713
- # [Output only] Deprecated, use [NodePool.version](https://cloud.google.com/
1141
+ # Output only. Deprecated, use [NodePool.version](https://cloud.google.com/
714
1142
  # kubernetes-engine/docs/reference/rest/v1beta1/projects.locations.clusters.
715
1143
  # nodePools) instead. The current version of the node software components. If
716
1144
  # they are currently at multiple versions because they're in the process of
@@ -734,6 +1162,11 @@ module Google
734
1162
  # @return [String]
735
1163
  attr_accessor :description
736
1164
 
1165
+ # Kubernetes open source beta apis enabled on the cluster.
1166
+ # Corresponds to the JSON property `enableK8sBetaApis`
1167
+ # @return [Google::Apis::ContainerV1beta1::K8sBetaApiConfig]
1168
+ attr_accessor :enable_k8s_beta_apis
1169
+
737
1170
  # Kubernetes alpha features are enabled on this cluster. This includes alpha API
738
1171
  # groups (e.g. v1beta1) and features that may not be production ready in the
739
1172
  # kubernetes version of the master and nodes. The cluster has no SLA for uptime
@@ -745,13 +1178,14 @@ module Google
745
1178
  alias_method :enable_kubernetes_alpha?, :enable_kubernetes_alpha
746
1179
 
747
1180
  # Enable the ability to use Cloud TPUs in this cluster. This field is deprecated,
748
- # use tpu_config.enabled instead.
1181
+ # use tpu_config.enabled instead. This field is deprecated due to the
1182
+ # deprecation of 2VM TPU. The end of life date for 2VM TPU is 2025-04-25.
749
1183
  # Corresponds to the JSON property `enableTpu`
750
1184
  # @return [Boolean]
751
1185
  attr_accessor :enable_tpu
752
1186
  alias_method :enable_tpu?, :enable_tpu
753
1187
 
754
- # [Output only] The IP address of this cluster's master endpoint. The endpoint
1188
+ # Output only. The IP address of this cluster's master endpoint. The endpoint
755
1189
  # can be accessed from the internet at `https://username:password@endpoint/`.
756
1190
  # See the `masterAuth` property of this resource for username and password
757
1191
  # information.
@@ -759,6 +1193,11 @@ module Google
759
1193
  # @return [String]
760
1194
  attr_accessor :endpoint
761
1195
 
1196
+ # EnterpriseConfig is the cluster enterprise configuration.
1197
+ # Corresponds to the JSON property `enterpriseConfig`
1198
+ # @return [Google::Apis::ContainerV1beta1::EnterpriseConfig]
1199
+ attr_accessor :enterprise_config
1200
+
762
1201
  # This checksum is computed by the server based on the value of cluster fields,
763
1202
  # and may be sent on update requests to ensure the client has an up-to-date
764
1203
  # value before proceeding.
@@ -766,12 +1205,17 @@ module Google
766
1205
  # @return [String]
767
1206
  attr_accessor :etag
768
1207
 
769
- # [Output only] The time the cluster will be automatically deleted in [RFC3339](
1208
+ # Output only. The time the cluster will be automatically deleted in [RFC3339](
770
1209
  # https://www.ietf.org/rfc/rfc3339.txt) text format.
771
1210
  # Corresponds to the JSON property `expireTime`
772
1211
  # @return [String]
773
1212
  attr_accessor :expire_time
774
1213
 
1214
+ # Fleet is the fleet configuration for the cluster.
1215
+ # Corresponds to the JSON property `fleet`
1216
+ # @return [Google::Apis::ContainerV1beta1::Fleet]
1217
+ attr_accessor :fleet
1218
+
775
1219
  # Output only. Unique id for the cluster.
776
1220
  # Corresponds to the JSON property `id`
777
1221
  # @return [String]
@@ -808,7 +1252,7 @@ module Google
808
1252
  # @return [Fixnum]
809
1253
  attr_accessor :initial_node_count
810
1254
 
811
- # Deprecated. Use node_pools.instance_group_urls.
1255
+ # Output only. Deprecated. Use node_pools.instance_group_urls.
812
1256
  # Corresponds to the JSON property `instanceGroupUrls`
813
1257
  # @return [Array<String>]
814
1258
  attr_accessor :instance_group_urls
@@ -828,10 +1272,10 @@ module Google
828
1272
  # @return [Google::Apis::ContainerV1beta1::LegacyAbac]
829
1273
  attr_accessor :legacy_abac
830
1274
 
831
- # [Output only] The name of the Google Compute Engine [zone](https://cloud.
832
- # google.com/compute/docs/regions-zones/regions-zones#available) or [region](
833
- # https://cloud.google.com/compute/docs/regions-zones/regions-zones#available)
834
- # in which the cluster resides.
1275
+ # Output only. The name of the Google Compute Engine [zone](https://cloud.google.
1276
+ # com/compute/docs/regions-zones/regions-zones#available) or [region](https://
1277
+ # cloud.google.com/compute/docs/regions-zones/regions-zones#available) in which
1278
+ # the cluster resides.
835
1279
  # Corresponds to the JSON property `location`
836
1280
  # @return [String]
837
1281
  attr_accessor :location
@@ -908,7 +1352,7 @@ module Google
908
1352
  attr_accessor :monitoring_config
909
1353
 
910
1354
  # The monitoring service the cluster should use to write metrics. Currently
911
- # available options: * "monitoring.googleapis.com/kubernetes" - The Cloud
1355
+ # available options: * `monitoring.googleapis.com/kubernetes` - The Cloud
912
1356
  # Monitoring service with a Kubernetes-native resource model * `monitoring.
913
1357
  # googleapis.com` - The legacy Cloud Monitoring service (no longer available as
914
1358
  # of GKE 1.15). * `none` - No metrics will be exported from the cluster. If left
@@ -952,9 +1396,9 @@ module Google
952
1396
  # @return [Google::Apis::ContainerV1beta1::NodeConfig]
953
1397
  attr_accessor :node_config
954
1398
 
955
- # [Output only] The size of the address space on each node for hosting
956
- # containers. This is provisioned from within the `container_ipv4_cidr` range.
957
- # This field will only be set when cluster is in route-based network mode.
1399
+ # Output only. The size of the address space on each node for hosting containers.
1400
+ # This is provisioned from within the `container_ipv4_cidr` range. This field
1401
+ # will only be set when cluster is in route-based network mode.
958
1402
  # Corresponds to the JSON property `nodeIpv4CidrSize`
959
1403
  # @return [Fixnum]
960
1404
  attr_accessor :node_ipv4_cidr_size
@@ -981,6 +1425,19 @@ module Google
981
1425
  # @return [Google::Apis::ContainerV1beta1::NotificationConfig]
982
1426
  attr_accessor :notification_config
983
1427
 
1428
+ # ParentProductConfig is the configuration of the parent product of the cluster.
1429
+ # This field is used by Google internal products that are built on top of a GKE
1430
+ # cluster and take the ownership of the cluster.
1431
+ # Corresponds to the JSON property `parentProductConfig`
1432
+ # @return [Google::Apis::ContainerV1beta1::ParentProductConfig]
1433
+ attr_accessor :parent_product_config
1434
+
1435
+ # PodAutoscaling is used for configuration of parameters for workload
1436
+ # autoscaling.
1437
+ # Corresponds to the JSON property `podAutoscaling`
1438
+ # @return [Google::Apis::ContainerV1beta1::PodAutoscaling]
1439
+ attr_accessor :pod_autoscaling
1440
+
984
1441
  # Configuration for the PodSecurityPolicy feature.
985
1442
  # Corresponds to the JSON property `podSecurityPolicyConfig`
986
1443
  # @return [Google::Apis::ContainerV1beta1::PodSecurityPolicyConfig]
@@ -1006,6 +1463,12 @@ module Google
1006
1463
  # @return [Google::Apis::ContainerV1beta1::ProtectConfig]
1007
1464
  attr_accessor :protect_config
1008
1465
 
1466
+ # RBACBindingConfig allows user to restrict ClusterRoleBindings an RoleBindings
1467
+ # that can be created.
1468
+ # Corresponds to the JSON property `rbacBindingConfig`
1469
+ # @return [Google::Apis::ContainerV1beta1::RbacBindingConfig]
1470
+ attr_accessor :rbac_binding_config
1471
+
1009
1472
  # ReleaseChannel indicates which release channel a cluster is subscribed to.
1010
1473
  # Release channels are arranged in order of risk. When a cluster is subscribed
1011
1474
  # to a release channel, Google maintains both the master version and the node
@@ -1025,12 +1488,35 @@ module Google
1025
1488
  # @return [Google::Apis::ContainerV1beta1::ResourceUsageExportConfig]
1026
1489
  attr_accessor :resource_usage_export_config
1027
1490
 
1028
- # [Output only] Server-defined URL for the resource.
1491
+ # Output only. Reserved for future use.
1492
+ # Corresponds to the JSON property `satisfiesPzi`
1493
+ # @return [Boolean]
1494
+ attr_accessor :satisfies_pzi
1495
+ alias_method :satisfies_pzi?, :satisfies_pzi
1496
+
1497
+ # Output only. Reserved for future use.
1498
+ # Corresponds to the JSON property `satisfiesPzs`
1499
+ # @return [Boolean]
1500
+ attr_accessor :satisfies_pzs
1501
+ alias_method :satisfies_pzs?, :satisfies_pzs
1502
+
1503
+ # SecretManagerConfig is config for secret manager enablement.
1504
+ # Corresponds to the JSON property `secretManagerConfig`
1505
+ # @return [Google::Apis::ContainerV1beta1::SecretManagerConfig]
1506
+ attr_accessor :secret_manager_config
1507
+
1508
+ # SecurityPostureConfig defines the flags needed to enable/disable features for
1509
+ # the Security Posture API.
1510
+ # Corresponds to the JSON property `securityPostureConfig`
1511
+ # @return [Google::Apis::ContainerV1beta1::SecurityPostureConfig]
1512
+ attr_accessor :security_posture_config
1513
+
1514
+ # Output only. Server-defined URL for the resource.
1029
1515
  # Corresponds to the JSON property `selfLink`
1030
1516
  # @return [String]
1031
1517
  attr_accessor :self_link
1032
1518
 
1033
- # [Output only] The IP address range of the Kubernetes services in this cluster,
1519
+ # Output only. The IP address range of the Kubernetes services in this cluster,
1034
1520
  # in [CIDR](http://en.wikipedia.org/wiki/Classless_Inter-Domain_Routing)
1035
1521
  # notation (e.g. `1.2.3.4/29`). Service addresses are typically put in the last `
1036
1522
  # /16` from the container CIDR.
@@ -1043,12 +1529,12 @@ module Google
1043
1529
  # @return [Google::Apis::ContainerV1beta1::ShieldedNodes]
1044
1530
  attr_accessor :shielded_nodes
1045
1531
 
1046
- # [Output only] The current status of this cluster.
1532
+ # Output only. The current status of this cluster.
1047
1533
  # Corresponds to the JSON property `status`
1048
1534
  # @return [String]
1049
1535
  attr_accessor :status
1050
1536
 
1051
- # [Output only] Deprecated. Use conditions instead. Additional information about
1537
+ # Output only. Deprecated. Use conditions instead. Additional information about
1052
1538
  # the current status of this cluster, if available.
1053
1539
  # Corresponds to the JSON property `statusMessage`
1054
1540
  # @return [String]
@@ -1061,18 +1547,26 @@ module Google
1061
1547
  # @return [String]
1062
1548
  attr_accessor :subnetwork
1063
1549
 
1064
- # Configuration for Cloud TPU.
1550
+ # Configuration for Cloud TPU. This message is deprecated due to the deprecation
1551
+ # of 2VM TPU. The end of life date for 2VM TPU is 2025-04-25.
1065
1552
  # Corresponds to the JSON property `tpuConfig`
1066
1553
  # @return [Google::Apis::ContainerV1beta1::TpuConfig]
1067
1554
  attr_accessor :tpu_config
1068
1555
 
1069
- # [Output only] The IP address range of the Cloud TPUs in this cluster, in [CIDR]
1070
- # (http://en.wikipedia.org/wiki/Classless_Inter-Domain_Routing) notation (e.g. `
1071
- # 1.2.3.4/29`).
1556
+ # Output only. The IP address range of the Cloud TPUs in this cluster, in [CIDR](
1557
+ # http://en.wikipedia.org/wiki/Classless_Inter-Domain_Routing) notation (e.g. `1.
1558
+ # 2.3.4/29`). This field is deprecated due to the deprecation of 2VM TPU. The
1559
+ # end of life date for 2VM TPU is 2025-04-25.
1072
1560
  # Corresponds to the JSON property `tpuIpv4CidrBlock`
1073
1561
  # @return [String]
1074
1562
  attr_accessor :tpu_ipv4_cidr_block
1075
1563
 
1564
+ # UserManagedKeysConfig holds the resource address to Keys which are used for
1565
+ # signing certs and token that are used for communication within cluster.
1566
+ # Corresponds to the JSON property `userManagedKeysConfig`
1567
+ # @return [Google::Apis::ContainerV1beta1::UserManagedKeysConfig]
1568
+ attr_accessor :user_managed_keys_config
1569
+
1076
1570
  # VerticalPodAutoscaling contains global, per-cluster information required by
1077
1571
  # Vertical Pod Autoscaler to automatically adjust the resources of pods
1078
1572
  # controlled by it.
@@ -1095,9 +1589,9 @@ module Google
1095
1589
  # @return [Google::Apis::ContainerV1beta1::WorkloadIdentityConfig]
1096
1590
  attr_accessor :workload_identity_config
1097
1591
 
1098
- # [Output only] The name of the Google Compute Engine [zone](https://cloud.
1099
- # google.com/compute/docs/zones#available) in which the cluster resides. This
1100
- # field is deprecated, use location instead.
1592
+ # Output only. The name of the Google Compute Engine [zone](https://cloud.google.
1593
+ # com/compute/docs/zones#available) in which the cluster resides. This field is
1594
+ # deprecated, use location instead.
1101
1595
  # Corresponds to the JSON property `zone`
1102
1596
  # @return [String]
1103
1597
  attr_accessor :zone
@@ -1115,8 +1609,10 @@ module Google
1115
1609
  @binary_authorization = args[:binary_authorization] if args.key?(:binary_authorization)
1116
1610
  @cluster_ipv4_cidr = args[:cluster_ipv4_cidr] if args.key?(:cluster_ipv4_cidr)
1117
1611
  @cluster_telemetry = args[:cluster_telemetry] if args.key?(:cluster_telemetry)
1612
+ @compliance_posture_config = args[:compliance_posture_config] if args.key?(:compliance_posture_config)
1118
1613
  @conditions = args[:conditions] if args.key?(:conditions)
1119
1614
  @confidential_nodes = args[:confidential_nodes] if args.key?(:confidential_nodes)
1615
+ @control_plane_endpoints_config = args[:control_plane_endpoints_config] if args.key?(:control_plane_endpoints_config)
1120
1616
  @cost_management_config = args[:cost_management_config] if args.key?(:cost_management_config)
1121
1617
  @create_time = args[:create_time] if args.key?(:create_time)
1122
1618
  @current_master_version = args[:current_master_version] if args.key?(:current_master_version)
@@ -1125,11 +1621,14 @@ module Google
1125
1621
  @database_encryption = args[:database_encryption] if args.key?(:database_encryption)
1126
1622
  @default_max_pods_constraint = args[:default_max_pods_constraint] if args.key?(:default_max_pods_constraint)
1127
1623
  @description = args[:description] if args.key?(:description)
1624
+ @enable_k8s_beta_apis = args[:enable_k8s_beta_apis] if args.key?(:enable_k8s_beta_apis)
1128
1625
  @enable_kubernetes_alpha = args[:enable_kubernetes_alpha] if args.key?(:enable_kubernetes_alpha)
1129
1626
  @enable_tpu = args[:enable_tpu] if args.key?(:enable_tpu)
1130
1627
  @endpoint = args[:endpoint] if args.key?(:endpoint)
1628
+ @enterprise_config = args[:enterprise_config] if args.key?(:enterprise_config)
1131
1629
  @etag = args[:etag] if args.key?(:etag)
1132
1630
  @expire_time = args[:expire_time] if args.key?(:expire_time)
1631
+ @fleet = args[:fleet] if args.key?(:fleet)
1133
1632
  @id = args[:id] if args.key?(:id)
1134
1633
  @identity_service_config = args[:identity_service_config] if args.key?(:identity_service_config)
1135
1634
  @initial_cluster_version = args[:initial_cluster_version] if args.key?(:initial_cluster_version)
@@ -1160,13 +1659,20 @@ module Google
1160
1659
  @node_pool_defaults = args[:node_pool_defaults] if args.key?(:node_pool_defaults)
1161
1660
  @node_pools = args[:node_pools] if args.key?(:node_pools)
1162
1661
  @notification_config = args[:notification_config] if args.key?(:notification_config)
1662
+ @parent_product_config = args[:parent_product_config] if args.key?(:parent_product_config)
1663
+ @pod_autoscaling = args[:pod_autoscaling] if args.key?(:pod_autoscaling)
1163
1664
  @pod_security_policy_config = args[:pod_security_policy_config] if args.key?(:pod_security_policy_config)
1164
1665
  @private_cluster = args[:private_cluster] if args.key?(:private_cluster)
1165
1666
  @private_cluster_config = args[:private_cluster_config] if args.key?(:private_cluster_config)
1166
1667
  @protect_config = args[:protect_config] if args.key?(:protect_config)
1668
+ @rbac_binding_config = args[:rbac_binding_config] if args.key?(:rbac_binding_config)
1167
1669
  @release_channel = args[:release_channel] if args.key?(:release_channel)
1168
1670
  @resource_labels = args[:resource_labels] if args.key?(:resource_labels)
1169
1671
  @resource_usage_export_config = args[:resource_usage_export_config] if args.key?(:resource_usage_export_config)
1672
+ @satisfies_pzi = args[:satisfies_pzi] if args.key?(:satisfies_pzi)
1673
+ @satisfies_pzs = args[:satisfies_pzs] if args.key?(:satisfies_pzs)
1674
+ @secret_manager_config = args[:secret_manager_config] if args.key?(:secret_manager_config)
1675
+ @security_posture_config = args[:security_posture_config] if args.key?(:security_posture_config)
1170
1676
  @self_link = args[:self_link] if args.key?(:self_link)
1171
1677
  @services_ipv4_cidr = args[:services_ipv4_cidr] if args.key?(:services_ipv4_cidr)
1172
1678
  @shielded_nodes = args[:shielded_nodes] if args.key?(:shielded_nodes)
@@ -1175,6 +1681,7 @@ module Google
1175
1681
  @subnetwork = args[:subnetwork] if args.key?(:subnetwork)
1176
1682
  @tpu_config = args[:tpu_config] if args.key?(:tpu_config)
1177
1683
  @tpu_ipv4_cidr_block = args[:tpu_ipv4_cidr_block] if args.key?(:tpu_ipv4_cidr_block)
1684
+ @user_managed_keys_config = args[:user_managed_keys_config] if args.key?(:user_managed_keys_config)
1178
1685
  @vertical_pod_autoscaling = args[:vertical_pod_autoscaling] if args.key?(:vertical_pod_autoscaling)
1179
1686
  @workload_alts_config = args[:workload_alts_config] if args.key?(:workload_alts_config)
1180
1687
  @workload_certificates = args[:workload_certificates] if args.key?(:workload_certificates)
@@ -1232,12 +1739,31 @@ module Google
1232
1739
  end
1233
1740
  end
1234
1741
 
1235
- # Telemetry integration for the cluster.
1236
- class ClusterTelemetry
1742
+ # Configuration of all network bandwidth tiers
1743
+ class ClusterNetworkPerformanceConfig
1237
1744
  include Google::Apis::Core::Hashable
1238
1745
 
1239
- # Type of the integration.
1240
- # Corresponds to the JSON property `type`
1746
+ # Specifies the total network bandwidth tier for the NodePool.
1747
+ # Corresponds to the JSON property `totalEgressBandwidthTier`
1748
+ # @return [String]
1749
+ attr_accessor :total_egress_bandwidth_tier
1750
+
1751
+ def initialize(**args)
1752
+ update!(**args)
1753
+ end
1754
+
1755
+ # Update properties of this object
1756
+ def update!(**args)
1757
+ @total_egress_bandwidth_tier = args[:total_egress_bandwidth_tier] if args.key?(:total_egress_bandwidth_tier)
1758
+ end
1759
+ end
1760
+
1761
+ # Telemetry integration for the cluster.
1762
+ class ClusterTelemetry
1763
+ include Google::Apis::Core::Hashable
1764
+
1765
+ # Type of the integration.
1766
+ # Corresponds to the JSON property `type`
1241
1767
  # @return [String]
1242
1768
  attr_accessor :type
1243
1769
 
@@ -1256,6 +1782,12 @@ module Google
1256
1782
  class ClusterUpdate
1257
1783
  include Google::Apis::Core::Hashable
1258
1784
 
1785
+ # AdditionalPodRangesConfig is the configuration for additional pod secondary
1786
+ # ranges supporting the ClusterUpdate message.
1787
+ # Corresponds to the JSON property `additionalPodRangesConfig`
1788
+ # @return [Google::Apis::ContainerV1beta1::AdditionalPodRangesConfig]
1789
+ attr_accessor :additional_pod_ranges_config
1790
+
1259
1791
  # Configuration for the addons that can be automatically spun up in the cluster,
1260
1792
  # enabling additional functionality.
1261
1793
  # Corresponds to the JSON property `desiredAddonsConfig`
@@ -1267,6 +1799,11 @@ module Google
1267
1799
  # @return [Google::Apis::ContainerV1beta1::AuthenticatorGroupsConfig]
1268
1800
  attr_accessor :desired_authenticator_groups_config
1269
1801
 
1802
+ # WorkloadPolicyConfig is the configuration related to GCW workload policy
1803
+ # Corresponds to the JSON property `desiredAutopilotWorkloadPolicyConfig`
1804
+ # @return [Google::Apis::ContainerV1beta1::WorkloadPolicyConfig]
1805
+ attr_accessor :desired_autopilot_workload_policy_config
1806
+
1270
1807
  # Configuration for Binary Authorization.
1271
1808
  # Corresponds to the JSON property `desiredBinaryAuthorization`
1272
1809
  # @return [Google::Apis::ContainerV1beta1::BinaryAuthorization]
@@ -1284,6 +1821,22 @@ module Google
1284
1821
  # @return [Google::Apis::ContainerV1beta1::ClusterTelemetry]
1285
1822
  attr_accessor :desired_cluster_telemetry
1286
1823
 
1824
+ # CompliancePostureConfig defines the settings needed to enable/disable features
1825
+ # for the Compliance Posture.
1826
+ # Corresponds to the JSON property `desiredCompliancePostureConfig`
1827
+ # @return [Google::Apis::ContainerV1beta1::CompliancePostureConfig]
1828
+ attr_accessor :desired_compliance_posture_config
1829
+
1830
+ # ContainerdConfig contains configuration to customize containerd.
1831
+ # Corresponds to the JSON property `desiredContainerdConfig`
1832
+ # @return [Google::Apis::ContainerV1beta1::ContainerdConfig]
1833
+ attr_accessor :desired_containerd_config
1834
+
1835
+ # Configuration for all of the cluster's control plane endpoints.
1836
+ # Corresponds to the JSON property `desiredControlPlaneEndpointsConfig`
1837
+ # @return [Google::Apis::ContainerV1beta1::ControlPlaneEndpointsConfig]
1838
+ attr_accessor :desired_control_plane_endpoints_config
1839
+
1287
1840
  # Configuration for fine-grained cost management feature.
1288
1841
  # Corresponds to the JSON property `desiredCostManagementConfig`
1289
1842
  # @return [Google::Apis::ContainerV1beta1::CostManagementConfig]
@@ -1299,23 +1852,68 @@ module Google
1299
1852
  # @return [String]
1300
1853
  attr_accessor :desired_datapath_provider
1301
1854
 
1855
+ # Override the default setting of whether future created nodes have private IP
1856
+ # addresses only, namely NetworkConfig.default_enable_private_nodes
1857
+ # Corresponds to the JSON property `desiredDefaultEnablePrivateNodes`
1858
+ # @return [Boolean]
1859
+ attr_accessor :desired_default_enable_private_nodes
1860
+ alias_method :desired_default_enable_private_nodes?, :desired_default_enable_private_nodes
1861
+
1302
1862
  # DefaultSnatStatus contains the desired state of whether default sNAT should be
1303
1863
  # disabled on the cluster.
1304
1864
  # Corresponds to the JSON property `desiredDefaultSnatStatus`
1305
1865
  # @return [Google::Apis::ContainerV1beta1::DefaultSnatStatus]
1306
1866
  attr_accessor :desired_default_snat_status
1307
1867
 
1868
+ # Enable/Disable L4 LB VPC firewall reconciliation for the cluster.
1869
+ # Corresponds to the JSON property `desiredDisableL4LbFirewallReconciliation`
1870
+ # @return [Boolean]
1871
+ attr_accessor :desired_disable_l4_lb_firewall_reconciliation
1872
+ alias_method :desired_disable_l4_lb_firewall_reconciliation?, :desired_disable_l4_lb_firewall_reconciliation
1873
+
1308
1874
  # DNSConfig contains the desired set of options for configuring clusterDNS.
1309
1875
  # Corresponds to the JSON property `desiredDnsConfig`
1310
1876
  # @return [Google::Apis::ContainerV1beta1::DnsConfig]
1311
1877
  attr_accessor :desired_dns_config
1312
1878
 
1313
- # Enable/Disable private endpoint for the cluster's master.
1879
+ # Enable/Disable Cilium Clusterwide Network Policy for the cluster.
1880
+ # Corresponds to the JSON property `desiredEnableCiliumClusterwideNetworkPolicy`
1881
+ # @return [Boolean]
1882
+ attr_accessor :desired_enable_cilium_clusterwide_network_policy
1883
+ alias_method :desired_enable_cilium_clusterwide_network_policy?, :desired_enable_cilium_clusterwide_network_policy
1884
+
1885
+ # Enable/Disable FQDN Network Policy for the cluster.
1886
+ # Corresponds to the JSON property `desiredEnableFqdnNetworkPolicy`
1887
+ # @return [Boolean]
1888
+ attr_accessor :desired_enable_fqdn_network_policy
1889
+ alias_method :desired_enable_fqdn_network_policy?, :desired_enable_fqdn_network_policy
1890
+
1891
+ # Enable/Disable Multi-Networking for the cluster
1892
+ # Corresponds to the JSON property `desiredEnableMultiNetworking`
1893
+ # @return [Boolean]
1894
+ attr_accessor :desired_enable_multi_networking
1895
+ alias_method :desired_enable_multi_networking?, :desired_enable_multi_networking
1896
+
1897
+ # Enable/Disable private endpoint for the cluster's master. Deprecated: Use
1898
+ # desired_control_plane_endpoints_config.ip_endpoints_config.
1899
+ # enable_public_endpoint instead. Note that the value of enable_public_endpoint
1900
+ # is reversed: if enable_private_endpoint is false, then enable_public_endpoint
1901
+ # will be true.
1314
1902
  # Corresponds to the JSON property `desiredEnablePrivateEndpoint`
1315
1903
  # @return [Boolean]
1316
1904
  attr_accessor :desired_enable_private_endpoint
1317
1905
  alias_method :desired_enable_private_endpoint?, :desired_enable_private_endpoint
1318
1906
 
1907
+ # DesiredEnterpriseConfig is a wrapper used for updating enterprise_config.
1908
+ # Corresponds to the JSON property `desiredEnterpriseConfig`
1909
+ # @return [Google::Apis::ContainerV1beta1::DesiredEnterpriseConfig]
1910
+ attr_accessor :desired_enterprise_config
1911
+
1912
+ # Fleet is the fleet configuration for the cluster.
1913
+ # Corresponds to the JSON property `desiredFleet`
1914
+ # @return [Google::Apis::ContainerV1beta1::Fleet]
1915
+ attr_accessor :desired_fleet
1916
+
1319
1917
  # GatewayAPIConfig contains the desired config of Gateway API on this cluster.
1320
1918
  # Corresponds to the JSON property `desiredGatewayApiConfig`
1321
1919
  # @return [Google::Apis::ContainerV1beta1::GatewayApiConfig]
@@ -1326,6 +1924,12 @@ module Google
1326
1924
  # @return [Google::Apis::ContainerV1beta1::GcfsConfig]
1327
1925
  attr_accessor :desired_gcfs_config
1328
1926
 
1927
+ # HostMaintenancePolicy contains the maintenance policy for the hosts on which
1928
+ # the GKE VMs run on.
1929
+ # Corresponds to the JSON property `desiredHostMaintenancePolicy`
1930
+ # @return [Google::Apis::ContainerV1beta1::HostMaintenancePolicy]
1931
+ attr_accessor :desired_host_maintenance_policy
1932
+
1329
1933
  # IdentityServiceConfig is configuration for Identity Service which allows
1330
1934
  # customers to use external identity providers with the K8S API
1331
1935
  # Corresponds to the JSON property `desiredIdentityServiceConfig`
@@ -1338,12 +1942,23 @@ module Google
1338
1942
  # @return [String]
1339
1943
  attr_accessor :desired_image_type
1340
1944
 
1945
+ # Specify the details of in-transit encryption. Now named inter-node transparent
1946
+ # encryption.
1947
+ # Corresponds to the JSON property `desiredInTransitEncryptionConfig`
1948
+ # @return [String]
1949
+ attr_accessor :desired_in_transit_encryption_config
1950
+
1341
1951
  # IntraNodeVisibilityConfig contains the desired config of the intra-node
1342
1952
  # visibility on this cluster.
1343
1953
  # Corresponds to the JSON property `desiredIntraNodeVisibilityConfig`
1344
1954
  # @return [Google::Apis::ContainerV1beta1::IntraNodeVisibilityConfig]
1345
1955
  attr_accessor :desired_intra_node_visibility_config
1346
1956
 
1957
+ # Kubernetes open source beta apis enabled on the cluster.
1958
+ # Corresponds to the JSON property `desiredK8sBetaApis`
1959
+ # @return [Google::Apis::ContainerV1beta1::K8sBetaApiConfig]
1960
+ attr_accessor :desired_k8s_beta_apis
1961
+
1347
1962
  # ILBSubsettingConfig contains the desired config of L4 Internal LoadBalancer
1348
1963
  # subsetting on this cluster.
1349
1964
  # Corresponds to the JSON property `desiredL4ilbSubsettingConfig`
@@ -1410,7 +2025,7 @@ module Google
1410
2025
  attr_accessor :desired_monitoring_config
1411
2026
 
1412
2027
  # The monitoring service the cluster should use to write metrics. Currently
1413
- # available options: * "monitoring.googleapis.com/kubernetes" - The Cloud
2028
+ # available options: * `monitoring.googleapis.com/kubernetes` - The Cloud
1414
2029
  # Monitoring service with a Kubernetes-native resource model * `monitoring.
1415
2030
  # googleapis.com` - The legacy Cloud Monitoring service (no longer available as
1416
2031
  # of GKE 1.15). * `none` - No metrics will be exported from the cluster. If left
@@ -1420,6 +2035,26 @@ module Google
1420
2035
  # @return [String]
1421
2036
  attr_accessor :desired_monitoring_service
1422
2037
 
2038
+ # Configuration of all network bandwidth tiers
2039
+ # Corresponds to the JSON property `desiredNetworkPerformanceConfig`
2040
+ # @return [Google::Apis::ContainerV1beta1::ClusterNetworkPerformanceConfig]
2041
+ attr_accessor :desired_network_performance_config
2042
+
2043
+ # Node kubelet configs.
2044
+ # Corresponds to the JSON property `desiredNodeKubeletConfig`
2045
+ # @return [Google::Apis::ContainerV1beta1::NodeKubeletConfig]
2046
+ attr_accessor :desired_node_kubelet_config
2047
+
2048
+ # Node kubelet configs.
2049
+ # Corresponds to the JSON property `desiredNodePoolAutoConfigKubeletConfig`
2050
+ # @return [Google::Apis::ContainerV1beta1::NodeKubeletConfig]
2051
+ attr_accessor :desired_node_pool_auto_config_kubelet_config
2052
+
2053
+ # Parameters that can be configured on Linux nodes.
2054
+ # Corresponds to the JSON property `desiredNodePoolAutoConfigLinuxNodeConfig`
2055
+ # @return [Google::Apis::ContainerV1beta1::LinuxNodeConfig]
2056
+ attr_accessor :desired_node_pool_auto_config_linux_node_config
2057
+
1423
2058
  # Collection of Compute Engine network tags that can be applied to a node's
1424
2059
  # underlying VM instance. (See `tags` field in [`NodeConfig`](/kubernetes-engine/
1425
2060
  # docs/reference/rest/v1/NodeConfig)).
@@ -1427,6 +2062,15 @@ module Google
1427
2062
  # @return [Google::Apis::ContainerV1beta1::NetworkTags]
1428
2063
  attr_accessor :desired_node_pool_auto_config_network_tags
1429
2064
 
2065
+ # A map of resource manager tag keys and values to be attached to the nodes for
2066
+ # managing Compute Engine firewalls using Network Firewall Policies. Tags must
2067
+ # be according to specifications in https://cloud.google.com/vpc/docs/tags-
2068
+ # firewalls-overview#specifications. A maximum of 5 tag key-value pairs can be
2069
+ # specified. Existing tags will be replaced with new values.
2070
+ # Corresponds to the JSON property `desiredNodePoolAutoConfigResourceManagerTags`
2071
+ # @return [Google::Apis::ContainerV1beta1::ResourceManagerTags]
2072
+ attr_accessor :desired_node_pool_auto_config_resource_manager_tags
2073
+
1430
2074
  # NodePoolAutoscaling contains information required by cluster autoscaler to
1431
2075
  # adjust the size of the node pool to the current cluster usage.
1432
2076
  # Corresponds to the JSON property `desiredNodePoolAutoscaling`
@@ -1462,6 +2106,19 @@ module Google
1462
2106
  # @return [Google::Apis::ContainerV1beta1::NotificationConfig]
1463
2107
  attr_accessor :desired_notification_config
1464
2108
 
2109
+ # ParentProductConfig is the configuration of the parent product of the cluster.
2110
+ # This field is used by Google internal products that are built on top of a GKE
2111
+ # cluster and take the ownership of the cluster.
2112
+ # Corresponds to the JSON property `desiredParentProductConfig`
2113
+ # @return [Google::Apis::ContainerV1beta1::ParentProductConfig]
2114
+ attr_accessor :desired_parent_product_config
2115
+
2116
+ # PodAutoscaling is used for configuration of parameters for workload
2117
+ # autoscaling.
2118
+ # Corresponds to the JSON property `desiredPodAutoscaling`
2119
+ # @return [Google::Apis::ContainerV1beta1::PodAutoscaling]
2120
+ attr_accessor :desired_pod_autoscaling
2121
+
1465
2122
  # Configuration for the PodSecurityPolicy feature.
1466
2123
  # Corresponds to the JSON property `desiredPodSecurityPolicyConfig`
1467
2124
  # @return [Google::Apis::ContainerV1beta1::PodSecurityPolicyConfig]
@@ -1483,6 +2140,12 @@ module Google
1483
2140
  # @return [Google::Apis::ContainerV1beta1::ProtectConfig]
1484
2141
  attr_accessor :desired_protect_config
1485
2142
 
2143
+ # RBACBindingConfig allows user to restrict ClusterRoleBindings an RoleBindings
2144
+ # that can be created.
2145
+ # Corresponds to the JSON property `desiredRbacBindingConfig`
2146
+ # @return [Google::Apis::ContainerV1beta1::RbacBindingConfig]
2147
+ attr_accessor :desired_rbac_binding_config
2148
+
1486
2149
  # ReleaseChannel indicates which release channel a cluster is subscribed to.
1487
2150
  # Release channels are arranged in order of risk. When a cluster is subscribed
1488
2151
  # to a release channel, Google maintains both the master version and the node
@@ -1496,6 +2159,17 @@ module Google
1496
2159
  # @return [Google::Apis::ContainerV1beta1::ResourceUsageExportConfig]
1497
2160
  attr_accessor :desired_resource_usage_export_config
1498
2161
 
2162
+ # SecretManagerConfig is config for secret manager enablement.
2163
+ # Corresponds to the JSON property `desiredSecretManagerConfig`
2164
+ # @return [Google::Apis::ContainerV1beta1::SecretManagerConfig]
2165
+ attr_accessor :desired_secret_manager_config
2166
+
2167
+ # SecurityPostureConfig defines the flags needed to enable/disable features for
2168
+ # the Security Posture API.
2169
+ # Corresponds to the JSON property `desiredSecurityPostureConfig`
2170
+ # @return [Google::Apis::ContainerV1beta1::SecurityPostureConfig]
2171
+ attr_accessor :desired_security_posture_config
2172
+
1499
2173
  # Config to block services with externalIPs field.
1500
2174
  # Corresponds to the JSON property `desiredServiceExternalIpsConfig`
1501
2175
  # @return [Google::Apis::ContainerV1beta1::ServiceExternalIPsConfig]
@@ -1513,7 +2187,8 @@ module Google
1513
2187
  # @return [String]
1514
2188
  attr_accessor :desired_stack_type
1515
2189
 
1516
- # Configuration for Cloud TPU.
2190
+ # Configuration for Cloud TPU. This message is deprecated due to the deprecation
2191
+ # of 2VM TPU. The end of life date for 2VM TPU is 2025-04-25.
1517
2192
  # Corresponds to the JSON property `desiredTpuConfig`
1518
2193
  # @return [Google::Apis::ContainerV1beta1::TpuConfig]
1519
2194
  attr_accessor :desired_tpu_config
@@ -1540,6 +2215,11 @@ module Google
1540
2215
  # @return [Google::Apis::ContainerV1beta1::WorkloadIdentityConfig]
1541
2216
  attr_accessor :desired_workload_identity_config
1542
2217
 
2218
+ # Kubernetes open source beta apis enabled on the cluster.
2219
+ # Corresponds to the JSON property `enableK8sBetaApis`
2220
+ # @return [Google::Apis::ContainerV1beta1::K8sBetaApiConfig]
2221
+ attr_accessor :enable_k8s_beta_apis
2222
+
1543
2223
  # The current etag of the cluster. If an etag is provided and does not match the
1544
2224
  # current etag of the cluster, update will be blocked and an ABORTED error will
1545
2225
  # be returned.
@@ -1547,28 +2227,60 @@ module Google
1547
2227
  # @return [String]
1548
2228
  attr_accessor :etag
1549
2229
 
2230
+ # Configuration options for private clusters.
2231
+ # Corresponds to the JSON property `privateClusterConfig`
2232
+ # @return [Google::Apis::ContainerV1beta1::PrivateClusterConfig]
2233
+ attr_accessor :private_cluster_config
2234
+
2235
+ # AdditionalPodRangesConfig is the configuration for additional pod secondary
2236
+ # ranges supporting the ClusterUpdate message.
2237
+ # Corresponds to the JSON property `removedAdditionalPodRangesConfig`
2238
+ # @return [Google::Apis::ContainerV1beta1::AdditionalPodRangesConfig]
2239
+ attr_accessor :removed_additional_pod_ranges_config
2240
+
2241
+ # UserManagedKeysConfig holds the resource address to Keys which are used for
2242
+ # signing certs and token that are used for communication within cluster.
2243
+ # Corresponds to the JSON property `userManagedKeysConfig`
2244
+ # @return [Google::Apis::ContainerV1beta1::UserManagedKeysConfig]
2245
+ attr_accessor :user_managed_keys_config
2246
+
1550
2247
  def initialize(**args)
1551
2248
  update!(**args)
1552
2249
  end
1553
2250
 
1554
2251
  # Update properties of this object
1555
2252
  def update!(**args)
2253
+ @additional_pod_ranges_config = args[:additional_pod_ranges_config] if args.key?(:additional_pod_ranges_config)
1556
2254
  @desired_addons_config = args[:desired_addons_config] if args.key?(:desired_addons_config)
1557
2255
  @desired_authenticator_groups_config = args[:desired_authenticator_groups_config] if args.key?(:desired_authenticator_groups_config)
2256
+ @desired_autopilot_workload_policy_config = args[:desired_autopilot_workload_policy_config] if args.key?(:desired_autopilot_workload_policy_config)
1558
2257
  @desired_binary_authorization = args[:desired_binary_authorization] if args.key?(:desired_binary_authorization)
1559
2258
  @desired_cluster_autoscaling = args[:desired_cluster_autoscaling] if args.key?(:desired_cluster_autoscaling)
1560
2259
  @desired_cluster_telemetry = args[:desired_cluster_telemetry] if args.key?(:desired_cluster_telemetry)
2260
+ @desired_compliance_posture_config = args[:desired_compliance_posture_config] if args.key?(:desired_compliance_posture_config)
2261
+ @desired_containerd_config = args[:desired_containerd_config] if args.key?(:desired_containerd_config)
2262
+ @desired_control_plane_endpoints_config = args[:desired_control_plane_endpoints_config] if args.key?(:desired_control_plane_endpoints_config)
1561
2263
  @desired_cost_management_config = args[:desired_cost_management_config] if args.key?(:desired_cost_management_config)
1562
2264
  @desired_database_encryption = args[:desired_database_encryption] if args.key?(:desired_database_encryption)
1563
2265
  @desired_datapath_provider = args[:desired_datapath_provider] if args.key?(:desired_datapath_provider)
2266
+ @desired_default_enable_private_nodes = args[:desired_default_enable_private_nodes] if args.key?(:desired_default_enable_private_nodes)
1564
2267
  @desired_default_snat_status = args[:desired_default_snat_status] if args.key?(:desired_default_snat_status)
2268
+ @desired_disable_l4_lb_firewall_reconciliation = args[:desired_disable_l4_lb_firewall_reconciliation] if args.key?(:desired_disable_l4_lb_firewall_reconciliation)
1565
2269
  @desired_dns_config = args[:desired_dns_config] if args.key?(:desired_dns_config)
2270
+ @desired_enable_cilium_clusterwide_network_policy = args[:desired_enable_cilium_clusterwide_network_policy] if args.key?(:desired_enable_cilium_clusterwide_network_policy)
2271
+ @desired_enable_fqdn_network_policy = args[:desired_enable_fqdn_network_policy] if args.key?(:desired_enable_fqdn_network_policy)
2272
+ @desired_enable_multi_networking = args[:desired_enable_multi_networking] if args.key?(:desired_enable_multi_networking)
1566
2273
  @desired_enable_private_endpoint = args[:desired_enable_private_endpoint] if args.key?(:desired_enable_private_endpoint)
2274
+ @desired_enterprise_config = args[:desired_enterprise_config] if args.key?(:desired_enterprise_config)
2275
+ @desired_fleet = args[:desired_fleet] if args.key?(:desired_fleet)
1567
2276
  @desired_gateway_api_config = args[:desired_gateway_api_config] if args.key?(:desired_gateway_api_config)
1568
2277
  @desired_gcfs_config = args[:desired_gcfs_config] if args.key?(:desired_gcfs_config)
2278
+ @desired_host_maintenance_policy = args[:desired_host_maintenance_policy] if args.key?(:desired_host_maintenance_policy)
1569
2279
  @desired_identity_service_config = args[:desired_identity_service_config] if args.key?(:desired_identity_service_config)
1570
2280
  @desired_image_type = args[:desired_image_type] if args.key?(:desired_image_type)
2281
+ @desired_in_transit_encryption_config = args[:desired_in_transit_encryption_config] if args.key?(:desired_in_transit_encryption_config)
1571
2282
  @desired_intra_node_visibility_config = args[:desired_intra_node_visibility_config] if args.key?(:desired_intra_node_visibility_config)
2283
+ @desired_k8s_beta_apis = args[:desired_k8s_beta_apis] if args.key?(:desired_k8s_beta_apis)
1572
2284
  @desired_l4ilb_subsetting_config = args[:desired_l4ilb_subsetting_config] if args.key?(:desired_l4ilb_subsetting_config)
1573
2285
  @desired_locations = args[:desired_locations] if args.key?(:desired_locations)
1574
2286
  @desired_logging_config = args[:desired_logging_config] if args.key?(:desired_logging_config)
@@ -1579,18 +2291,28 @@ module Google
1579
2291
  @desired_mesh_certificates = args[:desired_mesh_certificates] if args.key?(:desired_mesh_certificates)
1580
2292
  @desired_monitoring_config = args[:desired_monitoring_config] if args.key?(:desired_monitoring_config)
1581
2293
  @desired_monitoring_service = args[:desired_monitoring_service] if args.key?(:desired_monitoring_service)
2294
+ @desired_network_performance_config = args[:desired_network_performance_config] if args.key?(:desired_network_performance_config)
2295
+ @desired_node_kubelet_config = args[:desired_node_kubelet_config] if args.key?(:desired_node_kubelet_config)
2296
+ @desired_node_pool_auto_config_kubelet_config = args[:desired_node_pool_auto_config_kubelet_config] if args.key?(:desired_node_pool_auto_config_kubelet_config)
2297
+ @desired_node_pool_auto_config_linux_node_config = args[:desired_node_pool_auto_config_linux_node_config] if args.key?(:desired_node_pool_auto_config_linux_node_config)
1582
2298
  @desired_node_pool_auto_config_network_tags = args[:desired_node_pool_auto_config_network_tags] if args.key?(:desired_node_pool_auto_config_network_tags)
2299
+ @desired_node_pool_auto_config_resource_manager_tags = args[:desired_node_pool_auto_config_resource_manager_tags] if args.key?(:desired_node_pool_auto_config_resource_manager_tags)
1583
2300
  @desired_node_pool_autoscaling = args[:desired_node_pool_autoscaling] if args.key?(:desired_node_pool_autoscaling)
1584
2301
  @desired_node_pool_id = args[:desired_node_pool_id] if args.key?(:desired_node_pool_id)
1585
2302
  @desired_node_pool_logging_config = args[:desired_node_pool_logging_config] if args.key?(:desired_node_pool_logging_config)
1586
2303
  @desired_node_version = args[:desired_node_version] if args.key?(:desired_node_version)
1587
2304
  @desired_notification_config = args[:desired_notification_config] if args.key?(:desired_notification_config)
2305
+ @desired_parent_product_config = args[:desired_parent_product_config] if args.key?(:desired_parent_product_config)
2306
+ @desired_pod_autoscaling = args[:desired_pod_autoscaling] if args.key?(:desired_pod_autoscaling)
1588
2307
  @desired_pod_security_policy_config = args[:desired_pod_security_policy_config] if args.key?(:desired_pod_security_policy_config)
1589
2308
  @desired_private_cluster_config = args[:desired_private_cluster_config] if args.key?(:desired_private_cluster_config)
1590
2309
  @desired_private_ipv6_google_access = args[:desired_private_ipv6_google_access] if args.key?(:desired_private_ipv6_google_access)
1591
2310
  @desired_protect_config = args[:desired_protect_config] if args.key?(:desired_protect_config)
2311
+ @desired_rbac_binding_config = args[:desired_rbac_binding_config] if args.key?(:desired_rbac_binding_config)
1592
2312
  @desired_release_channel = args[:desired_release_channel] if args.key?(:desired_release_channel)
1593
2313
  @desired_resource_usage_export_config = args[:desired_resource_usage_export_config] if args.key?(:desired_resource_usage_export_config)
2314
+ @desired_secret_manager_config = args[:desired_secret_manager_config] if args.key?(:desired_secret_manager_config)
2315
+ @desired_security_posture_config = args[:desired_security_posture_config] if args.key?(:desired_security_posture_config)
1594
2316
  @desired_service_external_ips_config = args[:desired_service_external_ips_config] if args.key?(:desired_service_external_ips_config)
1595
2317
  @desired_shielded_nodes = args[:desired_shielded_nodes] if args.key?(:desired_shielded_nodes)
1596
2318
  @desired_stack_type = args[:desired_stack_type] if args.key?(:desired_stack_type)
@@ -1599,7 +2321,66 @@ module Google
1599
2321
  @desired_workload_alts_config = args[:desired_workload_alts_config] if args.key?(:desired_workload_alts_config)
1600
2322
  @desired_workload_certificates = args[:desired_workload_certificates] if args.key?(:desired_workload_certificates)
1601
2323
  @desired_workload_identity_config = args[:desired_workload_identity_config] if args.key?(:desired_workload_identity_config)
2324
+ @enable_k8s_beta_apis = args[:enable_k8s_beta_apis] if args.key?(:enable_k8s_beta_apis)
1602
2325
  @etag = args[:etag] if args.key?(:etag)
2326
+ @private_cluster_config = args[:private_cluster_config] if args.key?(:private_cluster_config)
2327
+ @removed_additional_pod_ranges_config = args[:removed_additional_pod_ranges_config] if args.key?(:removed_additional_pod_ranges_config)
2328
+ @user_managed_keys_config = args[:user_managed_keys_config] if args.key?(:user_managed_keys_config)
2329
+ end
2330
+ end
2331
+
2332
+ # ClusterUpgradeInfo contains the upgrade information of a cluster.
2333
+ class ClusterUpgradeInfo
2334
+ include Google::Apis::Core::Hashable
2335
+
2336
+ # The auto upgrade status.
2337
+ # Corresponds to the JSON property `autoUpgradeStatus`
2338
+ # @return [Array<String>]
2339
+ attr_accessor :auto_upgrade_status
2340
+
2341
+ # The cluster's current minor version's end of extended support timestamp.
2342
+ # Corresponds to the JSON property `endOfExtendedSupportTimestamp`
2343
+ # @return [String]
2344
+ attr_accessor :end_of_extended_support_timestamp
2345
+
2346
+ # The cluster's current minor version's end of standard support timestamp.
2347
+ # Corresponds to the JSON property `endOfStandardSupportTimestamp`
2348
+ # @return [String]
2349
+ attr_accessor :end_of_standard_support_timestamp
2350
+
2351
+ # minor_target_version indicates the target version for minor upgrade.
2352
+ # Corresponds to the JSON property `minorTargetVersion`
2353
+ # @return [String]
2354
+ attr_accessor :minor_target_version
2355
+
2356
+ # patch_target_version indicates the target version for patch upgrade.
2357
+ # Corresponds to the JSON property `patchTargetVersion`
2358
+ # @return [String]
2359
+ attr_accessor :patch_target_version
2360
+
2361
+ # The auto upgrade paused reason.
2362
+ # Corresponds to the JSON property `pausedReason`
2363
+ # @return [Array<String>]
2364
+ attr_accessor :paused_reason
2365
+
2366
+ # The list of past auto upgrades.
2367
+ # Corresponds to the JSON property `upgradeDetails`
2368
+ # @return [Array<Google::Apis::ContainerV1beta1::UpgradeDetails>]
2369
+ attr_accessor :upgrade_details
2370
+
2371
+ def initialize(**args)
2372
+ update!(**args)
2373
+ end
2374
+
2375
+ # Update properties of this object
2376
+ def update!(**args)
2377
+ @auto_upgrade_status = args[:auto_upgrade_status] if args.key?(:auto_upgrade_status)
2378
+ @end_of_extended_support_timestamp = args[:end_of_extended_support_timestamp] if args.key?(:end_of_extended_support_timestamp)
2379
+ @end_of_standard_support_timestamp = args[:end_of_standard_support_timestamp] if args.key?(:end_of_standard_support_timestamp)
2380
+ @minor_target_version = args[:minor_target_version] if args.key?(:minor_target_version)
2381
+ @patch_target_version = args[:patch_target_version] if args.key?(:patch_target_version)
2382
+ @paused_reason = args[:paused_reason] if args.key?(:paused_reason)
2383
+ @upgrade_details = args[:upgrade_details] if args.key?(:upgrade_details)
1603
2384
  end
1604
2385
  end
1605
2386
 
@@ -1660,6 +2441,51 @@ module Google
1660
2441
  end
1661
2442
  end
1662
2443
 
2444
+ # CompliancePostureConfig defines the settings needed to enable/disable features
2445
+ # for the Compliance Posture.
2446
+ class CompliancePostureConfig
2447
+ include Google::Apis::Core::Hashable
2448
+
2449
+ # List of enabled compliance standards.
2450
+ # Corresponds to the JSON property `complianceStandards`
2451
+ # @return [Array<Google::Apis::ContainerV1beta1::ComplianceStandard>]
2452
+ attr_accessor :compliance_standards
2453
+
2454
+ # Defines the enablement mode for Compliance Posture.
2455
+ # Corresponds to the JSON property `mode`
2456
+ # @return [String]
2457
+ attr_accessor :mode
2458
+
2459
+ def initialize(**args)
2460
+ update!(**args)
2461
+ end
2462
+
2463
+ # Update properties of this object
2464
+ def update!(**args)
2465
+ @compliance_standards = args[:compliance_standards] if args.key?(:compliance_standards)
2466
+ @mode = args[:mode] if args.key?(:mode)
2467
+ end
2468
+ end
2469
+
2470
+ # Defines the details of a compliance standard.
2471
+ class ComplianceStandard
2472
+ include Google::Apis::Core::Hashable
2473
+
2474
+ # Name of the compliance standard.
2475
+ # Corresponds to the JSON property `standard`
2476
+ # @return [String]
2477
+ attr_accessor :standard
2478
+
2479
+ def initialize(**args)
2480
+ update!(**args)
2481
+ end
2482
+
2483
+ # Update properties of this object
2484
+ def update!(**args)
2485
+ @standard = args[:standard] if args.key?(:standard)
2486
+ end
2487
+ end
2488
+
1663
2489
  # ConfidentialNodes is configuration for the confidential nodes feature, which
1664
2490
  # makes nodes run on confidential VMs.
1665
2491
  class ConfidentialNodes
@@ -1722,6 +2548,51 @@ module Google
1722
2548
  end
1723
2549
  end
1724
2550
 
2551
+ # ContainerdConfig contains configuration to customize containerd.
2552
+ class ContainerdConfig
2553
+ include Google::Apis::Core::Hashable
2554
+
2555
+ # PrivateRegistryAccessConfig contains access configuration for private
2556
+ # container registries.
2557
+ # Corresponds to the JSON property `privateRegistryAccessConfig`
2558
+ # @return [Google::Apis::ContainerV1beta1::PrivateRegistryAccessConfig]
2559
+ attr_accessor :private_registry_access_config
2560
+
2561
+ def initialize(**args)
2562
+ update!(**args)
2563
+ end
2564
+
2565
+ # Update properties of this object
2566
+ def update!(**args)
2567
+ @private_registry_access_config = args[:private_registry_access_config] if args.key?(:private_registry_access_config)
2568
+ end
2569
+ end
2570
+
2571
+ # Configuration for all of the cluster's control plane endpoints.
2572
+ class ControlPlaneEndpointsConfig
2573
+ include Google::Apis::Core::Hashable
2574
+
2575
+ # Describes the configuration of a DNS endpoint.
2576
+ # Corresponds to the JSON property `dnsEndpointConfig`
2577
+ # @return [Google::Apis::ContainerV1beta1::DnsEndpointConfig]
2578
+ attr_accessor :dns_endpoint_config
2579
+
2580
+ # IP endpoints configuration.
2581
+ # Corresponds to the JSON property `ipEndpointsConfig`
2582
+ # @return [Google::Apis::ContainerV1beta1::IpEndpointsConfig]
2583
+ attr_accessor :ip_endpoints_config
2584
+
2585
+ def initialize(**args)
2586
+ update!(**args)
2587
+ end
2588
+
2589
+ # Update properties of this object
2590
+ def update!(**args)
2591
+ @dns_endpoint_config = args[:dns_endpoint_config] if args.key?(:dns_endpoint_config)
2592
+ @ip_endpoints_config = args[:ip_endpoints_config] if args.key?(:ip_endpoints_config)
2593
+ end
2594
+ end
2595
+
1725
2596
  # Configuration for fine-grained cost management feature.
1726
2597
  class CostManagementConfig
1727
2598
  include Google::Apis::Core::Hashable
@@ -1799,20 +2670,7 @@ module Google
1799
2670
  # specification, under the control of the cluster master. They may have a set of
1800
2671
  # Kubernetes labels applied to them, which may be used to reference them during
1801
2672
  # pod scheduling. They may also be resized up or down, to accommodate the
1802
- # workload. These upgrade settings control the level of parallelism and the
1803
- # level of disruption caused by an upgrade. maxUnavailable controls the number
1804
- # of nodes that can be simultaneously unavailable. maxSurge controls the number
1805
- # of additional nodes that can be added to the node pool temporarily for the
1806
- # time of the upgrade to increase the number of available nodes. (maxUnavailable
1807
- # + maxSurge) determines the level of parallelism (how many nodes are being
1808
- # upgraded at the same time). Note: upgrades inevitably introduce some
1809
- # disruption since workloads need to be moved from old nodes to new, upgraded
1810
- # ones. Even if maxUnavailable=0, this holds true. (Disruption stays within the
1811
- # limits of PodDisruptionBudget, if it is configured.) Consider a hypothetical
1812
- # node pool with 5 nodes having maxSurge=2, maxUnavailable=1. This means the
1813
- # upgrade process upgrades 3 nodes simultaneously. It creates 2 additional (
1814
- # upgraded) nodes, then it brings down 3 old (not yet upgraded) nodes at the
1815
- # same time. This ensures that there are always at least 4 nodes available.
2673
+ # workload.
1816
2674
  # Corresponds to the JSON property `nodePool`
1817
2675
  # @return [Google::Apis::ContainerV1beta1::NodePool]
1818
2676
  attr_accessor :node_pool
@@ -1855,6 +2713,11 @@ module Google
1855
2713
  class DnsConfig
1856
2714
  include Google::Apis::Core::Hashable
1857
2715
 
2716
+ # Optional. The domain used in Additive VPC scope.
2717
+ # Corresponds to the JSON property `additiveVpcScopeDnsDomain`
2718
+ # @return [String]
2719
+ attr_accessor :additive_vpc_scope_dns_domain
2720
+
1858
2721
  # cluster_dns indicates which in-cluster DNS provider should be used.
1859
2722
  # Corresponds to the JSON property `clusterDns`
1860
2723
  # @return [String]
@@ -1876,17 +2739,48 @@ module Google
1876
2739
 
1877
2740
  # Update properties of this object
1878
2741
  def update!(**args)
2742
+ @additive_vpc_scope_dns_domain = args[:additive_vpc_scope_dns_domain] if args.key?(:additive_vpc_scope_dns_domain)
1879
2743
  @cluster_dns = args[:cluster_dns] if args.key?(:cluster_dns)
1880
2744
  @cluster_dns_domain = args[:cluster_dns_domain] if args.key?(:cluster_dns_domain)
1881
2745
  @cluster_dns_scope = args[:cluster_dns_scope] if args.key?(:cluster_dns_scope)
1882
2746
  end
1883
2747
  end
1884
2748
 
2749
+ # Describes the configuration of a DNS endpoint.
2750
+ class DnsEndpointConfig
2751
+ include Google::Apis::Core::Hashable
2752
+
2753
+ # Controls whether user traffic is allowed over this endpoint. Note that GCP-
2754
+ # managed services may still use the endpoint even if this is false.
2755
+ # Corresponds to the JSON property `allowExternalTraffic`
2756
+ # @return [Boolean]
2757
+ attr_accessor :allow_external_traffic
2758
+ alias_method :allow_external_traffic?, :allow_external_traffic
2759
+
2760
+ # Output only. The cluster's DNS endpoint configuration. A DNS format address.
2761
+ # This is accessible from the public internet. Ex: uid.us-central1.gke.goog.
2762
+ # Always present, but the behavior may change according to the value of
2763
+ # DNSEndpointConfig.allow_external_traffic.
2764
+ # Corresponds to the JSON property `endpoint`
2765
+ # @return [String]
2766
+ attr_accessor :endpoint
2767
+
2768
+ def initialize(**args)
2769
+ update!(**args)
2770
+ end
2771
+
2772
+ # Update properties of this object
2773
+ def update!(**args)
2774
+ @allow_external_traffic = args[:allow_external_traffic] if args.key?(:allow_external_traffic)
2775
+ @endpoint = args[:endpoint] if args.key?(:endpoint)
2776
+ end
2777
+ end
2778
+
1885
2779
  # Time window specified for daily maintenance operations.
1886
2780
  class DailyMaintenanceWindow
1887
2781
  include Google::Apis::Core::Hashable
1888
2782
 
1889
- # [Output only] Duration of the time window, automatically chosen to be smallest
2783
+ # Output only. Duration of the time window, automatically chosen to be smallest
1890
2784
  # possible in the given scenario.
1891
2785
  # Corresponds to the JSON property `duration`
1892
2786
  # @return [String]
@@ -1913,13 +2807,29 @@ module Google
1913
2807
  class DatabaseEncryption
1914
2808
  include Google::Apis::Core::Hashable
1915
2809
 
2810
+ # Output only. The current state of etcd encryption.
2811
+ # Corresponds to the JSON property `currentState`
2812
+ # @return [String]
2813
+ attr_accessor :current_state
2814
+
2815
+ # Output only. Keys in use by the cluster for decrypting existing objects, in
2816
+ # addition to the key in `key_name`. Each item is a CloudKMS key resource.
2817
+ # Corresponds to the JSON property `decryptionKeys`
2818
+ # @return [Array<String>]
2819
+ attr_accessor :decryption_keys
2820
+
1916
2821
  # Name of CloudKMS key to use for the encryption of secrets in etcd. Ex.
1917
2822
  # projects/my-project/locations/global/keyRings/my-ring/cryptoKeys/my-key
1918
2823
  # Corresponds to the JSON property `keyName`
1919
2824
  # @return [String]
1920
2825
  attr_accessor :key_name
1921
2826
 
1922
- # Denotes the state of etcd encryption.
2827
+ # Output only. Records errors seen during DatabaseEncryption update operations.
2828
+ # Corresponds to the JSON property `lastOperationErrors`
2829
+ # @return [Array<Google::Apis::ContainerV1beta1::OperationError>]
2830
+ attr_accessor :last_operation_errors
2831
+
2832
+ # The desired state of etcd encryption.
1923
2833
  # Corresponds to the JSON property `state`
1924
2834
  # @return [String]
1925
2835
  attr_accessor :state
@@ -1930,7 +2840,10 @@ module Google
1930
2840
 
1931
2841
  # Update properties of this object
1932
2842
  def update!(**args)
2843
+ @current_state = args[:current_state] if args.key?(:current_state)
2844
+ @decryption_keys = args[:decryption_keys] if args.key?(:decryption_keys)
1933
2845
  @key_name = args[:key_name] if args.key?(:key_name)
2846
+ @last_operation_errors = args[:last_operation_errors] if args.key?(:last_operation_errors)
1934
2847
  @state = args[:state] if args.key?(:state)
1935
2848
  end
1936
2849
  end
@@ -1997,6 +2910,25 @@ module Google
1997
2910
  end
1998
2911
  end
1999
2912
 
2913
+ # DesiredEnterpriseConfig is a wrapper used for updating enterprise_config.
2914
+ class DesiredEnterpriseConfig
2915
+ include Google::Apis::Core::Hashable
2916
+
2917
+ # desired_tier specifies the desired tier of the cluster.
2918
+ # Corresponds to the JSON property `desiredTier`
2919
+ # @return [String]
2920
+ attr_accessor :desired_tier
2921
+
2922
+ def initialize(**args)
2923
+ update!(**args)
2924
+ end
2925
+
2926
+ # Update properties of this object
2927
+ def update!(**args)
2928
+ @desired_tier = args[:desired_tier] if args.key?(:desired_tier)
2929
+ end
2930
+ end
2931
+
2000
2932
  # Configuration for NodeLocal DNSCache
2001
2933
  class DnsCacheConfig
2002
2934
  include Google::Apis::Core::Hashable
@@ -2033,14 +2965,48 @@ module Google
2033
2965
  end
2034
2966
  end
2035
2967
 
2968
+ # EnterpriseConfig is the cluster enterprise configuration.
2969
+ class EnterpriseConfig
2970
+ include Google::Apis::Core::Hashable
2971
+
2972
+ # Output only. cluster_tier indicates the effective tier of the cluster.
2973
+ # Corresponds to the JSON property `clusterTier`
2974
+ # @return [String]
2975
+ attr_accessor :cluster_tier
2976
+
2977
+ # desired_tier specifies the desired tier of the cluster.
2978
+ # Corresponds to the JSON property `desiredTier`
2979
+ # @return [String]
2980
+ attr_accessor :desired_tier
2981
+
2982
+ def initialize(**args)
2983
+ update!(**args)
2984
+ end
2985
+
2986
+ # Update properties of this object
2987
+ def update!(**args)
2988
+ @cluster_tier = args[:cluster_tier] if args.key?(:cluster_tier)
2989
+ @desired_tier = args[:desired_tier] if args.key?(:desired_tier)
2990
+ end
2991
+ end
2992
+
2036
2993
  # EphemeralStorageConfig contains configuration for the ephemeral storage
2037
2994
  # filesystem.
2038
2995
  class EphemeralStorageConfig
2039
2996
  include Google::Apis::Core::Hashable
2040
2997
 
2041
2998
  # Number of local SSDs to use to back ephemeral storage. Uses NVMe interfaces.
2042
- # Each local SSD is 375 GB in size. If zero, it means to disable using local
2043
- # SSDs as ephemeral storage.
2999
+ # The limit for this value is dependent upon the maximum number of disk
3000
+ # available on a machine per zone. See: https://cloud.google.com/compute/docs/
3001
+ # disks/local-ssd for more information. A zero (or unset) value has different
3002
+ # meanings depending on machine type being used: 1. For pre-Gen3 machines, which
3003
+ # support flexible numbers of local ssds, zero (or unset) means to disable using
3004
+ # local SSDs as ephemeral storage. 2. For Gen3 machines which dictate a specific
3005
+ # number of local ssds, zero (or unset) means to use the default number of local
3006
+ # ssds that goes with that machine type. For example, for a c3-standard-8-lssd
3007
+ # machine, 2 local ssds would be provisioned. For c3-standard-8 (which doesn't
3008
+ # support local ssds), 0 will be provisioned. See https://cloud.google.com/
3009
+ # compute/docs/disks/local-ssd#choose_number_local_ssds for more info.
2044
3010
  # Corresponds to the JSON property `localSsdCount`
2045
3011
  # @return [Fixnum]
2046
3012
  attr_accessor :local_ssd_count
@@ -2060,11 +3026,18 @@ module Google
2060
3026
  class EphemeralStorageLocalSsdConfig
2061
3027
  include Google::Apis::Core::Hashable
2062
3028
 
2063
- # Number of local SSDs to use to back ephemeral storage. Uses NVMe interfaces.
2064
- # Each local SSD is 375 GB in size. If zero, it means to disable using local
2065
- # SSDs as ephemeral storage. The limit for this value is dependent upon the
2066
- # maximum number of disks available on a machine per zone. See: https://cloud.
2067
- # google.com/compute/docs/disks/local-ssd for more information.
3029
+ # Number of local SSDs to use to back ephemeral storage. Uses NVMe interfaces. A
3030
+ # zero (or unset) value has different meanings depending on machine type being
3031
+ # used: 1. For pre-Gen3 machines, which support flexible numbers of local ssds,
3032
+ # zero (or unset) means to disable using local SSDs as ephemeral storage. The
3033
+ # limit for this value is dependent upon the maximum number of disk available on
3034
+ # a machine per zone. See: https://cloud.google.com/compute/docs/disks/local-ssd
3035
+ # for more information. 2. For Gen3 machines which dictate a specific number of
3036
+ # local ssds, zero (or unset) means to use the default number of local ssds that
3037
+ # goes with that machine type. For example, for a c3-standard-8-lssd machine, 2
3038
+ # local ssds would be provisioned. For c3-standard-8 (which doesn't support
3039
+ # local ssds), 0 will be provisioned. See https://cloud.google.com/compute/docs/
3040
+ # disks/local-ssd#choose_number_local_ssds for more info.
2068
3041
  # Corresponds to the JSON property `localSsdCount`
2069
3042
  # @return [Fixnum]
2070
3043
  attr_accessor :local_ssd_count
@@ -2121,6 +3094,83 @@ module Google
2121
3094
  end
2122
3095
  end
2123
3096
 
3097
+ # Fleet is the fleet configuration for the cluster.
3098
+ class Fleet
3099
+ include Google::Apis::Core::Hashable
3100
+
3101
+ # Output only. The full resource name of the registered fleet membership of the
3102
+ # cluster, in the format `//gkehub.googleapis.com/projects/*/locations/*/
3103
+ # memberships/*`.
3104
+ # Corresponds to the JSON property `membership`
3105
+ # @return [String]
3106
+ attr_accessor :membership
3107
+
3108
+ # Output only. Whether the cluster has been registered through the fleet API.
3109
+ # Corresponds to the JSON property `preRegistered`
3110
+ # @return [Boolean]
3111
+ attr_accessor :pre_registered
3112
+ alias_method :pre_registered?, :pre_registered
3113
+
3114
+ # The Fleet host project(project ID or project number) where this cluster will
3115
+ # be registered to. This field cannot be changed after the cluster has been
3116
+ # registered.
3117
+ # Corresponds to the JSON property `project`
3118
+ # @return [String]
3119
+ attr_accessor :project
3120
+
3121
+ def initialize(**args)
3122
+ update!(**args)
3123
+ end
3124
+
3125
+ # Update properties of this object
3126
+ def update!(**args)
3127
+ @membership = args[:membership] if args.key?(:membership)
3128
+ @pre_registered = args[:pre_registered] if args.key?(:pre_registered)
3129
+ @project = args[:project] if args.key?(:project)
3130
+ end
3131
+ end
3132
+
3133
+ # GCPSecretManagerCertificateConfig configures a secret from [Google Secret
3134
+ # Manager](https://cloud.google.com/secret-manager).
3135
+ class GcpSecretManagerCertificateConfig
3136
+ include Google::Apis::Core::Hashable
3137
+
3138
+ # Secret URI, in the form "projects/$PROJECT_ID/secrets/$SECRET_NAME/versions/$
3139
+ # VERSION". Version can be fixed (e.g. "2") or "latest"
3140
+ # Corresponds to the JSON property `secretUri`
3141
+ # @return [String]
3142
+ attr_accessor :secret_uri
3143
+
3144
+ def initialize(**args)
3145
+ update!(**args)
3146
+ end
3147
+
3148
+ # Update properties of this object
3149
+ def update!(**args)
3150
+ @secret_uri = args[:secret_uri] if args.key?(:secret_uri)
3151
+ end
3152
+ end
3153
+
3154
+ # GPUDriverInstallationConfig specifies the version of GPU driver to be auto
3155
+ # installed.
3156
+ class GpuDriverInstallationConfig
3157
+ include Google::Apis::Core::Hashable
3158
+
3159
+ # Mode for how the GPU driver is installed.
3160
+ # Corresponds to the JSON property `gpuDriverVersion`
3161
+ # @return [String]
3162
+ attr_accessor :gpu_driver_version
3163
+
3164
+ def initialize(**args)
3165
+ update!(**args)
3166
+ end
3167
+
3168
+ # Update properties of this object
3169
+ def update!(**args)
3170
+ @gpu_driver_version = args[:gpu_driver_version] if args.key?(:gpu_driver_version)
3171
+ end
3172
+ end
3173
+
2124
3174
  # GPUSharingConfig represents the GPU sharing configuration for Hardware
2125
3175
  # Accelerators.
2126
3176
  class GpuSharingConfig
@@ -2226,16 +3276,36 @@ module Google
2226
3276
  end
2227
3277
  end
2228
3278
 
2229
- # GetJSONWebKeysResponse is a valid JSON Web Key Set as specififed in rfc 7517
2230
- class GetJsonWebKeysResponse
3279
+ # Configuration for the Cloud Storage Fuse CSI driver.
3280
+ class GcsFuseCsiDriverConfig
2231
3281
  include Google::Apis::Core::Hashable
2232
3282
 
2233
- # RFC-2616: cache control support
2234
- # Corresponds to the JSON property `cacheHeader`
2235
- # @return [Google::Apis::ContainerV1beta1::HttpCacheControlResponseHeader]
2236
- attr_accessor :cache_header
2237
-
2238
- # The public component of the keys used by the cluster to sign token requests.
3283
+ # Whether the Cloud Storage Fuse CSI driver is enabled for this cluster.
3284
+ # Corresponds to the JSON property `enabled`
3285
+ # @return [Boolean]
3286
+ attr_accessor :enabled
3287
+ alias_method :enabled?, :enabled
3288
+
3289
+ def initialize(**args)
3290
+ update!(**args)
3291
+ end
3292
+
3293
+ # Update properties of this object
3294
+ def update!(**args)
3295
+ @enabled = args[:enabled] if args.key?(:enabled)
3296
+ end
3297
+ end
3298
+
3299
+ # GetJSONWebKeysResponse is a valid JSON Web Key Set as specified in rfc 7517
3300
+ class GetJsonWebKeysResponse
3301
+ include Google::Apis::Core::Hashable
3302
+
3303
+ # RFC-2616: cache control support
3304
+ # Corresponds to the JSON property `cacheHeader`
3305
+ # @return [Google::Apis::ContainerV1beta1::HttpCacheControlResponseHeader]
3306
+ attr_accessor :cache_header
3307
+
3308
+ # The public component of the keys used by the cluster to sign token requests.
2239
3309
  # Corresponds to the JSON property `keys`
2240
3310
  # @return [Array<Google::Apis::ContainerV1beta1::Jwk>]
2241
3311
  attr_accessor :keys
@@ -2356,6 +3426,32 @@ module Google
2356
3426
  end
2357
3427
  end
2358
3428
 
3429
+ # HostMaintenancePolicy contains the maintenance policy for the hosts on which
3430
+ # the GKE VMs run on.
3431
+ class HostMaintenancePolicy
3432
+ include Google::Apis::Core::Hashable
3433
+
3434
+ # Specifies the frequency of planned maintenance events.
3435
+ # Corresponds to the JSON property `maintenanceInterval`
3436
+ # @return [String]
3437
+ attr_accessor :maintenance_interval
3438
+
3439
+ # Strategy that will trigger maintenance on behalf of the customer.
3440
+ # Corresponds to the JSON property `opportunisticMaintenanceStrategy`
3441
+ # @return [Google::Apis::ContainerV1beta1::OpportunisticMaintenanceStrategy]
3442
+ attr_accessor :opportunistic_maintenance_strategy
3443
+
3444
+ def initialize(**args)
3445
+ update!(**args)
3446
+ end
3447
+
3448
+ # Update properties of this object
3449
+ def update!(**args)
3450
+ @maintenance_interval = args[:maintenance_interval] if args.key?(:maintenance_interval)
3451
+ @opportunistic_maintenance_strategy = args[:opportunistic_maintenance_strategy] if args.key?(:opportunistic_maintenance_strategy)
3452
+ end
3453
+ end
3454
+
2359
3455
  # RFC-2616: cache control support
2360
3456
  class HttpCacheControlResponseHeader
2361
3457
  include Google::Apis::Core::Hashable
@@ -2409,6 +3505,31 @@ module Google
2409
3505
  end
2410
3506
  end
2411
3507
 
3508
+ # Hugepages amount in both 2m and 1g size
3509
+ class HugepagesConfig
3510
+ include Google::Apis::Core::Hashable
3511
+
3512
+ # Optional. Amount of 1G hugepages
3513
+ # Corresponds to the JSON property `hugepageSize1g`
3514
+ # @return [Fixnum]
3515
+ attr_accessor :hugepage_size1g
3516
+
3517
+ # Optional. Amount of 2M hugepages
3518
+ # Corresponds to the JSON property `hugepageSize2m`
3519
+ # @return [Fixnum]
3520
+ attr_accessor :hugepage_size2m
3521
+
3522
+ def initialize(**args)
3523
+ update!(**args)
3524
+ end
3525
+
3526
+ # Update properties of this object
3527
+ def update!(**args)
3528
+ @hugepage_size1g = args[:hugepage_size1g] if args.key?(:hugepage_size1g)
3529
+ @hugepage_size2m = args[:hugepage_size2m] if args.key?(:hugepage_size2m)
3530
+ end
3531
+ end
3532
+
2412
3533
  # ILBSubsettingConfig contains the desired config of L4 Internal LoadBalancer
2413
3534
  # subsetting on this cluster.
2414
3535
  class IlbSubsettingConfig
@@ -2434,6 +3555,12 @@ module Google
2434
3555
  class IpAllocationPolicy
2435
3556
  include Google::Apis::Core::Hashable
2436
3557
 
3558
+ # AdditionalPodRangesConfig is the configuration for additional pod secondary
3559
+ # ranges supporting the ClusterUpdate message.
3560
+ # Corresponds to the JSON property `additionalPodRangesConfig`
3561
+ # @return [Google::Apis::ContainerV1beta1::AdditionalPodRangesConfig]
3562
+ attr_accessor :additional_pod_ranges_config
3563
+
2437
3564
  # If true, allow allocation of cluster CIDR ranges that overlap with certain
2438
3565
  # kinds of network routes. By default we do not allow cluster CIDR ranges to
2439
3566
  # intersect with any user declared routes. With allow_route_overlap == true, we
@@ -2480,6 +3607,13 @@ module Google
2480
3607
  attr_accessor :create_subnetwork
2481
3608
  alias_method :create_subnetwork?, :create_subnetwork
2482
3609
 
3610
+ # Output only. The utilization of the cluster default IPv4 range for the pod.
3611
+ # The ratio is Usage/[Total number of IPs in the secondary range], Usage=
3612
+ # numNodes*numZones*podIPsPerNode.
3613
+ # Corresponds to the JSON property `defaultPodIpv4RangeUtilization`
3614
+ # @return [Float]
3615
+ attr_accessor :default_pod_ipv4_range_utilization
3616
+
2483
3617
  # The ipv6 access type (internal or external) when create_subnetwork is true
2484
3618
  # Corresponds to the JSON property `ipv6AccessType`
2485
3619
  # @return [String]
@@ -2501,6 +3635,11 @@ module Google
2501
3635
  # @return [String]
2502
3636
  attr_accessor :node_ipv4_cidr_block
2503
3637
 
3638
+ # [PRIVATE FIELD] Config for pod CIDR size overprovisioning.
3639
+ # Corresponds to the JSON property `podCidrOverprovisionConfig`
3640
+ # @return [Google::Apis::ContainerV1beta1::PodCidrOverprovisionConfig]
3641
+ attr_accessor :pod_cidr_overprovision_config
3642
+
2504
3643
  # This field is deprecated, use services_ipv4_cidr_block.
2505
3644
  # Corresponds to the JSON property `servicesIpv4Cidr`
2506
3645
  # @return [String]
@@ -2518,7 +3657,7 @@ module Google
2518
3657
  # @return [String]
2519
3658
  attr_accessor :services_ipv4_cidr_block
2520
3659
 
2521
- # Output only. [Output only] The services IPv6 CIDR block for the cluster.
3660
+ # Output only. The services IPv6 CIDR block for the cluster.
2522
3661
  # Corresponds to the JSON property `servicesIpv6CidrBlock`
2523
3662
  # @return [String]
2524
3663
  attr_accessor :services_ipv6_cidr_block
@@ -2536,7 +3675,7 @@ module Google
2536
3675
  # @return [String]
2537
3676
  attr_accessor :stack_type
2538
3677
 
2539
- # Output only. [Output only] The subnet's IPv6 CIDR block used by nodes and pods.
3678
+ # Output only. The subnet's IPv6 CIDR block used by nodes and pods.
2540
3679
  # Corresponds to the JSON property `subnetIpv6CidrBlock`
2541
3680
  # @return [String]
2542
3681
  attr_accessor :subnet_ipv6_cidr_block
@@ -2584,14 +3723,17 @@ module Google
2584
3723
 
2585
3724
  # Update properties of this object
2586
3725
  def update!(**args)
3726
+ @additional_pod_ranges_config = args[:additional_pod_ranges_config] if args.key?(:additional_pod_ranges_config)
2587
3727
  @allow_route_overlap = args[:allow_route_overlap] if args.key?(:allow_route_overlap)
2588
3728
  @cluster_ipv4_cidr = args[:cluster_ipv4_cidr] if args.key?(:cluster_ipv4_cidr)
2589
3729
  @cluster_ipv4_cidr_block = args[:cluster_ipv4_cidr_block] if args.key?(:cluster_ipv4_cidr_block)
2590
3730
  @cluster_secondary_range_name = args[:cluster_secondary_range_name] if args.key?(:cluster_secondary_range_name)
2591
3731
  @create_subnetwork = args[:create_subnetwork] if args.key?(:create_subnetwork)
3732
+ @default_pod_ipv4_range_utilization = args[:default_pod_ipv4_range_utilization] if args.key?(:default_pod_ipv4_range_utilization)
2592
3733
  @ipv6_access_type = args[:ipv6_access_type] if args.key?(:ipv6_access_type)
2593
3734
  @node_ipv4_cidr = args[:node_ipv4_cidr] if args.key?(:node_ipv4_cidr)
2594
3735
  @node_ipv4_cidr_block = args[:node_ipv4_cidr_block] if args.key?(:node_ipv4_cidr_block)
3736
+ @pod_cidr_overprovision_config = args[:pod_cidr_overprovision_config] if args.key?(:pod_cidr_overprovision_config)
2595
3737
  @services_ipv4_cidr = args[:services_ipv4_cidr] if args.key?(:services_ipv4_cidr)
2596
3738
  @services_ipv4_cidr_block = args[:services_ipv4_cidr_block] if args.key?(:services_ipv4_cidr_block)
2597
3739
  @services_ipv6_cidr_block = args[:services_ipv6_cidr_block] if args.key?(:services_ipv6_cidr_block)
@@ -2605,6 +3747,76 @@ module Google
2605
3747
  end
2606
3748
  end
2607
3749
 
3750
+ # IP endpoints configuration.
3751
+ class IpEndpointsConfig
3752
+ include Google::Apis::Core::Hashable
3753
+
3754
+ # Configuration options for the master authorized networks feature. Enabled
3755
+ # master authorized networks will disallow all external traffic to access
3756
+ # Kubernetes master through HTTPS except traffic from the given CIDR blocks,
3757
+ # Google Compute Engine Public IPs and Google Prod IPs.
3758
+ # Corresponds to the JSON property `authorizedNetworksConfig`
3759
+ # @return [Google::Apis::ContainerV1beta1::MasterAuthorizedNetworksConfig]
3760
+ attr_accessor :authorized_networks_config
3761
+
3762
+ # Controls whether the control plane allows access through a public IP. It is
3763
+ # invalid to specify both PrivateClusterConfig.enablePrivateEndpoint and this
3764
+ # field at the same time.
3765
+ # Corresponds to the JSON property `enablePublicEndpoint`
3766
+ # @return [Boolean]
3767
+ attr_accessor :enable_public_endpoint
3768
+ alias_method :enable_public_endpoint?, :enable_public_endpoint
3769
+
3770
+ # Controls whether to allow direct IP access.
3771
+ # Corresponds to the JSON property `enabled`
3772
+ # @return [Boolean]
3773
+ attr_accessor :enabled
3774
+ alias_method :enabled?, :enabled
3775
+
3776
+ # Controls whether the control plane's private endpoint is accessible from
3777
+ # sources in other regions. It is invalid to specify both
3778
+ # PrivateClusterMasterGlobalAccessConfig.enabled and this field at the same time.
3779
+ # Corresponds to the JSON property `globalAccess`
3780
+ # @return [Boolean]
3781
+ attr_accessor :global_access
3782
+ alias_method :global_access?, :global_access
3783
+
3784
+ # Output only. The internal IP address of this cluster's control plane. Only
3785
+ # populated if enabled.
3786
+ # Corresponds to the JSON property `privateEndpoint`
3787
+ # @return [String]
3788
+ attr_accessor :private_endpoint
3789
+
3790
+ # Subnet to provision the master's private endpoint during cluster creation.
3791
+ # Specified in projects/*/regions/*/subnetworks/* format. It is invalid to
3792
+ # specify both PrivateClusterConfig.privateEndpointSubnetwork and this field at
3793
+ # the same time.
3794
+ # Corresponds to the JSON property `privateEndpointSubnetwork`
3795
+ # @return [String]
3796
+ attr_accessor :private_endpoint_subnetwork
3797
+
3798
+ # Output only. The external IP address of this cluster's control plane. Only
3799
+ # populated if enabled.
3800
+ # Corresponds to the JSON property `publicEndpoint`
3801
+ # @return [String]
3802
+ attr_accessor :public_endpoint
3803
+
3804
+ def initialize(**args)
3805
+ update!(**args)
3806
+ end
3807
+
3808
+ # Update properties of this object
3809
+ def update!(**args)
3810
+ @authorized_networks_config = args[:authorized_networks_config] if args.key?(:authorized_networks_config)
3811
+ @enable_public_endpoint = args[:enable_public_endpoint] if args.key?(:enable_public_endpoint)
3812
+ @enabled = args[:enabled] if args.key?(:enabled)
3813
+ @global_access = args[:global_access] if args.key?(:global_access)
3814
+ @private_endpoint = args[:private_endpoint] if args.key?(:private_endpoint)
3815
+ @private_endpoint_subnetwork = args[:private_endpoint_subnetwork] if args.key?(:private_endpoint_subnetwork)
3816
+ @public_endpoint = args[:public_endpoint] if args.key?(:public_endpoint)
3817
+ end
3818
+ end
3819
+
2608
3820
  # IdentityServiceConfig is configuration for Identity Service which allows
2609
3821
  # customers to use external identity providers with the K8S API
2610
3822
  class IdentityServiceConfig
@@ -2740,6 +3952,25 @@ module Google
2740
3952
  end
2741
3953
  end
2742
3954
 
3955
+ # Kubernetes open source beta apis enabled on the cluster.
3956
+ class K8sBetaApiConfig
3957
+ include Google::Apis::Core::Hashable
3958
+
3959
+ # api name, e.g. storage.k8s.io/v1beta1/csistoragecapacities.
3960
+ # Corresponds to the JSON property `enabledApis`
3961
+ # @return [Array<String>]
3962
+ attr_accessor :enabled_apis
3963
+
3964
+ def initialize(**args)
3965
+ update!(**args)
3966
+ end
3967
+
3968
+ # Update properties of this object
3969
+ def update!(**args)
3970
+ @enabled_apis = args[:enabled_apis] if args.key?(:enabled_apis)
3971
+ end
3972
+ end
3973
+
2743
3974
  # Configuration options for the KALM addon.
2744
3975
  class KalmConfig
2745
3976
  include Google::Apis::Core::Hashable
@@ -2812,11 +4043,21 @@ module Google
2812
4043
  # @return [String]
2813
4044
  attr_accessor :cgroup_mode
2814
4045
 
4046
+ # Hugepages amount in both 2m and 1g size
4047
+ # Corresponds to the JSON property `hugepages`
4048
+ # @return [Google::Apis::ContainerV1beta1::HugepagesConfig]
4049
+ attr_accessor :hugepages
4050
+
2815
4051
  # The Linux kernel parameters to be applied to the nodes and all pods running on
2816
4052
  # the nodes. The following parameters are supported. net.core.busy_poll net.core.
2817
- # busy_read net.core.netdev_max_backlog net.core.rmem_max net.core.wmem_default
2818
- # net.core.wmem_max net.core.optmem_max net.core.somaxconn net.ipv4.tcp_rmem net.
2819
- # ipv4.tcp_wmem net.ipv4.tcp_tw_reuse
4053
+ # busy_read net.core.netdev_max_backlog net.core.rmem_max net.core.rmem_default
4054
+ # net.core.wmem_default net.core.wmem_max net.core.optmem_max net.core.somaxconn
4055
+ # net.ipv4.tcp_rmem net.ipv4.tcp_wmem net.ipv4.tcp_tw_reuse net.netfilter.
4056
+ # nf_conntrack_max net.netfilter.nf_conntrack_buckets net.netfilter.
4057
+ # nf_conntrack_tcp_timeout_close_wait net.netfilter.
4058
+ # nf_conntrack_tcp_timeout_time_wait net.netfilter.
4059
+ # nf_conntrack_tcp_timeout_established net.netfilter.nf_conntrack_acct kernel.
4060
+ # shmmni kernel.shmmax kernel.shmall vm.max_map_count
2820
4061
  # Corresponds to the JSON property `sysctls`
2821
4062
  # @return [Hash<String,String>]
2822
4063
  attr_accessor :sysctls
@@ -2828,6 +4069,7 @@ module Google
2828
4069
  # Update properties of this object
2829
4070
  def update!(**args)
2830
4071
  @cgroup_mode = args[:cgroup_mode] if args.key?(:cgroup_mode)
4072
+ @hugepages = args[:hugepages] if args.key?(:hugepages)
2831
4073
  @sysctls = args[:sysctls] if args.key?(:sysctls)
2832
4074
  end
2833
4075
  end
@@ -2965,11 +4207,18 @@ module Google
2965
4207
  class LocalNvmeSsdBlockConfig
2966
4208
  include Google::Apis::Core::Hashable
2967
4209
 
2968
- # The number of raw-block local NVMe SSD disks to be attached to the node. Each
2969
- # local SSD is 375 GB in size. If zero, it means no raw-block local NVMe SSD
2970
- # disks to be attached to the node. The limit for this value is dependent upon
2971
- # the maximum number of disks available on a machine per zone. See: https://
2972
- # cloud.google.com/compute/docs/disks/local-ssd for more information.
4210
+ # Number of local NVMe SSDs to use. The limit for this value is dependent upon
4211
+ # the maximum number of disk available on a machine per zone. See: https://cloud.
4212
+ # google.com/compute/docs/disks/local-ssd for more information. A zero (or unset)
4213
+ # value has different meanings depending on machine type being used: 1. For pre-
4214
+ # Gen3 machines, which support flexible numbers of local ssds, zero (or unset)
4215
+ # means to disable using local SSDs as ephemeral storage. 2. For Gen3 machines
4216
+ # which dictate a specific number of local ssds, zero (or unset) means to use
4217
+ # the default number of local ssds that goes with that machine type. For example,
4218
+ # for a c3-standard-8-lssd machine, 2 local ssds would be provisioned. For c3-
4219
+ # standard-8 (which doesn't support local ssds), 0 will be provisioned. See
4220
+ # https://cloud.google.com/compute/docs/disks/local-ssd#choose_number_local_ssds
4221
+ # for more info.
2973
4222
  # Corresponds to the JSON property `localSsdCount`
2974
4223
  # @return [Fixnum]
2975
4224
  attr_accessor :local_ssd_count
@@ -3160,6 +4409,12 @@ module Google
3160
4409
  class ManagedPrometheusConfig
3161
4410
  include Google::Apis::Core::Hashable
3162
4411
 
4412
+ # AutoMonitoringConfig defines the configuration for GKE Workload Auto-
4413
+ # Monitoring.
4414
+ # Corresponds to the JSON property `autoMonitoringConfig`
4415
+ # @return [Google::Apis::ContainerV1beta1::AutoMonitoringConfig]
4416
+ attr_accessor :auto_monitoring_config
4417
+
3163
4418
  # Enable Managed Collection.
3164
4419
  # Corresponds to the JSON property `enabled`
3165
4420
  # @return [Boolean]
@@ -3172,6 +4427,7 @@ module Google
3172
4427
 
3173
4428
  # Update properties of this object
3174
4429
  def update!(**args)
4430
+ @auto_monitoring_config = args[:auto_monitoring_config] if args.key?(:auto_monitoring_config)
3175
4431
  @enabled = args[:enabled] if args.key?(:enabled)
3176
4432
  end
3177
4433
  end
@@ -3194,8 +4450,8 @@ module Google
3194
4450
  class MasterAuth
3195
4451
  include Google::Apis::Core::Hashable
3196
4452
 
3197
- # [Output only] Base64-encoded public certificate used by clients to
3198
- # authenticate to the cluster endpoint.
4453
+ # Output only. Base64-encoded public certificate used by clients to authenticate
4454
+ # to the cluster endpoint. Issued only if client_certificate_config is set.
3199
4455
  # Corresponds to the JSON property `clientCertificate`
3200
4456
  # @return [String]
3201
4457
  attr_accessor :client_certificate
@@ -3205,13 +4461,14 @@ module Google
3205
4461
  # @return [Google::Apis::ContainerV1beta1::ClientCertificateConfig]
3206
4462
  attr_accessor :client_certificate_config
3207
4463
 
3208
- # [Output only] Base64-encoded private key used by clients to authenticate to
3209
- # the cluster endpoint.
4464
+ # Output only. Base64-encoded private key used by clients to authenticate to the
4465
+ # cluster endpoint.
3210
4466
  # Corresponds to the JSON property `clientKey`
3211
4467
  # @return [String]
3212
4468
  attr_accessor :client_key
3213
4469
 
3214
- #
4470
+ # Output only. Base64-encoded public certificate that is the root of trust for
4471
+ # the cluster.
3215
4472
  # Corresponds to the JSON property `clusterCaCertificate`
3216
4473
  # @return [String]
3217
4474
  attr_accessor :cluster_ca_certificate
@@ -3272,12 +4529,18 @@ module Google
3272
4529
  attr_accessor :enabled
3273
4530
  alias_method :enabled?, :enabled
3274
4531
 
3275
- # Whether master is accessbile via Google Compute Engine Public IP addresses.
4532
+ # Whether master is accessible via Google Compute Engine Public IP addresses.
3276
4533
  # Corresponds to the JSON property `gcpPublicCidrsAccessEnabled`
3277
4534
  # @return [Boolean]
3278
4535
  attr_accessor :gcp_public_cidrs_access_enabled
3279
4536
  alias_method :gcp_public_cidrs_access_enabled?, :gcp_public_cidrs_access_enabled
3280
4537
 
4538
+ # Whether master authorized networks is enforced on private endpoint or not.
4539
+ # Corresponds to the JSON property `privateEndpointEnforcementEnabled`
4540
+ # @return [Boolean]
4541
+ attr_accessor :private_endpoint_enforcement_enabled
4542
+ alias_method :private_endpoint_enforcement_enabled?, :private_endpoint_enforcement_enabled
4543
+
3281
4544
  def initialize(**args)
3282
4545
  update!(**args)
3283
4546
  end
@@ -3287,6 +4550,7 @@ module Google
3287
4550
  @cidr_blocks = args[:cidr_blocks] if args.key?(:cidr_blocks)
3288
4551
  @enabled = args[:enabled] if args.key?(:enabled)
3289
4552
  @gcp_public_cidrs_access_enabled = args[:gcp_public_cidrs_access_enabled] if args.key?(:gcp_public_cidrs_access_enabled)
4553
+ @private_endpoint_enforcement_enabled = args[:private_endpoint_enforcement_enabled] if args.key?(:private_endpoint_enforcement_enabled)
3290
4554
  end
3291
4555
  end
3292
4556
 
@@ -3394,6 +4658,12 @@ module Google
3394
4658
  class MonitoringConfig
3395
4659
  include Google::Apis::Core::Hashable
3396
4660
 
4661
+ # AdvancedDatapathObservabilityConfig specifies configuration of observability
4662
+ # features of advanced datapath.
4663
+ # Corresponds to the JSON property `advancedDatapathObservabilityConfig`
4664
+ # @return [Google::Apis::ContainerV1beta1::AdvancedDatapathObservabilityConfig]
4665
+ attr_accessor :advanced_datapath_observability_config
4666
+
3397
4667
  # MonitoringComponentConfig is cluster monitoring component configuration.
3398
4668
  # Corresponds to the JSON property `componentConfig`
3399
4669
  # @return [Google::Apis::ContainerV1beta1::MonitoringComponentConfig]
@@ -3411,6 +4681,7 @@ module Google
3411
4681
 
3412
4682
  # Update properties of this object
3413
4683
  def update!(**args)
4684
+ @advanced_datapath_observability_config = args[:advanced_datapath_observability_config] if args.key?(:advanced_datapath_observability_config)
3414
4685
  @component_config = args[:component_config] if args.key?(:component_config)
3415
4686
  @managed_prometheus_config = args[:managed_prometheus_config] if args.key?(:managed_prometheus_config)
3416
4687
  end
@@ -3426,17 +4697,44 @@ module Google
3426
4697
  # @return [String]
3427
4698
  attr_accessor :datapath_provider
3428
4699
 
4700
+ # Controls whether by default nodes have private IP addresses only. It is
4701
+ # invalid to specify both PrivateClusterConfig.enablePrivateNodes and this field
4702
+ # at the same time. To update the default setting, use ClusterUpdate.
4703
+ # desired_default_enable_private_nodes
4704
+ # Corresponds to the JSON property `defaultEnablePrivateNodes`
4705
+ # @return [Boolean]
4706
+ attr_accessor :default_enable_private_nodes
4707
+ alias_method :default_enable_private_nodes?, :default_enable_private_nodes
4708
+
3429
4709
  # DefaultSnatStatus contains the desired state of whether default sNAT should be
3430
4710
  # disabled on the cluster.
3431
4711
  # Corresponds to the JSON property `defaultSnatStatus`
3432
4712
  # @return [Google::Apis::ContainerV1beta1::DefaultSnatStatus]
3433
4713
  attr_accessor :default_snat_status
3434
4714
 
4715
+ # Disable L4 load balancer VPC firewalls to enable firewall policies.
4716
+ # Corresponds to the JSON property `disableL4LbFirewallReconciliation`
4717
+ # @return [Boolean]
4718
+ attr_accessor :disable_l4_lb_firewall_reconciliation
4719
+ alias_method :disable_l4_lb_firewall_reconciliation?, :disable_l4_lb_firewall_reconciliation
4720
+
3435
4721
  # DNSConfig contains the desired set of options for configuring clusterDNS.
3436
4722
  # Corresponds to the JSON property `dnsConfig`
3437
4723
  # @return [Google::Apis::ContainerV1beta1::DnsConfig]
3438
4724
  attr_accessor :dns_config
3439
4725
 
4726
+ # Whether CiliumClusterWideNetworkPolicy is enabled on this cluster.
4727
+ # Corresponds to the JSON property `enableCiliumClusterwideNetworkPolicy`
4728
+ # @return [Boolean]
4729
+ attr_accessor :enable_cilium_clusterwide_network_policy
4730
+ alias_method :enable_cilium_clusterwide_network_policy?, :enable_cilium_clusterwide_network_policy
4731
+
4732
+ # Whether FQDN Network Policy is enabled on this cluster.
4733
+ # Corresponds to the JSON property `enableFqdnNetworkPolicy`
4734
+ # @return [Boolean]
4735
+ attr_accessor :enable_fqdn_network_policy
4736
+ alias_method :enable_fqdn_network_policy?, :enable_fqdn_network_policy
4737
+
3440
4738
  # Whether Intra-node visibility is enabled for this cluster. This makes same
3441
4739
  # node pod to pod traffic visible for VPC network.
3442
4740
  # Corresponds to the JSON property `enableIntraNodeVisibility`
@@ -3450,18 +4748,34 @@ module Google
3450
4748
  attr_accessor :enable_l4ilb_subsetting
3451
4749
  alias_method :enable_l4ilb_subsetting?, :enable_l4ilb_subsetting
3452
4750
 
4751
+ # Whether multi-networking is enabled for this cluster.
4752
+ # Corresponds to the JSON property `enableMultiNetworking`
4753
+ # @return [Boolean]
4754
+ attr_accessor :enable_multi_networking
4755
+ alias_method :enable_multi_networking?, :enable_multi_networking
4756
+
3453
4757
  # GatewayAPIConfig contains the desired config of Gateway API on this cluster.
3454
4758
  # Corresponds to the JSON property `gatewayApiConfig`
3455
4759
  # @return [Google::Apis::ContainerV1beta1::GatewayApiConfig]
3456
4760
  attr_accessor :gateway_api_config
3457
4761
 
3458
- # Output only. The relative name of the Google Compute Engine network(https://
4762
+ # Specify the details of in-transit encryption.
4763
+ # Corresponds to the JSON property `inTransitEncryptionConfig`
4764
+ # @return [String]
4765
+ attr_accessor :in_transit_encryption_config
4766
+
4767
+ # Output only. The relative name of the Google Compute Engine [network](https://
3459
4768
  # cloud.google.com/compute/docs/networks-and-firewalls#networks) to which the
3460
4769
  # cluster is connected. Example: projects/my-project/global/networks/my-network
3461
4770
  # Corresponds to the JSON property `network`
3462
4771
  # @return [String]
3463
4772
  attr_accessor :network
3464
4773
 
4774
+ # Configuration of all network bandwidth tiers
4775
+ # Corresponds to the JSON property `networkPerformanceConfig`
4776
+ # @return [Google::Apis::ContainerV1beta1::ClusterNetworkPerformanceConfig]
4777
+ attr_accessor :network_performance_config
4778
+
3465
4779
  # The desired state of IPv6 connectivity to Google Services. By default, no
3466
4780
  # private IPv6 access to or from Google Services (all access will be via IPv4)
3467
4781
  # Corresponds to the JSON property `privateIpv6GoogleAccess`
@@ -3487,12 +4801,19 @@ module Google
3487
4801
  # Update properties of this object
3488
4802
  def update!(**args)
3489
4803
  @datapath_provider = args[:datapath_provider] if args.key?(:datapath_provider)
4804
+ @default_enable_private_nodes = args[:default_enable_private_nodes] if args.key?(:default_enable_private_nodes)
3490
4805
  @default_snat_status = args[:default_snat_status] if args.key?(:default_snat_status)
4806
+ @disable_l4_lb_firewall_reconciliation = args[:disable_l4_lb_firewall_reconciliation] if args.key?(:disable_l4_lb_firewall_reconciliation)
3491
4807
  @dns_config = args[:dns_config] if args.key?(:dns_config)
4808
+ @enable_cilium_clusterwide_network_policy = args[:enable_cilium_clusterwide_network_policy] if args.key?(:enable_cilium_clusterwide_network_policy)
4809
+ @enable_fqdn_network_policy = args[:enable_fqdn_network_policy] if args.key?(:enable_fqdn_network_policy)
3492
4810
  @enable_intra_node_visibility = args[:enable_intra_node_visibility] if args.key?(:enable_intra_node_visibility)
3493
4811
  @enable_l4ilb_subsetting = args[:enable_l4ilb_subsetting] if args.key?(:enable_l4ilb_subsetting)
4812
+ @enable_multi_networking = args[:enable_multi_networking] if args.key?(:enable_multi_networking)
3494
4813
  @gateway_api_config = args[:gateway_api_config] if args.key?(:gateway_api_config)
4814
+ @in_transit_encryption_config = args[:in_transit_encryption_config] if args.key?(:in_transit_encryption_config)
3495
4815
  @network = args[:network] if args.key?(:network)
4816
+ @network_performance_config = args[:network_performance_config] if args.key?(:network_performance_config)
3496
4817
  @private_ipv6_google_access = args[:private_ipv6_google_access] if args.key?(:private_ipv6_google_access)
3497
4818
  @service_external_ips_config = args[:service_external_ips_config] if args.key?(:service_external_ips_config)
3498
4819
  @subnetwork = args[:subnetwork] if args.key?(:subnetwork)
@@ -3595,6 +4916,39 @@ module Google
3595
4916
  end
3596
4917
  end
3597
4918
 
4919
+ # Specifies the NodeAffinity key, values, and affinity operator according to [
4920
+ # shared sole tenant node group affinities](https://cloud.google.com/compute/
4921
+ # docs/nodes/sole-tenant-nodes#node_affinity_and_anti-affinity).
4922
+ class NodeAffinity
4923
+ include Google::Apis::Core::Hashable
4924
+
4925
+ # Key for NodeAffinity.
4926
+ # Corresponds to the JSON property `key`
4927
+ # @return [String]
4928
+ attr_accessor :key
4929
+
4930
+ # Operator for NodeAffinity.
4931
+ # Corresponds to the JSON property `operator`
4932
+ # @return [String]
4933
+ attr_accessor :operator
4934
+
4935
+ # Values for NodeAffinity.
4936
+ # Corresponds to the JSON property `values`
4937
+ # @return [Array<String>]
4938
+ attr_accessor :values
4939
+
4940
+ def initialize(**args)
4941
+ update!(**args)
4942
+ end
4943
+
4944
+ # Update properties of this object
4945
+ def update!(**args)
4946
+ @key = args[:key] if args.key?(:key)
4947
+ @operator = args[:operator] if args.key?(:operator)
4948
+ @values = args[:values] if args.key?(:values)
4949
+ end
4950
+ end
4951
+
3598
4952
  # Parameters that describe the nodes in a cluster. GKE Autopilot clusters do not
3599
4953
  # recognize parameters in `NodeConfig`. Use AutoprovisioningNodePoolDefaults
3600
4954
  # instead.
@@ -3627,8 +4981,14 @@ module Google
3627
4981
  # @return [Google::Apis::ContainerV1beta1::ConfidentialNodes]
3628
4982
  attr_accessor :confidential_nodes
3629
4983
 
4984
+ # ContainerdConfig contains configuration to customize containerd.
4985
+ # Corresponds to the JSON property `containerdConfig`
4986
+ # @return [Google::Apis::ContainerV1beta1::ContainerdConfig]
4987
+ attr_accessor :containerd_config
4988
+
3630
4989
  # Size of the disk attached to each node, specified in GB. The smallest allowed
3631
- # disk size is 10GB. If unspecified, the default disk size is 100GB.
4990
+ # disk size is 10GB. TODO(b/395671893) - Deprecate disk_size_gb and disk_type
4991
+ # fields. If unspecified, the default disk size is 100GB.
3632
4992
  # Corresponds to the JSON property `diskSizeGb`
3633
4993
  # @return [Fixnum]
3634
4994
  attr_accessor :disk_size_gb
@@ -3639,6 +4999,20 @@ module Google
3639
4999
  # @return [String]
3640
5000
  attr_accessor :disk_type
3641
5001
 
5002
+ # Output only. effective_cgroup_mode is the cgroup mode actually used by the
5003
+ # node pool. It is determined by the cgroup mode specified in the
5004
+ # LinuxNodeConfig or the default cgroup mode based on the cluster creation
5005
+ # version.
5006
+ # Corresponds to the JSON property `effectiveCgroupMode`
5007
+ # @return [String]
5008
+ attr_accessor :effective_cgroup_mode
5009
+
5010
+ # Optional. Reserved for future use.
5011
+ # Corresponds to the JSON property `enableConfidentialStorage`
5012
+ # @return [Boolean]
5013
+ attr_accessor :enable_confidential_storage
5014
+ alias_method :enable_confidential_storage?, :enable_confidential_storage
5015
+
3642
5016
  # EphemeralStorageConfig contains configuration for the ephemeral storage
3643
5017
  # filesystem.
3644
5018
  # Corresponds to the JSON property `ephemeralStorageConfig`
@@ -3666,8 +5040,15 @@ module Google
3666
5040
  # @return [Google::Apis::ContainerV1beta1::VirtualNic]
3667
5041
  attr_accessor :gvnic
3668
5042
 
5043
+ # HostMaintenancePolicy contains the maintenance policy for the hosts on which
5044
+ # the GKE VMs run on.
5045
+ # Corresponds to the JSON property `hostMaintenancePolicy`
5046
+ # @return [Google::Apis::ContainerV1beta1::HostMaintenancePolicy]
5047
+ attr_accessor :host_maintenance_policy
5048
+
3669
5049
  # The image type to use for this node. Note that for a given image type, the
3670
- # latest version of it will be used.
5050
+ # latest version of it will be used. Please see https://cloud.google.com/
5051
+ # kubernetes-engine/docs/concepts/node-images for available image types.
3671
5052
  # Corresponds to the JSON property `imageType`
3672
5053
  # @return [String]
3673
5054
  attr_accessor :image_type
@@ -3707,6 +5088,12 @@ module Google
3707
5088
  # @return [Fixnum]
3708
5089
  attr_accessor :local_ssd_count
3709
5090
 
5091
+ # Specifies which method should be used for encrypting the Local SSDs attached
5092
+ # to the node.
5093
+ # Corresponds to the JSON property `localSsdEncryptionMode`
5094
+ # @return [String]
5095
+ attr_accessor :local_ssd_encryption_mode
5096
+
3710
5097
  # NodePoolLoggingConfig specifies logging configuration for nodepools.
3711
5098
  # Corresponds to the JSON property `loggingConfig`
3712
5099
  # @return [Google::Apis::ContainerV1beta1::NodePoolLoggingConfig]
@@ -3719,6 +5106,12 @@ module Google
3719
5106
  # @return [String]
3720
5107
  attr_accessor :machine_type
3721
5108
 
5109
+ # The maximum duration for the nodes to exist. If unspecified, the nodes can
5110
+ # exist indefinitely.
5111
+ # Corresponds to the JSON property `maxRunDuration`
5112
+ # @return [String]
5113
+ attr_accessor :max_run_duration
5114
+
3722
5115
  # The metadata key/value pairs assigned to instances in the cluster. Keys must
3723
5116
  # conform to the regexp `[a-zA-Z0-9-_]+` and be less than 128 bytes in length.
3724
5117
  # These are reflected as part of a URL in the metadata server. Additionally, to
@@ -3768,7 +5161,7 @@ module Google
3768
5161
  attr_accessor :oauth_scopes
3769
5162
 
3770
5163
  # Whether the nodes are created as preemptible VM instances. See: https://cloud.
3771
- # google.com/compute/docs/instances/preemptible for more inforamtion about
5164
+ # google.com/compute/docs/instances/preemptible for more information about
3772
5165
  # preemptible VM instances.
3773
5166
  # Corresponds to the JSON property `preemptible`
3774
5167
  # @return [Boolean]
@@ -3788,11 +5181,31 @@ module Google
3788
5181
  # @return [Hash<String,String>]
3789
5182
  attr_accessor :resource_labels
3790
5183
 
5184
+ # A map of resource manager tag keys and values to be attached to the nodes for
5185
+ # managing Compute Engine firewalls using Network Firewall Policies. Tags must
5186
+ # be according to specifications in https://cloud.google.com/vpc/docs/tags-
5187
+ # firewalls-overview#specifications. A maximum of 5 tag key-value pairs can be
5188
+ # specified. Existing tags will be replaced with new values.
5189
+ # Corresponds to the JSON property `resourceManagerTags`
5190
+ # @return [Google::Apis::ContainerV1beta1::ResourceManagerTags]
5191
+ attr_accessor :resource_manager_tags
5192
+
3791
5193
  # SandboxConfig contains configurations of the sandbox to use for the node.
3792
5194
  # Corresponds to the JSON property `sandboxConfig`
3793
5195
  # @return [Google::Apis::ContainerV1beta1::SandboxConfig]
3794
5196
  attr_accessor :sandbox_config
3795
5197
 
5198
+ # SecondaryBootDiskUpdateStrategy is a placeholder which will be extended in the
5199
+ # future to define different options for updating secondary boot disks.
5200
+ # Corresponds to the JSON property `secondaryBootDiskUpdateStrategy`
5201
+ # @return [Google::Apis::ContainerV1beta1::SecondaryBootDiskUpdateStrategy]
5202
+ attr_accessor :secondary_boot_disk_update_strategy
5203
+
5204
+ # List of secondary boot disks attached to the nodes.
5205
+ # Corresponds to the JSON property `secondaryBootDisks`
5206
+ # @return [Array<Google::Apis::ContainerV1beta1::SecondaryBootDisk>]
5207
+ attr_accessor :secondary_boot_disks
5208
+
3796
5209
  # The Google Cloud Platform Service Account to be used by the node VMs. Specify
3797
5210
  # the email address of the Service Account; otherwise, if no Service Account is
3798
5211
  # specified, the "default" service account is used.
@@ -3805,6 +5218,12 @@ module Google
3805
5218
  # @return [Google::Apis::ContainerV1beta1::ShieldedInstanceConfig]
3806
5219
  attr_accessor :shielded_instance_config
3807
5220
 
5221
+ # SoleTenantConfig contains the NodeAffinities to specify what shared sole
5222
+ # tenant node groups should back the node pool.
5223
+ # Corresponds to the JSON property `soleTenantConfig`
5224
+ # @return [Google::Apis::ContainerV1beta1::SoleTenantConfig]
5225
+ attr_accessor :sole_tenant_config
5226
+
3808
5227
  # Spot flag for enabling Spot VM, which is a rebrand of the existing preemptible
3809
5228
  # flag.
3810
5229
  # Corresponds to the JSON property `spot`
@@ -3812,6 +5231,11 @@ module Google
3812
5231
  attr_accessor :spot
3813
5232
  alias_method :spot?, :spot
3814
5233
 
5234
+ # List of Storage Pools where boot disks are provisioned.
5235
+ # Corresponds to the JSON property `storagePools`
5236
+ # @return [Array<String>]
5237
+ attr_accessor :storage_pools
5238
+
3815
5239
  # The list of instance tags applied to all nodes. Tags are used to identify
3816
5240
  # valid sources or targets for network firewalls and are specified by the client
3817
5241
  # during cluster or node pool creation. Each tag within the list must comply
@@ -3829,7 +5253,7 @@ module Google
3829
5253
 
3830
5254
  # Parameters that can be configured on Windows nodes. Windows Node Config that
3831
5255
  # define the parameters that will be used to configure the Windows node pool
3832
- # settings
5256
+ # settings.
3833
5257
  # Corresponds to the JSON property `windowsNodeConfig`
3834
5258
  # @return [Google::Apis::ContainerV1beta1::WindowsNodeConfig]
3835
5259
  attr_accessor :windows_node_config
@@ -3850,21 +5274,27 @@ module Google
3850
5274
  @advanced_machine_features = args[:advanced_machine_features] if args.key?(:advanced_machine_features)
3851
5275
  @boot_disk_kms_key = args[:boot_disk_kms_key] if args.key?(:boot_disk_kms_key)
3852
5276
  @confidential_nodes = args[:confidential_nodes] if args.key?(:confidential_nodes)
5277
+ @containerd_config = args[:containerd_config] if args.key?(:containerd_config)
3853
5278
  @disk_size_gb = args[:disk_size_gb] if args.key?(:disk_size_gb)
3854
5279
  @disk_type = args[:disk_type] if args.key?(:disk_type)
5280
+ @effective_cgroup_mode = args[:effective_cgroup_mode] if args.key?(:effective_cgroup_mode)
5281
+ @enable_confidential_storage = args[:enable_confidential_storage] if args.key?(:enable_confidential_storage)
3855
5282
  @ephemeral_storage_config = args[:ephemeral_storage_config] if args.key?(:ephemeral_storage_config)
3856
5283
  @ephemeral_storage_local_ssd_config = args[:ephemeral_storage_local_ssd_config] if args.key?(:ephemeral_storage_local_ssd_config)
3857
5284
  @fast_socket = args[:fast_socket] if args.key?(:fast_socket)
3858
5285
  @gcfs_config = args[:gcfs_config] if args.key?(:gcfs_config)
3859
5286
  @gvnic = args[:gvnic] if args.key?(:gvnic)
5287
+ @host_maintenance_policy = args[:host_maintenance_policy] if args.key?(:host_maintenance_policy)
3860
5288
  @image_type = args[:image_type] if args.key?(:image_type)
3861
5289
  @kubelet_config = args[:kubelet_config] if args.key?(:kubelet_config)
3862
5290
  @labels = args[:labels] if args.key?(:labels)
3863
5291
  @linux_node_config = args[:linux_node_config] if args.key?(:linux_node_config)
3864
5292
  @local_nvme_ssd_block_config = args[:local_nvme_ssd_block_config] if args.key?(:local_nvme_ssd_block_config)
3865
5293
  @local_ssd_count = args[:local_ssd_count] if args.key?(:local_ssd_count)
5294
+ @local_ssd_encryption_mode = args[:local_ssd_encryption_mode] if args.key?(:local_ssd_encryption_mode)
3866
5295
  @logging_config = args[:logging_config] if args.key?(:logging_config)
3867
5296
  @machine_type = args[:machine_type] if args.key?(:machine_type)
5297
+ @max_run_duration = args[:max_run_duration] if args.key?(:max_run_duration)
3868
5298
  @metadata = args[:metadata] if args.key?(:metadata)
3869
5299
  @min_cpu_platform = args[:min_cpu_platform] if args.key?(:min_cpu_platform)
3870
5300
  @node_group = args[:node_group] if args.key?(:node_group)
@@ -3872,10 +5302,15 @@ module Google
3872
5302
  @preemptible = args[:preemptible] if args.key?(:preemptible)
3873
5303
  @reservation_affinity = args[:reservation_affinity] if args.key?(:reservation_affinity)
3874
5304
  @resource_labels = args[:resource_labels] if args.key?(:resource_labels)
5305
+ @resource_manager_tags = args[:resource_manager_tags] if args.key?(:resource_manager_tags)
3875
5306
  @sandbox_config = args[:sandbox_config] if args.key?(:sandbox_config)
5307
+ @secondary_boot_disk_update_strategy = args[:secondary_boot_disk_update_strategy] if args.key?(:secondary_boot_disk_update_strategy)
5308
+ @secondary_boot_disks = args[:secondary_boot_disks] if args.key?(:secondary_boot_disks)
3876
5309
  @service_account = args[:service_account] if args.key?(:service_account)
3877
5310
  @shielded_instance_config = args[:shielded_instance_config] if args.key?(:shielded_instance_config)
5311
+ @sole_tenant_config = args[:sole_tenant_config] if args.key?(:sole_tenant_config)
3878
5312
  @spot = args[:spot] if args.key?(:spot)
5313
+ @storage_pools = args[:storage_pools] if args.key?(:storage_pools)
3879
5314
  @tags = args[:tags] if args.key?(:tags)
3880
5315
  @taints = args[:taints] if args.key?(:taints)
3881
5316
  @windows_node_config = args[:windows_node_config] if args.key?(:windows_node_config)
@@ -3887,24 +5322,43 @@ module Google
3887
5322
  class NodeConfigDefaults
3888
5323
  include Google::Apis::Core::Hashable
3889
5324
 
5325
+ # ContainerdConfig contains configuration to customize containerd.
5326
+ # Corresponds to the JSON property `containerdConfig`
5327
+ # @return [Google::Apis::ContainerV1beta1::ContainerdConfig]
5328
+ attr_accessor :containerd_config
5329
+
3890
5330
  # GcfsConfig contains configurations of Google Container File System.
3891
5331
  # Corresponds to the JSON property `gcfsConfig`
3892
5332
  # @return [Google::Apis::ContainerV1beta1::GcfsConfig]
3893
5333
  attr_accessor :gcfs_config
3894
5334
 
5335
+ # HostMaintenancePolicy contains the maintenance policy for the hosts on which
5336
+ # the GKE VMs run on.
5337
+ # Corresponds to the JSON property `hostMaintenancePolicy`
5338
+ # @return [Google::Apis::ContainerV1beta1::HostMaintenancePolicy]
5339
+ attr_accessor :host_maintenance_policy
5340
+
3895
5341
  # NodePoolLoggingConfig specifies logging configuration for nodepools.
3896
5342
  # Corresponds to the JSON property `loggingConfig`
3897
5343
  # @return [Google::Apis::ContainerV1beta1::NodePoolLoggingConfig]
3898
5344
  attr_accessor :logging_config
3899
5345
 
5346
+ # Node kubelet configs.
5347
+ # Corresponds to the JSON property `nodeKubeletConfig`
5348
+ # @return [Google::Apis::ContainerV1beta1::NodeKubeletConfig]
5349
+ attr_accessor :node_kubelet_config
5350
+
3900
5351
  def initialize(**args)
3901
5352
  update!(**args)
3902
5353
  end
3903
5354
 
3904
5355
  # Update properties of this object
3905
5356
  def update!(**args)
5357
+ @containerd_config = args[:containerd_config] if args.key?(:containerd_config)
3906
5358
  @gcfs_config = args[:gcfs_config] if args.key?(:gcfs_config)
5359
+ @host_maintenance_policy = args[:host_maintenance_policy] if args.key?(:host_maintenance_policy)
3907
5360
  @logging_config = args[:logging_config] if args.key?(:logging_config)
5361
+ @node_kubelet_config = args[:node_kubelet_config] if args.key?(:node_kubelet_config)
3908
5362
  end
3909
5363
  end
3910
5364
 
@@ -3912,6 +5366,37 @@ module Google
3912
5366
  class NodeKubeletConfig
3913
5367
  include Google::Apis::Core::Hashable
3914
5368
 
5369
+ # Optional. Defines a comma-separated allowlist of unsafe sysctls or sysctl
5370
+ # patterns (ending in `*`). The unsafe namespaced sysctl groups are `kernel.shm*`
5371
+ # , `kernel.msg*`, `kernel.sem`, `fs.mqueue.*`, and `net.*`. Leaving this
5372
+ # allowlist empty means they cannot be set on Pods. To allow certain sysctls or
5373
+ # sysctl patterns to be set on Pods, list them separated by commas. For example:
5374
+ # `kernel.msg*,net.ipv4.route.min_pmtu`. See https://kubernetes.io/docs/tasks/
5375
+ # administer-cluster/sysctl-cluster/ for more details.
5376
+ # Corresponds to the JSON property `allowedUnsafeSysctls`
5377
+ # @return [Array<String>]
5378
+ attr_accessor :allowed_unsafe_sysctls
5379
+
5380
+ # Optional. Defines the maximum number of container log files that can be
5381
+ # present for a container. See https://kubernetes.io/docs/concepts/cluster-
5382
+ # administration/logging/#log-rotation The value must be an integer between 2
5383
+ # and 10, inclusive. The default value is 5 if unspecified.
5384
+ # Corresponds to the JSON property `containerLogMaxFiles`
5385
+ # @return [Fixnum]
5386
+ attr_accessor :container_log_max_files
5387
+
5388
+ # Optional. Defines the maximum size of the container log file before it is
5389
+ # rotated. See https://kubernetes.io/docs/concepts/cluster-administration/
5390
+ # logging/#log-rotation Valid format is positive number + unit, e.g. 100Ki, 10Mi.
5391
+ # Valid units are Ki, Mi, Gi. The value must be between 10Mi and 500Mi,
5392
+ # inclusive. Note that the total container log size (container_log_max_size *
5393
+ # container_log_max_files) cannot exceed 1% of the total storage of the node, to
5394
+ # avoid disk pressure caused by log files. The default value is 10Mi if
5395
+ # unspecified.
5396
+ # Corresponds to the JSON property `containerLogMaxSize`
5397
+ # @return [String]
5398
+ attr_accessor :container_log_max_size
5399
+
3915
5400
  # Enable CPU CFS quota enforcement for containers that specify CPU limits. This
3916
5401
  # option is enabled by default which makes kubelet use CFS quota (https://www.
3917
5402
  # kernel.org/doc/Documentation/scheduler/sched-bwc.txt) to enforce container CPU
@@ -3942,6 +5427,50 @@ module Google
3942
5427
  # @return [String]
3943
5428
  attr_accessor :cpu_manager_policy
3944
5429
 
5430
+ # Optional. Defines the percent of disk usage after which image garbage
5431
+ # collection is always run. The percent is calculated as this field value out of
5432
+ # 100. The value must be between 10 and 85, inclusive and greater than
5433
+ # image_gc_low_threshold_percent. The default value is 85 if unspecified.
5434
+ # Corresponds to the JSON property `imageGcHighThresholdPercent`
5435
+ # @return [Fixnum]
5436
+ attr_accessor :image_gc_high_threshold_percent
5437
+
5438
+ # Optional. Defines the percent of disk usage before which image garbage
5439
+ # collection is never run. Lowest disk usage to garbage collect to. The percent
5440
+ # is calculated as this field value out of 100. The value must be between 10 and
5441
+ # 85, inclusive and smaller than image_gc_high_threshold_percent. The default
5442
+ # value is 80 if unspecified.
5443
+ # Corresponds to the JSON property `imageGcLowThresholdPercent`
5444
+ # @return [Fixnum]
5445
+ attr_accessor :image_gc_low_threshold_percent
5446
+
5447
+ # Optional. Defines the maximum age an image can be unused before it is garbage
5448
+ # collected. The string must be a sequence of decimal numbers, each with
5449
+ # optional fraction and a unit suffix, such as "300s", "1.5h", and "2h45m".
5450
+ # Valid time units are "ns", "us" (or "µs"), "ms", "s", "m", "h". The value must
5451
+ # be a positive duration greater than image_minimum_gc_age or "0s". The default
5452
+ # value is "0s" if unspecified, which disables this field, meaning images won't
5453
+ # be garbage collected based on being unused for too long.
5454
+ # Corresponds to the JSON property `imageMaximumGcAge`
5455
+ # @return [String]
5456
+ attr_accessor :image_maximum_gc_age
5457
+
5458
+ # Optional. Defines the minimum age for an unused image before it is garbage
5459
+ # collected. The string must be a sequence of decimal numbers, each with
5460
+ # optional fraction and a unit suffix, such as "300s", "1.5h", and "2h45m".
5461
+ # Valid time units are "ns", "us" (or "µs"), "ms", "s", "m", "h". The value must
5462
+ # be a positive duration less than or equal to 2 minutes. The default value is "
5463
+ # 2m0s" if unspecified.
5464
+ # Corresponds to the JSON property `imageMinimumGcAge`
5465
+ # @return [String]
5466
+ attr_accessor :image_minimum_gc_age
5467
+
5468
+ # Enable or disable Kubelet read only port.
5469
+ # Corresponds to the JSON property `insecureKubeletReadonlyPortEnabled`
5470
+ # @return [Boolean]
5471
+ attr_accessor :insecure_kubelet_readonly_port_enabled
5472
+ alias_method :insecure_kubelet_readonly_port_enabled?, :insecure_kubelet_readonly_port_enabled
5473
+
3945
5474
  # Set the Pod PID limits. See https://kubernetes.io/docs/concepts/policy/pid-
3946
5475
  # limiting/#pod-pid-limits Controls the maximum number of processes allowed to
3947
5476
  # run in a pod. The value must be greater than or equal to 1024 and less than
@@ -3956,9 +5485,17 @@ module Google
3956
5485
 
3957
5486
  # Update properties of this object
3958
5487
  def update!(**args)
5488
+ @allowed_unsafe_sysctls = args[:allowed_unsafe_sysctls] if args.key?(:allowed_unsafe_sysctls)
5489
+ @container_log_max_files = args[:container_log_max_files] if args.key?(:container_log_max_files)
5490
+ @container_log_max_size = args[:container_log_max_size] if args.key?(:container_log_max_size)
3959
5491
  @cpu_cfs_quota = args[:cpu_cfs_quota] if args.key?(:cpu_cfs_quota)
3960
5492
  @cpu_cfs_quota_period = args[:cpu_cfs_quota_period] if args.key?(:cpu_cfs_quota_period)
3961
5493
  @cpu_manager_policy = args[:cpu_manager_policy] if args.key?(:cpu_manager_policy)
5494
+ @image_gc_high_threshold_percent = args[:image_gc_high_threshold_percent] if args.key?(:image_gc_high_threshold_percent)
5495
+ @image_gc_low_threshold_percent = args[:image_gc_low_threshold_percent] if args.key?(:image_gc_low_threshold_percent)
5496
+ @image_maximum_gc_age = args[:image_maximum_gc_age] if args.key?(:image_maximum_gc_age)
5497
+ @image_minimum_gc_age = args[:image_minimum_gc_age] if args.key?(:image_minimum_gc_age)
5498
+ @insecure_kubelet_readonly_port_enabled = args[:insecure_kubelet_readonly_port_enabled] if args.key?(:insecure_kubelet_readonly_port_enabled)
3962
5499
  @pod_pids_limit = args[:pod_pids_limit] if args.key?(:pod_pids_limit)
3963
5500
  end
3964
5501
  end
@@ -4022,6 +5559,18 @@ module Google
4022
5559
  class NodeNetworkConfig
4023
5560
  include Google::Apis::Core::Hashable
4024
5561
 
5562
+ # We specify the additional node networks for this node pool using this list.
5563
+ # Each node network corresponds to an additional interface
5564
+ # Corresponds to the JSON property `additionalNodeNetworkConfigs`
5565
+ # @return [Array<Google::Apis::ContainerV1beta1::AdditionalNodeNetworkConfig>]
5566
+ attr_accessor :additional_node_network_configs
5567
+
5568
+ # We specify the additional pod networks for this node pool using this list.
5569
+ # Each pod network corresponds to an additional alias IP range for the node
5570
+ # Corresponds to the JSON property `additionalPodNetworkConfigs`
5571
+ # @return [Array<Google::Apis::ContainerV1beta1::AdditionalPodNetworkConfig>]
5572
+ attr_accessor :additional_pod_network_configs
5573
+
4025
5574
  # Input only. Whether to create a new range for pod IPs in this node pool.
4026
5575
  # Defaults are provided for `pod_range` and `pod_ipv4_cidr_block` if they are
4027
5576
  # not specified. If neither `create_pod_range` or `pod_range` are specified, the
@@ -4034,8 +5583,8 @@ module Google
4034
5583
  alias_method :create_pod_range?, :create_pod_range
4035
5584
 
4036
5585
  # Whether nodes have internal IP addresses only. If enable_private_nodes is not
4037
- # specified, then the value is derived from cluster.privateClusterConfig.
4038
- # enablePrivateNodes
5586
+ # specified, then the value is derived from Cluster.NetworkConfig.
5587
+ # default_enable_private_nodes
4039
5588
  # Corresponds to the JSON property `enablePrivateNodes`
4040
5589
  # @return [Boolean]
4041
5590
  attr_accessor :enable_private_nodes
@@ -4046,6 +5595,11 @@ module Google
4046
5595
  # @return [Google::Apis::ContainerV1beta1::NetworkPerformanceConfig]
4047
5596
  attr_accessor :network_performance_config
4048
5597
 
5598
+ # [PRIVATE FIELD] Config for pod CIDR size overprovisioning.
5599
+ # Corresponds to the JSON property `podCidrOverprovisionConfig`
5600
+ # @return [Google::Apis::ContainerV1beta1::PodCidrOverprovisionConfig]
5601
+ attr_accessor :pod_cidr_overprovision_config
5602
+
4049
5603
  # The IP address range for pod IPs in this node pool. Only applicable if `
4050
5604
  # create_pod_range` is true. Set to blank to have a range chosen with the
4051
5605
  # default size. Set to /netmask (e.g. `/14`) to have a range chosen with a
@@ -4057,6 +5611,13 @@ module Google
4057
5611
  # @return [String]
4058
5612
  attr_accessor :pod_ipv4_cidr_block
4059
5613
 
5614
+ # Output only. The utilization of the IPv4 range for the pod. The ratio is Usage/
5615
+ # [Total number of IPs in the secondary range], Usage=numNodes*numZones*
5616
+ # podIPsPerNode.
5617
+ # Corresponds to the JSON property `podIpv4RangeUtilization`
5618
+ # @return [Float]
5619
+ attr_accessor :pod_ipv4_range_utilization
5620
+
4060
5621
  # The ID of the secondary range for pod IPs. If `create_pod_range` is true, this
4061
5622
  # ID is used for the new range. If `create_pod_range` is false, uses an existing
4062
5623
  # secondary range with this ID. Only applicable if `ip_allocation_policy.
@@ -4072,10 +5633,14 @@ module Google
4072
5633
 
4073
5634
  # Update properties of this object
4074
5635
  def update!(**args)
5636
+ @additional_node_network_configs = args[:additional_node_network_configs] if args.key?(:additional_node_network_configs)
5637
+ @additional_pod_network_configs = args[:additional_pod_network_configs] if args.key?(:additional_pod_network_configs)
4075
5638
  @create_pod_range = args[:create_pod_range] if args.key?(:create_pod_range)
4076
5639
  @enable_private_nodes = args[:enable_private_nodes] if args.key?(:enable_private_nodes)
4077
5640
  @network_performance_config = args[:network_performance_config] if args.key?(:network_performance_config)
5641
+ @pod_cidr_overprovision_config = args[:pod_cidr_overprovision_config] if args.key?(:pod_cidr_overprovision_config)
4078
5642
  @pod_ipv4_cidr_block = args[:pod_ipv4_cidr_block] if args.key?(:pod_ipv4_cidr_block)
5643
+ @pod_ipv4_range_utilization = args[:pod_ipv4_range_utilization] if args.key?(:pod_ipv4_range_utilization)
4079
5644
  @pod_range = args[:pod_range] if args.key?(:pod_range)
4080
5645
  end
4081
5646
  end
@@ -4085,29 +5650,26 @@ module Google
4085
5650
  # specification, under the control of the cluster master. They may have a set of
4086
5651
  # Kubernetes labels applied to them, which may be used to reference them during
4087
5652
  # pod scheduling. They may also be resized up or down, to accommodate the
4088
- # workload. These upgrade settings control the level of parallelism and the
4089
- # level of disruption caused by an upgrade. maxUnavailable controls the number
4090
- # of nodes that can be simultaneously unavailable. maxSurge controls the number
4091
- # of additional nodes that can be added to the node pool temporarily for the
4092
- # time of the upgrade to increase the number of available nodes. (maxUnavailable
4093
- # + maxSurge) determines the level of parallelism (how many nodes are being
4094
- # upgraded at the same time). Note: upgrades inevitably introduce some
4095
- # disruption since workloads need to be moved from old nodes to new, upgraded
4096
- # ones. Even if maxUnavailable=0, this holds true. (Disruption stays within the
4097
- # limits of PodDisruptionBudget, if it is configured.) Consider a hypothetical
4098
- # node pool with 5 nodes having maxSurge=2, maxUnavailable=1. This means the
4099
- # upgrade process upgrades 3 nodes simultaneously. It creates 2 additional (
4100
- # upgraded) nodes, then it brings down 3 old (not yet upgraded) nodes at the
4101
- # same time. This ensures that there are always at least 4 nodes available.
5653
+ # workload.
4102
5654
  class NodePool
4103
5655
  include Google::Apis::Core::Hashable
4104
5656
 
5657
+ # AutopilotConfig contains configuration of autopilot feature for this nodepool.
5658
+ # Corresponds to the JSON property `autopilotConfig`
5659
+ # @return [Google::Apis::ContainerV1beta1::AutopilotConfig]
5660
+ attr_accessor :autopilot_config
5661
+
4105
5662
  # NodePoolAutoscaling contains information required by cluster autoscaler to
4106
5663
  # adjust the size of the node pool to the current cluster usage.
4107
5664
  # Corresponds to the JSON property `autoscaling`
4108
5665
  # @return [Google::Apis::ContainerV1beta1::NodePoolAutoscaling]
4109
5666
  attr_accessor :autoscaling
4110
5667
 
5668
+ # Best effort provisioning.
5669
+ # Corresponds to the JSON property `bestEffortProvisioning`
5670
+ # @return [Google::Apis::ContainerV1beta1::BestEffortProvisioning]
5671
+ attr_accessor :best_effort_provisioning
5672
+
4111
5673
  # Which conditions caused the current node pool state.
4112
5674
  # Corresponds to the JSON property `conditions`
4113
5675
  # @return [Array<Google::Apis::ContainerV1beta1::StatusCondition>]
@@ -4135,7 +5697,7 @@ module Google
4135
5697
  # @return [Fixnum]
4136
5698
  attr_accessor :initial_node_count
4137
5699
 
4138
- # [Output only] The resource URLs of the [managed instance groups](https://cloud.
5700
+ # Output only. The resource URLs of the [managed instance groups](https://cloud.
4139
5701
  # google.com/compute/docs/instance-groups/creating-groups-of-managed-instances)
4140
5702
  # associated with this node pool. During the node pool blue-green upgrade
4141
5703
  # operation, the URLs contain both blue and green resources.
@@ -4179,22 +5741,27 @@ module Google
4179
5741
  # @return [Google::Apis::ContainerV1beta1::PlacementPolicy]
4180
5742
  attr_accessor :placement_policy
4181
5743
 
4182
- # [Output only] The pod CIDR block size per node in this node pool.
5744
+ # Output only. The pod CIDR block size per node in this node pool.
4183
5745
  # Corresponds to the JSON property `podIpv4CidrSize`
4184
5746
  # @return [Fixnum]
4185
5747
  attr_accessor :pod_ipv4_cidr_size
4186
5748
 
4187
- # [Output only] Server-defined URL for the resource.
5749
+ # QueuedProvisioning defines the queued provisioning used by the node pool.
5750
+ # Corresponds to the JSON property `queuedProvisioning`
5751
+ # @return [Google::Apis::ContainerV1beta1::QueuedProvisioning]
5752
+ attr_accessor :queued_provisioning
5753
+
5754
+ # Output only. Server-defined URL for the resource.
4188
5755
  # Corresponds to the JSON property `selfLink`
4189
5756
  # @return [String]
4190
5757
  attr_accessor :self_link
4191
5758
 
4192
- # [Output only] The status of the nodes in this pool instance.
5759
+ # Output only. The status of the nodes in this pool instance.
4193
5760
  # Corresponds to the JSON property `status`
4194
5761
  # @return [String]
4195
5762
  attr_accessor :status
4196
5763
 
4197
- # [Output only] Deprecated. Use conditions instead. Additional information about
5764
+ # Output only. Deprecated. Use conditions instead. Additional information about
4198
5765
  # the current status of this node pool instance, if available.
4199
5766
  # Corresponds to the JSON property `statusMessage`
4200
5767
  # @return [String]
@@ -4206,6 +5773,20 @@ module Google
4206
5773
  # @return [Google::Apis::ContainerV1beta1::UpdateInfo]
4207
5774
  attr_accessor :update_info
4208
5775
 
5776
+ # These upgrade settings control the level of parallelism and the level of
5777
+ # disruption caused by an upgrade. maxUnavailable controls the number of nodes
5778
+ # that can be simultaneously unavailable. maxSurge controls the number of
5779
+ # additional nodes that can be added to the node pool temporarily for the time
5780
+ # of the upgrade to increase the number of available nodes. (maxUnavailable +
5781
+ # maxSurge) determines the level of parallelism (how many nodes are being
5782
+ # upgraded at the same time). Note: upgrades inevitably introduce some
5783
+ # disruption since workloads need to be moved from old nodes to new, upgraded
5784
+ # ones. Even if maxUnavailable=0, this holds true. (Disruption stays within the
5785
+ # limits of PodDisruptionBudget, if it is configured.) Consider a hypothetical
5786
+ # node pool with 5 nodes having maxSurge=2, maxUnavailable=1. This means the
5787
+ # upgrade process upgrades 3 nodes simultaneously. It creates 2 additional (
5788
+ # upgraded) nodes, then it brings down 3 old (not yet upgraded) nodes at the
5789
+ # same time. This ensures that there are always at least 4 nodes available.
4209
5790
  # These upgrade settings configure the upgrade strategy for the node pool. Use
4210
5791
  # strategy to switch between the strategies applied to the node pool. If the
4211
5792
  # strategy is SURGE, use max_surge and max_unavailable to control the level of
@@ -4227,7 +5808,9 @@ module Google
4227
5808
  # @return [Google::Apis::ContainerV1beta1::UpgradeSettings]
4228
5809
  attr_accessor :upgrade_settings
4229
5810
 
4230
- # The version of the Kubernetes of this node.
5811
+ # The version of Kubernetes running on this NodePool's nodes. If unspecified, it
5812
+ # defaults as described [here](https://cloud.google.com/kubernetes-engine/
5813
+ # versioning#specifying_node_version).
4231
5814
  # Corresponds to the JSON property `version`
4232
5815
  # @return [String]
4233
5816
  attr_accessor :version
@@ -4238,7 +5821,9 @@ module Google
4238
5821
 
4239
5822
  # Update properties of this object
4240
5823
  def update!(**args)
5824
+ @autopilot_config = args[:autopilot_config] if args.key?(:autopilot_config)
4241
5825
  @autoscaling = args[:autoscaling] if args.key?(:autoscaling)
5826
+ @best_effort_provisioning = args[:best_effort_provisioning] if args.key?(:best_effort_provisioning)
4242
5827
  @conditions = args[:conditions] if args.key?(:conditions)
4243
5828
  @config = args[:config] if args.key?(:config)
4244
5829
  @etag = args[:etag] if args.key?(:etag)
@@ -4251,6 +5836,7 @@ module Google
4251
5836
  @network_config = args[:network_config] if args.key?(:network_config)
4252
5837
  @placement_policy = args[:placement_policy] if args.key?(:placement_policy)
4253
5838
  @pod_ipv4_cidr_size = args[:pod_ipv4_cidr_size] if args.key?(:pod_ipv4_cidr_size)
5839
+ @queued_provisioning = args[:queued_provisioning] if args.key?(:queued_provisioning)
4254
5840
  @self_link = args[:self_link] if args.key?(:self_link)
4255
5841
  @status = args[:status] if args.key?(:status)
4256
5842
  @status_message = args[:status_message] if args.key?(:status_message)
@@ -4265,6 +5851,11 @@ module Google
4265
5851
  class NodePoolAutoConfig
4266
5852
  include Google::Apis::Core::Hashable
4267
5853
 
5854
+ # Parameters that can be configured on Linux nodes.
5855
+ # Corresponds to the JSON property `linuxNodeConfig`
5856
+ # @return [Google::Apis::ContainerV1beta1::LinuxNodeConfig]
5857
+ attr_accessor :linux_node_config
5858
+
4268
5859
  # Collection of Compute Engine network tags that can be applied to a node's
4269
5860
  # underlying VM instance. (See `tags` field in [`NodeConfig`](/kubernetes-engine/
4270
5861
  # docs/reference/rest/v1/NodeConfig)).
@@ -4272,13 +5863,30 @@ module Google
4272
5863
  # @return [Google::Apis::ContainerV1beta1::NetworkTags]
4273
5864
  attr_accessor :network_tags
4274
5865
 
5866
+ # Node kubelet configs.
5867
+ # Corresponds to the JSON property `nodeKubeletConfig`
5868
+ # @return [Google::Apis::ContainerV1beta1::NodeKubeletConfig]
5869
+ attr_accessor :node_kubelet_config
5870
+
5871
+ # A map of resource manager tag keys and values to be attached to the nodes for
5872
+ # managing Compute Engine firewalls using Network Firewall Policies. Tags must
5873
+ # be according to specifications in https://cloud.google.com/vpc/docs/tags-
5874
+ # firewalls-overview#specifications. A maximum of 5 tag key-value pairs can be
5875
+ # specified. Existing tags will be replaced with new values.
5876
+ # Corresponds to the JSON property `resourceManagerTags`
5877
+ # @return [Google::Apis::ContainerV1beta1::ResourceManagerTags]
5878
+ attr_accessor :resource_manager_tags
5879
+
4275
5880
  def initialize(**args)
4276
5881
  update!(**args)
4277
5882
  end
4278
5883
 
4279
5884
  # Update properties of this object
4280
5885
  def update!(**args)
5886
+ @linux_node_config = args[:linux_node_config] if args.key?(:linux_node_config)
4281
5887
  @network_tags = args[:network_tags] if args.key?(:network_tags)
5888
+ @node_kubelet_config = args[:node_kubelet_config] if args.key?(:node_kubelet_config)
5889
+ @resource_manager_tags = args[:resource_manager_tags] if args.key?(:resource_manager_tags)
4282
5890
  end
4283
5891
  end
4284
5892
 
@@ -4304,19 +5912,19 @@ module Google
4304
5912
  # @return [String]
4305
5913
  attr_accessor :location_policy
4306
5914
 
4307
- # Maximum number of nodes for one location in the NodePool. Must be >=
5915
+ # Maximum number of nodes for one location in the node pool. Must be >=
4308
5916
  # min_node_count. There has to be enough quota to scale up the cluster.
4309
5917
  # Corresponds to the JSON property `maxNodeCount`
4310
5918
  # @return [Fixnum]
4311
5919
  attr_accessor :max_node_count
4312
5920
 
4313
- # Minimum number of nodes for one location in the NodePool. Must be >= 1 and <=
4314
- # max_node_count.
5921
+ # Minimum number of nodes for one location in the node pool. Must be greater
5922
+ # than or equal to 0 and less than or equal to max_node_count.
4315
5923
  # Corresponds to the JSON property `minNodeCount`
4316
5924
  # @return [Fixnum]
4317
5925
  attr_accessor :min_node_count
4318
5926
 
4319
- # Maximum number of nodes in the node pool. Must be greater than
5927
+ # Maximum number of nodes in the node pool. Must be greater than or equal to
4320
5928
  # total_min_node_count. There has to be enough quota to scale up the cluster.
4321
5929
  # The total_*_node_count fields are mutually exclusive with the *_node_count
4322
5930
  # fields.
@@ -4324,9 +5932,9 @@ module Google
4324
5932
  # @return [Fixnum]
4325
5933
  attr_accessor :total_max_node_count
4326
5934
 
4327
- # Minimum number of nodes in the node pool. Must be greater than 1 less than
4328
- # total_max_node_count. The total_*_node_count fields are mutually exclusive
4329
- # with the *_node_count fields.
5935
+ # Minimum number of nodes in the node pool. Must be greater than or equal to 0
5936
+ # and less than or equal to total_max_node_count. The total_*_node_count fields
5937
+ # are mutually exclusive with the *_node_count fields.
4330
5938
  # Corresponds to the JSON property `totalMinNodeCount`
4331
5939
  # @return [Fixnum]
4332
5940
  attr_accessor :total_min_node_count
@@ -4385,7 +5993,62 @@ module Google
4385
5993
  end
4386
5994
  end
4387
5995
 
4388
- # Kubernetes taint is comprised of three fields: key, value, and effect. Effect
5996
+ # NodePoolUpgradeInfo contains the upgrade information of a nodepool.
5997
+ class NodePoolUpgradeInfo
5998
+ include Google::Apis::Core::Hashable
5999
+
6000
+ # The auto upgrade status.
6001
+ # Corresponds to the JSON property `autoUpgradeStatus`
6002
+ # @return [Array<String>]
6003
+ attr_accessor :auto_upgrade_status
6004
+
6005
+ # The nodepool's current minor version's end of extended support timestamp.
6006
+ # Corresponds to the JSON property `endOfExtendedSupportTimestamp`
6007
+ # @return [String]
6008
+ attr_accessor :end_of_extended_support_timestamp
6009
+
6010
+ # The nodepool's current minor version's end of standard support timestamp.
6011
+ # Corresponds to the JSON property `endOfStandardSupportTimestamp`
6012
+ # @return [String]
6013
+ attr_accessor :end_of_standard_support_timestamp
6014
+
6015
+ # minor_target_version indicates the target version for minor upgrade.
6016
+ # Corresponds to the JSON property `minorTargetVersion`
6017
+ # @return [String]
6018
+ attr_accessor :minor_target_version
6019
+
6020
+ # patch_target_version indicates the target version for patch upgrade.
6021
+ # Corresponds to the JSON property `patchTargetVersion`
6022
+ # @return [String]
6023
+ attr_accessor :patch_target_version
6024
+
6025
+ # The auto upgrade paused reason.
6026
+ # Corresponds to the JSON property `pausedReason`
6027
+ # @return [Array<String>]
6028
+ attr_accessor :paused_reason
6029
+
6030
+ # The list of past auto upgrades.
6031
+ # Corresponds to the JSON property `upgradeDetails`
6032
+ # @return [Array<Google::Apis::ContainerV1beta1::UpgradeDetails>]
6033
+ attr_accessor :upgrade_details
6034
+
6035
+ def initialize(**args)
6036
+ update!(**args)
6037
+ end
6038
+
6039
+ # Update properties of this object
6040
+ def update!(**args)
6041
+ @auto_upgrade_status = args[:auto_upgrade_status] if args.key?(:auto_upgrade_status)
6042
+ @end_of_extended_support_timestamp = args[:end_of_extended_support_timestamp] if args.key?(:end_of_extended_support_timestamp)
6043
+ @end_of_standard_support_timestamp = args[:end_of_standard_support_timestamp] if args.key?(:end_of_standard_support_timestamp)
6044
+ @minor_target_version = args[:minor_target_version] if args.key?(:minor_target_version)
6045
+ @patch_target_version = args[:patch_target_version] if args.key?(:patch_target_version)
6046
+ @paused_reason = args[:paused_reason] if args.key?(:paused_reason)
6047
+ @upgrade_details = args[:upgrade_details] if args.key?(:upgrade_details)
6048
+ end
6049
+ end
6050
+
6051
+ # Kubernetes taint is composed of three fields: key, value, and effect. Effect
4389
6052
  # can only be one of three types: NoSchedule, PreferNoSchedule or NoExecute. See
4390
6053
  # [here](https://kubernetes.io/docs/concepts/configuration/taint-and-toleration)
4391
6054
  # for more information, including usage and the valid values.
@@ -4469,12 +6132,12 @@ module Google
4469
6132
  # @return [Array<Google::Apis::ContainerV1beta1::StatusCondition>]
4470
6133
  attr_accessor :cluster_conditions
4471
6134
 
4472
- # Detailed operation progress, if available.
6135
+ # Output only. Detailed operation progress, if available.
4473
6136
  # Corresponds to the JSON property `detail`
4474
6137
  # @return [String]
4475
6138
  attr_accessor :detail
4476
6139
 
4477
- # [Output only] The time the operation completed, in [RFC3339](https://www.ietf.
6140
+ # Output only. The time the operation completed, in [RFC3339](https://www.ietf.
4478
6141
  # org/rfc/rfc3339.txt) text format.
4479
6142
  # Corresponds to the JSON property `endTime`
4480
6143
  # @return [String]
@@ -4490,15 +6153,15 @@ module Google
4490
6153
  # @return [Google::Apis::ContainerV1beta1::Status]
4491
6154
  attr_accessor :error
4492
6155
 
4493
- # [Output only] The name of the Google Compute Engine [zone](https://cloud.
4494
- # google.com/compute/docs/regions-zones/regions-zones#available) or [region](
4495
- # https://cloud.google.com/compute/docs/regions-zones/regions-zones#available)
4496
- # in which the cluster resides.
6156
+ # Output only. The name of the Google Compute Engine [zone](https://cloud.google.
6157
+ # com/compute/docs/regions-zones/regions-zones#available) or [region](https://
6158
+ # cloud.google.com/compute/docs/regions-zones/regions-zones#available) in which
6159
+ # the cluster resides.
4497
6160
  # Corresponds to the JSON property `location`
4498
6161
  # @return [String]
4499
6162
  attr_accessor :location
4500
6163
 
4501
- # The server-assigned ID for the operation.
6164
+ # Output only. The server-assigned ID for the operation.
4502
6165
  # Corresponds to the JSON property `name`
4503
6166
  # @return [String]
4504
6167
  attr_accessor :name
@@ -4509,7 +6172,7 @@ module Google
4509
6172
  # @return [Array<Google::Apis::ContainerV1beta1::StatusCondition>]
4510
6173
  attr_accessor :nodepool_conditions
4511
6174
 
4512
- # The operation type.
6175
+ # Output only. The operation type.
4513
6176
  # Corresponds to the JSON property `operationType`
4514
6177
  # @return [String]
4515
6178
  attr_accessor :operation_type
@@ -4519,18 +6182,20 @@ module Google
4519
6182
  # @return [Google::Apis::ContainerV1beta1::OperationProgress]
4520
6183
  attr_accessor :progress
4521
6184
 
4522
- # Server-defined URL for the resource.
6185
+ # Output only. Server-defined URI for the operation. Example: `https://container.
6186
+ # googleapis.com/v1alpha1/projects/123/locations/us-central1/operations/
6187
+ # operation-123`.
4523
6188
  # Corresponds to the JSON property `selfLink`
4524
6189
  # @return [String]
4525
6190
  attr_accessor :self_link
4526
6191
 
4527
- # [Output only] The time the operation started, in [RFC3339](https://www.ietf.
4528
- # org/rfc/rfc3339.txt) text format.
6192
+ # Output only. The time the operation started, in [RFC3339](https://www.ietf.org/
6193
+ # rfc/rfc3339.txt) text format.
4529
6194
  # Corresponds to the JSON property `startTime`
4530
6195
  # @return [String]
4531
6196
  attr_accessor :start_time
4532
6197
 
4533
- # The current status of the operation.
6198
+ # Output only. The current status of the operation.
4534
6199
  # Corresponds to the JSON property `status`
4535
6200
  # @return [String]
4536
6201
  attr_accessor :status
@@ -4541,14 +6206,21 @@ module Google
4541
6206
  # @return [String]
4542
6207
  attr_accessor :status_message
4543
6208
 
4544
- # Server-defined URL for the target of the operation.
6209
+ # Output only. Server-defined URI for the target of the operation. The format of
6210
+ # this is a URI to the resource being modified (such as a cluster, node pool, or
6211
+ # node). For node pool repairs, there may be multiple nodes being repaired, but
6212
+ # only one will be the target. Examples: - ## `https://container.googleapis.com/
6213
+ # v1/projects/123/locations/us-central1/clusters/my-cluster` ## `https://
6214
+ # container.googleapis.com/v1/projects/123/zones/us-central1-c/clusters/my-
6215
+ # cluster/nodePools/my-np` `https://container.googleapis.com/v1/projects/123/
6216
+ # zones/us-central1-c/clusters/my-cluster/nodePools/my-np/node/my-node`
4545
6217
  # Corresponds to the JSON property `targetLink`
4546
6218
  # @return [String]
4547
6219
  attr_accessor :target_link
4548
6220
 
4549
- # The name of the Google Compute Engine [zone](https://cloud.google.com/compute/
4550
- # docs/zones#available) in which the operation is taking place. This field is
4551
- # deprecated, use location instead.
6221
+ # Output only. The name of the Google Compute Engine [zone](https://cloud.google.
6222
+ # com/compute/docs/zones#available) in which the operation is taking place. This
6223
+ # field is deprecated, use location instead.
4552
6224
  # Corresponds to the JSON property `zone`
4553
6225
  # @return [String]
4554
6226
  attr_accessor :zone
@@ -4577,13 +6249,45 @@ module Google
4577
6249
  end
4578
6250
  end
4579
6251
 
4580
- # Information about operation (or operation stage) progress.
4581
- class OperationProgress
6252
+ # OperationError records errors seen from CloudKMS keys encountered during
6253
+ # updates to DatabaseEncryption configuration.
6254
+ class OperationError
4582
6255
  include Google::Apis::Core::Hashable
4583
6256
 
4584
- # Progress metric bundle, for example: metrics: [`name: "nodes done", int_value:
4585
- # 15`, `name: "nodes total", int_value: 32`] or metrics: [`name: "progress",
4586
- # double_value: 0.56`, `name: "progress scale", double_value: 1.0`]
6257
+ # Description of the error seen during the operation.
6258
+ # Corresponds to the JSON property `errorMessage`
6259
+ # @return [String]
6260
+ attr_accessor :error_message
6261
+
6262
+ # CloudKMS key resource that had the error.
6263
+ # Corresponds to the JSON property `keyName`
6264
+ # @return [String]
6265
+ attr_accessor :key_name
6266
+
6267
+ # Time when the CloudKMS error was seen.
6268
+ # Corresponds to the JSON property `timestamp`
6269
+ # @return [String]
6270
+ attr_accessor :timestamp
6271
+
6272
+ def initialize(**args)
6273
+ update!(**args)
6274
+ end
6275
+
6276
+ # Update properties of this object
6277
+ def update!(**args)
6278
+ @error_message = args[:error_message] if args.key?(:error_message)
6279
+ @key_name = args[:key_name] if args.key?(:key_name)
6280
+ @timestamp = args[:timestamp] if args.key?(:timestamp)
6281
+ end
6282
+ end
6283
+
6284
+ # Information about operation (or operation stage) progress.
6285
+ class OperationProgress
6286
+ include Google::Apis::Core::Hashable
6287
+
6288
+ # Progress metric bundle, for example: metrics: [`name: "nodes done", int_value:
6289
+ # 15`, `name: "nodes total", int_value: 32`] or metrics: [`name: "progress",
6290
+ # double_value: 0.56`, `name: "progress scale", double_value: 1.0`]
4587
6291
  # Corresponds to the JSON property `metrics`
4588
6292
  # @return [Array<Google::Apis::ContainerV1beta1::Metric>]
4589
6293
  attr_accessor :metrics
@@ -4617,10 +6321,107 @@ module Google
4617
6321
  end
4618
6322
  end
4619
6323
 
6324
+ # Strategy that will trigger maintenance on behalf of the customer.
6325
+ class OpportunisticMaintenanceStrategy
6326
+ include Google::Apis::Core::Hashable
6327
+
6328
+ # The window of time that opportunistic maintenance can run. Example: A setting
6329
+ # of 14 days implies that opportunistic maintenance can only be ran in the 2
6330
+ # weeks leading up to the scheduled maintenance date. Setting 28 days allows
6331
+ # opportunistic maintenance to run at any time in the scheduled maintenance
6332
+ # window (all `PERIODIC` maintenance is set 28 days in advance).
6333
+ # Corresponds to the JSON property `maintenanceAvailabilityWindow`
6334
+ # @return [String]
6335
+ attr_accessor :maintenance_availability_window
6336
+
6337
+ # The minimum nodes required to be available in a pool. Blocks maintenance if it
6338
+ # would cause the number of running nodes to dip below this value.
6339
+ # Corresponds to the JSON property `minNodesPerPool`
6340
+ # @return [Fixnum]
6341
+ attr_accessor :min_nodes_per_pool
6342
+
6343
+ # The amount of time that a node can remain idle (no customer owned workloads
6344
+ # running), before triggering maintenance.
6345
+ # Corresponds to the JSON property `nodeIdleTimeWindow`
6346
+ # @return [String]
6347
+ attr_accessor :node_idle_time_window
6348
+
6349
+ def initialize(**args)
6350
+ update!(**args)
6351
+ end
6352
+
6353
+ # Update properties of this object
6354
+ def update!(**args)
6355
+ @maintenance_availability_window = args[:maintenance_availability_window] if args.key?(:maintenance_availability_window)
6356
+ @min_nodes_per_pool = args[:min_nodes_per_pool] if args.key?(:min_nodes_per_pool)
6357
+ @node_idle_time_window = args[:node_idle_time_window] if args.key?(:node_idle_time_window)
6358
+ end
6359
+ end
6360
+
6361
+ # Configuration for the Cloud Storage Parallelstore CSI driver.
6362
+ class ParallelstoreCsiDriverConfig
6363
+ include Google::Apis::Core::Hashable
6364
+
6365
+ # Whether the Cloud Storage Parallelstore CSI driver is enabled for this cluster.
6366
+ # Corresponds to the JSON property `enabled`
6367
+ # @return [Boolean]
6368
+ attr_accessor :enabled
6369
+ alias_method :enabled?, :enabled
6370
+
6371
+ def initialize(**args)
6372
+ update!(**args)
6373
+ end
6374
+
6375
+ # Update properties of this object
6376
+ def update!(**args)
6377
+ @enabled = args[:enabled] if args.key?(:enabled)
6378
+ end
6379
+ end
6380
+
6381
+ # ParentProductConfig is the configuration of the parent product of the cluster.
6382
+ # This field is used by Google internal products that are built on top of a GKE
6383
+ # cluster and take the ownership of the cluster.
6384
+ class ParentProductConfig
6385
+ include Google::Apis::Core::Hashable
6386
+
6387
+ # Labels contain the configuration of the parent product.
6388
+ # Corresponds to the JSON property `labels`
6389
+ # @return [Hash<String,String>]
6390
+ attr_accessor :labels
6391
+
6392
+ # Name of the parent product associated with the cluster.
6393
+ # Corresponds to the JSON property `productName`
6394
+ # @return [String]
6395
+ attr_accessor :product_name
6396
+
6397
+ def initialize(**args)
6398
+ update!(**args)
6399
+ end
6400
+
6401
+ # Update properties of this object
6402
+ def update!(**args)
6403
+ @labels = args[:labels] if args.key?(:labels)
6404
+ @product_name = args[:product_name] if args.key?(:product_name)
6405
+ end
6406
+ end
6407
+
4620
6408
  # PlacementPolicy defines the placement policy used by the node pool.
4621
6409
  class PlacementPolicy
4622
6410
  include Google::Apis::Core::Hashable
4623
6411
 
6412
+ # If set, refers to the name of a custom resource policy supplied by the user.
6413
+ # The resource policy must be in the same project and region as the node pool.
6414
+ # If not found, InvalidArgument error is returned.
6415
+ # Corresponds to the JSON property `policyName`
6416
+ # @return [String]
6417
+ attr_accessor :policy_name
6418
+
6419
+ # TPU placement topology for pod slice node pool. https://cloud.google.com/tpu/
6420
+ # docs/types-topologies#tpu_topologies
6421
+ # Corresponds to the JSON property `tpuTopology`
6422
+ # @return [String]
6423
+ attr_accessor :tpu_topology
6424
+
4624
6425
  # The type of placement.
4625
6426
  # Corresponds to the JSON property `type`
4626
6427
  # @return [String]
@@ -4632,10 +6433,53 @@ module Google
4632
6433
 
4633
6434
  # Update properties of this object
4634
6435
  def update!(**args)
6436
+ @policy_name = args[:policy_name] if args.key?(:policy_name)
6437
+ @tpu_topology = args[:tpu_topology] if args.key?(:tpu_topology)
4635
6438
  @type = args[:type] if args.key?(:type)
4636
6439
  end
4637
6440
  end
4638
6441
 
6442
+ # PodAutoscaling is used for configuration of parameters for workload
6443
+ # autoscaling.
6444
+ class PodAutoscaling
6445
+ include Google::Apis::Core::Hashable
6446
+
6447
+ # Selected Horizontal Pod Autoscaling profile.
6448
+ # Corresponds to the JSON property `hpaProfile`
6449
+ # @return [String]
6450
+ attr_accessor :hpa_profile
6451
+
6452
+ def initialize(**args)
6453
+ update!(**args)
6454
+ end
6455
+
6456
+ # Update properties of this object
6457
+ def update!(**args)
6458
+ @hpa_profile = args[:hpa_profile] if args.key?(:hpa_profile)
6459
+ end
6460
+ end
6461
+
6462
+ # [PRIVATE FIELD] Config for pod CIDR size overprovisioning.
6463
+ class PodCidrOverprovisionConfig
6464
+ include Google::Apis::Core::Hashable
6465
+
6466
+ # Whether Pod CIDR overprovisioning is disabled. Note: Pod CIDR overprovisioning
6467
+ # is enabled by default.
6468
+ # Corresponds to the JSON property `disable`
6469
+ # @return [Boolean]
6470
+ attr_accessor :disable
6471
+ alias_method :disable?, :disable
6472
+
6473
+ def initialize(**args)
6474
+ update!(**args)
6475
+ end
6476
+
6477
+ # Update properties of this object
6478
+ def update!(**args)
6479
+ @disable = args[:disable] if args.key?(:disable)
6480
+ end
6481
+ end
6482
+
4639
6483
  # Configuration for the PodSecurityPolicy feature.
4640
6484
  class PodSecurityPolicyConfig
4641
6485
  include Google::Apis::Core::Hashable
@@ -4657,11 +6501,35 @@ module Google
4657
6501
  end
4658
6502
  end
4659
6503
 
6504
+ # Binauthz policy that applies to this cluster.
6505
+ class PolicyBinding
6506
+ include Google::Apis::Core::Hashable
6507
+
6508
+ # The relative resource name of the binauthz platform policy to evaluate. GKE
6509
+ # platform policies have the following format: `projects/`project_number`/
6510
+ # platforms/gke/policies/`policy_id``.
6511
+ # Corresponds to the JSON property `name`
6512
+ # @return [String]
6513
+ attr_accessor :name
6514
+
6515
+ def initialize(**args)
6516
+ update!(**args)
6517
+ end
6518
+
6519
+ # Update properties of this object
6520
+ def update!(**args)
6521
+ @name = args[:name] if args.key?(:name)
6522
+ end
6523
+ end
6524
+
4660
6525
  # Configuration options for private clusters.
4661
6526
  class PrivateClusterConfig
4662
6527
  include Google::Apis::Core::Hashable
4663
6528
 
4664
- # Whether the master's internal IP address is used as the cluster endpoint.
6529
+ # Whether the master's internal IP address is used as the cluster endpoint. Use
6530
+ # ControlPlaneEndpointsConfig.IPEndpointsConfig.enable_public_endpoint instead.
6531
+ # Note that the value of enable_public_endpoint is reversed: if
6532
+ # enable_private_endpoint is false, then enable_public_endpoint will be true.
4665
6533
  # Corresponds to the JSON property `enablePrivateEndpoint`
4666
6534
  # @return [Boolean]
4667
6535
  attr_accessor :enable_private_endpoint
@@ -4669,7 +6537,7 @@ module Google
4669
6537
 
4670
6538
  # Whether nodes have internal IP addresses only. If enabled, all nodes are given
4671
6539
  # only RFC 1918 private addresses and communicate with the master via private
4672
- # networking.
6540
+ # networking. Deprecated: Use NetworkConfig.default_enable_private_nodes instead.
4673
6541
  # Corresponds to the JSON property `enablePrivateNodes`
4674
6542
  # @return [Boolean]
4675
6543
  attr_accessor :enable_private_nodes
@@ -4694,17 +6562,23 @@ module Google
4694
6562
  attr_accessor :peering_name
4695
6563
 
4696
6564
  # Output only. The internal IP address of this cluster's master endpoint.
6565
+ # Deprecated: Use ControlPlaneEndpointsConfig.IPEndpointsConfig.private_endpoint
6566
+ # instead.
4697
6567
  # Corresponds to the JSON property `privateEndpoint`
4698
6568
  # @return [String]
4699
6569
  attr_accessor :private_endpoint
4700
6570
 
4701
6571
  # Subnet to provision the master's private endpoint during cluster creation.
4702
- # Specified in projects/*/regions/*/subnetworks/* format.
6572
+ # Specified in projects/*/regions/*/subnetworks/* format. Deprecated: Use
6573
+ # ControlPlaneEndpointsConfig.IPEndpointsConfig.private_endpoint_subnetwork
6574
+ # instead.
4703
6575
  # Corresponds to the JSON property `privateEndpointSubnetwork`
4704
6576
  # @return [String]
4705
6577
  attr_accessor :private_endpoint_subnetwork
4706
6578
 
4707
6579
  # Output only. The external IP address of this cluster's master endpoint.
6580
+ # Deprecated: Use ControlPlaneEndpointsConfig.IPEndpointsConfig.public_endpoint
6581
+ # instead.
4708
6582
  # Corresponds to the JSON property `publicEndpoint`
4709
6583
  # @return [String]
4710
6584
  attr_accessor :public_endpoint
@@ -4746,6 +6620,33 @@ module Google
4746
6620
  end
4747
6621
  end
4748
6622
 
6623
+ # PrivateRegistryAccessConfig contains access configuration for private
6624
+ # container registries.
6625
+ class PrivateRegistryAccessConfig
6626
+ include Google::Apis::Core::Hashable
6627
+
6628
+ # Private registry access configuration.
6629
+ # Corresponds to the JSON property `certificateAuthorityDomainConfig`
6630
+ # @return [Array<Google::Apis::ContainerV1beta1::CertificateAuthorityDomainConfig>]
6631
+ attr_accessor :certificate_authority_domain_config
6632
+
6633
+ # Private registry access is enabled.
6634
+ # Corresponds to the JSON property `enabled`
6635
+ # @return [Boolean]
6636
+ attr_accessor :enabled
6637
+ alias_method :enabled?, :enabled
6638
+
6639
+ def initialize(**args)
6640
+ update!(**args)
6641
+ end
6642
+
6643
+ # Update properties of this object
6644
+ def update!(**args)
6645
+ @certificate_authority_domain_config = args[:certificate_authority_domain_config] if args.key?(:certificate_authority_domain_config)
6646
+ @enabled = args[:enabled] if args.key?(:enabled)
6647
+ end
6648
+ end
6649
+
4749
6650
  # ProtectConfig defines the flags needed to enable/disable features for the
4750
6651
  # Protect API.
4751
6652
  class ProtectConfig
@@ -4809,6 +6710,154 @@ module Google
4809
6710
  end
4810
6711
  end
4811
6712
 
6713
+ # QueuedProvisioning defines the queued provisioning used by the node pool.
6714
+ class QueuedProvisioning
6715
+ include Google::Apis::Core::Hashable
6716
+
6717
+ # Denotes that this nodepool is QRM specific, meaning nodes can be only obtained
6718
+ # through queuing via the Cluster Autoscaler ProvisioningRequest API.
6719
+ # Corresponds to the JSON property `enabled`
6720
+ # @return [Boolean]
6721
+ attr_accessor :enabled
6722
+ alias_method :enabled?, :enabled
6723
+
6724
+ def initialize(**args)
6725
+ update!(**args)
6726
+ end
6727
+
6728
+ # Update properties of this object
6729
+ def update!(**args)
6730
+ @enabled = args[:enabled] if args.key?(:enabled)
6731
+ end
6732
+ end
6733
+
6734
+ # RBACBindingConfig allows user to restrict ClusterRoleBindings an RoleBindings
6735
+ # that can be created.
6736
+ class RbacBindingConfig
6737
+ include Google::Apis::Core::Hashable
6738
+
6739
+ # Setting this to true will allow any ClusterRoleBinding and RoleBinding with
6740
+ # subjects system:authenticated.
6741
+ # Corresponds to the JSON property `enableInsecureBindingSystemAuthenticated`
6742
+ # @return [Boolean]
6743
+ attr_accessor :enable_insecure_binding_system_authenticated
6744
+ alias_method :enable_insecure_binding_system_authenticated?, :enable_insecure_binding_system_authenticated
6745
+
6746
+ # Setting this to true will allow any ClusterRoleBinding and RoleBinding with
6747
+ # subjets system:anonymous or system:unauthenticated.
6748
+ # Corresponds to the JSON property `enableInsecureBindingSystemUnauthenticated`
6749
+ # @return [Boolean]
6750
+ attr_accessor :enable_insecure_binding_system_unauthenticated
6751
+ alias_method :enable_insecure_binding_system_unauthenticated?, :enable_insecure_binding_system_unauthenticated
6752
+
6753
+ def initialize(**args)
6754
+ update!(**args)
6755
+ end
6756
+
6757
+ # Update properties of this object
6758
+ def update!(**args)
6759
+ @enable_insecure_binding_system_authenticated = args[:enable_insecure_binding_system_authenticated] if args.key?(:enable_insecure_binding_system_authenticated)
6760
+ @enable_insecure_binding_system_unauthenticated = args[:enable_insecure_binding_system_unauthenticated] if args.key?(:enable_insecure_binding_system_unauthenticated)
6761
+ end
6762
+ end
6763
+
6764
+ # RangeInfo contains the range name and the range utilization by this cluster.
6765
+ class RangeInfo
6766
+ include Google::Apis::Core::Hashable
6767
+
6768
+ # Output only. Name of a range.
6769
+ # Corresponds to the JSON property `rangeName`
6770
+ # @return [String]
6771
+ attr_accessor :range_name
6772
+
6773
+ # Output only. The utilization of the range.
6774
+ # Corresponds to the JSON property `utilization`
6775
+ # @return [Float]
6776
+ attr_accessor :utilization
6777
+
6778
+ def initialize(**args)
6779
+ update!(**args)
6780
+ end
6781
+
6782
+ # Update properties of this object
6783
+ def update!(**args)
6784
+ @range_name = args[:range_name] if args.key?(:range_name)
6785
+ @utilization = args[:utilization] if args.key?(:utilization)
6786
+ end
6787
+ end
6788
+
6789
+ # RayClusterLoggingConfig specifies logging configuration for Ray clusters.
6790
+ class RayClusterLoggingConfig
6791
+ include Google::Apis::Core::Hashable
6792
+
6793
+ # Enable log collection for Ray clusters.
6794
+ # Corresponds to the JSON property `enabled`
6795
+ # @return [Boolean]
6796
+ attr_accessor :enabled
6797
+ alias_method :enabled?, :enabled
6798
+
6799
+ def initialize(**args)
6800
+ update!(**args)
6801
+ end
6802
+
6803
+ # Update properties of this object
6804
+ def update!(**args)
6805
+ @enabled = args[:enabled] if args.key?(:enabled)
6806
+ end
6807
+ end
6808
+
6809
+ # RayClusterMonitoringConfig specifies monitoring configuration for Ray clusters.
6810
+ class RayClusterMonitoringConfig
6811
+ include Google::Apis::Core::Hashable
6812
+
6813
+ # Enable metrics collection for Ray clusters.
6814
+ # Corresponds to the JSON property `enabled`
6815
+ # @return [Boolean]
6816
+ attr_accessor :enabled
6817
+ alias_method :enabled?, :enabled
6818
+
6819
+ def initialize(**args)
6820
+ update!(**args)
6821
+ end
6822
+
6823
+ # Update properties of this object
6824
+ def update!(**args)
6825
+ @enabled = args[:enabled] if args.key?(:enabled)
6826
+ end
6827
+ end
6828
+
6829
+ # Configuration options for the Ray Operator add-on.
6830
+ class RayOperatorConfig
6831
+ include Google::Apis::Core::Hashable
6832
+
6833
+ # Whether the Ray addon is enabled for this cluster.
6834
+ # Corresponds to the JSON property `enabled`
6835
+ # @return [Boolean]
6836
+ attr_accessor :enabled
6837
+ alias_method :enabled?, :enabled
6838
+
6839
+ # RayClusterLoggingConfig specifies logging configuration for Ray clusters.
6840
+ # Corresponds to the JSON property `rayClusterLoggingConfig`
6841
+ # @return [Google::Apis::ContainerV1beta1::RayClusterLoggingConfig]
6842
+ attr_accessor :ray_cluster_logging_config
6843
+
6844
+ # RayClusterMonitoringConfig specifies monitoring configuration for Ray clusters.
6845
+ # Corresponds to the JSON property `rayClusterMonitoringConfig`
6846
+ # @return [Google::Apis::ContainerV1beta1::RayClusterMonitoringConfig]
6847
+ attr_accessor :ray_cluster_monitoring_config
6848
+
6849
+ def initialize(**args)
6850
+ update!(**args)
6851
+ end
6852
+
6853
+ # Update properties of this object
6854
+ def update!(**args)
6855
+ @enabled = args[:enabled] if args.key?(:enabled)
6856
+ @ray_cluster_logging_config = args[:ray_cluster_logging_config] if args.key?(:ray_cluster_logging_config)
6857
+ @ray_cluster_monitoring_config = args[:ray_cluster_monitoring_config] if args.key?(:ray_cluster_monitoring_config)
6858
+ end
6859
+ end
6860
+
4812
6861
  # Represents an arbitrary window of time that recurs.
4813
6862
  class RecurringTimeWindow
4814
6863
  include Google::Apis::Core::Hashable
@@ -4890,6 +6939,11 @@ module Google
4890
6939
  # @return [String]
4891
6940
  attr_accessor :default_version
4892
6941
 
6942
+ # The auto upgrade target version for clusters on the channel.
6943
+ # Corresponds to the JSON property `upgradeTargetVersion`
6944
+ # @return [String]
6945
+ attr_accessor :upgrade_target_version
6946
+
4893
6947
  # List of valid versions for the channel.
4894
6948
  # Corresponds to the JSON property `validVersions`
4895
6949
  # @return [Array<String>]
@@ -4904,6 +6958,7 @@ module Google
4904
6958
  @available_versions = args[:available_versions] if args.key?(:available_versions)
4905
6959
  @channel = args[:channel] if args.key?(:channel)
4906
6960
  @default_version = args[:default_version] if args.key?(:default_version)
6961
+ @upgrade_target_version = args[:upgrade_target_version] if args.key?(:upgrade_target_version)
4907
6962
  @valid_versions = args[:valid_versions] if args.key?(:valid_versions)
4908
6963
  end
4909
6964
  end
@@ -4995,6 +7050,31 @@ module Google
4995
7050
  end
4996
7051
  end
4997
7052
 
7053
+ # A map of resource manager tag keys and values to be attached to the nodes for
7054
+ # managing Compute Engine firewalls using Network Firewall Policies. Tags must
7055
+ # be according to specifications in https://cloud.google.com/vpc/docs/tags-
7056
+ # firewalls-overview#specifications. A maximum of 5 tag key-value pairs can be
7057
+ # specified. Existing tags will be replaced with new values.
7058
+ class ResourceManagerTags
7059
+ include Google::Apis::Core::Hashable
7060
+
7061
+ # Tags must be in one of the following formats ([KEY]=[VALUE]) 1. `tagKeys/`
7062
+ # tag_key_id`=tagValues/`tag_value_id`` 2. ``org_id`/`tag_key_name`=`
7063
+ # tag_value_name`` 3. ``project_id`/`tag_key_name`=`tag_value_name``
7064
+ # Corresponds to the JSON property `tags`
7065
+ # @return [Hash<String,String>]
7066
+ attr_accessor :tags
7067
+
7068
+ def initialize(**args)
7069
+ update!(**args)
7070
+ end
7071
+
7072
+ # Update properties of this object
7073
+ def update!(**args)
7074
+ @tags = args[:tags] if args.key?(:tags)
7075
+ end
7076
+ end
7077
+
4998
7078
  # Configuration for exporting cluster resource usages.
4999
7079
  class ResourceUsageExportConfig
5000
7080
  include Google::Apis::Core::Hashable
@@ -5097,10 +7177,71 @@ module Google
5097
7177
  # @return [String]
5098
7178
  attr_accessor :sandbox_type
5099
7179
 
5100
- # Type of the sandbox to use for the node.
5101
- # Corresponds to the JSON property `type`
5102
- # @return [String]
5103
- attr_accessor :type
7180
+ # Type of the sandbox to use for the node.
7181
+ # Corresponds to the JSON property `type`
7182
+ # @return [String]
7183
+ attr_accessor :type
7184
+
7185
+ def initialize(**args)
7186
+ update!(**args)
7187
+ end
7188
+
7189
+ # Update properties of this object
7190
+ def update!(**args)
7191
+ @sandbox_type = args[:sandbox_type] if args.key?(:sandbox_type)
7192
+ @type = args[:type] if args.key?(:type)
7193
+ end
7194
+ end
7195
+
7196
+ # SecondaryBootDisk represents a persistent disk attached to a node with special
7197
+ # configurations based on its mode.
7198
+ class SecondaryBootDisk
7199
+ include Google::Apis::Core::Hashable
7200
+
7201
+ # Fully-qualified resource ID for an existing disk image.
7202
+ # Corresponds to the JSON property `diskImage`
7203
+ # @return [String]
7204
+ attr_accessor :disk_image
7205
+
7206
+ # Disk mode (container image cache, etc.)
7207
+ # Corresponds to the JSON property `mode`
7208
+ # @return [String]
7209
+ attr_accessor :mode
7210
+
7211
+ def initialize(**args)
7212
+ update!(**args)
7213
+ end
7214
+
7215
+ # Update properties of this object
7216
+ def update!(**args)
7217
+ @disk_image = args[:disk_image] if args.key?(:disk_image)
7218
+ @mode = args[:mode] if args.key?(:mode)
7219
+ end
7220
+ end
7221
+
7222
+ # SecondaryBootDiskUpdateStrategy is a placeholder which will be extended in the
7223
+ # future to define different options for updating secondary boot disks.
7224
+ class SecondaryBootDiskUpdateStrategy
7225
+ include Google::Apis::Core::Hashable
7226
+
7227
+ def initialize(**args)
7228
+ update!(**args)
7229
+ end
7230
+
7231
+ # Update properties of this object
7232
+ def update!(**args)
7233
+ end
7234
+ end
7235
+
7236
+ # SecretManagerConfig is config for secret manager enablement.
7237
+ class SecretManagerConfig
7238
+ include Google::Apis::Core::Hashable
7239
+
7240
+ # Enable/Disable Secret Manager Config.
7241
+ # Corresponds to the JSON property `enabled`
7242
+ # @return [Boolean]
7243
+ attr_accessor :enabled
7244
+ alias_method :enabled?, :enabled
5104
7245
 
5105
7246
  def initialize(**args)
5106
7247
  update!(**args)
@@ -5108,8 +7249,7 @@ module Google
5108
7249
 
5109
7250
  # Update properties of this object
5110
7251
  def update!(**args)
5111
- @sandbox_type = args[:sandbox_type] if args.key?(:sandbox_type)
5112
- @type = args[:type] if args.key?(:type)
7252
+ @enabled = args[:enabled] if args.key?(:enabled)
5113
7253
  end
5114
7254
  end
5115
7255
 
@@ -5151,6 +7291,11 @@ module Google
5151
7291
  attr_accessor :manual_steps_required
5152
7292
  alias_method :manual_steps_required?, :manual_steps_required
5153
7293
 
7294
+ # The GKE versions where this vulnerability is mitigated.
7295
+ # Corresponds to the JSON property `mitigatedVersions`
7296
+ # @return [Array<String>]
7297
+ attr_accessor :mitigated_versions
7298
+
5154
7299
  # The GKE versions where this vulnerability is patched.
5155
7300
  # Corresponds to the JSON property `patchedVersions`
5156
7301
  # @return [Array<String>]
@@ -5189,6 +7334,7 @@ module Google
5189
7334
  @bulletin_uri = args[:bulletin_uri] if args.key?(:bulletin_uri)
5190
7335
  @cve_ids = args[:cve_ids] if args.key?(:cve_ids)
5191
7336
  @manual_steps_required = args[:manual_steps_required] if args.key?(:manual_steps_required)
7337
+ @mitigated_versions = args[:mitigated_versions] if args.key?(:mitigated_versions)
5192
7338
  @patched_versions = args[:patched_versions] if args.key?(:patched_versions)
5193
7339
  @resource_type_affected = args[:resource_type_affected] if args.key?(:resource_type_affected)
5194
7340
  @severity = args[:severity] if args.key?(:severity)
@@ -5196,6 +7342,32 @@ module Google
5196
7342
  end
5197
7343
  end
5198
7344
 
7345
+ # SecurityPostureConfig defines the flags needed to enable/disable features for
7346
+ # the Security Posture API.
7347
+ class SecurityPostureConfig
7348
+ include Google::Apis::Core::Hashable
7349
+
7350
+ # Sets which mode to use for Security Posture features.
7351
+ # Corresponds to the JSON property `mode`
7352
+ # @return [String]
7353
+ attr_accessor :mode
7354
+
7355
+ # Sets which mode to use for vulnerability scanning.
7356
+ # Corresponds to the JSON property `vulnerabilityMode`
7357
+ # @return [String]
7358
+ attr_accessor :vulnerability_mode
7359
+
7360
+ def initialize(**args)
7361
+ update!(**args)
7362
+ end
7363
+
7364
+ # Update properties of this object
7365
+ def update!(**args)
7366
+ @mode = args[:mode] if args.key?(:mode)
7367
+ @vulnerability_mode = args[:vulnerability_mode] if args.key?(:vulnerability_mode)
7368
+ end
7369
+ end
7370
+
5199
7371
  # Kubernetes Engine service configuration.
5200
7372
  class ServerConfig
5201
7373
  include Google::Apis::Core::Hashable
@@ -5655,7 +7827,7 @@ module Google
5655
7827
  attr_accessor :cluster_id
5656
7828
 
5657
7829
  # Required. The monitoring service the cluster should use to write metrics.
5658
- # Currently available options: * "monitoring.googleapis.com/kubernetes" - The
7830
+ # Currently available options: * `monitoring.googleapis.com/kubernetes` - The
5659
7831
  # Cloud Monitoring service with a Kubernetes-native resource model * `monitoring.
5660
7832
  # googleapis.com` - The legacy Cloud Monitoring service (no longer available as
5661
7833
  # of GKE 1.15). * `none` - No metrics will be exported from the cluster. If left
@@ -5976,6 +8148,26 @@ module Google
5976
8148
  end
5977
8149
  end
5978
8150
 
8151
+ # SoleTenantConfig contains the NodeAffinities to specify what shared sole
8152
+ # tenant node groups should back the node pool.
8153
+ class SoleTenantConfig
8154
+ include Google::Apis::Core::Hashable
8155
+
8156
+ # NodeAffinities used to match to a shared sole tenant node group.
8157
+ # Corresponds to the JSON property `nodeAffinities`
8158
+ # @return [Array<Google::Apis::ContainerV1beta1::NodeAffinity>]
8159
+ attr_accessor :node_affinities
8160
+
8161
+ def initialize(**args)
8162
+ update!(**args)
8163
+ end
8164
+
8165
+ # Update properties of this object
8166
+ def update!(**args)
8167
+ @node_affinities = args[:node_affinities] if args.key?(:node_affinities)
8168
+ end
8169
+ end
8170
+
5979
8171
  # Standard rollout policy is the default policy for blue-green.
5980
8172
  class StandardRolloutPolicy
5981
8173
  include Google::Apis::Core::Hashable
@@ -6059,6 +8251,26 @@ module Google
6059
8251
  end
6060
8252
  end
6061
8253
 
8254
+ # Configuration for the Stateful HA add-on.
8255
+ class StatefulHaConfig
8256
+ include Google::Apis::Core::Hashable
8257
+
8258
+ # Whether the Stateful HA add-on is enabled for this cluster.
8259
+ # Corresponds to the JSON property `enabled`
8260
+ # @return [Boolean]
8261
+ attr_accessor :enabled
8262
+ alias_method :enabled?, :enabled
8263
+
8264
+ def initialize(**args)
8265
+ update!(**args)
8266
+ end
8267
+
8268
+ # Update properties of this object
8269
+ def update!(**args)
8270
+ @enabled = args[:enabled] if args.key?(:enabled)
8271
+ end
8272
+ end
8273
+
6062
8274
  # The `Status` type defines a logical error model that is suitable for different
6063
8275
  # programming environments, including REST APIs and RPC APIs. It is used by [
6064
8276
  # gRPC](https://github.com/grpc). Each `Status` message contains three pieces of
@@ -6163,7 +8375,8 @@ module Google
6163
8375
  end
6164
8376
  end
6165
8377
 
6166
- # Configuration for Cloud TPU.
8378
+ # Configuration for Cloud TPU. This message is deprecated due to the deprecation
8379
+ # of 2VM TPU. The end of life date for 2VM TPU is 2025-04-25.
6167
8380
  class TpuConfig
6168
8381
  include Google::Apis::Core::Hashable
6169
8382
 
@@ -6325,6 +8538,12 @@ module Google
6325
8538
  class UpdateNodePoolRequest
6326
8539
  include Google::Apis::Core::Hashable
6327
8540
 
8541
+ # A list of hardware accelerators to be attached to each node. See https://cloud.
8542
+ # google.com/compute/docs/gpus for more information about support for GPUs.
8543
+ # Corresponds to the JSON property `accelerators`
8544
+ # @return [Array<Google::Apis::ContainerV1beta1::AcceleratorConfig>]
8545
+ attr_accessor :accelerators
8546
+
6328
8547
  # Required. Deprecated. The name of the cluster to upgrade. This field has been
6329
8548
  # deprecated and replaced by the name field.
6330
8549
  # Corresponds to the JSON property `clusterId`
@@ -6337,6 +8556,25 @@ module Google
6337
8556
  # @return [Google::Apis::ContainerV1beta1::ConfidentialNodes]
6338
8557
  attr_accessor :confidential_nodes
6339
8558
 
8559
+ # ContainerdConfig contains configuration to customize containerd.
8560
+ # Corresponds to the JSON property `containerdConfig`
8561
+ # @return [Google::Apis::ContainerV1beta1::ContainerdConfig]
8562
+ attr_accessor :containerd_config
8563
+
8564
+ # Optional. The desired disk size for nodes in the node pool. Initiates an
8565
+ # upgrade operation that migrates the nodes in the node pool to the specified
8566
+ # disk size.
8567
+ # Corresponds to the JSON property `diskSizeGb`
8568
+ # @return [Fixnum]
8569
+ attr_accessor :disk_size_gb
8570
+
8571
+ # Optional. The desired disk type for nodes in the node pool. Initiates an
8572
+ # upgrade operation that migrates the nodes in the node pool to the specified
8573
+ # disk type.
8574
+ # Corresponds to the JSON property `diskType`
8575
+ # @return [String]
8576
+ attr_accessor :disk_type
8577
+
6340
8578
  # The current etag of the node pool. If an etag is provided and does not match
6341
8579
  # the current etag of the node pool, update will be blocked and an ABORTED error
6342
8580
  # will be returned.
@@ -6359,7 +8597,9 @@ module Google
6359
8597
  # @return [Google::Apis::ContainerV1beta1::VirtualNic]
6360
8598
  attr_accessor :gvnic
6361
8599
 
6362
- # Required. The desired image type for the node pool.
8600
+ # Required. The desired image type for the node pool. Please see https://cloud.
8601
+ # google.com/kubernetes-engine/docs/concepts/node-images for available image
8602
+ # types.
6363
8603
  # Corresponds to the JSON property `imageType`
6364
8604
  # @return [String]
6365
8605
  attr_accessor :image_type
@@ -6394,6 +8634,19 @@ module Google
6394
8634
  # @return [Google::Apis::ContainerV1beta1::NodePoolLoggingConfig]
6395
8635
  attr_accessor :logging_config
6396
8636
 
8637
+ # Optional. The desired machine type for nodes in the node pool. Initiates an
8638
+ # upgrade operation that migrates the nodes in the node pool to the specified
8639
+ # machine type.
8640
+ # Corresponds to the JSON property `machineType`
8641
+ # @return [String]
8642
+ attr_accessor :machine_type
8643
+
8644
+ # The maximum duration for the nodes to exist. If unspecified, the nodes can
8645
+ # exist indefinitely.
8646
+ # Corresponds to the JSON property `maxRunDuration`
8647
+ # @return [String]
8648
+ attr_accessor :max_run_duration
8649
+
6397
8650
  # The name (project, location, cluster, node pool) of the node pool to update.
6398
8651
  # Specified in the format `projects/*/locations/*/clusters/*/nodePools/*`.
6399
8652
  # Corresponds to the JSON property `name`
@@ -6429,12 +8682,32 @@ module Google
6429
8682
  # @return [String]
6430
8683
  attr_accessor :project_id
6431
8684
 
8685
+ # QueuedProvisioning defines the queued provisioning used by the node pool.
8686
+ # Corresponds to the JSON property `queuedProvisioning`
8687
+ # @return [Google::Apis::ContainerV1beta1::QueuedProvisioning]
8688
+ attr_accessor :queued_provisioning
8689
+
6432
8690
  # Collection of [GCP labels](https://cloud.google.com/resource-manager/docs/
6433
8691
  # creating-managing-labels).
6434
8692
  # Corresponds to the JSON property `resourceLabels`
6435
8693
  # @return [Google::Apis::ContainerV1beta1::ResourceLabels]
6436
8694
  attr_accessor :resource_labels
6437
8695
 
8696
+ # A map of resource manager tag keys and values to be attached to the nodes for
8697
+ # managing Compute Engine firewalls using Network Firewall Policies. Tags must
8698
+ # be according to specifications in https://cloud.google.com/vpc/docs/tags-
8699
+ # firewalls-overview#specifications. A maximum of 5 tag key-value pairs can be
8700
+ # specified. Existing tags will be replaced with new values.
8701
+ # Corresponds to the JSON property `resourceManagerTags`
8702
+ # @return [Google::Apis::ContainerV1beta1::ResourceManagerTags]
8703
+ attr_accessor :resource_manager_tags
8704
+
8705
+ # List of Storage Pools where boot disks are provisioned. Existing Storage Pools
8706
+ # will be replaced with storage-pools.
8707
+ # Corresponds to the JSON property `storagePools`
8708
+ # @return [Array<String>]
8709
+ attr_accessor :storage_pools
8710
+
6438
8711
  # Collection of Compute Engine network tags that can be applied to a node's
6439
8712
  # underlying VM instance. (See `tags` field in [`NodeConfig`](/kubernetes-engine/
6440
8713
  # docs/reference/rest/v1/NodeConfig)).
@@ -6448,6 +8721,20 @@ module Google
6448
8721
  # @return [Google::Apis::ContainerV1beta1::NodeTaints]
6449
8722
  attr_accessor :taints
6450
8723
 
8724
+ # These upgrade settings control the level of parallelism and the level of
8725
+ # disruption caused by an upgrade. maxUnavailable controls the number of nodes
8726
+ # that can be simultaneously unavailable. maxSurge controls the number of
8727
+ # additional nodes that can be added to the node pool temporarily for the time
8728
+ # of the upgrade to increase the number of available nodes. (maxUnavailable +
8729
+ # maxSurge) determines the level of parallelism (how many nodes are being
8730
+ # upgraded at the same time). Note: upgrades inevitably introduce some
8731
+ # disruption since workloads need to be moved from old nodes to new, upgraded
8732
+ # ones. Even if maxUnavailable=0, this holds true. (Disruption stays within the
8733
+ # limits of PodDisruptionBudget, if it is configured.) Consider a hypothetical
8734
+ # node pool with 5 nodes having maxSurge=2, maxUnavailable=1. This means the
8735
+ # upgrade process upgrades 3 nodes simultaneously. It creates 2 additional (
8736
+ # upgraded) nodes, then it brings down 3 old (not yet upgraded) nodes at the
8737
+ # same time. This ensures that there are always at least 4 nodes available.
6451
8738
  # These upgrade settings configure the upgrade strategy for the node pool. Use
6452
8739
  # strategy to switch between the strategies applied to the node pool. If the
6453
8740
  # strategy is SURGE, use max_surge and max_unavailable to control the level of
@@ -6471,7 +8758,7 @@ module Google
6471
8758
 
6472
8759
  # Parameters that can be configured on Windows nodes. Windows Node Config that
6473
8760
  # define the parameters that will be used to configure the Windows node pool
6474
- # settings
8761
+ # settings.
6475
8762
  # Corresponds to the JSON property `windowsNodeConfig`
6476
8763
  # @return [Google::Apis::ContainerV1beta1::WindowsNodeConfig]
6477
8764
  attr_accessor :windows_node_config
@@ -6495,8 +8782,12 @@ module Google
6495
8782
 
6496
8783
  # Update properties of this object
6497
8784
  def update!(**args)
8785
+ @accelerators = args[:accelerators] if args.key?(:accelerators)
6498
8786
  @cluster_id = args[:cluster_id] if args.key?(:cluster_id)
6499
8787
  @confidential_nodes = args[:confidential_nodes] if args.key?(:confidential_nodes)
8788
+ @containerd_config = args[:containerd_config] if args.key?(:containerd_config)
8789
+ @disk_size_gb = args[:disk_size_gb] if args.key?(:disk_size_gb)
8790
+ @disk_type = args[:disk_type] if args.key?(:disk_type)
6500
8791
  @etag = args[:etag] if args.key?(:etag)
6501
8792
  @fast_socket = args[:fast_socket] if args.key?(:fast_socket)
6502
8793
  @gcfs_config = args[:gcfs_config] if args.key?(:gcfs_config)
@@ -6507,12 +8798,17 @@ module Google
6507
8798
  @linux_node_config = args[:linux_node_config] if args.key?(:linux_node_config)
6508
8799
  @locations = args[:locations] if args.key?(:locations)
6509
8800
  @logging_config = args[:logging_config] if args.key?(:logging_config)
8801
+ @machine_type = args[:machine_type] if args.key?(:machine_type)
8802
+ @max_run_duration = args[:max_run_duration] if args.key?(:max_run_duration)
6510
8803
  @name = args[:name] if args.key?(:name)
6511
8804
  @node_network_config = args[:node_network_config] if args.key?(:node_network_config)
6512
8805
  @node_pool_id = args[:node_pool_id] if args.key?(:node_pool_id)
6513
8806
  @node_version = args[:node_version] if args.key?(:node_version)
6514
8807
  @project_id = args[:project_id] if args.key?(:project_id)
8808
+ @queued_provisioning = args[:queued_provisioning] if args.key?(:queued_provisioning)
6515
8809
  @resource_labels = args[:resource_labels] if args.key?(:resource_labels)
8810
+ @resource_manager_tags = args[:resource_manager_tags] if args.key?(:resource_manager_tags)
8811
+ @storage_pools = args[:storage_pools] if args.key?(:storage_pools)
6516
8812
  @tags = args[:tags] if args.key?(:tags)
6517
8813
  @taints = args[:taints] if args.key?(:taints)
6518
8814
  @upgrade_settings = args[:upgrade_settings] if args.key?(:upgrade_settings)
@@ -6570,6 +8866,56 @@ module Google
6570
8866
  end
6571
8867
  end
6572
8868
 
8869
+ # UpgradeDetails contains detailed information of each individual upgrade
8870
+ # operation.
8871
+ class UpgradeDetails
8872
+ include Google::Apis::Core::Hashable
8873
+
8874
+ # The end timestamp of the upgrade.
8875
+ # Corresponds to the JSON property `endTime`
8876
+ # @return [String]
8877
+ attr_accessor :end_time
8878
+
8879
+ # The version before the upgrade.
8880
+ # Corresponds to the JSON property `initialVersion`
8881
+ # @return [String]
8882
+ attr_accessor :initial_version
8883
+
8884
+ # The start timestamp of the upgrade.
8885
+ # Corresponds to the JSON property `startTime`
8886
+ # @return [String]
8887
+ attr_accessor :start_time
8888
+
8889
+ # The start type of the upgrade.
8890
+ # Corresponds to the JSON property `startType`
8891
+ # @return [String]
8892
+ attr_accessor :start_type
8893
+
8894
+ # Output only. The state of the upgrade.
8895
+ # Corresponds to the JSON property `state`
8896
+ # @return [String]
8897
+ attr_accessor :state
8898
+
8899
+ # The version after the upgrade.
8900
+ # Corresponds to the JSON property `targetVersion`
8901
+ # @return [String]
8902
+ attr_accessor :target_version
8903
+
8904
+ def initialize(**args)
8905
+ update!(**args)
8906
+ end
8907
+
8908
+ # Update properties of this object
8909
+ def update!(**args)
8910
+ @end_time = args[:end_time] if args.key?(:end_time)
8911
+ @initial_version = args[:initial_version] if args.key?(:initial_version)
8912
+ @start_time = args[:start_time] if args.key?(:start_time)
8913
+ @start_type = args[:start_type] if args.key?(:start_type)
8914
+ @state = args[:state] if args.key?(:state)
8915
+ @target_version = args[:target_version] if args.key?(:target_version)
8916
+ end
8917
+ end
8918
+
6573
8919
  # UpgradeEvent is a notification sent to customers by the cluster server when a
6574
8920
  # resource is upgrading.
6575
8921
  class UpgradeEvent
@@ -6621,6 +8967,107 @@ module Google
6621
8967
  end
6622
8968
  end
6623
8969
 
8970
+ # UpgradeInfoEvent is a notification sent to customers about the upgrade
8971
+ # information of a resource.
8972
+ class UpgradeInfoEvent
8973
+ include Google::Apis::Core::Hashable
8974
+
8975
+ # The current version before the upgrade.
8976
+ # Corresponds to the JSON property `currentVersion`
8977
+ # @return [String]
8978
+ attr_accessor :current_version
8979
+
8980
+ # A brief description of the event.
8981
+ # Corresponds to the JSON property `description`
8982
+ # @return [String]
8983
+ attr_accessor :description
8984
+
8985
+ # The time when the operation ended.
8986
+ # Corresponds to the JSON property `endTime`
8987
+ # @return [String]
8988
+ attr_accessor :end_time
8989
+
8990
+ # The type of the event.
8991
+ # Corresponds to the JSON property `eventType`
8992
+ # @return [String]
8993
+ attr_accessor :event_type
8994
+
8995
+ # The end of extended support timestamp.
8996
+ # Corresponds to the JSON property `extendedSupportEndTime`
8997
+ # @return [String]
8998
+ attr_accessor :extended_support_end_time
8999
+
9000
+ # The operation associated with this upgrade.
9001
+ # Corresponds to the JSON property `operation`
9002
+ # @return [String]
9003
+ attr_accessor :operation
9004
+
9005
+ # Optional relative path to the resource. For example in node pool upgrades, the
9006
+ # relative path of the node pool.
9007
+ # Corresponds to the JSON property `resource`
9008
+ # @return [String]
9009
+ attr_accessor :resource
9010
+
9011
+ # The resource type associated with the upgrade.
9012
+ # Corresponds to the JSON property `resourceType`
9013
+ # @return [String]
9014
+ attr_accessor :resource_type
9015
+
9016
+ # The end of standard support timestamp.
9017
+ # Corresponds to the JSON property `standardSupportEndTime`
9018
+ # @return [String]
9019
+ attr_accessor :standard_support_end_time
9020
+
9021
+ # The time when the operation was started.
9022
+ # Corresponds to the JSON property `startTime`
9023
+ # @return [String]
9024
+ attr_accessor :start_time
9025
+
9026
+ # Output only. The state of the upgrade.
9027
+ # Corresponds to the JSON property `state`
9028
+ # @return [String]
9029
+ attr_accessor :state
9030
+
9031
+ # The target version for the upgrade.
9032
+ # Corresponds to the JSON property `targetVersion`
9033
+ # @return [String]
9034
+ attr_accessor :target_version
9035
+
9036
+ def initialize(**args)
9037
+ update!(**args)
9038
+ end
9039
+
9040
+ # Update properties of this object
9041
+ def update!(**args)
9042
+ @current_version = args[:current_version] if args.key?(:current_version)
9043
+ @description = args[:description] if args.key?(:description)
9044
+ @end_time = args[:end_time] if args.key?(:end_time)
9045
+ @event_type = args[:event_type] if args.key?(:event_type)
9046
+ @extended_support_end_time = args[:extended_support_end_time] if args.key?(:extended_support_end_time)
9047
+ @operation = args[:operation] if args.key?(:operation)
9048
+ @resource = args[:resource] if args.key?(:resource)
9049
+ @resource_type = args[:resource_type] if args.key?(:resource_type)
9050
+ @standard_support_end_time = args[:standard_support_end_time] if args.key?(:standard_support_end_time)
9051
+ @start_time = args[:start_time] if args.key?(:start_time)
9052
+ @state = args[:state] if args.key?(:state)
9053
+ @target_version = args[:target_version] if args.key?(:target_version)
9054
+ end
9055
+ end
9056
+
9057
+ # These upgrade settings control the level of parallelism and the level of
9058
+ # disruption caused by an upgrade. maxUnavailable controls the number of nodes
9059
+ # that can be simultaneously unavailable. maxSurge controls the number of
9060
+ # additional nodes that can be added to the node pool temporarily for the time
9061
+ # of the upgrade to increase the number of available nodes. (maxUnavailable +
9062
+ # maxSurge) determines the level of parallelism (how many nodes are being
9063
+ # upgraded at the same time). Note: upgrades inevitably introduce some
9064
+ # disruption since workloads need to be moved from old nodes to new, upgraded
9065
+ # ones. Even if maxUnavailable=0, this holds true. (Disruption stays within the
9066
+ # limits of PodDisruptionBudget, if it is configured.) Consider a hypothetical
9067
+ # node pool with 5 nodes having maxSurge=2, maxUnavailable=1. This means the
9068
+ # upgrade process upgrades 3 nodes simultaneously. It creates 2 additional (
9069
+ # upgraded) nodes, then it brings down 3 old (not yet upgraded) nodes at the
9070
+ # same time. This ensures that there are always at least 4 nodes available.
6624
9071
  # These upgrade settings configure the upgrade strategy for the node pool. Use
6625
9072
  # strategy to switch between the strategies applied to the node pool. If the
6626
9073
  # strategy is SURGE, use max_surge and max_unavailable to control the level of
@@ -6756,6 +9203,78 @@ module Google
6756
9203
  end
6757
9204
  end
6758
9205
 
9206
+ # UserManagedKeysConfig holds the resource address to Keys which are used for
9207
+ # signing certs and token that are used for communication within cluster.
9208
+ class UserManagedKeysConfig
9209
+ include Google::Apis::Core::Hashable
9210
+
9211
+ # The Certificate Authority Service caPool to use for the aggregation CA in this
9212
+ # cluster.
9213
+ # Corresponds to the JSON property `aggregationCa`
9214
+ # @return [String]
9215
+ attr_accessor :aggregation_ca
9216
+
9217
+ # The Certificate Authority Service caPool to use for the cluster CA in this
9218
+ # cluster.
9219
+ # Corresponds to the JSON property `clusterCa`
9220
+ # @return [String]
9221
+ attr_accessor :cluster_ca
9222
+
9223
+ # The Cloud KMS cryptoKey to use for Confidential Hyperdisk on the control plane
9224
+ # nodes.
9225
+ # Corresponds to the JSON property `controlPlaneDiskEncryptionKey`
9226
+ # @return [String]
9227
+ attr_accessor :control_plane_disk_encryption_key
9228
+
9229
+ # Resource path of the Certificate Authority Service caPool to use for the etcd
9230
+ # API CA in this cluster.
9231
+ # Corresponds to the JSON property `etcdApiCa`
9232
+ # @return [String]
9233
+ attr_accessor :etcd_api_ca
9234
+
9235
+ # Resource path of the Certificate Authority Service caPool to use for the etcd
9236
+ # peer CA in this cluster.
9237
+ # Corresponds to the JSON property `etcdPeerCa`
9238
+ # @return [String]
9239
+ attr_accessor :etcd_peer_ca
9240
+
9241
+ # Resource path of the Cloud KMS cryptoKey to use for encryption of internal
9242
+ # etcd backups.
9243
+ # Corresponds to the JSON property `gkeopsEtcdBackupEncryptionKey`
9244
+ # @return [String]
9245
+ attr_accessor :gkeops_etcd_backup_encryption_key
9246
+
9247
+ # The Cloud KMS cryptoKeyVersions to use for signing service account JWTs issued
9248
+ # by this cluster. Format: `projects/`project`/locations/`location`/keyRings/`
9249
+ # keyring`/cryptoKeys/`cryptoKey`/cryptoKeyVersions/`cryptoKeyVersion``
9250
+ # Corresponds to the JSON property `serviceAccountSigningKeys`
9251
+ # @return [Array<String>]
9252
+ attr_accessor :service_account_signing_keys
9253
+
9254
+ # The Cloud KMS cryptoKeyVersions to use for verifying service account JWTs
9255
+ # issued by this cluster. Format: `projects/`project`/locations/`location`/
9256
+ # keyRings/`keyring`/cryptoKeys/`cryptoKey`/cryptoKeyVersions/`cryptoKeyVersion``
9257
+ # Corresponds to the JSON property `serviceAccountVerificationKeys`
9258
+ # @return [Array<String>]
9259
+ attr_accessor :service_account_verification_keys
9260
+
9261
+ def initialize(**args)
9262
+ update!(**args)
9263
+ end
9264
+
9265
+ # Update properties of this object
9266
+ def update!(**args)
9267
+ @aggregation_ca = args[:aggregation_ca] if args.key?(:aggregation_ca)
9268
+ @cluster_ca = args[:cluster_ca] if args.key?(:cluster_ca)
9269
+ @control_plane_disk_encryption_key = args[:control_plane_disk_encryption_key] if args.key?(:control_plane_disk_encryption_key)
9270
+ @etcd_api_ca = args[:etcd_api_ca] if args.key?(:etcd_api_ca)
9271
+ @etcd_peer_ca = args[:etcd_peer_ca] if args.key?(:etcd_peer_ca)
9272
+ @gkeops_etcd_backup_encryption_key = args[:gkeops_etcd_backup_encryption_key] if args.key?(:gkeops_etcd_backup_encryption_key)
9273
+ @service_account_signing_keys = args[:service_account_signing_keys] if args.key?(:service_account_signing_keys)
9274
+ @service_account_verification_keys = args[:service_account_verification_keys] if args.key?(:service_account_verification_keys)
9275
+ end
9276
+ end
9277
+
6759
9278
  # VerticalPodAutoscaling contains global, per-cluster information required by
6760
9279
  # Vertical Pod Autoscaler to automatically adjust the resources of pods
6761
9280
  # controlled by it.
@@ -6800,11 +9319,11 @@ module Google
6800
9319
 
6801
9320
  # Parameters that can be configured on Windows nodes. Windows Node Config that
6802
9321
  # define the parameters that will be used to configure the Windows node pool
6803
- # settings
9322
+ # settings.
6804
9323
  class WindowsNodeConfig
6805
9324
  include Google::Apis::Core::Hashable
6806
9325
 
6807
- # OSVersion specifies the Windows node config to be used on the node
9326
+ # OSVersion specifies the Windows node config to be used on the node.
6808
9327
  # Corresponds to the JSON property `osVersion`
6809
9328
  # @return [String]
6810
9329
  attr_accessor :os_version
@@ -6999,6 +9518,33 @@ module Google
6999
9518
  @node_metadata = args[:node_metadata] if args.key?(:node_metadata)
7000
9519
  end
7001
9520
  end
9521
+
9522
+ # WorkloadPolicyConfig is the configuration related to GCW workload policy
9523
+ class WorkloadPolicyConfig
9524
+ include Google::Apis::Core::Hashable
9525
+
9526
+ # If true, workloads can use NET_ADMIN capability.
9527
+ # Corresponds to the JSON property `allowNetAdmin`
9528
+ # @return [Boolean]
9529
+ attr_accessor :allow_net_admin
9530
+ alias_method :allow_net_admin?, :allow_net_admin
9531
+
9532
+ # If true, enables the GCW Auditor that audits workloads on standard clusters.
9533
+ # Corresponds to the JSON property `autopilotCompatibilityAuditingEnabled`
9534
+ # @return [Boolean]
9535
+ attr_accessor :autopilot_compatibility_auditing_enabled
9536
+ alias_method :autopilot_compatibility_auditing_enabled?, :autopilot_compatibility_auditing_enabled
9537
+
9538
+ def initialize(**args)
9539
+ update!(**args)
9540
+ end
9541
+
9542
+ # Update properties of this object
9543
+ def update!(**args)
9544
+ @allow_net_admin = args[:allow_net_admin] if args.key?(:allow_net_admin)
9545
+ @autopilot_compatibility_auditing_enabled = args[:autopilot_compatibility_auditing_enabled] if args.key?(:autopilot_compatibility_auditing_enabled)
9546
+ end
9547
+ end
7002
9548
  end
7003
9549
  end
7004
9550
  end