google-apis-container_v1 0.43.0 → 0.89.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::ContainerV1::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).
@@ -58,11 +64,104 @@ module Google
58
64
  def update!(**args)
59
65
  @accelerator_count = args[:accelerator_count] if args.key?(:accelerator_count)
60
66
  @accelerator_type = args[:accelerator_type] if args.key?(:accelerator_type)
67
+ @gpu_driver_installation_config = args[:gpu_driver_installation_config] if args.key?(:gpu_driver_installation_config)
61
68
  @gpu_partition_size = args[:gpu_partition_size] if args.key?(:gpu_partition_size)
62
69
  @gpu_sharing_config = args[:gpu_sharing_config] if args.key?(:gpu_sharing_config)
63
70
  end
64
71
  end
65
72
 
73
+ # AdditionalNodeNetworkConfig is the configuration for additional node networks
74
+ # within the NodeNetworkConfig message
75
+ class AdditionalNodeNetworkConfig
76
+ include Google::Apis::Core::Hashable
77
+
78
+ # Name of the VPC where the additional interface belongs
79
+ # Corresponds to the JSON property `network`
80
+ # @return [String]
81
+ attr_accessor :network
82
+
83
+ # Name of the subnetwork where the additional interface belongs
84
+ # Corresponds to the JSON property `subnetwork`
85
+ # @return [String]
86
+ attr_accessor :subnetwork
87
+
88
+ def initialize(**args)
89
+ update!(**args)
90
+ end
91
+
92
+ # Update properties of this object
93
+ def update!(**args)
94
+ @network = args[:network] if args.key?(:network)
95
+ @subnetwork = args[:subnetwork] if args.key?(:subnetwork)
96
+ end
97
+ end
98
+
99
+ # AdditionalPodNetworkConfig is the configuration for additional pod networks
100
+ # within the NodeNetworkConfig message
101
+ class AdditionalPodNetworkConfig
102
+ include Google::Apis::Core::Hashable
103
+
104
+ # Constraints applied to pods.
105
+ # Corresponds to the JSON property `maxPodsPerNode`
106
+ # @return [Google::Apis::ContainerV1::MaxPodsConstraint]
107
+ attr_accessor :max_pods_per_node
108
+
109
+ # The name of the network attachment for pods to communicate to; cannot be
110
+ # specified along with subnetwork or secondary_pod_range.
111
+ # Corresponds to the JSON property `networkAttachment`
112
+ # @return [String]
113
+ attr_accessor :network_attachment
114
+
115
+ # The name of the secondary range on the subnet which provides IP address for
116
+ # this pod range.
117
+ # Corresponds to the JSON property `secondaryPodRange`
118
+ # @return [String]
119
+ attr_accessor :secondary_pod_range
120
+
121
+ # Name of the subnetwork where the additional pod network belongs.
122
+ # Corresponds to the JSON property `subnetwork`
123
+ # @return [String]
124
+ attr_accessor :subnetwork
125
+
126
+ def initialize(**args)
127
+ update!(**args)
128
+ end
129
+
130
+ # Update properties of this object
131
+ def update!(**args)
132
+ @max_pods_per_node = args[:max_pods_per_node] if args.key?(:max_pods_per_node)
133
+ @network_attachment = args[:network_attachment] if args.key?(:network_attachment)
134
+ @secondary_pod_range = args[:secondary_pod_range] if args.key?(:secondary_pod_range)
135
+ @subnetwork = args[:subnetwork] if args.key?(:subnetwork)
136
+ end
137
+ end
138
+
139
+ # AdditionalPodRangesConfig is the configuration for additional pod secondary
140
+ # ranges supporting the ClusterUpdate message.
141
+ class AdditionalPodRangesConfig
142
+ include Google::Apis::Core::Hashable
143
+
144
+ # Output only. Information for additional pod range.
145
+ # Corresponds to the JSON property `podRangeInfo`
146
+ # @return [Array<Google::Apis::ContainerV1::RangeInfo>]
147
+ attr_accessor :pod_range_info
148
+
149
+ # Name for pod secondary ipv4 range which has the actual range defined ahead.
150
+ # Corresponds to the JSON property `podRangeNames`
151
+ # @return [Array<String>]
152
+ attr_accessor :pod_range_names
153
+
154
+ def initialize(**args)
155
+ update!(**args)
156
+ end
157
+
158
+ # Update properties of this object
159
+ def update!(**args)
160
+ @pod_range_info = args[:pod_range_info] if args.key?(:pod_range_info)
161
+ @pod_range_names = args[:pod_range_names] if args.key?(:pod_range_names)
162
+ end
163
+ end
164
+
66
165
  # Configuration for the addons that can be automatically spun up in the cluster,
67
166
  # enabling additional functionality.
68
167
  class AddonsConfig
@@ -93,6 +192,11 @@ module Google
93
192
  # @return [Google::Apis::ContainerV1::GcpFilestoreCsiDriverConfig]
94
193
  attr_accessor :gcp_filestore_csi_driver_config
95
194
 
195
+ # Configuration for the Cloud Storage Fuse CSI driver.
196
+ # Corresponds to the JSON property `gcsFuseCsiDriverConfig`
197
+ # @return [Google::Apis::ContainerV1::GcsFuseCsiDriverConfig]
198
+ attr_accessor :gcs_fuse_csi_driver_config
199
+
96
200
  # Configuration for the Backup for GKE Agent.
97
201
  # Corresponds to the JSON property `gkeBackupAgentConfig`
98
202
  # @return [Google::Apis::ContainerV1::GkeBackupAgentConfig]
@@ -123,6 +227,21 @@ module Google
123
227
  # @return [Google::Apis::ContainerV1::NetworkPolicyConfig]
124
228
  attr_accessor :network_policy_config
125
229
 
230
+ # Configuration for the Cloud Storage Parallelstore CSI driver.
231
+ # Corresponds to the JSON property `parallelstoreCsiDriverConfig`
232
+ # @return [Google::Apis::ContainerV1::ParallelstoreCsiDriverConfig]
233
+ attr_accessor :parallelstore_csi_driver_config
234
+
235
+ # Configuration options for the Ray Operator add-on.
236
+ # Corresponds to the JSON property `rayOperatorConfig`
237
+ # @return [Google::Apis::ContainerV1::RayOperatorConfig]
238
+ attr_accessor :ray_operator_config
239
+
240
+ # Configuration for the Stateful HA add-on.
241
+ # Corresponds to the JSON property `statefulHaConfig`
242
+ # @return [Google::Apis::ContainerV1::StatefulHaConfig]
243
+ attr_accessor :stateful_ha_config
244
+
126
245
  def initialize(**args)
127
246
  update!(**args)
128
247
  end
@@ -134,11 +253,49 @@ module Google
134
253
  @dns_cache_config = args[:dns_cache_config] if args.key?(:dns_cache_config)
135
254
  @gce_persistent_disk_csi_driver_config = args[:gce_persistent_disk_csi_driver_config] if args.key?(:gce_persistent_disk_csi_driver_config)
136
255
  @gcp_filestore_csi_driver_config = args[:gcp_filestore_csi_driver_config] if args.key?(:gcp_filestore_csi_driver_config)
256
+ @gcs_fuse_csi_driver_config = args[:gcs_fuse_csi_driver_config] if args.key?(:gcs_fuse_csi_driver_config)
137
257
  @gke_backup_agent_config = args[:gke_backup_agent_config] if args.key?(:gke_backup_agent_config)
138
258
  @horizontal_pod_autoscaling = args[:horizontal_pod_autoscaling] if args.key?(:horizontal_pod_autoscaling)
139
259
  @http_load_balancing = args[:http_load_balancing] if args.key?(:http_load_balancing)
140
260
  @kubernetes_dashboard = args[:kubernetes_dashboard] if args.key?(:kubernetes_dashboard)
141
261
  @network_policy_config = args[:network_policy_config] if args.key?(:network_policy_config)
262
+ @parallelstore_csi_driver_config = args[:parallelstore_csi_driver_config] if args.key?(:parallelstore_csi_driver_config)
263
+ @ray_operator_config = args[:ray_operator_config] if args.key?(:ray_operator_config)
264
+ @stateful_ha_config = args[:stateful_ha_config] if args.key?(:stateful_ha_config)
265
+ end
266
+ end
267
+
268
+ # AdvancedDatapathObservabilityConfig specifies configuration of observability
269
+ # features of advanced datapath.
270
+ class AdvancedDatapathObservabilityConfig
271
+ include Google::Apis::Core::Hashable
272
+
273
+ # Expose flow metrics on nodes
274
+ # Corresponds to the JSON property `enableMetrics`
275
+ # @return [Boolean]
276
+ attr_accessor :enable_metrics
277
+ alias_method :enable_metrics?, :enable_metrics
278
+
279
+ # Enable Relay component
280
+ # Corresponds to the JSON property `enableRelay`
281
+ # @return [Boolean]
282
+ attr_accessor :enable_relay
283
+ alias_method :enable_relay?, :enable_relay
284
+
285
+ # Method used to make Relay available
286
+ # Corresponds to the JSON property `relayMode`
287
+ # @return [String]
288
+ attr_accessor :relay_mode
289
+
290
+ def initialize(**args)
291
+ update!(**args)
292
+ end
293
+
294
+ # Update properties of this object
295
+ def update!(**args)
296
+ @enable_metrics = args[:enable_metrics] if args.key?(:enable_metrics)
297
+ @enable_relay = args[:enable_relay] if args.key?(:enable_relay)
298
+ @relay_mode = args[:relay_mode] if args.key?(:relay_mode)
142
299
  end
143
300
  end
144
301
 
@@ -146,6 +303,12 @@ module Google
146
303
  class AdvancedMachineFeatures
147
304
  include Google::Apis::Core::Hashable
148
305
 
306
+ # Whether or not to enable nested virtualization (defaults to false).
307
+ # Corresponds to the JSON property `enableNestedVirtualization`
308
+ # @return [Boolean]
309
+ attr_accessor :enable_nested_virtualization
310
+ alias_method :enable_nested_virtualization?, :enable_nested_virtualization
311
+
149
312
  # The number of threads per physical core. To disable simultaneous
150
313
  # multithreading (SMT) set this to 1. If unset, the maximum number of threads
151
314
  # supported per core by the underlying processor is assumed.
@@ -159,6 +322,7 @@ module Google
159
322
 
160
323
  # Update properties of this object
161
324
  def update!(**args)
325
+ @enable_nested_virtualization = args[:enable_nested_virtualization] if args.key?(:enable_nested_virtualization)
162
326
  @threads_per_core = args[:threads_per_core] if args.key?(:threads_per_core)
163
327
  end
164
328
  end
@@ -196,14 +360,14 @@ module Google
196
360
  class AutoUpgradeOptions
197
361
  include Google::Apis::Core::Hashable
198
362
 
199
- # [Output only] This field is set when upgrades are about to commence with the
363
+ # Output only. This field is set when upgrades are about to commence with the
200
364
  # approximate start time for the upgrades, in [RFC3339](https://www.ietf.org/rfc/
201
365
  # rfc3339.txt) text format.
202
366
  # Corresponds to the JSON property `autoUpgradeStartTime`
203
367
  # @return [String]
204
368
  attr_accessor :auto_upgrade_start_time
205
369
 
206
- # [Output only] This field is set when upgrades are about to commence with the
370
+ # Output only. This field is set when upgrades are about to commence with the
207
371
  # description of the upgrade.
208
372
  # Corresponds to the JSON property `description`
209
373
  # @return [String]
@@ -230,6 +394,82 @@ module Google
230
394
  attr_accessor :enabled
231
395
  alias_method :enabled?, :enabled
232
396
 
397
+ # WorkloadPolicyConfig is the configuration related to GCW workload policy
398
+ # Corresponds to the JSON property `workloadPolicyConfig`
399
+ # @return [Google::Apis::ContainerV1::WorkloadPolicyConfig]
400
+ attr_accessor :workload_policy_config
401
+
402
+ def initialize(**args)
403
+ update!(**args)
404
+ end
405
+
406
+ # Update properties of this object
407
+ def update!(**args)
408
+ @enabled = args[:enabled] if args.key?(:enabled)
409
+ @workload_policy_config = args[:workload_policy_config] if args.key?(:workload_policy_config)
410
+ end
411
+ end
412
+
413
+ # AutopilotCompatibilityIssue contains information about a specific
414
+ # compatibility issue with Autopilot mode.
415
+ class AutopilotCompatibilityIssue
416
+ include Google::Apis::Core::Hashable
417
+
418
+ # The constraint type of the issue.
419
+ # Corresponds to the JSON property `constraintType`
420
+ # @return [String]
421
+ attr_accessor :constraint_type
422
+
423
+ # The description of the issue.
424
+ # Corresponds to the JSON property `description`
425
+ # @return [String]
426
+ attr_accessor :description
427
+
428
+ # A URL to a public documentation, which addresses resolving this issue.
429
+ # Corresponds to the JSON property `documentationUrl`
430
+ # @return [String]
431
+ attr_accessor :documentation_url
432
+
433
+ # The incompatibility type of this issue.
434
+ # Corresponds to the JSON property `incompatibilityType`
435
+ # @return [String]
436
+ attr_accessor :incompatibility_type
437
+
438
+ # The last time when this issue was observed.
439
+ # Corresponds to the JSON property `lastObservation`
440
+ # @return [String]
441
+ attr_accessor :last_observation
442
+
443
+ # The name of the resources which are subject to this issue.
444
+ # Corresponds to the JSON property `subjects`
445
+ # @return [Array<String>]
446
+ attr_accessor :subjects
447
+
448
+ def initialize(**args)
449
+ update!(**args)
450
+ end
451
+
452
+ # Update properties of this object
453
+ def update!(**args)
454
+ @constraint_type = args[:constraint_type] if args.key?(:constraint_type)
455
+ @description = args[:description] if args.key?(:description)
456
+ @documentation_url = args[:documentation_url] if args.key?(:documentation_url)
457
+ @incompatibility_type = args[:incompatibility_type] if args.key?(:incompatibility_type)
458
+ @last_observation = args[:last_observation] if args.key?(:last_observation)
459
+ @subjects = args[:subjects] if args.key?(:subjects)
460
+ end
461
+ end
462
+
463
+ # AutopilotConfig contains configuration of autopilot feature for this nodepool.
464
+ class AutopilotConfig
465
+ include Google::Apis::Core::Hashable
466
+
467
+ # Denotes that nodes belonging to this node pool are Autopilot nodes.
468
+ # Corresponds to the JSON property `enabled`
469
+ # @return [Boolean]
470
+ attr_accessor :enabled
471
+ alias_method :enabled?, :enabled
472
+
233
473
  def initialize(**args)
234
474
  update!(**args)
235
475
  end
@@ -266,11 +506,18 @@ module Google
266
506
  # @return [String]
267
507
  attr_accessor :disk_type
268
508
 
269
- # The image type to use for NAP created node.
509
+ # The image type to use for NAP created node. Please see https://cloud.google.
510
+ # com/kubernetes-engine/docs/concepts/node-images for available image types.
270
511
  # Corresponds to the JSON property `imageType`
271
512
  # @return [String]
272
513
  attr_accessor :image_type
273
514
 
515
+ # Enable or disable Kubelet read only port.
516
+ # Corresponds to the JSON property `insecureKubeletReadonlyPortEnabled`
517
+ # @return [Boolean]
518
+ attr_accessor :insecure_kubelet_readonly_port_enabled
519
+ alias_method :insecure_kubelet_readonly_port_enabled?, :insecure_kubelet_readonly_port_enabled
520
+
274
521
  # NodeManagement defines the set of node management services turned on for the
275
522
  # node pool.
276
523
  # Corresponds to the JSON property `management`
@@ -283,7 +530,7 @@ module Google
283
530
  # Haswell or minCpuPlatform: Intel Sandy Bridge. For more information, read [how
284
531
  # to specify min CPU platform](https://cloud.google.com/compute/docs/instances/
285
532
  # specify-min-cpu-platform). This field is deprecated, min_cpu_platform should
286
- # be specified using https://cloud.google.com/requested-min-cpu-platform label
533
+ # be specified using `cloud.google.com/requested-min-cpu-platform` label
287
534
  # selector on the pod. To unset the min cpu platform field pass "automatic" as
288
535
  # field value.
289
536
  # Corresponds to the JSON property `minCpuPlatform`
@@ -350,6 +597,7 @@ module Google
350
597
  @disk_size_gb = args[:disk_size_gb] if args.key?(:disk_size_gb)
351
598
  @disk_type = args[:disk_type] if args.key?(:disk_type)
352
599
  @image_type = args[:image_type] if args.key?(:image_type)
600
+ @insecure_kubelet_readonly_port_enabled = args[:insecure_kubelet_readonly_port_enabled] if args.key?(:insecure_kubelet_readonly_port_enabled)
353
601
  @management = args[:management] if args.key?(:management)
354
602
  @min_cpu_platform = args[:min_cpu_platform] if args.key?(:min_cpu_platform)
355
603
  @oauth_scopes = args[:oauth_scopes] if args.key?(:oauth_scopes)
@@ -359,6 +607,36 @@ module Google
359
607
  end
360
608
  end
361
609
 
610
+ # Best effort provisioning.
611
+ class BestEffortProvisioning
612
+ include Google::Apis::Core::Hashable
613
+
614
+ # When this is enabled, cluster/node pool creations will ignore non-fatal errors
615
+ # like stockout to best provision as many nodes as possible right now and
616
+ # eventually bring up all target number of nodes
617
+ # Corresponds to the JSON property `enabled`
618
+ # @return [Boolean]
619
+ attr_accessor :enabled
620
+ alias_method :enabled?, :enabled
621
+
622
+ # Minimum number of nodes to be provisioned to be considered as succeeded, and
623
+ # the rest of nodes will be provisioned gradually and eventually when stockout
624
+ # issue has been resolved.
625
+ # Corresponds to the JSON property `minProvisionNodes`
626
+ # @return [Fixnum]
627
+ attr_accessor :min_provision_nodes
628
+
629
+ def initialize(**args)
630
+ update!(**args)
631
+ end
632
+
633
+ # Update properties of this object
634
+ def update!(**args)
635
+ @enabled = args[:enabled] if args.key?(:enabled)
636
+ @min_provision_nodes = args[:min_provision_nodes] if args.key?(:min_provision_nodes)
637
+ end
638
+ end
639
+
362
640
  # Parameters for using BigQuery as the destination of resource usage export.
363
641
  class BigQueryDestination
364
642
  include Google::Apis::Core::Hashable
@@ -522,6 +800,59 @@ module Google
522
800
  end
523
801
  end
524
802
 
803
+ # CertificateAuthorityDomainConfig configures one or more fully qualified domain
804
+ # names (FQDN) to a specific certificate.
805
+ class CertificateAuthorityDomainConfig
806
+ include Google::Apis::Core::Hashable
807
+
808
+ # List of fully qualified domain names (FQDN). Specifying port is supported.
809
+ # Wildcards are NOT supported. Examples: - my.customdomain.com - 10.0.1.2:5000
810
+ # Corresponds to the JSON property `fqdns`
811
+ # @return [Array<String>]
812
+ attr_accessor :fqdns
813
+
814
+ # GCPSecretManagerCertificateConfig configures a secret from [Google Secret
815
+ # Manager](https://cloud.google.com/secret-manager).
816
+ # Corresponds to the JSON property `gcpSecretManagerCertificateConfig`
817
+ # @return [Google::Apis::ContainerV1::GcpSecretManagerCertificateConfig]
818
+ attr_accessor :gcp_secret_manager_certificate_config
819
+
820
+ def initialize(**args)
821
+ update!(**args)
822
+ end
823
+
824
+ # Update properties of this object
825
+ def update!(**args)
826
+ @fqdns = args[:fqdns] if args.key?(:fqdns)
827
+ @gcp_secret_manager_certificate_config = args[:gcp_secret_manager_certificate_config] if args.key?(:gcp_secret_manager_certificate_config)
828
+ end
829
+ end
830
+
831
+ # CheckAutopilotCompatibilityResponse has a list of compatibility issues.
832
+ class CheckAutopilotCompatibilityResponse
833
+ include Google::Apis::Core::Hashable
834
+
835
+ # The list of issues for the given operation.
836
+ # Corresponds to the JSON property `issues`
837
+ # @return [Array<Google::Apis::ContainerV1::AutopilotCompatibilityIssue>]
838
+ attr_accessor :issues
839
+
840
+ # The summary of the autopilot compatibility response.
841
+ # Corresponds to the JSON property `summary`
842
+ # @return [String]
843
+ attr_accessor :summary
844
+
845
+ def initialize(**args)
846
+ update!(**args)
847
+ end
848
+
849
+ # Update properties of this object
850
+ def update!(**args)
851
+ @issues = args[:issues] if args.key?(:issues)
852
+ @summary = args[:summary] if args.key?(:summary)
853
+ end
854
+ end
855
+
525
856
  # CidrBlock contains an optional name and one CIDR block.
526
857
  class CidrBlock
527
858
  include Google::Apis::Core::Hashable
@@ -633,6 +964,12 @@ module Google
633
964
  # @return [String]
634
965
  attr_accessor :cluster_ipv4_cidr
635
966
 
967
+ # CompliancePostureConfig defines the settings needed to enable/disable features
968
+ # for the Compliance Posture.
969
+ # Corresponds to the JSON property `compliancePostureConfig`
970
+ # @return [Google::Apis::ContainerV1::CompliancePostureConfig]
971
+ attr_accessor :compliance_posture_config
972
+
636
973
  # Which conditions caused the current cluster state.
637
974
  # Corresponds to the JSON property `conditions`
638
975
  # @return [Array<Google::Apis::ContainerV1::StatusCondition>]
@@ -644,29 +981,34 @@ module Google
644
981
  # @return [Google::Apis::ContainerV1::ConfidentialNodes]
645
982
  attr_accessor :confidential_nodes
646
983
 
984
+ # Configuration for all of the cluster's control plane endpoints.
985
+ # Corresponds to the JSON property `controlPlaneEndpointsConfig`
986
+ # @return [Google::Apis::ContainerV1::ControlPlaneEndpointsConfig]
987
+ attr_accessor :control_plane_endpoints_config
988
+
647
989
  # Configuration for fine-grained cost management feature.
648
990
  # Corresponds to the JSON property `costManagementConfig`
649
991
  # @return [Google::Apis::ContainerV1::CostManagementConfig]
650
992
  attr_accessor :cost_management_config
651
993
 
652
- # [Output only] The time the cluster was created, in [RFC3339](https://www.ietf.
994
+ # Output only. The time the cluster was created, in [RFC3339](https://www.ietf.
653
995
  # org/rfc/rfc3339.txt) text format.
654
996
  # Corresponds to the JSON property `createTime`
655
997
  # @return [String]
656
998
  attr_accessor :create_time
657
999
 
658
- # [Output only] The current software version of the master endpoint.
1000
+ # Output only. The current software version of the master endpoint.
659
1001
  # Corresponds to the JSON property `currentMasterVersion`
660
1002
  # @return [String]
661
1003
  attr_accessor :current_master_version
662
1004
 
663
- # [Output only] The number of nodes currently in the cluster. Deprecated. Call
1005
+ # Output only. The number of nodes currently in the cluster. Deprecated. Call
664
1006
  # Kubernetes API directly to retrieve node information.
665
1007
  # Corresponds to the JSON property `currentNodeCount`
666
1008
  # @return [Fixnum]
667
1009
  attr_accessor :current_node_count
668
1010
 
669
- # [Output only] Deprecated, use [NodePools.version](https://cloud.google.com/
1011
+ # Output only. Deprecated, use [NodePools.version](https://cloud.google.com/
670
1012
  # kubernetes-engine/docs/reference/rest/v1/projects.locations.clusters.nodePools)
671
1013
  # instead. The current version of the node software components. If they are
672
1014
  # currently at multiple versions because they're in the process of being
@@ -690,6 +1032,11 @@ module Google
690
1032
  # @return [String]
691
1033
  attr_accessor :description
692
1034
 
1035
+ # K8sBetaAPIConfig , configuration for beta APIs
1036
+ # Corresponds to the JSON property `enableK8sBetaApis`
1037
+ # @return [Google::Apis::ContainerV1::K8sBetaApiConfig]
1038
+ attr_accessor :enable_k8s_beta_apis
1039
+
693
1040
  # Kubernetes alpha features are enabled on this cluster. This includes alpha API
694
1041
  # groups (e.g. v1alpha1) and features that may not be production ready in the
695
1042
  # kubernetes version of the master and nodes. The cluster has no SLA for uptime
@@ -700,13 +1047,15 @@ module Google
700
1047
  attr_accessor :enable_kubernetes_alpha
701
1048
  alias_method :enable_kubernetes_alpha?, :enable_kubernetes_alpha
702
1049
 
703
- # Enable the ability to use Cloud TPUs in this cluster.
1050
+ # Enable the ability to use Cloud TPUs in this cluster. This field is deprecated
1051
+ # due to the deprecation of 2VM TPU. The end of life date for 2VM TPU is 2025-04-
1052
+ # 25.
704
1053
  # Corresponds to the JSON property `enableTpu`
705
1054
  # @return [Boolean]
706
1055
  attr_accessor :enable_tpu
707
1056
  alias_method :enable_tpu?, :enable_tpu
708
1057
 
709
- # [Output only] The IP address of this cluster's master endpoint. The endpoint
1058
+ # Output only. The IP address of this cluster's master endpoint. The endpoint
710
1059
  # can be accessed from the internet at `https://username:password@endpoint/`.
711
1060
  # See the `masterAuth` property of this resource for username and password
712
1061
  # information.
@@ -714,6 +1063,11 @@ module Google
714
1063
  # @return [String]
715
1064
  attr_accessor :endpoint
716
1065
 
1066
+ # EnterpriseConfig is the cluster enterprise configuration.
1067
+ # Corresponds to the JSON property `enterpriseConfig`
1068
+ # @return [Google::Apis::ContainerV1::EnterpriseConfig]
1069
+ attr_accessor :enterprise_config
1070
+
717
1071
  # This checksum is computed by the server based on the value of cluster fields,
718
1072
  # and may be sent on update requests to ensure the client has an up-to-date
719
1073
  # value before proceeding.
@@ -721,12 +1075,17 @@ module Google
721
1075
  # @return [String]
722
1076
  attr_accessor :etag
723
1077
 
724
- # [Output only] The time the cluster will be automatically deleted in [RFC3339](
1078
+ # Output only. The time the cluster will be automatically deleted in [RFC3339](
725
1079
  # https://www.ietf.org/rfc/rfc3339.txt) text format.
726
1080
  # Corresponds to the JSON property `expireTime`
727
1081
  # @return [String]
728
1082
  attr_accessor :expire_time
729
1083
 
1084
+ # Fleet is the fleet configuration for the cluster.
1085
+ # Corresponds to the JSON property `fleet`
1086
+ # @return [Google::Apis::ContainerV1::Fleet]
1087
+ attr_accessor :fleet
1088
+
730
1089
  # Output only. Unique id for the cluster.
731
1090
  # Corresponds to the JSON property `id`
732
1091
  # @return [String]
@@ -763,7 +1122,7 @@ module Google
763
1122
  # @return [Fixnum]
764
1123
  attr_accessor :initial_node_count
765
1124
 
766
- # Deprecated. Use node_pools.instance_group_urls.
1125
+ # Output only. Deprecated. Use node_pools.instance_group_urls.
767
1126
  # Corresponds to the JSON property `instanceGroupUrls`
768
1127
  # @return [Array<String>]
769
1128
  attr_accessor :instance_group_urls
@@ -783,10 +1142,7 @@ module Google
783
1142
  # @return [Google::Apis::ContainerV1::LegacyAbac]
784
1143
  attr_accessor :legacy_abac
785
1144
 
786
- # [Output only] The name of the Google Compute Engine [zone](https://cloud.
787
- # google.com/compute/docs/regions-zones/regions-zones#available) or [region](
788
- # https://cloud.google.com/compute/docs/regions-zones/regions-zones#available)
789
- # in which the cluster resides.
1145
+ #
790
1146
  # Corresponds to the JSON property `location`
791
1147
  # @return [String]
792
1148
  attr_accessor :location
@@ -893,9 +1249,9 @@ module Google
893
1249
  # @return [Google::Apis::ContainerV1::NodeConfig]
894
1250
  attr_accessor :node_config
895
1251
 
896
- # [Output only] The size of the address space on each node for hosting
897
- # containers. This is provisioned from within the `container_ipv4_cidr` range.
898
- # This field will only be set when cluster is in route-based network mode.
1252
+ # Output only. The size of the address space on each node for hosting containers.
1253
+ # This is provisioned from within the `container_ipv4_cidr` range. This field
1254
+ # will only be set when cluster is in route-based network mode.
899
1255
  # Corresponds to the JSON property `nodeIpv4CidrSize`
900
1256
  # @return [Fixnum]
901
1257
  attr_accessor :node_ipv4_cidr_size
@@ -922,11 +1278,24 @@ module Google
922
1278
  # @return [Google::Apis::ContainerV1::NotificationConfig]
923
1279
  attr_accessor :notification_config
924
1280
 
1281
+ # ParentProductConfig is the configuration of the parent product of the cluster.
1282
+ # This field is used by Google internal products that are built on top of a GKE
1283
+ # cluster and take the ownership of the cluster.
1284
+ # Corresponds to the JSON property `parentProductConfig`
1285
+ # @return [Google::Apis::ContainerV1::ParentProductConfig]
1286
+ attr_accessor :parent_product_config
1287
+
925
1288
  # Configuration options for private clusters.
926
1289
  # Corresponds to the JSON property `privateClusterConfig`
927
1290
  # @return [Google::Apis::ContainerV1::PrivateClusterConfig]
928
1291
  attr_accessor :private_cluster_config
929
1292
 
1293
+ # RBACBindingConfig allows user to restrict ClusterRoleBindings an RoleBindings
1294
+ # that can be created.
1295
+ # Corresponds to the JSON property `rbacBindingConfig`
1296
+ # @return [Google::Apis::ContainerV1::RbacBindingConfig]
1297
+ attr_accessor :rbac_binding_config
1298
+
930
1299
  # ReleaseChannel indicates which release channel a cluster is subscribed to.
931
1300
  # Release channels are arranged in order of risk. When a cluster is subscribed
932
1301
  # to a release channel, Google maintains both the master version and the node
@@ -946,12 +1315,35 @@ module Google
946
1315
  # @return [Google::Apis::ContainerV1::ResourceUsageExportConfig]
947
1316
  attr_accessor :resource_usage_export_config
948
1317
 
949
- # [Output only] Server-defined URL for the resource.
1318
+ # Output only. Reserved for future use.
1319
+ # Corresponds to the JSON property `satisfiesPzi`
1320
+ # @return [Boolean]
1321
+ attr_accessor :satisfies_pzi
1322
+ alias_method :satisfies_pzi?, :satisfies_pzi
1323
+
1324
+ # Output only. Reserved for future use.
1325
+ # Corresponds to the JSON property `satisfiesPzs`
1326
+ # @return [Boolean]
1327
+ attr_accessor :satisfies_pzs
1328
+ alias_method :satisfies_pzs?, :satisfies_pzs
1329
+
1330
+ # SecretManagerConfig is config for secret manager enablement.
1331
+ # Corresponds to the JSON property `secretManagerConfig`
1332
+ # @return [Google::Apis::ContainerV1::SecretManagerConfig]
1333
+ attr_accessor :secret_manager_config
1334
+
1335
+ # SecurityPostureConfig defines the flags needed to enable/disable features for
1336
+ # the Security Posture API.
1337
+ # Corresponds to the JSON property `securityPostureConfig`
1338
+ # @return [Google::Apis::ContainerV1::SecurityPostureConfig]
1339
+ attr_accessor :security_posture_config
1340
+
1341
+ # Output only. Server-defined URL for the resource.
950
1342
  # Corresponds to the JSON property `selfLink`
951
1343
  # @return [String]
952
1344
  attr_accessor :self_link
953
1345
 
954
- # [Output only] The IP address range of the Kubernetes services in this cluster,
1346
+ # Output only. The IP address range of the Kubernetes services in this cluster,
955
1347
  # in [CIDR](http://en.wikipedia.org/wiki/Classless_Inter-Domain_Routing)
956
1348
  # notation (e.g. `1.2.3.4/29`). Service addresses are typically put in the last `
957
1349
  # /16` from the container CIDR.
@@ -964,12 +1356,12 @@ module Google
964
1356
  # @return [Google::Apis::ContainerV1::ShieldedNodes]
965
1357
  attr_accessor :shielded_nodes
966
1358
 
967
- # [Output only] The current status of this cluster.
1359
+ # Output only. The current status of this cluster.
968
1360
  # Corresponds to the JSON property `status`
969
1361
  # @return [String]
970
1362
  attr_accessor :status
971
1363
 
972
- # [Output only] Deprecated. Use conditions instead. Additional information about
1364
+ # Output only. Deprecated. Use conditions instead. Additional information about
973
1365
  # the current status of this cluster, if available.
974
1366
  # Corresponds to the JSON property `statusMessage`
975
1367
  # @return [String]
@@ -981,13 +1373,20 @@ module Google
981
1373
  # @return [String]
982
1374
  attr_accessor :subnetwork
983
1375
 
984
- # [Output only] The IP address range of the Cloud TPUs in this cluster, in [CIDR]
985
- # (http://en.wikipedia.org/wiki/Classless_Inter-Domain_Routing) notation (e.g. `
986
- # 1.2.3.4/29`).
1376
+ # Output only. The IP address range of the Cloud TPUs in this cluster, in [CIDR](
1377
+ # http://en.wikipedia.org/wiki/Classless_Inter-Domain_Routing) notation (e.g. `1.
1378
+ # 2.3.4/29`). This field is deprecated due to the deprecation of 2VM TPU. The
1379
+ # end of life date for 2VM TPU is 2025-04-25.
987
1380
  # Corresponds to the JSON property `tpuIpv4CidrBlock`
988
1381
  # @return [String]
989
1382
  attr_accessor :tpu_ipv4_cidr_block
990
1383
 
1384
+ # UserManagedKeysConfig holds the resource address to Keys which are used for
1385
+ # signing certs and token that are used for communication within cluster.
1386
+ # Corresponds to the JSON property `userManagedKeysConfig`
1387
+ # @return [Google::Apis::ContainerV1::UserManagedKeysConfig]
1388
+ attr_accessor :user_managed_keys_config
1389
+
991
1390
  # VerticalPodAutoscaling contains global, per-cluster information required by
992
1391
  # Vertical Pod Autoscaler to automatically adjust the resources of pods
993
1392
  # controlled by it.
@@ -1000,9 +1399,9 @@ module Google
1000
1399
  # @return [Google::Apis::ContainerV1::WorkloadIdentityConfig]
1001
1400
  attr_accessor :workload_identity_config
1002
1401
 
1003
- # [Output only] The name of the Google Compute Engine [zone](https://cloud.
1004
- # google.com/compute/docs/zones#available) in which the cluster resides. This
1005
- # field is deprecated, use location instead.
1402
+ # Output only. The name of the Google Compute Engine [zone](https://cloud.google.
1403
+ # com/compute/docs/zones#available) in which the cluster resides. This field is
1404
+ # deprecated, use location instead.
1006
1405
  # Corresponds to the JSON property `zone`
1007
1406
  # @return [String]
1008
1407
  attr_accessor :zone
@@ -1019,8 +1418,10 @@ module Google
1019
1418
  @autoscaling = args[:autoscaling] if args.key?(:autoscaling)
1020
1419
  @binary_authorization = args[:binary_authorization] if args.key?(:binary_authorization)
1021
1420
  @cluster_ipv4_cidr = args[:cluster_ipv4_cidr] if args.key?(:cluster_ipv4_cidr)
1421
+ @compliance_posture_config = args[:compliance_posture_config] if args.key?(:compliance_posture_config)
1022
1422
  @conditions = args[:conditions] if args.key?(:conditions)
1023
1423
  @confidential_nodes = args[:confidential_nodes] if args.key?(:confidential_nodes)
1424
+ @control_plane_endpoints_config = args[:control_plane_endpoints_config] if args.key?(:control_plane_endpoints_config)
1024
1425
  @cost_management_config = args[:cost_management_config] if args.key?(:cost_management_config)
1025
1426
  @create_time = args[:create_time] if args.key?(:create_time)
1026
1427
  @current_master_version = args[:current_master_version] if args.key?(:current_master_version)
@@ -1029,11 +1430,14 @@ module Google
1029
1430
  @database_encryption = args[:database_encryption] if args.key?(:database_encryption)
1030
1431
  @default_max_pods_constraint = args[:default_max_pods_constraint] if args.key?(:default_max_pods_constraint)
1031
1432
  @description = args[:description] if args.key?(:description)
1433
+ @enable_k8s_beta_apis = args[:enable_k8s_beta_apis] if args.key?(:enable_k8s_beta_apis)
1032
1434
  @enable_kubernetes_alpha = args[:enable_kubernetes_alpha] if args.key?(:enable_kubernetes_alpha)
1033
1435
  @enable_tpu = args[:enable_tpu] if args.key?(:enable_tpu)
1034
1436
  @endpoint = args[:endpoint] if args.key?(:endpoint)
1437
+ @enterprise_config = args[:enterprise_config] if args.key?(:enterprise_config)
1035
1438
  @etag = args[:etag] if args.key?(:etag)
1036
1439
  @expire_time = args[:expire_time] if args.key?(:expire_time)
1440
+ @fleet = args[:fleet] if args.key?(:fleet)
1037
1441
  @id = args[:id] if args.key?(:id)
1038
1442
  @identity_service_config = args[:identity_service_config] if args.key?(:identity_service_config)
1039
1443
  @initial_cluster_version = args[:initial_cluster_version] if args.key?(:initial_cluster_version)
@@ -1062,10 +1466,16 @@ module Google
1062
1466
  @node_pool_defaults = args[:node_pool_defaults] if args.key?(:node_pool_defaults)
1063
1467
  @node_pools = args[:node_pools] if args.key?(:node_pools)
1064
1468
  @notification_config = args[:notification_config] if args.key?(:notification_config)
1469
+ @parent_product_config = args[:parent_product_config] if args.key?(:parent_product_config)
1065
1470
  @private_cluster_config = args[:private_cluster_config] if args.key?(:private_cluster_config)
1471
+ @rbac_binding_config = args[:rbac_binding_config] if args.key?(:rbac_binding_config)
1066
1472
  @release_channel = args[:release_channel] if args.key?(:release_channel)
1067
1473
  @resource_labels = args[:resource_labels] if args.key?(:resource_labels)
1068
1474
  @resource_usage_export_config = args[:resource_usage_export_config] if args.key?(:resource_usage_export_config)
1475
+ @satisfies_pzi = args[:satisfies_pzi] if args.key?(:satisfies_pzi)
1476
+ @satisfies_pzs = args[:satisfies_pzs] if args.key?(:satisfies_pzs)
1477
+ @secret_manager_config = args[:secret_manager_config] if args.key?(:secret_manager_config)
1478
+ @security_posture_config = args[:security_posture_config] if args.key?(:security_posture_config)
1069
1479
  @self_link = args[:self_link] if args.key?(:self_link)
1070
1480
  @services_ipv4_cidr = args[:services_ipv4_cidr] if args.key?(:services_ipv4_cidr)
1071
1481
  @shielded_nodes = args[:shielded_nodes] if args.key?(:shielded_nodes)
@@ -1073,6 +1483,7 @@ module Google
1073
1483
  @status_message = args[:status_message] if args.key?(:status_message)
1074
1484
  @subnetwork = args[:subnetwork] if args.key?(:subnetwork)
1075
1485
  @tpu_ipv4_cidr_block = args[:tpu_ipv4_cidr_block] if args.key?(:tpu_ipv4_cidr_block)
1486
+ @user_managed_keys_config = args[:user_managed_keys_config] if args.key?(:user_managed_keys_config)
1076
1487
  @vertical_pod_autoscaling = args[:vertical_pod_autoscaling] if args.key?(:vertical_pod_autoscaling)
1077
1488
  @workload_identity_config = args[:workload_identity_config] if args.key?(:workload_identity_config)
1078
1489
  @zone = args[:zone] if args.key?(:zone)
@@ -1128,11 +1539,36 @@ module Google
1128
1539
  end
1129
1540
  end
1130
1541
 
1542
+ # Configuration of network bandwidth tiers
1543
+ class ClusterNetworkPerformanceConfig
1544
+ include Google::Apis::Core::Hashable
1545
+
1546
+ # Specifies the total network bandwidth tier for NodePools in the cluster.
1547
+ # Corresponds to the JSON property `totalEgressBandwidthTier`
1548
+ # @return [String]
1549
+ attr_accessor :total_egress_bandwidth_tier
1550
+
1551
+ def initialize(**args)
1552
+ update!(**args)
1553
+ end
1554
+
1555
+ # Update properties of this object
1556
+ def update!(**args)
1557
+ @total_egress_bandwidth_tier = args[:total_egress_bandwidth_tier] if args.key?(:total_egress_bandwidth_tier)
1558
+ end
1559
+ end
1560
+
1131
1561
  # ClusterUpdate describes an update to the cluster. Exactly one update can be
1132
1562
  # applied to a cluster with each request, so at most one field can be provided.
1133
1563
  class ClusterUpdate
1134
1564
  include Google::Apis::Core::Hashable
1135
1565
 
1566
+ # AdditionalPodRangesConfig is the configuration for additional pod secondary
1567
+ # ranges supporting the ClusterUpdate message.
1568
+ # Corresponds to the JSON property `additionalPodRangesConfig`
1569
+ # @return [Google::Apis::ContainerV1::AdditionalPodRangesConfig]
1570
+ attr_accessor :additional_pod_ranges_config
1571
+
1136
1572
  # Configuration for the addons that can be automatically spun up in the cluster,
1137
1573
  # enabling additional functionality.
1138
1574
  # Corresponds to the JSON property `desiredAddonsConfig`
@@ -1144,6 +1580,11 @@ module Google
1144
1580
  # @return [Google::Apis::ContainerV1::AuthenticatorGroupsConfig]
1145
1581
  attr_accessor :desired_authenticator_groups_config
1146
1582
 
1583
+ # WorkloadPolicyConfig is the configuration related to GCW workload policy
1584
+ # Corresponds to the JSON property `desiredAutopilotWorkloadPolicyConfig`
1585
+ # @return [Google::Apis::ContainerV1::WorkloadPolicyConfig]
1586
+ attr_accessor :desired_autopilot_workload_policy_config
1587
+
1147
1588
  # Configuration for Binary Authorization.
1148
1589
  # Corresponds to the JSON property `desiredBinaryAuthorization`
1149
1590
  # @return [Google::Apis::ContainerV1::BinaryAuthorization]
@@ -1156,6 +1597,22 @@ module Google
1156
1597
  # @return [Google::Apis::ContainerV1::ClusterAutoscaling]
1157
1598
  attr_accessor :desired_cluster_autoscaling
1158
1599
 
1600
+ # CompliancePostureConfig defines the settings needed to enable/disable features
1601
+ # for the Compliance Posture.
1602
+ # Corresponds to the JSON property `desiredCompliancePostureConfig`
1603
+ # @return [Google::Apis::ContainerV1::CompliancePostureConfig]
1604
+ attr_accessor :desired_compliance_posture_config
1605
+
1606
+ # ContainerdConfig contains configuration to customize containerd.
1607
+ # Corresponds to the JSON property `desiredContainerdConfig`
1608
+ # @return [Google::Apis::ContainerV1::ContainerdConfig]
1609
+ attr_accessor :desired_containerd_config
1610
+
1611
+ # Configuration for all of the cluster's control plane endpoints.
1612
+ # Corresponds to the JSON property `desiredControlPlaneEndpointsConfig`
1613
+ # @return [Google::Apis::ContainerV1::ControlPlaneEndpointsConfig]
1614
+ attr_accessor :desired_control_plane_endpoints_config
1615
+
1159
1616
  # Configuration for fine-grained cost management feature.
1160
1617
  # Corresponds to the JSON property `desiredCostManagementConfig`
1161
1618
  # @return [Google::Apis::ContainerV1::CostManagementConfig]
@@ -1171,23 +1628,68 @@ module Google
1171
1628
  # @return [String]
1172
1629
  attr_accessor :desired_datapath_provider
1173
1630
 
1631
+ # Override the default setting of whether future created nodes have private IP
1632
+ # addresses only, namely NetworkConfig.default_enable_private_nodes
1633
+ # Corresponds to the JSON property `desiredDefaultEnablePrivateNodes`
1634
+ # @return [Boolean]
1635
+ attr_accessor :desired_default_enable_private_nodes
1636
+ alias_method :desired_default_enable_private_nodes?, :desired_default_enable_private_nodes
1637
+
1174
1638
  # DefaultSnatStatus contains the desired state of whether default sNAT should be
1175
1639
  # disabled on the cluster.
1176
1640
  # Corresponds to the JSON property `desiredDefaultSnatStatus`
1177
1641
  # @return [Google::Apis::ContainerV1::DefaultSnatStatus]
1178
1642
  attr_accessor :desired_default_snat_status
1179
1643
 
1644
+ # Enable/Disable L4 LB VPC firewall reconciliation for the cluster.
1645
+ # Corresponds to the JSON property `desiredDisableL4LbFirewallReconciliation`
1646
+ # @return [Boolean]
1647
+ attr_accessor :desired_disable_l4_lb_firewall_reconciliation
1648
+ alias_method :desired_disable_l4_lb_firewall_reconciliation?, :desired_disable_l4_lb_firewall_reconciliation
1649
+
1180
1650
  # DNSConfig contains the desired set of options for configuring clusterDNS.
1181
1651
  # Corresponds to the JSON property `desiredDnsConfig`
1182
1652
  # @return [Google::Apis::ContainerV1::DnsConfig]
1183
1653
  attr_accessor :desired_dns_config
1184
1654
 
1185
- # Enable/Disable private endpoint for the cluster's master.
1655
+ # Enable/Disable Cilium Clusterwide Network Policy for the cluster.
1656
+ # Corresponds to the JSON property `desiredEnableCiliumClusterwideNetworkPolicy`
1657
+ # @return [Boolean]
1658
+ attr_accessor :desired_enable_cilium_clusterwide_network_policy
1659
+ alias_method :desired_enable_cilium_clusterwide_network_policy?, :desired_enable_cilium_clusterwide_network_policy
1660
+
1661
+ # Enable/Disable FQDN Network Policy for the cluster.
1662
+ # Corresponds to the JSON property `desiredEnableFqdnNetworkPolicy`
1663
+ # @return [Boolean]
1664
+ attr_accessor :desired_enable_fqdn_network_policy
1665
+ alias_method :desired_enable_fqdn_network_policy?, :desired_enable_fqdn_network_policy
1666
+
1667
+ # Enable/Disable Multi-Networking for the cluster
1668
+ # Corresponds to the JSON property `desiredEnableMultiNetworking`
1669
+ # @return [Boolean]
1670
+ attr_accessor :desired_enable_multi_networking
1671
+ alias_method :desired_enable_multi_networking?, :desired_enable_multi_networking
1672
+
1673
+ # Enable/Disable private endpoint for the cluster's master. Deprecated: Use
1674
+ # desired_control_plane_endpoints_config.ip_endpoints_config.
1675
+ # enable_public_endpoint instead. Note that the value of enable_public_endpoint
1676
+ # is reversed: if enable_private_endpoint is false, then enable_public_endpoint
1677
+ # will be true.
1186
1678
  # Corresponds to the JSON property `desiredEnablePrivateEndpoint`
1187
1679
  # @return [Boolean]
1188
1680
  attr_accessor :desired_enable_private_endpoint
1189
1681
  alias_method :desired_enable_private_endpoint?, :desired_enable_private_endpoint
1190
1682
 
1683
+ # DesiredEnterpriseConfig is a wrapper used for updating enterprise_config.
1684
+ # Corresponds to the JSON property `desiredEnterpriseConfig`
1685
+ # @return [Google::Apis::ContainerV1::DesiredEnterpriseConfig]
1686
+ attr_accessor :desired_enterprise_config
1687
+
1688
+ # Fleet is the fleet configuration for the cluster.
1689
+ # Corresponds to the JSON property `desiredFleet`
1690
+ # @return [Google::Apis::ContainerV1::Fleet]
1691
+ attr_accessor :desired_fleet
1692
+
1191
1693
  # GatewayAPIConfig contains the desired config of Gateway API on this cluster.
1192
1694
  # Corresponds to the JSON property `desiredGatewayApiConfig`
1193
1695
  # @return [Google::Apis::ContainerV1::GatewayApiConfig]
@@ -1211,12 +1713,22 @@ module Google
1211
1713
  # @return [String]
1212
1714
  attr_accessor :desired_image_type
1213
1715
 
1716
+ # Specify the details of in-transit encryption.
1717
+ # Corresponds to the JSON property `desiredInTransitEncryptionConfig`
1718
+ # @return [String]
1719
+ attr_accessor :desired_in_transit_encryption_config
1720
+
1214
1721
  # IntraNodeVisibilityConfig contains the desired config of the intra-node
1215
1722
  # visibility on this cluster.
1216
1723
  # Corresponds to the JSON property `desiredIntraNodeVisibilityConfig`
1217
1724
  # @return [Google::Apis::ContainerV1::IntraNodeVisibilityConfig]
1218
1725
  attr_accessor :desired_intra_node_visibility_config
1219
1726
 
1727
+ # K8sBetaAPIConfig , configuration for beta APIs
1728
+ # Corresponds to the JSON property `desiredK8sBetaApis`
1729
+ # @return [Google::Apis::ContainerV1::K8sBetaApiConfig]
1730
+ attr_accessor :desired_k8s_beta_apis
1731
+
1220
1732
  # ILBSubsettingConfig contains the desired config of L4 Internal LoadBalancer
1221
1733
  # subsetting on this cluster.
1222
1734
  # Corresponds to the JSON property `desiredL4ilbSubsettingConfig`
@@ -1288,12 +1800,41 @@ module Google
1288
1800
  # @return [String]
1289
1801
  attr_accessor :desired_monitoring_service
1290
1802
 
1803
+ # Configuration of network bandwidth tiers
1804
+ # Corresponds to the JSON property `desiredNetworkPerformanceConfig`
1805
+ # @return [Google::Apis::ContainerV1::ClusterNetworkPerformanceConfig]
1806
+ attr_accessor :desired_network_performance_config
1807
+
1808
+ # Node kubelet configs.
1809
+ # Corresponds to the JSON property `desiredNodeKubeletConfig`
1810
+ # @return [Google::Apis::ContainerV1::NodeKubeletConfig]
1811
+ attr_accessor :desired_node_kubelet_config
1812
+
1813
+ # Node kubelet configs.
1814
+ # Corresponds to the JSON property `desiredNodePoolAutoConfigKubeletConfig`
1815
+ # @return [Google::Apis::ContainerV1::NodeKubeletConfig]
1816
+ attr_accessor :desired_node_pool_auto_config_kubelet_config
1817
+
1818
+ # Parameters that can be configured on Linux nodes.
1819
+ # Corresponds to the JSON property `desiredNodePoolAutoConfigLinuxNodeConfig`
1820
+ # @return [Google::Apis::ContainerV1::LinuxNodeConfig]
1821
+ attr_accessor :desired_node_pool_auto_config_linux_node_config
1822
+
1291
1823
  # Collection of Compute Engine network tags that can be applied to a node's
1292
1824
  # underlying VM instance.
1293
1825
  # Corresponds to the JSON property `desiredNodePoolAutoConfigNetworkTags`
1294
1826
  # @return [Google::Apis::ContainerV1::NetworkTags]
1295
1827
  attr_accessor :desired_node_pool_auto_config_network_tags
1296
1828
 
1829
+ # A map of resource manager tag keys and values to be attached to the nodes for
1830
+ # managing Compute Engine firewalls using Network Firewall Policies. Tags must
1831
+ # be according to specifications in https://cloud.google.com/vpc/docs/tags-
1832
+ # firewalls-overview#specifications. A maximum of 5 tag key-value pairs can be
1833
+ # specified. Existing tags will be replaced with new values.
1834
+ # Corresponds to the JSON property `desiredNodePoolAutoConfigResourceManagerTags`
1835
+ # @return [Google::Apis::ContainerV1::ResourceManagerTags]
1836
+ attr_accessor :desired_node_pool_auto_config_resource_manager_tags
1837
+
1297
1838
  # NodePoolAutoscaling contains information required by cluster autoscaler to
1298
1839
  # adjust the size of the node pool to the current cluster usage.
1299
1840
  # Corresponds to the JSON property `desiredNodePoolAutoscaling`
@@ -1328,6 +1869,13 @@ module Google
1328
1869
  # @return [Google::Apis::ContainerV1::NotificationConfig]
1329
1870
  attr_accessor :desired_notification_config
1330
1871
 
1872
+ # ParentProductConfig is the configuration of the parent product of the cluster.
1873
+ # This field is used by Google internal products that are built on top of a GKE
1874
+ # cluster and take the ownership of the cluster.
1875
+ # Corresponds to the JSON property `desiredParentProductConfig`
1876
+ # @return [Google::Apis::ContainerV1::ParentProductConfig]
1877
+ attr_accessor :desired_parent_product_config
1878
+
1331
1879
  # Configuration options for private clusters.
1332
1880
  # Corresponds to the JSON property `desiredPrivateClusterConfig`
1333
1881
  # @return [Google::Apis::ContainerV1::PrivateClusterConfig]
@@ -1338,6 +1886,12 @@ module Google
1338
1886
  # @return [String]
1339
1887
  attr_accessor :desired_private_ipv6_google_access
1340
1888
 
1889
+ # RBACBindingConfig allows user to restrict ClusterRoleBindings an RoleBindings
1890
+ # that can be created.
1891
+ # Corresponds to the JSON property `desiredRbacBindingConfig`
1892
+ # @return [Google::Apis::ContainerV1::RbacBindingConfig]
1893
+ attr_accessor :desired_rbac_binding_config
1894
+
1341
1895
  # ReleaseChannel indicates which release channel a cluster is subscribed to.
1342
1896
  # Release channels are arranged in order of risk. When a cluster is subscribed
1343
1897
  # to a release channel, Google maintains both the master version and the node
@@ -1351,6 +1905,17 @@ module Google
1351
1905
  # @return [Google::Apis::ContainerV1::ResourceUsageExportConfig]
1352
1906
  attr_accessor :desired_resource_usage_export_config
1353
1907
 
1908
+ # SecretManagerConfig is config for secret manager enablement.
1909
+ # Corresponds to the JSON property `desiredSecretManagerConfig`
1910
+ # @return [Google::Apis::ContainerV1::SecretManagerConfig]
1911
+ attr_accessor :desired_secret_manager_config
1912
+
1913
+ # SecurityPostureConfig defines the flags needed to enable/disable features for
1914
+ # the Security Posture API.
1915
+ # Corresponds to the JSON property `desiredSecurityPostureConfig`
1916
+ # @return [Google::Apis::ContainerV1::SecurityPostureConfig]
1917
+ attr_accessor :desired_security_posture_config
1918
+
1354
1919
  # Config to block services with externalIPs field.
1355
1920
  # Corresponds to the JSON property `desiredServiceExternalIpsConfig`
1356
1921
  # @return [Google::Apis::ContainerV1::ServiceExternalIPsConfig]
@@ -1380,6 +1945,11 @@ module Google
1380
1945
  # @return [Google::Apis::ContainerV1::WorkloadIdentityConfig]
1381
1946
  attr_accessor :desired_workload_identity_config
1382
1947
 
1948
+ # K8sBetaAPIConfig , configuration for beta APIs
1949
+ # Corresponds to the JSON property `enableK8sBetaApis`
1950
+ # @return [Google::Apis::ContainerV1::K8sBetaApiConfig]
1951
+ attr_accessor :enable_k8s_beta_apis
1952
+
1383
1953
  # The current etag of the cluster. If an etag is provided and does not match the
1384
1954
  # current etag of the cluster, update will be blocked and an ABORTED error will
1385
1955
  # be returned.
@@ -1387,27 +1957,53 @@ module Google
1387
1957
  # @return [String]
1388
1958
  attr_accessor :etag
1389
1959
 
1960
+ # AdditionalPodRangesConfig is the configuration for additional pod secondary
1961
+ # ranges supporting the ClusterUpdate message.
1962
+ # Corresponds to the JSON property `removedAdditionalPodRangesConfig`
1963
+ # @return [Google::Apis::ContainerV1::AdditionalPodRangesConfig]
1964
+ attr_accessor :removed_additional_pod_ranges_config
1965
+
1966
+ # UserManagedKeysConfig holds the resource address to Keys which are used for
1967
+ # signing certs and token that are used for communication within cluster.
1968
+ # Corresponds to the JSON property `userManagedKeysConfig`
1969
+ # @return [Google::Apis::ContainerV1::UserManagedKeysConfig]
1970
+ attr_accessor :user_managed_keys_config
1971
+
1390
1972
  def initialize(**args)
1391
1973
  update!(**args)
1392
1974
  end
1393
1975
 
1394
1976
  # Update properties of this object
1395
1977
  def update!(**args)
1978
+ @additional_pod_ranges_config = args[:additional_pod_ranges_config] if args.key?(:additional_pod_ranges_config)
1396
1979
  @desired_addons_config = args[:desired_addons_config] if args.key?(:desired_addons_config)
1397
1980
  @desired_authenticator_groups_config = args[:desired_authenticator_groups_config] if args.key?(:desired_authenticator_groups_config)
1981
+ @desired_autopilot_workload_policy_config = args[:desired_autopilot_workload_policy_config] if args.key?(:desired_autopilot_workload_policy_config)
1398
1982
  @desired_binary_authorization = args[:desired_binary_authorization] if args.key?(:desired_binary_authorization)
1399
1983
  @desired_cluster_autoscaling = args[:desired_cluster_autoscaling] if args.key?(:desired_cluster_autoscaling)
1984
+ @desired_compliance_posture_config = args[:desired_compliance_posture_config] if args.key?(:desired_compliance_posture_config)
1985
+ @desired_containerd_config = args[:desired_containerd_config] if args.key?(:desired_containerd_config)
1986
+ @desired_control_plane_endpoints_config = args[:desired_control_plane_endpoints_config] if args.key?(:desired_control_plane_endpoints_config)
1400
1987
  @desired_cost_management_config = args[:desired_cost_management_config] if args.key?(:desired_cost_management_config)
1401
1988
  @desired_database_encryption = args[:desired_database_encryption] if args.key?(:desired_database_encryption)
1402
1989
  @desired_datapath_provider = args[:desired_datapath_provider] if args.key?(:desired_datapath_provider)
1990
+ @desired_default_enable_private_nodes = args[:desired_default_enable_private_nodes] if args.key?(:desired_default_enable_private_nodes)
1403
1991
  @desired_default_snat_status = args[:desired_default_snat_status] if args.key?(:desired_default_snat_status)
1992
+ @desired_disable_l4_lb_firewall_reconciliation = args[:desired_disable_l4_lb_firewall_reconciliation] if args.key?(:desired_disable_l4_lb_firewall_reconciliation)
1404
1993
  @desired_dns_config = args[:desired_dns_config] if args.key?(:desired_dns_config)
1994
+ @desired_enable_cilium_clusterwide_network_policy = args[:desired_enable_cilium_clusterwide_network_policy] if args.key?(:desired_enable_cilium_clusterwide_network_policy)
1995
+ @desired_enable_fqdn_network_policy = args[:desired_enable_fqdn_network_policy] if args.key?(:desired_enable_fqdn_network_policy)
1996
+ @desired_enable_multi_networking = args[:desired_enable_multi_networking] if args.key?(:desired_enable_multi_networking)
1405
1997
  @desired_enable_private_endpoint = args[:desired_enable_private_endpoint] if args.key?(:desired_enable_private_endpoint)
1998
+ @desired_enterprise_config = args[:desired_enterprise_config] if args.key?(:desired_enterprise_config)
1999
+ @desired_fleet = args[:desired_fleet] if args.key?(:desired_fleet)
1406
2000
  @desired_gateway_api_config = args[:desired_gateway_api_config] if args.key?(:desired_gateway_api_config)
1407
2001
  @desired_gcfs_config = args[:desired_gcfs_config] if args.key?(:desired_gcfs_config)
1408
2002
  @desired_identity_service_config = args[:desired_identity_service_config] if args.key?(:desired_identity_service_config)
1409
2003
  @desired_image_type = args[:desired_image_type] if args.key?(:desired_image_type)
2004
+ @desired_in_transit_encryption_config = args[:desired_in_transit_encryption_config] if args.key?(:desired_in_transit_encryption_config)
1410
2005
  @desired_intra_node_visibility_config = args[:desired_intra_node_visibility_config] if args.key?(:desired_intra_node_visibility_config)
2006
+ @desired_k8s_beta_apis = args[:desired_k8s_beta_apis] if args.key?(:desired_k8s_beta_apis)
1411
2007
  @desired_l4ilb_subsetting_config = args[:desired_l4ilb_subsetting_config] if args.key?(:desired_l4ilb_subsetting_config)
1412
2008
  @desired_locations = args[:desired_locations] if args.key?(:desired_locations)
1413
2009
  @desired_logging_config = args[:desired_logging_config] if args.key?(:desired_logging_config)
@@ -1417,22 +2013,34 @@ module Google
1417
2013
  @desired_mesh_certificates = args[:desired_mesh_certificates] if args.key?(:desired_mesh_certificates)
1418
2014
  @desired_monitoring_config = args[:desired_monitoring_config] if args.key?(:desired_monitoring_config)
1419
2015
  @desired_monitoring_service = args[:desired_monitoring_service] if args.key?(:desired_monitoring_service)
2016
+ @desired_network_performance_config = args[:desired_network_performance_config] if args.key?(:desired_network_performance_config)
2017
+ @desired_node_kubelet_config = args[:desired_node_kubelet_config] if args.key?(:desired_node_kubelet_config)
2018
+ @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)
2019
+ @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)
1420
2020
  @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)
2021
+ @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)
1421
2022
  @desired_node_pool_autoscaling = args[:desired_node_pool_autoscaling] if args.key?(:desired_node_pool_autoscaling)
1422
2023
  @desired_node_pool_id = args[:desired_node_pool_id] if args.key?(:desired_node_pool_id)
1423
2024
  @desired_node_pool_logging_config = args[:desired_node_pool_logging_config] if args.key?(:desired_node_pool_logging_config)
1424
2025
  @desired_node_version = args[:desired_node_version] if args.key?(:desired_node_version)
1425
2026
  @desired_notification_config = args[:desired_notification_config] if args.key?(:desired_notification_config)
2027
+ @desired_parent_product_config = args[:desired_parent_product_config] if args.key?(:desired_parent_product_config)
1426
2028
  @desired_private_cluster_config = args[:desired_private_cluster_config] if args.key?(:desired_private_cluster_config)
1427
2029
  @desired_private_ipv6_google_access = args[:desired_private_ipv6_google_access] if args.key?(:desired_private_ipv6_google_access)
2030
+ @desired_rbac_binding_config = args[:desired_rbac_binding_config] if args.key?(:desired_rbac_binding_config)
1428
2031
  @desired_release_channel = args[:desired_release_channel] if args.key?(:desired_release_channel)
1429
2032
  @desired_resource_usage_export_config = args[:desired_resource_usage_export_config] if args.key?(:desired_resource_usage_export_config)
2033
+ @desired_secret_manager_config = args[:desired_secret_manager_config] if args.key?(:desired_secret_manager_config)
2034
+ @desired_security_posture_config = args[:desired_security_posture_config] if args.key?(:desired_security_posture_config)
1430
2035
  @desired_service_external_ips_config = args[:desired_service_external_ips_config] if args.key?(:desired_service_external_ips_config)
1431
2036
  @desired_shielded_nodes = args[:desired_shielded_nodes] if args.key?(:desired_shielded_nodes)
1432
2037
  @desired_stack_type = args[:desired_stack_type] if args.key?(:desired_stack_type)
1433
2038
  @desired_vertical_pod_autoscaling = args[:desired_vertical_pod_autoscaling] if args.key?(:desired_vertical_pod_autoscaling)
1434
2039
  @desired_workload_identity_config = args[:desired_workload_identity_config] if args.key?(:desired_workload_identity_config)
2040
+ @enable_k8s_beta_apis = args[:enable_k8s_beta_apis] if args.key?(:enable_k8s_beta_apis)
1435
2041
  @etag = args[:etag] if args.key?(:etag)
2042
+ @removed_additional_pod_ranges_config = args[:removed_additional_pod_ranges_config] if args.key?(:removed_additional_pod_ranges_config)
2043
+ @user_managed_keys_config = args[:user_managed_keys_config] if args.key?(:user_managed_keys_config)
1436
2044
  end
1437
2045
  end
1438
2046
 
@@ -1493,18 +2101,63 @@ module Google
1493
2101
  end
1494
2102
  end
1495
2103
 
1496
- # ConfidentialNodes is configuration for the confidential nodes feature, which
1497
- # makes nodes run on confidential VMs.
1498
- class ConfidentialNodes
2104
+ # CompliancePostureConfig defines the settings needed to enable/disable features
2105
+ # for the Compliance Posture.
2106
+ class CompliancePostureConfig
1499
2107
  include Google::Apis::Core::Hashable
1500
2108
 
1501
- # Whether Confidential Nodes feature is enabled.
1502
- # Corresponds to the JSON property `enabled`
1503
- # @return [Boolean]
1504
- attr_accessor :enabled
1505
- alias_method :enabled?, :enabled
2109
+ # List of enabled compliance standards.
2110
+ # Corresponds to the JSON property `complianceStandards`
2111
+ # @return [Array<Google::Apis::ContainerV1::ComplianceStandard>]
2112
+ attr_accessor :compliance_standards
1506
2113
 
1507
- def initialize(**args)
2114
+ # Defines the enablement mode for Compliance Posture.
2115
+ # Corresponds to the JSON property `mode`
2116
+ # @return [String]
2117
+ attr_accessor :mode
2118
+
2119
+ def initialize(**args)
2120
+ update!(**args)
2121
+ end
2122
+
2123
+ # Update properties of this object
2124
+ def update!(**args)
2125
+ @compliance_standards = args[:compliance_standards] if args.key?(:compliance_standards)
2126
+ @mode = args[:mode] if args.key?(:mode)
2127
+ end
2128
+ end
2129
+
2130
+ # Defines the details of a compliance standard.
2131
+ class ComplianceStandard
2132
+ include Google::Apis::Core::Hashable
2133
+
2134
+ # Name of the compliance standard.
2135
+ # Corresponds to the JSON property `standard`
2136
+ # @return [String]
2137
+ attr_accessor :standard
2138
+
2139
+ def initialize(**args)
2140
+ update!(**args)
2141
+ end
2142
+
2143
+ # Update properties of this object
2144
+ def update!(**args)
2145
+ @standard = args[:standard] if args.key?(:standard)
2146
+ end
2147
+ end
2148
+
2149
+ # ConfidentialNodes is configuration for the confidential nodes feature, which
2150
+ # makes nodes run on confidential VMs.
2151
+ class ConfidentialNodes
2152
+ include Google::Apis::Core::Hashable
2153
+
2154
+ # Whether Confidential Nodes feature is enabled.
2155
+ # Corresponds to the JSON property `enabled`
2156
+ # @return [Boolean]
2157
+ attr_accessor :enabled
2158
+ alias_method :enabled?, :enabled
2159
+
2160
+ def initialize(**args)
1508
2161
  update!(**args)
1509
2162
  end
1510
2163
 
@@ -1555,6 +2208,51 @@ module Google
1555
2208
  end
1556
2209
  end
1557
2210
 
2211
+ # ContainerdConfig contains configuration to customize containerd.
2212
+ class ContainerdConfig
2213
+ include Google::Apis::Core::Hashable
2214
+
2215
+ # PrivateRegistryAccessConfig contains access configuration for private
2216
+ # container registries.
2217
+ # Corresponds to the JSON property `privateRegistryAccessConfig`
2218
+ # @return [Google::Apis::ContainerV1::PrivateRegistryAccessConfig]
2219
+ attr_accessor :private_registry_access_config
2220
+
2221
+ def initialize(**args)
2222
+ update!(**args)
2223
+ end
2224
+
2225
+ # Update properties of this object
2226
+ def update!(**args)
2227
+ @private_registry_access_config = args[:private_registry_access_config] if args.key?(:private_registry_access_config)
2228
+ end
2229
+ end
2230
+
2231
+ # Configuration for all of the cluster's control plane endpoints.
2232
+ class ControlPlaneEndpointsConfig
2233
+ include Google::Apis::Core::Hashable
2234
+
2235
+ # Describes the configuration of a DNS endpoint.
2236
+ # Corresponds to the JSON property `dnsEndpointConfig`
2237
+ # @return [Google::Apis::ContainerV1::DnsEndpointConfig]
2238
+ attr_accessor :dns_endpoint_config
2239
+
2240
+ # IP endpoints configuration.
2241
+ # Corresponds to the JSON property `ipEndpointsConfig`
2242
+ # @return [Google::Apis::ContainerV1::IpEndpointsConfig]
2243
+ attr_accessor :ip_endpoints_config
2244
+
2245
+ def initialize(**args)
2246
+ update!(**args)
2247
+ end
2248
+
2249
+ # Update properties of this object
2250
+ def update!(**args)
2251
+ @dns_endpoint_config = args[:dns_endpoint_config] if args.key?(:dns_endpoint_config)
2252
+ @ip_endpoints_config = args[:ip_endpoints_config] if args.key?(:ip_endpoints_config)
2253
+ end
2254
+ end
2255
+
1558
2256
  # Configuration for fine-grained cost management feature.
1559
2257
  class CostManagementConfig
1560
2258
  include Google::Apis::Core::Hashable
@@ -1675,6 +2373,11 @@ module Google
1675
2373
  class DnsConfig
1676
2374
  include Google::Apis::Core::Hashable
1677
2375
 
2376
+ # Optional. The domain used in Additive VPC scope.
2377
+ # Corresponds to the JSON property `additiveVpcScopeDnsDomain`
2378
+ # @return [String]
2379
+ attr_accessor :additive_vpc_scope_dns_domain
2380
+
1678
2381
  # cluster_dns indicates which in-cluster DNS provider should be used.
1679
2382
  # Corresponds to the JSON property `clusterDns`
1680
2383
  # @return [String]
@@ -1696,17 +2399,48 @@ module Google
1696
2399
 
1697
2400
  # Update properties of this object
1698
2401
  def update!(**args)
2402
+ @additive_vpc_scope_dns_domain = args[:additive_vpc_scope_dns_domain] if args.key?(:additive_vpc_scope_dns_domain)
1699
2403
  @cluster_dns = args[:cluster_dns] if args.key?(:cluster_dns)
1700
2404
  @cluster_dns_domain = args[:cluster_dns_domain] if args.key?(:cluster_dns_domain)
1701
2405
  @cluster_dns_scope = args[:cluster_dns_scope] if args.key?(:cluster_dns_scope)
1702
2406
  end
1703
2407
  end
1704
2408
 
2409
+ # Describes the configuration of a DNS endpoint.
2410
+ class DnsEndpointConfig
2411
+ include Google::Apis::Core::Hashable
2412
+
2413
+ # Controls whether user traffic is allowed over this endpoint. Note that GCP-
2414
+ # managed services may still use the endpoint even if this is false.
2415
+ # Corresponds to the JSON property `allowExternalTraffic`
2416
+ # @return [Boolean]
2417
+ attr_accessor :allow_external_traffic
2418
+ alias_method :allow_external_traffic?, :allow_external_traffic
2419
+
2420
+ # Output only. The cluster's DNS endpoint configuration. A DNS format address.
2421
+ # This is accessible from the public internet. Ex: uid.us-central1.gke.goog.
2422
+ # Always present, but the behavior may change according to the value of
2423
+ # DNSEndpointConfig.allow_external_traffic.
2424
+ # Corresponds to the JSON property `endpoint`
2425
+ # @return [String]
2426
+ attr_accessor :endpoint
2427
+
2428
+ def initialize(**args)
2429
+ update!(**args)
2430
+ end
2431
+
2432
+ # Update properties of this object
2433
+ def update!(**args)
2434
+ @allow_external_traffic = args[:allow_external_traffic] if args.key?(:allow_external_traffic)
2435
+ @endpoint = args[:endpoint] if args.key?(:endpoint)
2436
+ end
2437
+ end
2438
+
1705
2439
  # Time window specified for daily maintenance operations.
1706
2440
  class DailyMaintenanceWindow
1707
2441
  include Google::Apis::Core::Hashable
1708
2442
 
1709
- # [Output only] Duration of the time window, automatically chosen to be smallest
2443
+ # Output only. Duration of the time window, automatically chosen to be smallest
1710
2444
  # possible in the given scenario. Duration will be in [RFC3339](https://www.ietf.
1711
2445
  # org/rfc/rfc3339.txt) format "PTnHnMnS".
1712
2446
  # Corresponds to the JSON property `duration`
@@ -1735,13 +2469,29 @@ module Google
1735
2469
  class DatabaseEncryption
1736
2470
  include Google::Apis::Core::Hashable
1737
2471
 
2472
+ # Output only. The current state of etcd encryption.
2473
+ # Corresponds to the JSON property `currentState`
2474
+ # @return [String]
2475
+ attr_accessor :current_state
2476
+
2477
+ # Output only. Keys in use by the cluster for decrypting existing objects, in
2478
+ # addition to the key in `key_name`. Each item is a CloudKMS key resource.
2479
+ # Corresponds to the JSON property `decryptionKeys`
2480
+ # @return [Array<String>]
2481
+ attr_accessor :decryption_keys
2482
+
1738
2483
  # Name of CloudKMS key to use for the encryption of secrets in etcd. Ex.
1739
2484
  # projects/my-project/locations/global/keyRings/my-ring/cryptoKeys/my-key
1740
2485
  # Corresponds to the JSON property `keyName`
1741
2486
  # @return [String]
1742
2487
  attr_accessor :key_name
1743
2488
 
1744
- # Denotes the state of etcd encryption.
2489
+ # Output only. Records errors seen during DatabaseEncryption update operations.
2490
+ # Corresponds to the JSON property `lastOperationErrors`
2491
+ # @return [Array<Google::Apis::ContainerV1::OperationError>]
2492
+ attr_accessor :last_operation_errors
2493
+
2494
+ # The desired state of etcd encryption.
1745
2495
  # Corresponds to the JSON property `state`
1746
2496
  # @return [String]
1747
2497
  attr_accessor :state
@@ -1752,7 +2502,10 @@ module Google
1752
2502
 
1753
2503
  # Update properties of this object
1754
2504
  def update!(**args)
2505
+ @current_state = args[:current_state] if args.key?(:current_state)
2506
+ @decryption_keys = args[:decryption_keys] if args.key?(:decryption_keys)
1755
2507
  @key_name = args[:key_name] if args.key?(:key_name)
2508
+ @last_operation_errors = args[:last_operation_errors] if args.key?(:last_operation_errors)
1756
2509
  @state = args[:state] if args.key?(:state)
1757
2510
  end
1758
2511
  end
@@ -1778,6 +2531,25 @@ module Google
1778
2531
  end
1779
2532
  end
1780
2533
 
2534
+ # DesiredEnterpriseConfig is a wrapper used for updating enterprise_config.
2535
+ class DesiredEnterpriseConfig
2536
+ include Google::Apis::Core::Hashable
2537
+
2538
+ # desired_tier specifies the desired tier of the cluster.
2539
+ # Corresponds to the JSON property `desiredTier`
2540
+ # @return [String]
2541
+ attr_accessor :desired_tier
2542
+
2543
+ def initialize(**args)
2544
+ update!(**args)
2545
+ end
2546
+
2547
+ # Update properties of this object
2548
+ def update!(**args)
2549
+ @desired_tier = args[:desired_tier] if args.key?(:desired_tier)
2550
+ end
2551
+ end
2552
+
1781
2553
  # Configuration for NodeLocal DNSCache
1782
2554
  class DnsCacheConfig
1783
2555
  include Google::Apis::Core::Hashable
@@ -1814,16 +2586,48 @@ module Google
1814
2586
  end
1815
2587
  end
1816
2588
 
2589
+ # EnterpriseConfig is the cluster enterprise configuration.
2590
+ class EnterpriseConfig
2591
+ include Google::Apis::Core::Hashable
2592
+
2593
+ # Output only. cluster_tier indicates the effective tier of the cluster.
2594
+ # Corresponds to the JSON property `clusterTier`
2595
+ # @return [String]
2596
+ attr_accessor :cluster_tier
2597
+
2598
+ # desired_tier specifies the desired tier of the cluster.
2599
+ # Corresponds to the JSON property `desiredTier`
2600
+ # @return [String]
2601
+ attr_accessor :desired_tier
2602
+
2603
+ def initialize(**args)
2604
+ update!(**args)
2605
+ end
2606
+
2607
+ # Update properties of this object
2608
+ def update!(**args)
2609
+ @cluster_tier = args[:cluster_tier] if args.key?(:cluster_tier)
2610
+ @desired_tier = args[:desired_tier] if args.key?(:desired_tier)
2611
+ end
2612
+ end
2613
+
1817
2614
  # EphemeralStorageLocalSsdConfig contains configuration for the node ephemeral
1818
- # storage using Local SSD.
2615
+ # storage using Local SSDs.
1819
2616
  class EphemeralStorageLocalSsdConfig
1820
2617
  include Google::Apis::Core::Hashable
1821
2618
 
1822
- # Number of local SSDs to use to back ephemeral storage. Uses NVMe interfaces.
1823
- # Each local SSD is 375 GB in size. If zero, it means to disable using local
1824
- # SSDs as ephemeral storage. The limit for this value is dependent upon the
1825
- # maximum number of disks available on a machine per zone. See: https://cloud.
1826
- # google.com/compute/docs/disks/local-ssd for more information.
2619
+ # Number of local SSDs to use to back ephemeral storage. Uses NVMe interfaces. A
2620
+ # zero (or unset) value has different meanings depending on machine type being
2621
+ # used: 1. For pre-Gen3 machines, which support flexible numbers of local ssds,
2622
+ # zero (or unset) means to disable using local SSDs as ephemeral storage. The
2623
+ # limit for this value is dependent upon the maximum number of disk available on
2624
+ # a machine per zone. See: https://cloud.google.com/compute/docs/disks/local-ssd
2625
+ # for more information. 2. For Gen3 machines which dictate a specific number of
2626
+ # local ssds, zero (or unset) means to use the default number of local ssds that
2627
+ # goes with that machine type. For example, for a c3-standard-8-lssd machine, 2
2628
+ # local ssds would be provisioned. For c3-standard-8 (which doesn't support
2629
+ # local ssds), 0 will be provisioned. See https://cloud.google.com/compute/docs/
2630
+ # disks/local-ssd#choose_number_local_ssds for more info.
1827
2631
  # Corresponds to the JSON property `localSsdCount`
1828
2632
  # @return [Fixnum]
1829
2633
  attr_accessor :local_ssd_count
@@ -1880,6 +2684,83 @@ module Google
1880
2684
  end
1881
2685
  end
1882
2686
 
2687
+ # Fleet is the fleet configuration for the cluster.
2688
+ class Fleet
2689
+ include Google::Apis::Core::Hashable
2690
+
2691
+ # Output only. The full resource name of the registered fleet membership of the
2692
+ # cluster, in the format `//gkehub.googleapis.com/projects/*/locations/*/
2693
+ # memberships/*`.
2694
+ # Corresponds to the JSON property `membership`
2695
+ # @return [String]
2696
+ attr_accessor :membership
2697
+
2698
+ # Output only. Whether the cluster has been registered through the fleet API.
2699
+ # Corresponds to the JSON property `preRegistered`
2700
+ # @return [Boolean]
2701
+ attr_accessor :pre_registered
2702
+ alias_method :pre_registered?, :pre_registered
2703
+
2704
+ # The Fleet host project(project ID or project number) where this cluster will
2705
+ # be registered to. This field cannot be changed after the cluster has been
2706
+ # registered.
2707
+ # Corresponds to the JSON property `project`
2708
+ # @return [String]
2709
+ attr_accessor :project
2710
+
2711
+ def initialize(**args)
2712
+ update!(**args)
2713
+ end
2714
+
2715
+ # Update properties of this object
2716
+ def update!(**args)
2717
+ @membership = args[:membership] if args.key?(:membership)
2718
+ @pre_registered = args[:pre_registered] if args.key?(:pre_registered)
2719
+ @project = args[:project] if args.key?(:project)
2720
+ end
2721
+ end
2722
+
2723
+ # GCPSecretManagerCertificateConfig configures a secret from [Google Secret
2724
+ # Manager](https://cloud.google.com/secret-manager).
2725
+ class GcpSecretManagerCertificateConfig
2726
+ include Google::Apis::Core::Hashable
2727
+
2728
+ # Secret URI, in the form "projects/$PROJECT_ID/secrets/$SECRET_NAME/versions/$
2729
+ # VERSION". Version can be fixed (e.g. "2") or "latest"
2730
+ # Corresponds to the JSON property `secretUri`
2731
+ # @return [String]
2732
+ attr_accessor :secret_uri
2733
+
2734
+ def initialize(**args)
2735
+ update!(**args)
2736
+ end
2737
+
2738
+ # Update properties of this object
2739
+ def update!(**args)
2740
+ @secret_uri = args[:secret_uri] if args.key?(:secret_uri)
2741
+ end
2742
+ end
2743
+
2744
+ # GPUDriverInstallationConfig specifies the version of GPU driver to be auto
2745
+ # installed.
2746
+ class GpuDriverInstallationConfig
2747
+ include Google::Apis::Core::Hashable
2748
+
2749
+ # Mode for how the GPU driver is installed.
2750
+ # Corresponds to the JSON property `gpuDriverVersion`
2751
+ # @return [String]
2752
+ attr_accessor :gpu_driver_version
2753
+
2754
+ def initialize(**args)
2755
+ update!(**args)
2756
+ end
2757
+
2758
+ # Update properties of this object
2759
+ def update!(**args)
2760
+ @gpu_driver_version = args[:gpu_driver_version] if args.key?(:gpu_driver_version)
2761
+ end
2762
+ end
2763
+
1883
2764
  # GPUSharingConfig represents the GPU sharing configuration for Hardware
1884
2765
  # Accelerators.
1885
2766
  class GpuSharingConfig
@@ -1986,7 +2867,27 @@ module Google
1986
2867
  end
1987
2868
  end
1988
2869
 
1989
- # GetJSONWebKeysResponse is a valid JSON Web Key Set as specififed in rfc 7517
2870
+ # Configuration for the Cloud Storage Fuse CSI driver.
2871
+ class GcsFuseCsiDriverConfig
2872
+ include Google::Apis::Core::Hashable
2873
+
2874
+ # Whether the Cloud Storage Fuse CSI driver is enabled for this cluster.
2875
+ # Corresponds to the JSON property `enabled`
2876
+ # @return [Boolean]
2877
+ attr_accessor :enabled
2878
+ alias_method :enabled?, :enabled
2879
+
2880
+ def initialize(**args)
2881
+ update!(**args)
2882
+ end
2883
+
2884
+ # Update properties of this object
2885
+ def update!(**args)
2886
+ @enabled = args[:enabled] if args.key?(:enabled)
2887
+ end
2888
+ end
2889
+
2890
+ # GetJSONWebKeysResponse is a valid JSON Web Key Set as specified in rfc 7517
1990
2891
  class GetJsonWebKeysResponse
1991
2892
  include Google::Apis::Core::Hashable
1992
2893
 
@@ -2169,6 +3070,31 @@ module Google
2169
3070
  end
2170
3071
  end
2171
3072
 
3073
+ # Hugepages amount in both 2m and 1g size
3074
+ class HugepagesConfig
3075
+ include Google::Apis::Core::Hashable
3076
+
3077
+ # Optional. Amount of 1G hugepages
3078
+ # Corresponds to the JSON property `hugepageSize1g`
3079
+ # @return [Fixnum]
3080
+ attr_accessor :hugepage_size1g
3081
+
3082
+ # Optional. Amount of 2M hugepages
3083
+ # Corresponds to the JSON property `hugepageSize2m`
3084
+ # @return [Fixnum]
3085
+ attr_accessor :hugepage_size2m
3086
+
3087
+ def initialize(**args)
3088
+ update!(**args)
3089
+ end
3090
+
3091
+ # Update properties of this object
3092
+ def update!(**args)
3093
+ @hugepage_size1g = args[:hugepage_size1g] if args.key?(:hugepage_size1g)
3094
+ @hugepage_size2m = args[:hugepage_size2m] if args.key?(:hugepage_size2m)
3095
+ end
3096
+ end
3097
+
2172
3098
  # ILBSubsettingConfig contains the desired config of L4 Internal LoadBalancer
2173
3099
  # subsetting on this cluster.
2174
3100
  class IlbSubsettingConfig
@@ -2194,6 +3120,12 @@ module Google
2194
3120
  class IpAllocationPolicy
2195
3121
  include Google::Apis::Core::Hashable
2196
3122
 
3123
+ # AdditionalPodRangesConfig is the configuration for additional pod secondary
3124
+ # ranges supporting the ClusterUpdate message.
3125
+ # Corresponds to the JSON property `additionalPodRangesConfig`
3126
+ # @return [Google::Apis::ContainerV1::AdditionalPodRangesConfig]
3127
+ attr_accessor :additional_pod_ranges_config
3128
+
2197
3129
  # This field is deprecated, use cluster_ipv4_cidr_block.
2198
3130
  # Corresponds to the JSON property `clusterIpv4Cidr`
2199
3131
  # @return [String]
@@ -2226,6 +3158,13 @@ module Google
2226
3158
  attr_accessor :create_subnetwork
2227
3159
  alias_method :create_subnetwork?, :create_subnetwork
2228
3160
 
3161
+ # Output only. The utilization of the cluster default IPv4 range for the pod.
3162
+ # The ratio is Usage/[Total number of IPs in the secondary range], Usage=
3163
+ # numNodes*numZones*podIPsPerNode.
3164
+ # Corresponds to the JSON property `defaultPodIpv4RangeUtilization`
3165
+ # @return [Float]
3166
+ attr_accessor :default_pod_ipv4_range_utilization
3167
+
2229
3168
  # The ipv6 access type (internal or external) when create_subnetwork is true
2230
3169
  # Corresponds to the JSON property `ipv6AccessType`
2231
3170
  # @return [String]
@@ -2247,6 +3186,11 @@ module Google
2247
3186
  # @return [String]
2248
3187
  attr_accessor :node_ipv4_cidr_block
2249
3188
 
3189
+ # [PRIVATE FIELD] Config for pod CIDR size overprovisioning.
3190
+ # Corresponds to the JSON property `podCidrOverprovisionConfig`
3191
+ # @return [Google::Apis::ContainerV1::PodCidrOverprovisionConfig]
3192
+ attr_accessor :pod_cidr_overprovision_config
3193
+
2250
3194
  # This field is deprecated, use services_ipv4_cidr_block.
2251
3195
  # Corresponds to the JSON property `servicesIpv4Cidr`
2252
3196
  # @return [String]
@@ -2264,6 +3208,11 @@ module Google
2264
3208
  # @return [String]
2265
3209
  attr_accessor :services_ipv4_cidr_block
2266
3210
 
3211
+ # Output only. The services IPv6 CIDR block for the cluster.
3212
+ # Corresponds to the JSON property `servicesIpv6CidrBlock`
3213
+ # @return [String]
3214
+ attr_accessor :services_ipv6_cidr_block
3215
+
2267
3216
  # The name of the secondary range to be used as for the services CIDR block. The
2268
3217
  # secondary range will be used for service ClusterIPs. This must be an existing
2269
3218
  # secondary range associated with the cluster subnetwork. This field is only
@@ -2277,6 +3226,11 @@ module Google
2277
3226
  # @return [String]
2278
3227
  attr_accessor :stack_type
2279
3228
 
3229
+ # Output only. The subnet's IPv6 CIDR block used by nodes and pods.
3230
+ # Corresponds to the JSON property `subnetIpv6CidrBlock`
3231
+ # @return [String]
3232
+ attr_accessor :subnet_ipv6_cidr_block
3233
+
2280
3234
  # A custom subnetwork name to be used if `create_subnetwork` is true. If this
2281
3235
  # field is empty, then an automatic name will be chosen for the new subnetwork.
2282
3236
  # Corresponds to the JSON property `subnetworkName`
@@ -2290,7 +3244,8 @@ module Google
2290
3244
  # specific netmask. Set to a [CIDR](http://en.wikipedia.org/wiki/Classless_Inter-
2291
3245
  # Domain_Routing) notation (e.g. `10.96.0.0/14`) from the RFC-1918 private
2292
3246
  # networks (e.g. `10.0.0.0/8`, `172.16.0.0/12`, `192.168.0.0/16`) to pick a
2293
- # specific range to use.
3247
+ # specific range to use. This field is deprecated due to the deprecation of 2VM
3248
+ # TPU. The end of life date for 2VM TPU is 2025-04-25.
2294
3249
  # Corresponds to the JSON property `tpuIpv4CidrBlock`
2295
3250
  # @return [String]
2296
3251
  attr_accessor :tpu_ipv4_cidr_block
@@ -2319,17 +3274,22 @@ module Google
2319
3274
 
2320
3275
  # Update properties of this object
2321
3276
  def update!(**args)
3277
+ @additional_pod_ranges_config = args[:additional_pod_ranges_config] if args.key?(:additional_pod_ranges_config)
2322
3278
  @cluster_ipv4_cidr = args[:cluster_ipv4_cidr] if args.key?(:cluster_ipv4_cidr)
2323
3279
  @cluster_ipv4_cidr_block = args[:cluster_ipv4_cidr_block] if args.key?(:cluster_ipv4_cidr_block)
2324
3280
  @cluster_secondary_range_name = args[:cluster_secondary_range_name] if args.key?(:cluster_secondary_range_name)
2325
3281
  @create_subnetwork = args[:create_subnetwork] if args.key?(:create_subnetwork)
3282
+ @default_pod_ipv4_range_utilization = args[:default_pod_ipv4_range_utilization] if args.key?(:default_pod_ipv4_range_utilization)
2326
3283
  @ipv6_access_type = args[:ipv6_access_type] if args.key?(:ipv6_access_type)
2327
3284
  @node_ipv4_cidr = args[:node_ipv4_cidr] if args.key?(:node_ipv4_cidr)
2328
3285
  @node_ipv4_cidr_block = args[:node_ipv4_cidr_block] if args.key?(:node_ipv4_cidr_block)
3286
+ @pod_cidr_overprovision_config = args[:pod_cidr_overprovision_config] if args.key?(:pod_cidr_overprovision_config)
2329
3287
  @services_ipv4_cidr = args[:services_ipv4_cidr] if args.key?(:services_ipv4_cidr)
2330
3288
  @services_ipv4_cidr_block = args[:services_ipv4_cidr_block] if args.key?(:services_ipv4_cidr_block)
3289
+ @services_ipv6_cidr_block = args[:services_ipv6_cidr_block] if args.key?(:services_ipv6_cidr_block)
2331
3290
  @services_secondary_range_name = args[:services_secondary_range_name] if args.key?(:services_secondary_range_name)
2332
3291
  @stack_type = args[:stack_type] if args.key?(:stack_type)
3292
+ @subnet_ipv6_cidr_block = args[:subnet_ipv6_cidr_block] if args.key?(:subnet_ipv6_cidr_block)
2333
3293
  @subnetwork_name = args[:subnetwork_name] if args.key?(:subnetwork_name)
2334
3294
  @tpu_ipv4_cidr_block = args[:tpu_ipv4_cidr_block] if args.key?(:tpu_ipv4_cidr_block)
2335
3295
  @use_ip_aliases = args[:use_ip_aliases] if args.key?(:use_ip_aliases)
@@ -2337,6 +3297,76 @@ module Google
2337
3297
  end
2338
3298
  end
2339
3299
 
3300
+ # IP endpoints configuration.
3301
+ class IpEndpointsConfig
3302
+ include Google::Apis::Core::Hashable
3303
+
3304
+ # Configuration options for the master authorized networks feature. Enabled
3305
+ # master authorized networks will disallow all external traffic to access
3306
+ # Kubernetes master through HTTPS except traffic from the given CIDR blocks,
3307
+ # Google Compute Engine Public IPs and Google Prod IPs.
3308
+ # Corresponds to the JSON property `authorizedNetworksConfig`
3309
+ # @return [Google::Apis::ContainerV1::MasterAuthorizedNetworksConfig]
3310
+ attr_accessor :authorized_networks_config
3311
+
3312
+ # Controls whether the control plane allows access through a public IP. It is
3313
+ # invalid to specify both PrivateClusterConfig.enablePrivateEndpoint and this
3314
+ # field at the same time.
3315
+ # Corresponds to the JSON property `enablePublicEndpoint`
3316
+ # @return [Boolean]
3317
+ attr_accessor :enable_public_endpoint
3318
+ alias_method :enable_public_endpoint?, :enable_public_endpoint
3319
+
3320
+ # Controls whether to allow direct IP access.
3321
+ # Corresponds to the JSON property `enabled`
3322
+ # @return [Boolean]
3323
+ attr_accessor :enabled
3324
+ alias_method :enabled?, :enabled
3325
+
3326
+ # Controls whether the control plane's private endpoint is accessible from
3327
+ # sources in other regions. It is invalid to specify both
3328
+ # PrivateClusterMasterGlobalAccessConfig.enabled and this field at the same time.
3329
+ # Corresponds to the JSON property `globalAccess`
3330
+ # @return [Boolean]
3331
+ attr_accessor :global_access
3332
+ alias_method :global_access?, :global_access
3333
+
3334
+ # Output only. The internal IP address of this cluster's control plane. Only
3335
+ # populated if enabled.
3336
+ # Corresponds to the JSON property `privateEndpoint`
3337
+ # @return [String]
3338
+ attr_accessor :private_endpoint
3339
+
3340
+ # Subnet to provision the master's private endpoint during cluster creation.
3341
+ # Specified in projects/*/regions/*/subnetworks/* format. It is invalid to
3342
+ # specify both PrivateClusterConfig.privateEndpointSubnetwork and this field at
3343
+ # the same time.
3344
+ # Corresponds to the JSON property `privateEndpointSubnetwork`
3345
+ # @return [String]
3346
+ attr_accessor :private_endpoint_subnetwork
3347
+
3348
+ # Output only. The external IP address of this cluster's control plane. Only
3349
+ # populated if enabled.
3350
+ # Corresponds to the JSON property `publicEndpoint`
3351
+ # @return [String]
3352
+ attr_accessor :public_endpoint
3353
+
3354
+ def initialize(**args)
3355
+ update!(**args)
3356
+ end
3357
+
3358
+ # Update properties of this object
3359
+ def update!(**args)
3360
+ @authorized_networks_config = args[:authorized_networks_config] if args.key?(:authorized_networks_config)
3361
+ @enable_public_endpoint = args[:enable_public_endpoint] if args.key?(:enable_public_endpoint)
3362
+ @enabled = args[:enabled] if args.key?(:enabled)
3363
+ @global_access = args[:global_access] if args.key?(:global_access)
3364
+ @private_endpoint = args[:private_endpoint] if args.key?(:private_endpoint)
3365
+ @private_endpoint_subnetwork = args[:private_endpoint_subnetwork] if args.key?(:private_endpoint_subnetwork)
3366
+ @public_endpoint = args[:public_endpoint] if args.key?(:public_endpoint)
3367
+ end
3368
+ end
3369
+
2340
3370
  # IdentityServiceConfig is configuration for Identity Service which allows
2341
3371
  # customers to use external identity providers with the K8S API
2342
3372
  class IdentityServiceConfig
@@ -2446,6 +3476,25 @@ module Google
2446
3476
  end
2447
3477
  end
2448
3478
 
3479
+ # K8sBetaAPIConfig , configuration for beta APIs
3480
+ class K8sBetaApiConfig
3481
+ include Google::Apis::Core::Hashable
3482
+
3483
+ # Enabled k8s beta APIs.
3484
+ # Corresponds to the JSON property `enabledApis`
3485
+ # @return [Array<String>]
3486
+ attr_accessor :enabled_apis
3487
+
3488
+ def initialize(**args)
3489
+ update!(**args)
3490
+ end
3491
+
3492
+ # Update properties of this object
3493
+ def update!(**args)
3494
+ @enabled_apis = args[:enabled_apis] if args.key?(:enabled_apis)
3495
+ end
3496
+ end
3497
+
2449
3498
  # Configuration for the Kubernetes Dashboard.
2450
3499
  class KubernetesDashboard
2451
3500
  include Google::Apis::Core::Hashable
@@ -2498,11 +3547,21 @@ module Google
2498
3547
  # @return [String]
2499
3548
  attr_accessor :cgroup_mode
2500
3549
 
3550
+ # Hugepages amount in both 2m and 1g size
3551
+ # Corresponds to the JSON property `hugepages`
3552
+ # @return [Google::Apis::ContainerV1::HugepagesConfig]
3553
+ attr_accessor :hugepages
3554
+
2501
3555
  # The Linux kernel parameters to be applied to the nodes and all pods running on
2502
3556
  # the nodes. The following parameters are supported. net.core.busy_poll net.core.
2503
- # busy_read net.core.netdev_max_backlog net.core.rmem_max net.core.wmem_default
2504
- # net.core.wmem_max net.core.optmem_max net.core.somaxconn net.ipv4.tcp_rmem net.
2505
- # ipv4.tcp_wmem net.ipv4.tcp_tw_reuse
3557
+ # busy_read net.core.netdev_max_backlog net.core.rmem_max net.core.rmem_default
3558
+ # net.core.wmem_default net.core.wmem_max net.core.optmem_max net.core.somaxconn
3559
+ # net.ipv4.tcp_rmem net.ipv4.tcp_wmem net.ipv4.tcp_tw_reuse net.netfilter.
3560
+ # nf_conntrack_max net.netfilter.nf_conntrack_buckets net.netfilter.
3561
+ # nf_conntrack_tcp_timeout_close_wait net.netfilter.
3562
+ # nf_conntrack_tcp_timeout_time_wait net.netfilter.
3563
+ # nf_conntrack_tcp_timeout_established net.netfilter.nf_conntrack_acct kernel.
3564
+ # shmmni kernel.shmmax kernel.shmall vm.max_map_count
2506
3565
  # Corresponds to the JSON property `sysctls`
2507
3566
  # @return [Hash<String,String>]
2508
3567
  attr_accessor :sysctls
@@ -2514,6 +3573,7 @@ module Google
2514
3573
  # Update properties of this object
2515
3574
  def update!(**args)
2516
3575
  @cgroup_mode = args[:cgroup_mode] if args.key?(:cgroup_mode)
3576
+ @hugepages = args[:hugepages] if args.key?(:hugepages)
2517
3577
  @sysctls = args[:sysctls] if args.key?(:sysctls)
2518
3578
  end
2519
3579
  end
@@ -2618,15 +3678,22 @@ module Google
2618
3678
  end
2619
3679
 
2620
3680
  # LocalNvmeSsdBlockConfig contains configuration for using raw-block local NVMe
2621
- # SSD.
3681
+ # SSDs
2622
3682
  class LocalNvmeSsdBlockConfig
2623
3683
  include Google::Apis::Core::Hashable
2624
3684
 
2625
- # The number of raw-block local NVMe SSD disks to be attached to the node. Each
2626
- # local SSD is 375 GB in size. If zero, it means no raw-block local NVMe SSD
2627
- # disks to be attached to the node. The limit for this value is dependent upon
2628
- # the maximum number of disks available on a machine per zone. See: https://
2629
- # cloud.google.com/compute/docs/disks/local-ssd for more information.
3685
+ # Number of local NVMe SSDs to use. The limit for this value is dependent upon
3686
+ # the maximum number of disk available on a machine per zone. See: https://cloud.
3687
+ # google.com/compute/docs/disks/local-ssd for more information. A zero (or unset)
3688
+ # value has different meanings depending on machine type being used: 1. For pre-
3689
+ # Gen3 machines, which support flexible numbers of local ssds, zero (or unset)
3690
+ # means to disable using local SSDs as ephemeral storage. 2. For Gen3 machines
3691
+ # which dictate a specific number of local ssds, zero (or unset) means to use
3692
+ # the default number of local ssds that goes with that machine type. For example,
3693
+ # for a c3-standard-8-lssd machine, 2 local ssds would be provisioned. For c3-
3694
+ # standard-8 (which doesn't support local ssds), 0 will be provisioned. See
3695
+ # https://cloud.google.com/compute/docs/disks/local-ssd#choose_number_local_ssds
3696
+ # for more info.
2630
3697
  # Corresponds to the JSON property `localSsdCount`
2631
3698
  # @return [Fixnum]
2632
3699
  attr_accessor :local_ssd_count
@@ -2804,8 +3871,8 @@ module Google
2804
3871
  class MasterAuth
2805
3872
  include Google::Apis::Core::Hashable
2806
3873
 
2807
- # [Output only] Base64-encoded public certificate used by clients to
2808
- # authenticate to the cluster endpoint.
3874
+ # Output only. Base64-encoded public certificate used by clients to authenticate
3875
+ # to the cluster endpoint. Issued only if client_certificate_config is set.
2809
3876
  # Corresponds to the JSON property `clientCertificate`
2810
3877
  # @return [String]
2811
3878
  attr_accessor :client_certificate
@@ -2815,13 +3882,13 @@ module Google
2815
3882
  # @return [Google::Apis::ContainerV1::ClientCertificateConfig]
2816
3883
  attr_accessor :client_certificate_config
2817
3884
 
2818
- # [Output only] Base64-encoded private key used by clients to authenticate to
2819
- # the cluster endpoint.
3885
+ # Output only. Base64-encoded private key used by clients to authenticate to the
3886
+ # cluster endpoint.
2820
3887
  # Corresponds to the JSON property `clientKey`
2821
3888
  # @return [String]
2822
3889
  attr_accessor :client_key
2823
3890
 
2824
- # [Output only] Base64-encoded public certificate that is the root of trust for
3891
+ # Output only. Base64-encoded public certificate that is the root of trust for
2825
3892
  # the cluster.
2826
3893
  # Corresponds to the JSON property `clusterCaCertificate`
2827
3894
  # @return [String]
@@ -2883,12 +3950,18 @@ module Google
2883
3950
  attr_accessor :enabled
2884
3951
  alias_method :enabled?, :enabled
2885
3952
 
2886
- # Whether master is accessbile via Google Compute Engine Public IP addresses.
3953
+ # Whether master is accessible via Google Compute Engine Public IP addresses.
2887
3954
  # Corresponds to the JSON property `gcpPublicCidrsAccessEnabled`
2888
3955
  # @return [Boolean]
2889
3956
  attr_accessor :gcp_public_cidrs_access_enabled
2890
3957
  alias_method :gcp_public_cidrs_access_enabled?, :gcp_public_cidrs_access_enabled
2891
3958
 
3959
+ # Whether master authorized networks is enforced on private endpoint or not.
3960
+ # Corresponds to the JSON property `privateEndpointEnforcementEnabled`
3961
+ # @return [Boolean]
3962
+ attr_accessor :private_endpoint_enforcement_enabled
3963
+ alias_method :private_endpoint_enforcement_enabled?, :private_endpoint_enforcement_enabled
3964
+
2892
3965
  def initialize(**args)
2893
3966
  update!(**args)
2894
3967
  end
@@ -2898,6 +3971,7 @@ module Google
2898
3971
  @cidr_blocks = args[:cidr_blocks] if args.key?(:cidr_blocks)
2899
3972
  @enabled = args[:enabled] if args.key?(:enabled)
2900
3973
  @gcp_public_cidrs_access_enabled = args[:gcp_public_cidrs_access_enabled] if args.key?(:gcp_public_cidrs_access_enabled)
3974
+ @private_endpoint_enforcement_enabled = args[:private_endpoint_enforcement_enabled] if args.key?(:private_endpoint_enforcement_enabled)
2901
3975
  end
2902
3976
  end
2903
3977
 
@@ -3005,6 +4079,12 @@ module Google
3005
4079
  class MonitoringConfig
3006
4080
  include Google::Apis::Core::Hashable
3007
4081
 
4082
+ # AdvancedDatapathObservabilityConfig specifies configuration of observability
4083
+ # features of advanced datapath.
4084
+ # Corresponds to the JSON property `advancedDatapathObservabilityConfig`
4085
+ # @return [Google::Apis::ContainerV1::AdvancedDatapathObservabilityConfig]
4086
+ attr_accessor :advanced_datapath_observability_config
4087
+
3008
4088
  # MonitoringComponentConfig is cluster monitoring component configuration.
3009
4089
  # Corresponds to the JSON property `componentConfig`
3010
4090
  # @return [Google::Apis::ContainerV1::MonitoringComponentConfig]
@@ -3022,6 +4102,7 @@ module Google
3022
4102
 
3023
4103
  # Update properties of this object
3024
4104
  def update!(**args)
4105
+ @advanced_datapath_observability_config = args[:advanced_datapath_observability_config] if args.key?(:advanced_datapath_observability_config)
3025
4106
  @component_config = args[:component_config] if args.key?(:component_config)
3026
4107
  @managed_prometheus_config = args[:managed_prometheus_config] if args.key?(:managed_prometheus_config)
3027
4108
  end
@@ -3037,17 +4118,44 @@ module Google
3037
4118
  # @return [String]
3038
4119
  attr_accessor :datapath_provider
3039
4120
 
4121
+ # Controls whether by default nodes have private IP addresses only. It is
4122
+ # invalid to specify both PrivateClusterConfig.enablePrivateNodes and this field
4123
+ # at the same time. To update the default setting, use ClusterUpdate.
4124
+ # desired_default_enable_private_nodes
4125
+ # Corresponds to the JSON property `defaultEnablePrivateNodes`
4126
+ # @return [Boolean]
4127
+ attr_accessor :default_enable_private_nodes
4128
+ alias_method :default_enable_private_nodes?, :default_enable_private_nodes
4129
+
3040
4130
  # DefaultSnatStatus contains the desired state of whether default sNAT should be
3041
4131
  # disabled on the cluster.
3042
4132
  # Corresponds to the JSON property `defaultSnatStatus`
3043
4133
  # @return [Google::Apis::ContainerV1::DefaultSnatStatus]
3044
4134
  attr_accessor :default_snat_status
3045
4135
 
4136
+ # Disable L4 load balancer VPC firewalls to enable firewall policies.
4137
+ # Corresponds to the JSON property `disableL4LbFirewallReconciliation`
4138
+ # @return [Boolean]
4139
+ attr_accessor :disable_l4_lb_firewall_reconciliation
4140
+ alias_method :disable_l4_lb_firewall_reconciliation?, :disable_l4_lb_firewall_reconciliation
4141
+
3046
4142
  # DNSConfig contains the desired set of options for configuring clusterDNS.
3047
4143
  # Corresponds to the JSON property `dnsConfig`
3048
4144
  # @return [Google::Apis::ContainerV1::DnsConfig]
3049
4145
  attr_accessor :dns_config
3050
4146
 
4147
+ # Whether CiliumClusterwideNetworkPolicy is enabled on this cluster.
4148
+ # Corresponds to the JSON property `enableCiliumClusterwideNetworkPolicy`
4149
+ # @return [Boolean]
4150
+ attr_accessor :enable_cilium_clusterwide_network_policy
4151
+ alias_method :enable_cilium_clusterwide_network_policy?, :enable_cilium_clusterwide_network_policy
4152
+
4153
+ # Whether FQDN Network Policy is enabled on this cluster.
4154
+ # Corresponds to the JSON property `enableFqdnNetworkPolicy`
4155
+ # @return [Boolean]
4156
+ attr_accessor :enable_fqdn_network_policy
4157
+ alias_method :enable_fqdn_network_policy?, :enable_fqdn_network_policy
4158
+
3051
4159
  # Whether Intra-node visibility is enabled for this cluster. This makes same
3052
4160
  # node pod to pod traffic visible for VPC network.
3053
4161
  # Corresponds to the JSON property `enableIntraNodeVisibility`
@@ -3061,18 +4169,35 @@ module Google
3061
4169
  attr_accessor :enable_l4ilb_subsetting
3062
4170
  alias_method :enable_l4ilb_subsetting?, :enable_l4ilb_subsetting
3063
4171
 
4172
+ # Whether multi-networking is enabled for this cluster.
4173
+ # Corresponds to the JSON property `enableMultiNetworking`
4174
+ # @return [Boolean]
4175
+ attr_accessor :enable_multi_networking
4176
+ alias_method :enable_multi_networking?, :enable_multi_networking
4177
+
3064
4178
  # GatewayAPIConfig contains the desired config of Gateway API on this cluster.
3065
4179
  # Corresponds to the JSON property `gatewayApiConfig`
3066
4180
  # @return [Google::Apis::ContainerV1::GatewayApiConfig]
3067
4181
  attr_accessor :gateway_api_config
3068
4182
 
3069
- # Output only. The relative name of the Google Compute Engine network(https://
4183
+ # Specify the details of in-transit encryption. Now named inter-node transparent
4184
+ # encryption.
4185
+ # Corresponds to the JSON property `inTransitEncryptionConfig`
4186
+ # @return [String]
4187
+ attr_accessor :in_transit_encryption_config
4188
+
4189
+ # Output only. The relative name of the Google Compute Engine [network](https://
3070
4190
  # cloud.google.com/compute/docs/networks-and-firewalls#networks) to which the
3071
4191
  # cluster is connected. Example: projects/my-project/global/networks/my-network
3072
4192
  # Corresponds to the JSON property `network`
3073
4193
  # @return [String]
3074
4194
  attr_accessor :network
3075
4195
 
4196
+ # Configuration of network bandwidth tiers
4197
+ # Corresponds to the JSON property `networkPerformanceConfig`
4198
+ # @return [Google::Apis::ContainerV1::ClusterNetworkPerformanceConfig]
4199
+ attr_accessor :network_performance_config
4200
+
3076
4201
  # The desired state of IPv6 connectivity to Google Services. By default, no
3077
4202
  # private IPv6 access to or from Google Services (all access will be via IPv4)
3078
4203
  # Corresponds to the JSON property `privateIpv6GoogleAccess`
@@ -3098,12 +4223,19 @@ module Google
3098
4223
  # Update properties of this object
3099
4224
  def update!(**args)
3100
4225
  @datapath_provider = args[:datapath_provider] if args.key?(:datapath_provider)
4226
+ @default_enable_private_nodes = args[:default_enable_private_nodes] if args.key?(:default_enable_private_nodes)
3101
4227
  @default_snat_status = args[:default_snat_status] if args.key?(:default_snat_status)
4228
+ @disable_l4_lb_firewall_reconciliation = args[:disable_l4_lb_firewall_reconciliation] if args.key?(:disable_l4_lb_firewall_reconciliation)
3102
4229
  @dns_config = args[:dns_config] if args.key?(:dns_config)
4230
+ @enable_cilium_clusterwide_network_policy = args[:enable_cilium_clusterwide_network_policy] if args.key?(:enable_cilium_clusterwide_network_policy)
4231
+ @enable_fqdn_network_policy = args[:enable_fqdn_network_policy] if args.key?(:enable_fqdn_network_policy)
3103
4232
  @enable_intra_node_visibility = args[:enable_intra_node_visibility] if args.key?(:enable_intra_node_visibility)
3104
4233
  @enable_l4ilb_subsetting = args[:enable_l4ilb_subsetting] if args.key?(:enable_l4ilb_subsetting)
4234
+ @enable_multi_networking = args[:enable_multi_networking] if args.key?(:enable_multi_networking)
3105
4235
  @gateway_api_config = args[:gateway_api_config] if args.key?(:gateway_api_config)
4236
+ @in_transit_encryption_config = args[:in_transit_encryption_config] if args.key?(:in_transit_encryption_config)
3106
4237
  @network = args[:network] if args.key?(:network)
4238
+ @network_performance_config = args[:network_performance_config] if args.key?(:network_performance_config)
3107
4239
  @private_ipv6_google_access = args[:private_ipv6_google_access] if args.key?(:private_ipv6_google_access)
3108
4240
  @service_external_ips_config = args[:service_external_ips_config] if args.key?(:service_external_ips_config)
3109
4241
  @subnetwork = args[:subnetwork] if args.key?(:subnetwork)
@@ -3183,10 +4315,41 @@ module Google
3183
4315
  class NetworkTags
3184
4316
  include Google::Apis::Core::Hashable
3185
4317
 
3186
- # List of network tags.
3187
- # Corresponds to the JSON property `tags`
4318
+ # List of network tags.
4319
+ # Corresponds to the JSON property `tags`
4320
+ # @return [Array<String>]
4321
+ attr_accessor :tags
4322
+
4323
+ def initialize(**args)
4324
+ update!(**args)
4325
+ end
4326
+
4327
+ # Update properties of this object
4328
+ def update!(**args)
4329
+ @tags = args[:tags] if args.key?(:tags)
4330
+ end
4331
+ end
4332
+
4333
+ # Specifies the NodeAffinity key, values, and affinity operator according to [
4334
+ # shared sole tenant node group affinities](https://cloud.google.com/compute/
4335
+ # docs/nodes/sole-tenant-nodes#node_affinity_and_anti-affinity).
4336
+ class NodeAffinity
4337
+ include Google::Apis::Core::Hashable
4338
+
4339
+ # Key for NodeAffinity.
4340
+ # Corresponds to the JSON property `key`
4341
+ # @return [String]
4342
+ attr_accessor :key
4343
+
4344
+ # Operator for NodeAffinity.
4345
+ # Corresponds to the JSON property `operator`
4346
+ # @return [String]
4347
+ attr_accessor :operator
4348
+
4349
+ # Values for NodeAffinity.
4350
+ # Corresponds to the JSON property `values`
3188
4351
  # @return [Array<String>]
3189
- attr_accessor :tags
4352
+ attr_accessor :values
3190
4353
 
3191
4354
  def initialize(**args)
3192
4355
  update!(**args)
@@ -3194,7 +4357,9 @@ module Google
3194
4357
 
3195
4358
  # Update properties of this object
3196
4359
  def update!(**args)
3197
- @tags = args[:tags] if args.key?(:tags)
4360
+ @key = args[:key] if args.key?(:key)
4361
+ @operator = args[:operator] if args.key?(:operator)
4362
+ @values = args[:values] if args.key?(:values)
3198
4363
  end
3199
4364
  end
3200
4365
 
@@ -3230,6 +4395,11 @@ module Google
3230
4395
  # @return [Google::Apis::ContainerV1::ConfidentialNodes]
3231
4396
  attr_accessor :confidential_nodes
3232
4397
 
4398
+ # ContainerdConfig contains configuration to customize containerd.
4399
+ # Corresponds to the JSON property `containerdConfig`
4400
+ # @return [Google::Apis::ContainerV1::ContainerdConfig]
4401
+ attr_accessor :containerd_config
4402
+
3233
4403
  # Size of the disk attached to each node, specified in GB. The smallest allowed
3234
4404
  # disk size is 10GB. If unspecified, the default disk size is 100GB.
3235
4405
  # Corresponds to the JSON property `diskSizeGb`
@@ -3242,8 +4412,22 @@ module Google
3242
4412
  # @return [String]
3243
4413
  attr_accessor :disk_type
3244
4414
 
4415
+ # Output only. effective_cgroup_mode is the cgroup mode actually used by the
4416
+ # node pool. It is determined by the cgroup mode specified in the
4417
+ # LinuxNodeConfig or the default cgroup mode based on the cluster creation
4418
+ # version.
4419
+ # Corresponds to the JSON property `effectiveCgroupMode`
4420
+ # @return [String]
4421
+ attr_accessor :effective_cgroup_mode
4422
+
4423
+ # Optional. Reserved for future use.
4424
+ # Corresponds to the JSON property `enableConfidentialStorage`
4425
+ # @return [Boolean]
4426
+ attr_accessor :enable_confidential_storage
4427
+ alias_method :enable_confidential_storage?, :enable_confidential_storage
4428
+
3245
4429
  # EphemeralStorageLocalSsdConfig contains configuration for the node ephemeral
3246
- # storage using Local SSD.
4430
+ # storage using Local SSDs.
3247
4431
  # Corresponds to the JSON property `ephemeralStorageLocalSsdConfig`
3248
4432
  # @return [Google::Apis::ContainerV1::EphemeralStorageLocalSsdConfig]
3249
4433
  attr_accessor :ephemeral_storage_local_ssd_config
@@ -3265,7 +4449,8 @@ module Google
3265
4449
  attr_accessor :gvnic
3266
4450
 
3267
4451
  # The image type to use for this node. Note that for a given image type, the
3268
- # latest version of it will be used.
4452
+ # latest version of it will be used. Please see https://cloud.google.com/
4453
+ # kubernetes-engine/docs/concepts/node-images for available image types.
3269
4454
  # Corresponds to the JSON property `imageType`
3270
4455
  # @return [String]
3271
4456
  attr_accessor :image_type
@@ -3292,7 +4477,7 @@ module Google
3292
4477
  attr_accessor :linux_node_config
3293
4478
 
3294
4479
  # LocalNvmeSsdBlockConfig contains configuration for using raw-block local NVMe
3295
- # SSD.
4480
+ # SSDs
3296
4481
  # Corresponds to the JSON property `localNvmeSsdBlockConfig`
3297
4482
  # @return [Google::Apis::ContainerV1::LocalNvmeSsdBlockConfig]
3298
4483
  attr_accessor :local_nvme_ssd_block_config
@@ -3305,6 +4490,12 @@ module Google
3305
4490
  # @return [Fixnum]
3306
4491
  attr_accessor :local_ssd_count
3307
4492
 
4493
+ # Specifies which method should be used for encrypting the Local SSDs attached
4494
+ # to the node.
4495
+ # Corresponds to the JSON property `localSsdEncryptionMode`
4496
+ # @return [String]
4497
+ attr_accessor :local_ssd_encryption_mode
4498
+
3308
4499
  # NodePoolLoggingConfig specifies logging configuration for nodepools.
3309
4500
  # Corresponds to the JSON property `loggingConfig`
3310
4501
  # @return [Google::Apis::ContainerV1::NodePoolLoggingConfig]
@@ -3317,6 +4508,12 @@ module Google
3317
4508
  # @return [String]
3318
4509
  attr_accessor :machine_type
3319
4510
 
4511
+ # The maximum duration for the nodes to exist. If unspecified, the nodes can
4512
+ # exist indefinitely.
4513
+ # Corresponds to the JSON property `maxRunDuration`
4514
+ # @return [String]
4515
+ attr_accessor :max_run_duration
4516
+
3320
4517
  # The metadata key/value pairs assigned to instances in the cluster. Keys must
3321
4518
  # conform to the regexp `[a-zA-Z0-9-_]+` and be less than 128 bytes in length.
3322
4519
  # These are reflected as part of a URL in the metadata server. Additionally, to
@@ -3386,11 +4583,31 @@ module Google
3386
4583
  # @return [Hash<String,String>]
3387
4584
  attr_accessor :resource_labels
3388
4585
 
4586
+ # A map of resource manager tag keys and values to be attached to the nodes for
4587
+ # managing Compute Engine firewalls using Network Firewall Policies. Tags must
4588
+ # be according to specifications in https://cloud.google.com/vpc/docs/tags-
4589
+ # firewalls-overview#specifications. A maximum of 5 tag key-value pairs can be
4590
+ # specified. Existing tags will be replaced with new values.
4591
+ # Corresponds to the JSON property `resourceManagerTags`
4592
+ # @return [Google::Apis::ContainerV1::ResourceManagerTags]
4593
+ attr_accessor :resource_manager_tags
4594
+
3389
4595
  # SandboxConfig contains configurations of the sandbox to use for the node.
3390
4596
  # Corresponds to the JSON property `sandboxConfig`
3391
4597
  # @return [Google::Apis::ContainerV1::SandboxConfig]
3392
4598
  attr_accessor :sandbox_config
3393
4599
 
4600
+ # SecondaryBootDiskUpdateStrategy is a placeholder which will be extended in the
4601
+ # future to define different options for updating secondary boot disks.
4602
+ # Corresponds to the JSON property `secondaryBootDiskUpdateStrategy`
4603
+ # @return [Google::Apis::ContainerV1::SecondaryBootDiskUpdateStrategy]
4604
+ attr_accessor :secondary_boot_disk_update_strategy
4605
+
4606
+ # List of secondary boot disks attached to the nodes.
4607
+ # Corresponds to the JSON property `secondaryBootDisks`
4608
+ # @return [Array<Google::Apis::ContainerV1::SecondaryBootDisk>]
4609
+ attr_accessor :secondary_boot_disks
4610
+
3394
4611
  # The Google Cloud Platform Service Account to be used by the node VMs. Specify
3395
4612
  # the email address of the Service Account; otherwise, if no Service Account is
3396
4613
  # specified, the "default" service account is used.
@@ -3403,6 +4620,12 @@ module Google
3403
4620
  # @return [Google::Apis::ContainerV1::ShieldedInstanceConfig]
3404
4621
  attr_accessor :shielded_instance_config
3405
4622
 
4623
+ # SoleTenantConfig contains the NodeAffinities to specify what shared sole
4624
+ # tenant node groups should back the node pool.
4625
+ # Corresponds to the JSON property `soleTenantConfig`
4626
+ # @return [Google::Apis::ContainerV1::SoleTenantConfig]
4627
+ attr_accessor :sole_tenant_config
4628
+
3406
4629
  # Spot flag for enabling Spot VM, which is a rebrand of the existing preemptible
3407
4630
  # flag.
3408
4631
  # Corresponds to the JSON property `spot`
@@ -3410,6 +4633,11 @@ module Google
3410
4633
  attr_accessor :spot
3411
4634
  alias_method :spot?, :spot
3412
4635
 
4636
+ # List of Storage Pools where boot disks are provisioned.
4637
+ # Corresponds to the JSON property `storagePools`
4638
+ # @return [Array<String>]
4639
+ attr_accessor :storage_pools
4640
+
3413
4641
  # The list of instance tags applied to all nodes. Tags are used to identify
3414
4642
  # valid sources or targets for network firewalls and are specified by the client
3415
4643
  # during cluster or node pool creation. Each tag within the list must comply
@@ -3448,8 +4676,11 @@ module Google
3448
4676
  @advanced_machine_features = args[:advanced_machine_features] if args.key?(:advanced_machine_features)
3449
4677
  @boot_disk_kms_key = args[:boot_disk_kms_key] if args.key?(:boot_disk_kms_key)
3450
4678
  @confidential_nodes = args[:confidential_nodes] if args.key?(:confidential_nodes)
4679
+ @containerd_config = args[:containerd_config] if args.key?(:containerd_config)
3451
4680
  @disk_size_gb = args[:disk_size_gb] if args.key?(:disk_size_gb)
3452
4681
  @disk_type = args[:disk_type] if args.key?(:disk_type)
4682
+ @effective_cgroup_mode = args[:effective_cgroup_mode] if args.key?(:effective_cgroup_mode)
4683
+ @enable_confidential_storage = args[:enable_confidential_storage] if args.key?(:enable_confidential_storage)
3453
4684
  @ephemeral_storage_local_ssd_config = args[:ephemeral_storage_local_ssd_config] if args.key?(:ephemeral_storage_local_ssd_config)
3454
4685
  @fast_socket = args[:fast_socket] if args.key?(:fast_socket)
3455
4686
  @gcfs_config = args[:gcfs_config] if args.key?(:gcfs_config)
@@ -3460,8 +4691,10 @@ module Google
3460
4691
  @linux_node_config = args[:linux_node_config] if args.key?(:linux_node_config)
3461
4692
  @local_nvme_ssd_block_config = args[:local_nvme_ssd_block_config] if args.key?(:local_nvme_ssd_block_config)
3462
4693
  @local_ssd_count = args[:local_ssd_count] if args.key?(:local_ssd_count)
4694
+ @local_ssd_encryption_mode = args[:local_ssd_encryption_mode] if args.key?(:local_ssd_encryption_mode)
3463
4695
  @logging_config = args[:logging_config] if args.key?(:logging_config)
3464
4696
  @machine_type = args[:machine_type] if args.key?(:machine_type)
4697
+ @max_run_duration = args[:max_run_duration] if args.key?(:max_run_duration)
3465
4698
  @metadata = args[:metadata] if args.key?(:metadata)
3466
4699
  @min_cpu_platform = args[:min_cpu_platform] if args.key?(:min_cpu_platform)
3467
4700
  @node_group = args[:node_group] if args.key?(:node_group)
@@ -3469,10 +4702,15 @@ module Google
3469
4702
  @preemptible = args[:preemptible] if args.key?(:preemptible)
3470
4703
  @reservation_affinity = args[:reservation_affinity] if args.key?(:reservation_affinity)
3471
4704
  @resource_labels = args[:resource_labels] if args.key?(:resource_labels)
4705
+ @resource_manager_tags = args[:resource_manager_tags] if args.key?(:resource_manager_tags)
3472
4706
  @sandbox_config = args[:sandbox_config] if args.key?(:sandbox_config)
4707
+ @secondary_boot_disk_update_strategy = args[:secondary_boot_disk_update_strategy] if args.key?(:secondary_boot_disk_update_strategy)
4708
+ @secondary_boot_disks = args[:secondary_boot_disks] if args.key?(:secondary_boot_disks)
3473
4709
  @service_account = args[:service_account] if args.key?(:service_account)
3474
4710
  @shielded_instance_config = args[:shielded_instance_config] if args.key?(:shielded_instance_config)
4711
+ @sole_tenant_config = args[:sole_tenant_config] if args.key?(:sole_tenant_config)
3475
4712
  @spot = args[:spot] if args.key?(:spot)
4713
+ @storage_pools = args[:storage_pools] if args.key?(:storage_pools)
3476
4714
  @tags = args[:tags] if args.key?(:tags)
3477
4715
  @taints = args[:taints] if args.key?(:taints)
3478
4716
  @windows_node_config = args[:windows_node_config] if args.key?(:windows_node_config)
@@ -3484,6 +4722,11 @@ module Google
3484
4722
  class NodeConfigDefaults
3485
4723
  include Google::Apis::Core::Hashable
3486
4724
 
4725
+ # ContainerdConfig contains configuration to customize containerd.
4726
+ # Corresponds to the JSON property `containerdConfig`
4727
+ # @return [Google::Apis::ContainerV1::ContainerdConfig]
4728
+ attr_accessor :containerd_config
4729
+
3487
4730
  # GcfsConfig contains configurations of Google Container File System (image
3488
4731
  # streaming).
3489
4732
  # Corresponds to the JSON property `gcfsConfig`
@@ -3495,14 +4738,21 @@ module Google
3495
4738
  # @return [Google::Apis::ContainerV1::NodePoolLoggingConfig]
3496
4739
  attr_accessor :logging_config
3497
4740
 
4741
+ # Node kubelet configs.
4742
+ # Corresponds to the JSON property `nodeKubeletConfig`
4743
+ # @return [Google::Apis::ContainerV1::NodeKubeletConfig]
4744
+ attr_accessor :node_kubelet_config
4745
+
3498
4746
  def initialize(**args)
3499
4747
  update!(**args)
3500
4748
  end
3501
4749
 
3502
4750
  # Update properties of this object
3503
4751
  def update!(**args)
4752
+ @containerd_config = args[:containerd_config] if args.key?(:containerd_config)
3504
4753
  @gcfs_config = args[:gcfs_config] if args.key?(:gcfs_config)
3505
4754
  @logging_config = args[:logging_config] if args.key?(:logging_config)
4755
+ @node_kubelet_config = args[:node_kubelet_config] if args.key?(:node_kubelet_config)
3506
4756
  end
3507
4757
  end
3508
4758
 
@@ -3510,6 +4760,37 @@ module Google
3510
4760
  class NodeKubeletConfig
3511
4761
  include Google::Apis::Core::Hashable
3512
4762
 
4763
+ # Optional. Defines a comma-separated allowlist of unsafe sysctls or sysctl
4764
+ # patterns (ending in `*`). The unsafe namespaced sysctl groups are `kernel.shm*`
4765
+ # , `kernel.msg*`, `kernel.sem`, `fs.mqueue.*`, and `net.*`. Leaving this
4766
+ # allowlist empty means they cannot be set on Pods. To allow certain sysctls or
4767
+ # sysctl patterns to be set on Pods, list them separated by commas. For example:
4768
+ # `kernel.msg*,net.ipv4.route.min_pmtu`. See https://kubernetes.io/docs/tasks/
4769
+ # administer-cluster/sysctl-cluster/ for more details.
4770
+ # Corresponds to the JSON property `allowedUnsafeSysctls`
4771
+ # @return [Array<String>]
4772
+ attr_accessor :allowed_unsafe_sysctls
4773
+
4774
+ # Optional. Defines the maximum number of container log files that can be
4775
+ # present for a container. See https://kubernetes.io/docs/concepts/cluster-
4776
+ # administration/logging/#log-rotation The value must be an integer between 2
4777
+ # and 10, inclusive. The default value is 5 if unspecified.
4778
+ # Corresponds to the JSON property `containerLogMaxFiles`
4779
+ # @return [Fixnum]
4780
+ attr_accessor :container_log_max_files
4781
+
4782
+ # Optional. Defines the maximum size of the container log file before it is
4783
+ # rotated. See https://kubernetes.io/docs/concepts/cluster-administration/
4784
+ # logging/#log-rotation Valid format is positive number + unit, e.g. 100Ki, 10Mi.
4785
+ # Valid units are Ki, Mi, Gi. The value must be between 10Mi and 500Mi,
4786
+ # inclusive. Note that the total container log size (container_log_max_size *
4787
+ # container_log_max_files) cannot exceed 1% of the total storage of the node, to
4788
+ # avoid disk pressure caused by log files. The default value is 10Mi if
4789
+ # unspecified.
4790
+ # Corresponds to the JSON property `containerLogMaxSize`
4791
+ # @return [String]
4792
+ attr_accessor :container_log_max_size
4793
+
3513
4794
  # Enable CPU CFS quota enforcement for containers that specify CPU limits. This
3514
4795
  # option is enabled by default which makes kubelet use CFS quota (https://www.
3515
4796
  # kernel.org/doc/Documentation/scheduler/sched-bwc.txt) to enforce container CPU
@@ -3540,6 +4821,50 @@ module Google
3540
4821
  # @return [String]
3541
4822
  attr_accessor :cpu_manager_policy
3542
4823
 
4824
+ # Optional. Defines the percent of disk usage after which image garbage
4825
+ # collection is always run. The percent is calculated as this field value out of
4826
+ # 100. The value must be between 10 and 85, inclusive and greater than
4827
+ # image_gc_low_threshold_percent. The default value is 85 if unspecified.
4828
+ # Corresponds to the JSON property `imageGcHighThresholdPercent`
4829
+ # @return [Fixnum]
4830
+ attr_accessor :image_gc_high_threshold_percent
4831
+
4832
+ # Optional. Defines the percent of disk usage before which image garbage
4833
+ # collection is never run. Lowest disk usage to garbage collect to. The percent
4834
+ # is calculated as this field value out of 100. The value must be between 10 and
4835
+ # 85, inclusive and smaller than image_gc_high_threshold_percent. The default
4836
+ # value is 80 if unspecified.
4837
+ # Corresponds to the JSON property `imageGcLowThresholdPercent`
4838
+ # @return [Fixnum]
4839
+ attr_accessor :image_gc_low_threshold_percent
4840
+
4841
+ # Optional. Defines the maximum age an image can be unused before it is garbage
4842
+ # collected. The string must be a sequence of decimal numbers, each with
4843
+ # optional fraction and a unit suffix, such as "300s", "1.5h", and "2h45m".
4844
+ # Valid time units are "ns", "us" (or "µs"), "ms", "s", "m", "h". The value must
4845
+ # be a positive duration greater than image_minimum_gc_age or "0s". The default
4846
+ # value is "0s" if unspecified, which disables this field, meaning images won't
4847
+ # be garbage collected based on being unused for too long.
4848
+ # Corresponds to the JSON property `imageMaximumGcAge`
4849
+ # @return [String]
4850
+ attr_accessor :image_maximum_gc_age
4851
+
4852
+ # Optional. Defines the minimum age for an unused image before it is garbage
4853
+ # collected. The string must be a sequence of decimal numbers, each with
4854
+ # optional fraction and a unit suffix, such as "300s", "1.5h", and "2h45m".
4855
+ # Valid time units are "ns", "us" (or "µs"), "ms", "s", "m", "h". The value must
4856
+ # be a positive duration less than or equal to 2 minutes. The default value is "
4857
+ # 2m0s" if unspecified.
4858
+ # Corresponds to the JSON property `imageMinimumGcAge`
4859
+ # @return [String]
4860
+ attr_accessor :image_minimum_gc_age
4861
+
4862
+ # Enable or disable Kubelet read only port.
4863
+ # Corresponds to the JSON property `insecureKubeletReadonlyPortEnabled`
4864
+ # @return [Boolean]
4865
+ attr_accessor :insecure_kubelet_readonly_port_enabled
4866
+ alias_method :insecure_kubelet_readonly_port_enabled?, :insecure_kubelet_readonly_port_enabled
4867
+
3543
4868
  # Set the Pod PID limits. See https://kubernetes.io/docs/concepts/policy/pid-
3544
4869
  # limiting/#pod-pid-limits Controls the maximum number of processes allowed to
3545
4870
  # run in a pod. The value must be greater than or equal to 1024 and less than
@@ -3554,9 +4879,17 @@ module Google
3554
4879
 
3555
4880
  # Update properties of this object
3556
4881
  def update!(**args)
4882
+ @allowed_unsafe_sysctls = args[:allowed_unsafe_sysctls] if args.key?(:allowed_unsafe_sysctls)
4883
+ @container_log_max_files = args[:container_log_max_files] if args.key?(:container_log_max_files)
4884
+ @container_log_max_size = args[:container_log_max_size] if args.key?(:container_log_max_size)
3557
4885
  @cpu_cfs_quota = args[:cpu_cfs_quota] if args.key?(:cpu_cfs_quota)
3558
4886
  @cpu_cfs_quota_period = args[:cpu_cfs_quota_period] if args.key?(:cpu_cfs_quota_period)
3559
4887
  @cpu_manager_policy = args[:cpu_manager_policy] if args.key?(:cpu_manager_policy)
4888
+ @image_gc_high_threshold_percent = args[:image_gc_high_threshold_percent] if args.key?(:image_gc_high_threshold_percent)
4889
+ @image_gc_low_threshold_percent = args[:image_gc_low_threshold_percent] if args.key?(:image_gc_low_threshold_percent)
4890
+ @image_maximum_gc_age = args[:image_maximum_gc_age] if args.key?(:image_maximum_gc_age)
4891
+ @image_minimum_gc_age = args[:image_minimum_gc_age] if args.key?(:image_minimum_gc_age)
4892
+ @insecure_kubelet_readonly_port_enabled = args[:insecure_kubelet_readonly_port_enabled] if args.key?(:insecure_kubelet_readonly_port_enabled)
3560
4893
  @pod_pids_limit = args[:pod_pids_limit] if args.key?(:pod_pids_limit)
3561
4894
  end
3562
4895
  end
@@ -3625,6 +4958,18 @@ module Google
3625
4958
  class NodeNetworkConfig
3626
4959
  include Google::Apis::Core::Hashable
3627
4960
 
4961
+ # We specify the additional node networks for this node pool using this list.
4962
+ # Each node network corresponds to an additional interface
4963
+ # Corresponds to the JSON property `additionalNodeNetworkConfigs`
4964
+ # @return [Array<Google::Apis::ContainerV1::AdditionalNodeNetworkConfig>]
4965
+ attr_accessor :additional_node_network_configs
4966
+
4967
+ # We specify the additional pod networks for this node pool using this list.
4968
+ # Each pod network corresponds to an additional alias IP range for the node
4969
+ # Corresponds to the JSON property `additionalPodNetworkConfigs`
4970
+ # @return [Array<Google::Apis::ContainerV1::AdditionalPodNetworkConfig>]
4971
+ attr_accessor :additional_pod_network_configs
4972
+
3628
4973
  # Input only. Whether to create a new range for pod IPs in this node pool.
3629
4974
  # Defaults are provided for `pod_range` and `pod_ipv4_cidr_block` if they are
3630
4975
  # not specified. If neither `create_pod_range` or `pod_range` are specified, the
@@ -3637,8 +4982,8 @@ module Google
3637
4982
  alias_method :create_pod_range?, :create_pod_range
3638
4983
 
3639
4984
  # Whether nodes have internal IP addresses only. If enable_private_nodes is not
3640
- # specified, then the value is derived from cluster.privateClusterConfig.
3641
- # enablePrivateNodes
4985
+ # specified, then the value is derived from Cluster.NetworkConfig.
4986
+ # default_enable_private_nodes
3642
4987
  # Corresponds to the JSON property `enablePrivateNodes`
3643
4988
  # @return [Boolean]
3644
4989
  attr_accessor :enable_private_nodes
@@ -3649,6 +4994,11 @@ module Google
3649
4994
  # @return [Google::Apis::ContainerV1::NetworkPerformanceConfig]
3650
4995
  attr_accessor :network_performance_config
3651
4996
 
4997
+ # [PRIVATE FIELD] Config for pod CIDR size overprovisioning.
4998
+ # Corresponds to the JSON property `podCidrOverprovisionConfig`
4999
+ # @return [Google::Apis::ContainerV1::PodCidrOverprovisionConfig]
5000
+ attr_accessor :pod_cidr_overprovision_config
5001
+
3652
5002
  # The IP address range for pod IPs in this node pool. Only applicable if `
3653
5003
  # create_pod_range` is true. Set to blank to have a range chosen with the
3654
5004
  # default size. Set to /netmask (e.g. `/14`) to have a range chosen with a
@@ -3660,6 +5010,13 @@ module Google
3660
5010
  # @return [String]
3661
5011
  attr_accessor :pod_ipv4_cidr_block
3662
5012
 
5013
+ # Output only. The utilization of the IPv4 range for the pod. The ratio is Usage/
5014
+ # [Total number of IPs in the secondary range], Usage=numNodes*numZones*
5015
+ # podIPsPerNode.
5016
+ # Corresponds to the JSON property `podIpv4RangeUtilization`
5017
+ # @return [Float]
5018
+ attr_accessor :pod_ipv4_range_utilization
5019
+
3663
5020
  # The ID of the secondary range for pod IPs. If `create_pod_range` is true, this
3664
5021
  # ID is used for the new range. If `create_pod_range` is false, uses an existing
3665
5022
  # secondary range with this ID. Only applicable if `ip_allocation_policy.
@@ -3675,10 +5032,14 @@ module Google
3675
5032
 
3676
5033
  # Update properties of this object
3677
5034
  def update!(**args)
5035
+ @additional_node_network_configs = args[:additional_node_network_configs] if args.key?(:additional_node_network_configs)
5036
+ @additional_pod_network_configs = args[:additional_pod_network_configs] if args.key?(:additional_pod_network_configs)
3678
5037
  @create_pod_range = args[:create_pod_range] if args.key?(:create_pod_range)
3679
5038
  @enable_private_nodes = args[:enable_private_nodes] if args.key?(:enable_private_nodes)
3680
5039
  @network_performance_config = args[:network_performance_config] if args.key?(:network_performance_config)
5040
+ @pod_cidr_overprovision_config = args[:pod_cidr_overprovision_config] if args.key?(:pod_cidr_overprovision_config)
3681
5041
  @pod_ipv4_cidr_block = args[:pod_ipv4_cidr_block] if args.key?(:pod_ipv4_cidr_block)
5042
+ @pod_ipv4_range_utilization = args[:pod_ipv4_range_utilization] if args.key?(:pod_ipv4_range_utilization)
3682
5043
  @pod_range = args[:pod_range] if args.key?(:pod_range)
3683
5044
  end
3684
5045
  end
@@ -3692,12 +5053,22 @@ module Google
3692
5053
  class NodePool
3693
5054
  include Google::Apis::Core::Hashable
3694
5055
 
5056
+ # AutopilotConfig contains configuration of autopilot feature for this nodepool.
5057
+ # Corresponds to the JSON property `autopilotConfig`
5058
+ # @return [Google::Apis::ContainerV1::AutopilotConfig]
5059
+ attr_accessor :autopilot_config
5060
+
3695
5061
  # NodePoolAutoscaling contains information required by cluster autoscaler to
3696
5062
  # adjust the size of the node pool to the current cluster usage.
3697
5063
  # Corresponds to the JSON property `autoscaling`
3698
5064
  # @return [Google::Apis::ContainerV1::NodePoolAutoscaling]
3699
5065
  attr_accessor :autoscaling
3700
5066
 
5067
+ # Best effort provisioning.
5068
+ # Corresponds to the JSON property `bestEffortProvisioning`
5069
+ # @return [Google::Apis::ContainerV1::BestEffortProvisioning]
5070
+ attr_accessor :best_effort_provisioning
5071
+
3701
5072
  # Which conditions caused the current node pool state.
3702
5073
  # Corresponds to the JSON property `conditions`
3703
5074
  # @return [Array<Google::Apis::ContainerV1::StatusCondition>]
@@ -3725,7 +5096,7 @@ module Google
3725
5096
  # @return [Fixnum]
3726
5097
  attr_accessor :initial_node_count
3727
5098
 
3728
- # [Output only] The resource URLs of the [managed instance groups](https://cloud.
5099
+ # Output only. The resource URLs of the [managed instance groups](https://cloud.
3729
5100
  # google.com/compute/docs/instance-groups/creating-groups-of-managed-instances)
3730
5101
  # associated with this node pool. During the node pool blue-green upgrade
3731
5102
  # operation, the URLs contain both blue and green resources.
@@ -3769,22 +5140,27 @@ module Google
3769
5140
  # @return [Google::Apis::ContainerV1::PlacementPolicy]
3770
5141
  attr_accessor :placement_policy
3771
5142
 
3772
- # [Output only] The pod CIDR block size per node in this node pool.
5143
+ # Output only. The pod CIDR block size per node in this node pool.
3773
5144
  # Corresponds to the JSON property `podIpv4CidrSize`
3774
5145
  # @return [Fixnum]
3775
5146
  attr_accessor :pod_ipv4_cidr_size
3776
5147
 
3777
- # [Output only] Server-defined URL for the resource.
5148
+ # QueuedProvisioning defines the queued provisioning used by the node pool.
5149
+ # Corresponds to the JSON property `queuedProvisioning`
5150
+ # @return [Google::Apis::ContainerV1::QueuedProvisioning]
5151
+ attr_accessor :queued_provisioning
5152
+
5153
+ # Output only. Server-defined URL for the resource.
3778
5154
  # Corresponds to the JSON property `selfLink`
3779
5155
  # @return [String]
3780
5156
  attr_accessor :self_link
3781
5157
 
3782
- # [Output only] The status of the nodes in this pool instance.
5158
+ # Output only. The status of the nodes in this pool instance.
3783
5159
  # Corresponds to the JSON property `status`
3784
5160
  # @return [String]
3785
5161
  attr_accessor :status
3786
5162
 
3787
- # [Output only] Deprecated. Use conditions instead. Additional information about
5163
+ # Output only. Deprecated. Use conditions instead. Additional information about
3788
5164
  # the current status of this node pool instance, if available.
3789
5165
  # Corresponds to the JSON property `statusMessage`
3790
5166
  # @return [String]
@@ -3831,7 +5207,9 @@ module Google
3831
5207
  # @return [Google::Apis::ContainerV1::UpgradeSettings]
3832
5208
  attr_accessor :upgrade_settings
3833
5209
 
3834
- # The version of the Kubernetes of this node.
5210
+ # The version of Kubernetes running on this NodePool's nodes. If unspecified, it
5211
+ # defaults as described [here](https://cloud.google.com/kubernetes-engine/
5212
+ # versioning#specifying_node_version).
3835
5213
  # Corresponds to the JSON property `version`
3836
5214
  # @return [String]
3837
5215
  attr_accessor :version
@@ -3842,7 +5220,9 @@ module Google
3842
5220
 
3843
5221
  # Update properties of this object
3844
5222
  def update!(**args)
5223
+ @autopilot_config = args[:autopilot_config] if args.key?(:autopilot_config)
3845
5224
  @autoscaling = args[:autoscaling] if args.key?(:autoscaling)
5225
+ @best_effort_provisioning = args[:best_effort_provisioning] if args.key?(:best_effort_provisioning)
3846
5226
  @conditions = args[:conditions] if args.key?(:conditions)
3847
5227
  @config = args[:config] if args.key?(:config)
3848
5228
  @etag = args[:etag] if args.key?(:etag)
@@ -3855,6 +5235,7 @@ module Google
3855
5235
  @network_config = args[:network_config] if args.key?(:network_config)
3856
5236
  @placement_policy = args[:placement_policy] if args.key?(:placement_policy)
3857
5237
  @pod_ipv4_cidr_size = args[:pod_ipv4_cidr_size] if args.key?(:pod_ipv4_cidr_size)
5238
+ @queued_provisioning = args[:queued_provisioning] if args.key?(:queued_provisioning)
3858
5239
  @self_link = args[:self_link] if args.key?(:self_link)
3859
5240
  @status = args[:status] if args.key?(:status)
3860
5241
  @status_message = args[:status_message] if args.key?(:status_message)
@@ -3869,19 +5250,41 @@ module Google
3869
5250
  class NodePoolAutoConfig
3870
5251
  include Google::Apis::Core::Hashable
3871
5252
 
5253
+ # Parameters that can be configured on Linux nodes.
5254
+ # Corresponds to the JSON property `linuxNodeConfig`
5255
+ # @return [Google::Apis::ContainerV1::LinuxNodeConfig]
5256
+ attr_accessor :linux_node_config
5257
+
3872
5258
  # Collection of Compute Engine network tags that can be applied to a node's
3873
5259
  # underlying VM instance.
3874
5260
  # Corresponds to the JSON property `networkTags`
3875
5261
  # @return [Google::Apis::ContainerV1::NetworkTags]
3876
5262
  attr_accessor :network_tags
3877
5263
 
5264
+ # Node kubelet configs.
5265
+ # Corresponds to the JSON property `nodeKubeletConfig`
5266
+ # @return [Google::Apis::ContainerV1::NodeKubeletConfig]
5267
+ attr_accessor :node_kubelet_config
5268
+
5269
+ # A map of resource manager tag keys and values to be attached to the nodes for
5270
+ # managing Compute Engine firewalls using Network Firewall Policies. Tags must
5271
+ # be according to specifications in https://cloud.google.com/vpc/docs/tags-
5272
+ # firewalls-overview#specifications. A maximum of 5 tag key-value pairs can be
5273
+ # specified. Existing tags will be replaced with new values.
5274
+ # Corresponds to the JSON property `resourceManagerTags`
5275
+ # @return [Google::Apis::ContainerV1::ResourceManagerTags]
5276
+ attr_accessor :resource_manager_tags
5277
+
3878
5278
  def initialize(**args)
3879
5279
  update!(**args)
3880
5280
  end
3881
5281
 
3882
5282
  # Update properties of this object
3883
5283
  def update!(**args)
5284
+ @linux_node_config = args[:linux_node_config] if args.key?(:linux_node_config)
3884
5285
  @network_tags = args[:network_tags] if args.key?(:network_tags)
5286
+ @node_kubelet_config = args[:node_kubelet_config] if args.key?(:node_kubelet_config)
5287
+ @resource_manager_tags = args[:resource_manager_tags] if args.key?(:resource_manager_tags)
3885
5288
  end
3886
5289
  end
3887
5290
 
@@ -3907,19 +5310,19 @@ module Google
3907
5310
  # @return [String]
3908
5311
  attr_accessor :location_policy
3909
5312
 
3910
- # Maximum number of nodes for one location in the NodePool. Must be >=
5313
+ # Maximum number of nodes for one location in the node pool. Must be >=
3911
5314
  # min_node_count. There has to be enough quota to scale up the cluster.
3912
5315
  # Corresponds to the JSON property `maxNodeCount`
3913
5316
  # @return [Fixnum]
3914
5317
  attr_accessor :max_node_count
3915
5318
 
3916
- # Minimum number of nodes for one location in the NodePool. Must be >= 1 and <=
3917
- # max_node_count.
5319
+ # Minimum number of nodes for one location in the node pool. Must be greater
5320
+ # than or equal to 0 and less than or equal to max_node_count.
3918
5321
  # Corresponds to the JSON property `minNodeCount`
3919
5322
  # @return [Fixnum]
3920
5323
  attr_accessor :min_node_count
3921
5324
 
3922
- # Maximum number of nodes in the node pool. Must be greater than
5325
+ # Maximum number of nodes in the node pool. Must be greater than or equal to
3923
5326
  # total_min_node_count. There has to be enough quota to scale up the cluster.
3924
5327
  # The total_*_node_count fields are mutually exclusive with the *_node_count
3925
5328
  # fields.
@@ -3927,9 +5330,9 @@ module Google
3927
5330
  # @return [Fixnum]
3928
5331
  attr_accessor :total_max_node_count
3929
5332
 
3930
- # Minimum number of nodes in the node pool. Must be greater than 1 less than
3931
- # total_max_node_count. The total_*_node_count fields are mutually exclusive
3932
- # with the *_node_count fields.
5333
+ # Minimum number of nodes in the node pool. Must be greater than or equal to 0
5334
+ # and less than or equal to total_max_node_count. The total_*_node_count fields
5335
+ # are mutually exclusive with the *_node_count fields.
3933
5336
  # Corresponds to the JSON property `totalMinNodeCount`
3934
5337
  # @return [Fixnum]
3935
5338
  attr_accessor :total_min_node_count
@@ -3988,7 +5391,7 @@ module Google
3988
5391
  end
3989
5392
  end
3990
5393
 
3991
- # Kubernetes taint is comprised of three fields: key, value, and effect. Effect
5394
+ # Kubernetes taint is composed of three fields: key, value, and effect. Effect
3992
5395
  # can only be one of three types: NoSchedule, PreferNoSchedule or NoExecute. See
3993
5396
  # [here](https://kubernetes.io/docs/concepts/configuration/taint-and-toleration)
3994
5397
  # for more information, including usage and the valid values.
@@ -4072,12 +5475,12 @@ module Google
4072
5475
  # @return [Array<Google::Apis::ContainerV1::StatusCondition>]
4073
5476
  attr_accessor :cluster_conditions
4074
5477
 
4075
- # Detailed operation progress, if available.
5478
+ # Output only. Detailed operation progress, if available.
4076
5479
  # Corresponds to the JSON property `detail`
4077
5480
  # @return [String]
4078
5481
  attr_accessor :detail
4079
5482
 
4080
- # [Output only] The time the operation completed, in [RFC3339](https://www.ietf.
5483
+ # Output only. The time the operation completed, in [RFC3339](https://www.ietf.
4081
5484
  # org/rfc/rfc3339.txt) text format.
4082
5485
  # Corresponds to the JSON property `endTime`
4083
5486
  # @return [String]
@@ -4093,15 +5496,15 @@ module Google
4093
5496
  # @return [Google::Apis::ContainerV1::Status]
4094
5497
  attr_accessor :error
4095
5498
 
4096
- # [Output only] The name of the Google Compute Engine [zone](https://cloud.
4097
- # google.com/compute/docs/regions-zones/regions-zones#available) or [region](
4098
- # https://cloud.google.com/compute/docs/regions-zones/regions-zones#available)
4099
- # in which the cluster resides.
5499
+ # Output only. The name of the Google Compute Engine [zone](https://cloud.google.
5500
+ # com/compute/docs/regions-zones/regions-zones#available) or [region](https://
5501
+ # cloud.google.com/compute/docs/regions-zones/regions-zones#available) in which
5502
+ # the cluster resides.
4100
5503
  # Corresponds to the JSON property `location`
4101
5504
  # @return [String]
4102
5505
  attr_accessor :location
4103
5506
 
4104
- # The server-assigned ID for the operation.
5507
+ # Output only. The server-assigned ID for the operation.
4105
5508
  # Corresponds to the JSON property `name`
4106
5509
  # @return [String]
4107
5510
  attr_accessor :name
@@ -4112,7 +5515,7 @@ module Google
4112
5515
  # @return [Array<Google::Apis::ContainerV1::StatusCondition>]
4113
5516
  attr_accessor :nodepool_conditions
4114
5517
 
4115
- # The operation type.
5518
+ # Output only. The operation type.
4116
5519
  # Corresponds to the JSON property `operationType`
4117
5520
  # @return [String]
4118
5521
  attr_accessor :operation_type
@@ -4122,18 +5525,20 @@ module Google
4122
5525
  # @return [Google::Apis::ContainerV1::OperationProgress]
4123
5526
  attr_accessor :progress
4124
5527
 
4125
- # Server-defined URL for the resource.
5528
+ # Output only. Server-defined URI for the operation. Example: `https://container.
5529
+ # googleapis.com/v1alpha1/projects/123/locations/us-central1/operations/
5530
+ # operation-123`.
4126
5531
  # Corresponds to the JSON property `selfLink`
4127
5532
  # @return [String]
4128
5533
  attr_accessor :self_link
4129
5534
 
4130
- # [Output only] The time the operation started, in [RFC3339](https://www.ietf.
4131
- # org/rfc/rfc3339.txt) text format.
5535
+ # Output only. The time the operation started, in [RFC3339](https://www.ietf.org/
5536
+ # rfc/rfc3339.txt) text format.
4132
5537
  # Corresponds to the JSON property `startTime`
4133
5538
  # @return [String]
4134
5539
  attr_accessor :start_time
4135
5540
 
4136
- # The current status of the operation.
5541
+ # Output only. The current status of the operation.
4137
5542
  # Corresponds to the JSON property `status`
4138
5543
  # @return [String]
4139
5544
  attr_accessor :status
@@ -4144,14 +5549,21 @@ module Google
4144
5549
  # @return [String]
4145
5550
  attr_accessor :status_message
4146
5551
 
4147
- # Server-defined URL for the target of the operation.
5552
+ # Output only. Server-defined URI for the target of the operation. The format of
5553
+ # this is a URI to the resource being modified (such as a cluster, node pool, or
5554
+ # node). For node pool repairs, there may be multiple nodes being repaired, but
5555
+ # only one will be the target. Examples: - ## `https://container.googleapis.com/
5556
+ # v1/projects/123/locations/us-central1/clusters/my-cluster` ## `https://
5557
+ # container.googleapis.com/v1/projects/123/zones/us-central1-c/clusters/my-
5558
+ # cluster/nodePools/my-np` `https://container.googleapis.com/v1/projects/123/
5559
+ # zones/us-central1-c/clusters/my-cluster/nodePools/my-np/node/my-node`
4148
5560
  # Corresponds to the JSON property `targetLink`
4149
5561
  # @return [String]
4150
5562
  attr_accessor :target_link
4151
5563
 
4152
- # The name of the Google Compute Engine [zone](https://cloud.google.com/compute/
4153
- # docs/zones#available) in which the operation is taking place. This field is
4154
- # deprecated, use location instead.
5564
+ # Output only. The name of the Google Compute Engine [zone](https://cloud.google.
5565
+ # com/compute/docs/zones#available) in which the operation is taking place. This
5566
+ # field is deprecated, use location instead.
4155
5567
  # Corresponds to the JSON property `zone`
4156
5568
  # @return [String]
4157
5569
  attr_accessor :zone
@@ -4180,6 +5592,38 @@ module Google
4180
5592
  end
4181
5593
  end
4182
5594
 
5595
+ # OperationError records errors seen from CloudKMS keys encountered during
5596
+ # updates to DatabaseEncryption configuration.
5597
+ class OperationError
5598
+ include Google::Apis::Core::Hashable
5599
+
5600
+ # Description of the error seen during the operation.
5601
+ # Corresponds to the JSON property `errorMessage`
5602
+ # @return [String]
5603
+ attr_accessor :error_message
5604
+
5605
+ # CloudKMS key resource that had the error.
5606
+ # Corresponds to the JSON property `keyName`
5607
+ # @return [String]
5608
+ attr_accessor :key_name
5609
+
5610
+ # Time when the CloudKMS error was seen.
5611
+ # Corresponds to the JSON property `timestamp`
5612
+ # @return [String]
5613
+ attr_accessor :timestamp
5614
+
5615
+ def initialize(**args)
5616
+ update!(**args)
5617
+ end
5618
+
5619
+ # Update properties of this object
5620
+ def update!(**args)
5621
+ @error_message = args[:error_message] if args.key?(:error_message)
5622
+ @key_name = args[:key_name] if args.key?(:key_name)
5623
+ @timestamp = args[:timestamp] if args.key?(:timestamp)
5624
+ end
5625
+ end
5626
+
4183
5627
  # Information about operation (or operation stage) progress.
4184
5628
  class OperationProgress
4185
5629
  include Google::Apis::Core::Hashable
@@ -4220,10 +5664,70 @@ module Google
4220
5664
  end
4221
5665
  end
4222
5666
 
5667
+ # Configuration for the Cloud Storage Parallelstore CSI driver.
5668
+ class ParallelstoreCsiDriverConfig
5669
+ include Google::Apis::Core::Hashable
5670
+
5671
+ # Whether the Cloud Storage Parallelstore CSI driver is enabled for this cluster.
5672
+ # Corresponds to the JSON property `enabled`
5673
+ # @return [Boolean]
5674
+ attr_accessor :enabled
5675
+ alias_method :enabled?, :enabled
5676
+
5677
+ def initialize(**args)
5678
+ update!(**args)
5679
+ end
5680
+
5681
+ # Update properties of this object
5682
+ def update!(**args)
5683
+ @enabled = args[:enabled] if args.key?(:enabled)
5684
+ end
5685
+ end
5686
+
5687
+ # ParentProductConfig is the configuration of the parent product of the cluster.
5688
+ # This field is used by Google internal products that are built on top of a GKE
5689
+ # cluster and take the ownership of the cluster.
5690
+ class ParentProductConfig
5691
+ include Google::Apis::Core::Hashable
5692
+
5693
+ # Labels contain the configuration of the parent product.
5694
+ # Corresponds to the JSON property `labels`
5695
+ # @return [Hash<String,String>]
5696
+ attr_accessor :labels
5697
+
5698
+ # Name of the parent product associated with the cluster.
5699
+ # Corresponds to the JSON property `productName`
5700
+ # @return [String]
5701
+ attr_accessor :product_name
5702
+
5703
+ def initialize(**args)
5704
+ update!(**args)
5705
+ end
5706
+
5707
+ # Update properties of this object
5708
+ def update!(**args)
5709
+ @labels = args[:labels] if args.key?(:labels)
5710
+ @product_name = args[:product_name] if args.key?(:product_name)
5711
+ end
5712
+ end
5713
+
4223
5714
  # PlacementPolicy defines the placement policy used by the node pool.
4224
5715
  class PlacementPolicy
4225
5716
  include Google::Apis::Core::Hashable
4226
5717
 
5718
+ # If set, refers to the name of a custom resource policy supplied by the user.
5719
+ # The resource policy must be in the same project and region as the node pool.
5720
+ # If not found, InvalidArgument error is returned.
5721
+ # Corresponds to the JSON property `policyName`
5722
+ # @return [String]
5723
+ attr_accessor :policy_name
5724
+
5725
+ # Optional. TPU placement topology for pod slice node pool. https://cloud.google.
5726
+ # com/tpu/docs/types-topologies#tpu_topologies
5727
+ # Corresponds to the JSON property `tpuTopology`
5728
+ # @return [String]
5729
+ attr_accessor :tpu_topology
5730
+
4227
5731
  # The type of placement.
4228
5732
  # Corresponds to the JSON property `type`
4229
5733
  # @return [String]
@@ -4235,15 +5739,42 @@ module Google
4235
5739
 
4236
5740
  # Update properties of this object
4237
5741
  def update!(**args)
5742
+ @policy_name = args[:policy_name] if args.key?(:policy_name)
5743
+ @tpu_topology = args[:tpu_topology] if args.key?(:tpu_topology)
4238
5744
  @type = args[:type] if args.key?(:type)
4239
5745
  end
4240
5746
  end
4241
5747
 
5748
+ # [PRIVATE FIELD] Config for pod CIDR size overprovisioning.
5749
+ class PodCidrOverprovisionConfig
5750
+ include Google::Apis::Core::Hashable
5751
+
5752
+ # Whether Pod CIDR overprovisioning is disabled. Note: Pod CIDR overprovisioning
5753
+ # is enabled by default.
5754
+ # Corresponds to the JSON property `disable`
5755
+ # @return [Boolean]
5756
+ attr_accessor :disable
5757
+ alias_method :disable?, :disable
5758
+
5759
+ def initialize(**args)
5760
+ update!(**args)
5761
+ end
5762
+
5763
+ # Update properties of this object
5764
+ def update!(**args)
5765
+ @disable = args[:disable] if args.key?(:disable)
5766
+ end
5767
+ end
5768
+
4242
5769
  # Configuration options for private clusters.
4243
5770
  class PrivateClusterConfig
4244
5771
  include Google::Apis::Core::Hashable
4245
5772
 
4246
5773
  # Whether the master's internal IP address is used as the cluster endpoint.
5774
+ # Deprecated: Use ControlPlaneEndpointsConfig.IPEndpointsConfig.
5775
+ # enable_public_endpoint instead. Note that the value of enable_public_endpoint
5776
+ # is reversed: if enable_private_endpoint is false, then enable_public_endpoint
5777
+ # will be true.
4247
5778
  # Corresponds to the JSON property `enablePrivateEndpoint`
4248
5779
  # @return [Boolean]
4249
5780
  attr_accessor :enable_private_endpoint
@@ -4251,7 +5782,7 @@ module Google
4251
5782
 
4252
5783
  # Whether nodes have internal IP addresses only. If enabled, all nodes are given
4253
5784
  # only RFC 1918 private addresses and communicate with the master via private
4254
- # networking.
5785
+ # networking. Deprecated: Use NetworkConfig.default_enable_private_nodes instead.
4255
5786
  # Corresponds to the JSON property `enablePrivateNodes`
4256
5787
  # @return [Boolean]
4257
5788
  attr_accessor :enable_private_nodes
@@ -4276,17 +5807,23 @@ module Google
4276
5807
  attr_accessor :peering_name
4277
5808
 
4278
5809
  # Output only. The internal IP address of this cluster's master endpoint.
5810
+ # Deprecated: Use ControlPlaneEndpointsConfig.IPEndpointsConfig.private_endpoint
5811
+ # instead.
4279
5812
  # Corresponds to the JSON property `privateEndpoint`
4280
5813
  # @return [String]
4281
5814
  attr_accessor :private_endpoint
4282
5815
 
4283
5816
  # Subnet to provision the master's private endpoint during cluster creation.
4284
- # Specified in projects/*/regions/*/subnetworks/* format.
5817
+ # Specified in projects/*/regions/*/subnetworks/* format. Deprecated: Use
5818
+ # ControlPlaneEndpointsConfig.IPEndpointsConfig.private_endpoint_subnetwork
5819
+ # instead.
4285
5820
  # Corresponds to the JSON property `privateEndpointSubnetwork`
4286
5821
  # @return [String]
4287
5822
  attr_accessor :private_endpoint_subnetwork
4288
5823
 
4289
5824
  # Output only. The external IP address of this cluster's master endpoint.
5825
+ # Deprecated:Use ControlPlaneEndpointsConfig.IPEndpointsConfig.public_endpoint
5826
+ # instead.
4290
5827
  # Corresponds to the JSON property `publicEndpoint`
4291
5828
  # @return [String]
4292
5829
  attr_accessor :public_endpoint
@@ -4328,6 +5865,33 @@ module Google
4328
5865
  end
4329
5866
  end
4330
5867
 
5868
+ # PrivateRegistryAccessConfig contains access configuration for private
5869
+ # container registries.
5870
+ class PrivateRegistryAccessConfig
5871
+ include Google::Apis::Core::Hashable
5872
+
5873
+ # Private registry access configuration.
5874
+ # Corresponds to the JSON property `certificateAuthorityDomainConfig`
5875
+ # @return [Array<Google::Apis::ContainerV1::CertificateAuthorityDomainConfig>]
5876
+ attr_accessor :certificate_authority_domain_config
5877
+
5878
+ # Private registry access is enabled.
5879
+ # Corresponds to the JSON property `enabled`
5880
+ # @return [Boolean]
5881
+ attr_accessor :enabled
5882
+ alias_method :enabled?, :enabled
5883
+
5884
+ def initialize(**args)
5885
+ update!(**args)
5886
+ end
5887
+
5888
+ # Update properties of this object
5889
+ def update!(**args)
5890
+ @certificate_authority_domain_config = args[:certificate_authority_domain_config] if args.key?(:certificate_authority_domain_config)
5891
+ @enabled = args[:enabled] if args.key?(:enabled)
5892
+ end
5893
+ end
5894
+
4331
5895
  # Pub/Sub specific notification config.
4332
5896
  class PubSub
4333
5897
  include Google::Apis::Core::Hashable
@@ -4359,8 +5923,156 @@ module Google
4359
5923
  # Update properties of this object
4360
5924
  def update!(**args)
4361
5925
  @enabled = args[:enabled] if args.key?(:enabled)
4362
- @filter = args[:filter] if args.key?(:filter)
4363
- @topic = args[:topic] if args.key?(:topic)
5926
+ @filter = args[:filter] if args.key?(:filter)
5927
+ @topic = args[:topic] if args.key?(:topic)
5928
+ end
5929
+ end
5930
+
5931
+ # QueuedProvisioning defines the queued provisioning used by the node pool.
5932
+ class QueuedProvisioning
5933
+ include Google::Apis::Core::Hashable
5934
+
5935
+ # Denotes that this nodepool is QRM specific, meaning nodes can be only obtained
5936
+ # through queuing via the Cluster Autoscaler ProvisioningRequest API.
5937
+ # Corresponds to the JSON property `enabled`
5938
+ # @return [Boolean]
5939
+ attr_accessor :enabled
5940
+ alias_method :enabled?, :enabled
5941
+
5942
+ def initialize(**args)
5943
+ update!(**args)
5944
+ end
5945
+
5946
+ # Update properties of this object
5947
+ def update!(**args)
5948
+ @enabled = args[:enabled] if args.key?(:enabled)
5949
+ end
5950
+ end
5951
+
5952
+ # RBACBindingConfig allows user to restrict ClusterRoleBindings an RoleBindings
5953
+ # that can be created.
5954
+ class RbacBindingConfig
5955
+ include Google::Apis::Core::Hashable
5956
+
5957
+ # Setting this to true will allow any ClusterRoleBinding and RoleBinding with
5958
+ # subjects system:authenticated.
5959
+ # Corresponds to the JSON property `enableInsecureBindingSystemAuthenticated`
5960
+ # @return [Boolean]
5961
+ attr_accessor :enable_insecure_binding_system_authenticated
5962
+ alias_method :enable_insecure_binding_system_authenticated?, :enable_insecure_binding_system_authenticated
5963
+
5964
+ # Setting this to true will allow any ClusterRoleBinding and RoleBinding with
5965
+ # subjets system:anonymous or system:unauthenticated.
5966
+ # Corresponds to the JSON property `enableInsecureBindingSystemUnauthenticated`
5967
+ # @return [Boolean]
5968
+ attr_accessor :enable_insecure_binding_system_unauthenticated
5969
+ alias_method :enable_insecure_binding_system_unauthenticated?, :enable_insecure_binding_system_unauthenticated
5970
+
5971
+ def initialize(**args)
5972
+ update!(**args)
5973
+ end
5974
+
5975
+ # Update properties of this object
5976
+ def update!(**args)
5977
+ @enable_insecure_binding_system_authenticated = args[:enable_insecure_binding_system_authenticated] if args.key?(:enable_insecure_binding_system_authenticated)
5978
+ @enable_insecure_binding_system_unauthenticated = args[:enable_insecure_binding_system_unauthenticated] if args.key?(:enable_insecure_binding_system_unauthenticated)
5979
+ end
5980
+ end
5981
+
5982
+ # RangeInfo contains the range name and the range utilization by this cluster.
5983
+ class RangeInfo
5984
+ include Google::Apis::Core::Hashable
5985
+
5986
+ # Output only. Name of a range.
5987
+ # Corresponds to the JSON property `rangeName`
5988
+ # @return [String]
5989
+ attr_accessor :range_name
5990
+
5991
+ # Output only. The utilization of the range.
5992
+ # Corresponds to the JSON property `utilization`
5993
+ # @return [Float]
5994
+ attr_accessor :utilization
5995
+
5996
+ def initialize(**args)
5997
+ update!(**args)
5998
+ end
5999
+
6000
+ # Update properties of this object
6001
+ def update!(**args)
6002
+ @range_name = args[:range_name] if args.key?(:range_name)
6003
+ @utilization = args[:utilization] if args.key?(:utilization)
6004
+ end
6005
+ end
6006
+
6007
+ # RayClusterLoggingConfig specifies configuration of Ray logging.
6008
+ class RayClusterLoggingConfig
6009
+ include Google::Apis::Core::Hashable
6010
+
6011
+ # Enable log collection for Ray clusters.
6012
+ # Corresponds to the JSON property `enabled`
6013
+ # @return [Boolean]
6014
+ attr_accessor :enabled
6015
+ alias_method :enabled?, :enabled
6016
+
6017
+ def initialize(**args)
6018
+ update!(**args)
6019
+ end
6020
+
6021
+ # Update properties of this object
6022
+ def update!(**args)
6023
+ @enabled = args[:enabled] if args.key?(:enabled)
6024
+ end
6025
+ end
6026
+
6027
+ # RayClusterMonitoringConfig specifies monitoring configuration for Ray clusters.
6028
+ class RayClusterMonitoringConfig
6029
+ include Google::Apis::Core::Hashable
6030
+
6031
+ # Enable metrics collection for Ray clusters.
6032
+ # Corresponds to the JSON property `enabled`
6033
+ # @return [Boolean]
6034
+ attr_accessor :enabled
6035
+ alias_method :enabled?, :enabled
6036
+
6037
+ def initialize(**args)
6038
+ update!(**args)
6039
+ end
6040
+
6041
+ # Update properties of this object
6042
+ def update!(**args)
6043
+ @enabled = args[:enabled] if args.key?(:enabled)
6044
+ end
6045
+ end
6046
+
6047
+ # Configuration options for the Ray Operator add-on.
6048
+ class RayOperatorConfig
6049
+ include Google::Apis::Core::Hashable
6050
+
6051
+ # Whether the Ray Operator addon is enabled for this cluster.
6052
+ # Corresponds to the JSON property `enabled`
6053
+ # @return [Boolean]
6054
+ attr_accessor :enabled
6055
+ alias_method :enabled?, :enabled
6056
+
6057
+ # RayClusterLoggingConfig specifies configuration of Ray logging.
6058
+ # Corresponds to the JSON property `rayClusterLoggingConfig`
6059
+ # @return [Google::Apis::ContainerV1::RayClusterLoggingConfig]
6060
+ attr_accessor :ray_cluster_logging_config
6061
+
6062
+ # RayClusterMonitoringConfig specifies monitoring configuration for Ray clusters.
6063
+ # Corresponds to the JSON property `rayClusterMonitoringConfig`
6064
+ # @return [Google::Apis::ContainerV1::RayClusterMonitoringConfig]
6065
+ attr_accessor :ray_cluster_monitoring_config
6066
+
6067
+ def initialize(**args)
6068
+ update!(**args)
6069
+ end
6070
+
6071
+ # Update properties of this object
6072
+ def update!(**args)
6073
+ @enabled = args[:enabled] if args.key?(:enabled)
6074
+ @ray_cluster_logging_config = args[:ray_cluster_logging_config] if args.key?(:ray_cluster_logging_config)
6075
+ @ray_cluster_monitoring_config = args[:ray_cluster_monitoring_config] if args.key?(:ray_cluster_monitoring_config)
4364
6076
  end
4365
6077
  end
4366
6078
 
@@ -4439,6 +6151,11 @@ module Google
4439
6151
  # @return [String]
4440
6152
  attr_accessor :default_version
4441
6153
 
6154
+ # The auto upgrade target version for clusters on the channel.
6155
+ # Corresponds to the JSON property `upgradeTargetVersion`
6156
+ # @return [String]
6157
+ attr_accessor :upgrade_target_version
6158
+
4442
6159
  # List of valid versions for the channel.
4443
6160
  # Corresponds to the JSON property `validVersions`
4444
6161
  # @return [Array<String>]
@@ -4452,6 +6169,7 @@ module Google
4452
6169
  def update!(**args)
4453
6170
  @channel = args[:channel] if args.key?(:channel)
4454
6171
  @default_version = args[:default_version] if args.key?(:default_version)
6172
+ @upgrade_target_version = args[:upgrade_target_version] if args.key?(:upgrade_target_version)
4455
6173
  @valid_versions = args[:valid_versions] if args.key?(:valid_versions)
4456
6174
  end
4457
6175
  end
@@ -4543,6 +6261,31 @@ module Google
4543
6261
  end
4544
6262
  end
4545
6263
 
6264
+ # A map of resource manager tag keys and values to be attached to the nodes for
6265
+ # managing Compute Engine firewalls using Network Firewall Policies. Tags must
6266
+ # be according to specifications in https://cloud.google.com/vpc/docs/tags-
6267
+ # firewalls-overview#specifications. A maximum of 5 tag key-value pairs can be
6268
+ # specified. Existing tags will be replaced with new values.
6269
+ class ResourceManagerTags
6270
+ include Google::Apis::Core::Hashable
6271
+
6272
+ # TagKeyValue must be in one of the following formats ([KEY]=[VALUE]) 1. `
6273
+ # tagKeys/`tag_key_id`=tagValues/`tag_value_id`` 2. ``org_id`/`tag_key_name`=`
6274
+ # tag_value_name`` 3. ``project_id`/`tag_key_name`=`tag_value_name``
6275
+ # Corresponds to the JSON property `tags`
6276
+ # @return [Hash<String,String>]
6277
+ attr_accessor :tags
6278
+
6279
+ def initialize(**args)
6280
+ update!(**args)
6281
+ end
6282
+
6283
+ # Update properties of this object
6284
+ def update!(**args)
6285
+ @tags = args[:tags] if args.key?(:tags)
6286
+ end
6287
+ end
6288
+
4546
6289
  # Configuration for exporting cluster resource usages.
4547
6290
  class ResourceUsageExportConfig
4548
6291
  include Google::Apis::Core::Hashable
@@ -4655,6 +6398,66 @@ module Google
4655
6398
  end
4656
6399
  end
4657
6400
 
6401
+ # SecondaryBootDisk represents a persistent disk attached to a node with special
6402
+ # configurations based on its mode.
6403
+ class SecondaryBootDisk
6404
+ include Google::Apis::Core::Hashable
6405
+
6406
+ # Fully-qualified resource ID for an existing disk image.
6407
+ # Corresponds to the JSON property `diskImage`
6408
+ # @return [String]
6409
+ attr_accessor :disk_image
6410
+
6411
+ # Disk mode (container image cache, etc.)
6412
+ # Corresponds to the JSON property `mode`
6413
+ # @return [String]
6414
+ attr_accessor :mode
6415
+
6416
+ def initialize(**args)
6417
+ update!(**args)
6418
+ end
6419
+
6420
+ # Update properties of this object
6421
+ def update!(**args)
6422
+ @disk_image = args[:disk_image] if args.key?(:disk_image)
6423
+ @mode = args[:mode] if args.key?(:mode)
6424
+ end
6425
+ end
6426
+
6427
+ # SecondaryBootDiskUpdateStrategy is a placeholder which will be extended in the
6428
+ # future to define different options for updating secondary boot disks.
6429
+ class SecondaryBootDiskUpdateStrategy
6430
+ include Google::Apis::Core::Hashable
6431
+
6432
+ def initialize(**args)
6433
+ update!(**args)
6434
+ end
6435
+
6436
+ # Update properties of this object
6437
+ def update!(**args)
6438
+ end
6439
+ end
6440
+
6441
+ # SecretManagerConfig is config for secret manager enablement.
6442
+ class SecretManagerConfig
6443
+ include Google::Apis::Core::Hashable
6444
+
6445
+ # Enable/Disable Secret Manager Config.
6446
+ # Corresponds to the JSON property `enabled`
6447
+ # @return [Boolean]
6448
+ attr_accessor :enabled
6449
+ alias_method :enabled?, :enabled
6450
+
6451
+ def initialize(**args)
6452
+ update!(**args)
6453
+ end
6454
+
6455
+ # Update properties of this object
6456
+ def update!(**args)
6457
+ @enabled = args[:enabled] if args.key?(:enabled)
6458
+ end
6459
+ end
6460
+
4658
6461
  # SecurityBulletinEvent is a notification sent to customers when a security
4659
6462
  # bulletin has been posted that they are vulnerable to.
4660
6463
  class SecurityBulletinEvent
@@ -4738,6 +6541,32 @@ module Google
4738
6541
  end
4739
6542
  end
4740
6543
 
6544
+ # SecurityPostureConfig defines the flags needed to enable/disable features for
6545
+ # the Security Posture API.
6546
+ class SecurityPostureConfig
6547
+ include Google::Apis::Core::Hashable
6548
+
6549
+ # Sets which mode to use for Security Posture features.
6550
+ # Corresponds to the JSON property `mode`
6551
+ # @return [String]
6552
+ attr_accessor :mode
6553
+
6554
+ # Sets which mode to use for vulnerability scanning.
6555
+ # Corresponds to the JSON property `vulnerabilityMode`
6556
+ # @return [String]
6557
+ attr_accessor :vulnerability_mode
6558
+
6559
+ def initialize(**args)
6560
+ update!(**args)
6561
+ end
6562
+
6563
+ # Update properties of this object
6564
+ def update!(**args)
6565
+ @mode = args[:mode] if args.key?(:mode)
6566
+ @vulnerability_mode = args[:vulnerability_mode] if args.key?(:vulnerability_mode)
6567
+ end
6568
+ end
6569
+
4741
6570
  # Kubernetes Engine service configuration.
4742
6571
  class ServerConfig
4743
6572
  include Google::Apis::Core::Hashable
@@ -5512,6 +7341,26 @@ module Google
5512
7341
  end
5513
7342
  end
5514
7343
 
7344
+ # SoleTenantConfig contains the NodeAffinities to specify what shared sole
7345
+ # tenant node groups should back the node pool.
7346
+ class SoleTenantConfig
7347
+ include Google::Apis::Core::Hashable
7348
+
7349
+ # NodeAffinities used to match to a shared sole tenant node group.
7350
+ # Corresponds to the JSON property `nodeAffinities`
7351
+ # @return [Array<Google::Apis::ContainerV1::NodeAffinity>]
7352
+ attr_accessor :node_affinities
7353
+
7354
+ def initialize(**args)
7355
+ update!(**args)
7356
+ end
7357
+
7358
+ # Update properties of this object
7359
+ def update!(**args)
7360
+ @node_affinities = args[:node_affinities] if args.key?(:node_affinities)
7361
+ end
7362
+ end
7363
+
5515
7364
  # Standard rollout policy is the default policy for blue-green.
5516
7365
  class StandardRolloutPolicy
5517
7366
  include Google::Apis::Core::Hashable
@@ -5595,6 +7444,26 @@ module Google
5595
7444
  end
5596
7445
  end
5597
7446
 
7447
+ # Configuration for the Stateful HA add-on.
7448
+ class StatefulHaConfig
7449
+ include Google::Apis::Core::Hashable
7450
+
7451
+ # Whether the Stateful HA add-on is enabled for this cluster.
7452
+ # Corresponds to the JSON property `enabled`
7453
+ # @return [Boolean]
7454
+ attr_accessor :enabled
7455
+ alias_method :enabled?, :enabled
7456
+
7457
+ def initialize(**args)
7458
+ update!(**args)
7459
+ end
7460
+
7461
+ # Update properties of this object
7462
+ def update!(**args)
7463
+ @enabled = args[:enabled] if args.key?(:enabled)
7464
+ end
7465
+ end
7466
+
5598
7467
  # The `Status` type defines a logical error model that is suitable for different
5599
7468
  # programming environments, including REST APIs and RPC APIs. It is used by [
5600
7469
  # gRPC](https://github.com/grpc). Each `Status` message contains three pieces of
@@ -5828,6 +7697,12 @@ module Google
5828
7697
  class UpdateNodePoolRequest
5829
7698
  include Google::Apis::Core::Hashable
5830
7699
 
7700
+ # A list of hardware accelerators to be attached to each node. See https://cloud.
7701
+ # google.com/compute/docs/gpus for more information about support for GPUs.
7702
+ # Corresponds to the JSON property `accelerators`
7703
+ # @return [Array<Google::Apis::ContainerV1::AcceleratorConfig>]
7704
+ attr_accessor :accelerators
7705
+
5831
7706
  # Deprecated. The name of the cluster to upgrade. This field has been deprecated
5832
7707
  # and replaced by the name field.
5833
7708
  # Corresponds to the JSON property `clusterId`
@@ -5840,6 +7715,25 @@ module Google
5840
7715
  # @return [Google::Apis::ContainerV1::ConfidentialNodes]
5841
7716
  attr_accessor :confidential_nodes
5842
7717
 
7718
+ # ContainerdConfig contains configuration to customize containerd.
7719
+ # Corresponds to the JSON property `containerdConfig`
7720
+ # @return [Google::Apis::ContainerV1::ContainerdConfig]
7721
+ attr_accessor :containerd_config
7722
+
7723
+ # Optional. The desired disk size for nodes in the node pool specified in GB.
7724
+ # The smallest allowed disk size is 10GB. Initiates an upgrade operation that
7725
+ # migrates the nodes in the node pool to the specified disk size.
7726
+ # Corresponds to the JSON property `diskSizeGb`
7727
+ # @return [Fixnum]
7728
+ attr_accessor :disk_size_gb
7729
+
7730
+ # Optional. The desired disk type (e.g. 'pd-standard', 'pd-ssd' or 'pd-balanced')
7731
+ # for nodes in the node pool. Initiates an upgrade operation that migrates the
7732
+ # nodes in the node pool to the specified disk type.
7733
+ # Corresponds to the JSON property `diskType`
7734
+ # @return [String]
7735
+ attr_accessor :disk_type
7736
+
5843
7737
  # The current etag of the node pool. If an etag is provided and does not match
5844
7738
  # the current etag of the node pool, update will be blocked and an ABORTED error
5845
7739
  # will be returned.
@@ -5863,7 +7757,9 @@ module Google
5863
7757
  # @return [Google::Apis::ContainerV1::VirtualNic]
5864
7758
  attr_accessor :gvnic
5865
7759
 
5866
- # Required. The desired image type for the node pool.
7760
+ # Required. The desired image type for the node pool. Please see https://cloud.
7761
+ # google.com/kubernetes-engine/docs/concepts/node-images for available image
7762
+ # types.
5867
7763
  # Corresponds to the JSON property `imageType`
5868
7764
  # @return [String]
5869
7765
  attr_accessor :image_type
@@ -5898,6 +7794,20 @@ module Google
5898
7794
  # @return [Google::Apis::ContainerV1::NodePoolLoggingConfig]
5899
7795
  attr_accessor :logging_config
5900
7796
 
7797
+ # Optional. The desired [Google Compute Engine machine type](https://cloud.
7798
+ # google.com/compute/docs/machine-types) for nodes in the node pool. Initiates
7799
+ # an upgrade operation that migrates the nodes in the node pool to the specified
7800
+ # machine type.
7801
+ # Corresponds to the JSON property `machineType`
7802
+ # @return [String]
7803
+ attr_accessor :machine_type
7804
+
7805
+ # The maximum duration for the nodes to exist. If unspecified, the nodes can
7806
+ # exist indefinitely.
7807
+ # Corresponds to the JSON property `maxRunDuration`
7808
+ # @return [String]
7809
+ attr_accessor :max_run_duration
7810
+
5901
7811
  # The name (project, location, cluster, node pool) of the node pool to update.
5902
7812
  # Specified in the format `projects/*/locations/*/clusters/*/nodePools/*`.
5903
7813
  # Corresponds to the JSON property `name`
@@ -5933,12 +7843,32 @@ module Google
5933
7843
  # @return [String]
5934
7844
  attr_accessor :project_id
5935
7845
 
7846
+ # QueuedProvisioning defines the queued provisioning used by the node pool.
7847
+ # Corresponds to the JSON property `queuedProvisioning`
7848
+ # @return [Google::Apis::ContainerV1::QueuedProvisioning]
7849
+ attr_accessor :queued_provisioning
7850
+
5936
7851
  # Collection of [GCP labels](https://cloud.google.com/resource-manager/docs/
5937
7852
  # creating-managing-labels).
5938
7853
  # Corresponds to the JSON property `resourceLabels`
5939
7854
  # @return [Google::Apis::ContainerV1::ResourceLabels]
5940
7855
  attr_accessor :resource_labels
5941
7856
 
7857
+ # A map of resource manager tag keys and values to be attached to the nodes for
7858
+ # managing Compute Engine firewalls using Network Firewall Policies. Tags must
7859
+ # be according to specifications in https://cloud.google.com/vpc/docs/tags-
7860
+ # firewalls-overview#specifications. A maximum of 5 tag key-value pairs can be
7861
+ # specified. Existing tags will be replaced with new values.
7862
+ # Corresponds to the JSON property `resourceManagerTags`
7863
+ # @return [Google::Apis::ContainerV1::ResourceManagerTags]
7864
+ attr_accessor :resource_manager_tags
7865
+
7866
+ # List of Storage Pools where boot disks are provisioned. Existing Storage Pools
7867
+ # will be replaced with storage-pools.
7868
+ # Corresponds to the JSON property `storagePools`
7869
+ # @return [Array<String>]
7870
+ attr_accessor :storage_pools
7871
+
5942
7872
  # Collection of Compute Engine network tags that can be applied to a node's
5943
7873
  # underlying VM instance.
5944
7874
  # Corresponds to the JSON property `tags`
@@ -6012,8 +7942,12 @@ module Google
6012
7942
 
6013
7943
  # Update properties of this object
6014
7944
  def update!(**args)
7945
+ @accelerators = args[:accelerators] if args.key?(:accelerators)
6015
7946
  @cluster_id = args[:cluster_id] if args.key?(:cluster_id)
6016
7947
  @confidential_nodes = args[:confidential_nodes] if args.key?(:confidential_nodes)
7948
+ @containerd_config = args[:containerd_config] if args.key?(:containerd_config)
7949
+ @disk_size_gb = args[:disk_size_gb] if args.key?(:disk_size_gb)
7950
+ @disk_type = args[:disk_type] if args.key?(:disk_type)
6017
7951
  @etag = args[:etag] if args.key?(:etag)
6018
7952
  @fast_socket = args[:fast_socket] if args.key?(:fast_socket)
6019
7953
  @gcfs_config = args[:gcfs_config] if args.key?(:gcfs_config)
@@ -6024,12 +7958,17 @@ module Google
6024
7958
  @linux_node_config = args[:linux_node_config] if args.key?(:linux_node_config)
6025
7959
  @locations = args[:locations] if args.key?(:locations)
6026
7960
  @logging_config = args[:logging_config] if args.key?(:logging_config)
7961
+ @machine_type = args[:machine_type] if args.key?(:machine_type)
7962
+ @max_run_duration = args[:max_run_duration] if args.key?(:max_run_duration)
6027
7963
  @name = args[:name] if args.key?(:name)
6028
7964
  @node_network_config = args[:node_network_config] if args.key?(:node_network_config)
6029
7965
  @node_pool_id = args[:node_pool_id] if args.key?(:node_pool_id)
6030
7966
  @node_version = args[:node_version] if args.key?(:node_version)
6031
7967
  @project_id = args[:project_id] if args.key?(:project_id)
7968
+ @queued_provisioning = args[:queued_provisioning] if args.key?(:queued_provisioning)
6032
7969
  @resource_labels = args[:resource_labels] if args.key?(:resource_labels)
7970
+ @resource_manager_tags = args[:resource_manager_tags] if args.key?(:resource_manager_tags)
7971
+ @storage_pools = args[:storage_pools] if args.key?(:storage_pools)
6033
7972
  @tags = args[:tags] if args.key?(:tags)
6034
7973
  @taints = args[:taints] if args.key?(:taints)
6035
7974
  @upgrade_settings = args[:upgrade_settings] if args.key?(:upgrade_settings)
@@ -6132,6 +8071,93 @@ module Google
6132
8071
  end
6133
8072
  end
6134
8073
 
8074
+ # UpgradeInfoEvent is a notification sent to customers about the upgrade
8075
+ # information of a resource.
8076
+ class UpgradeInfoEvent
8077
+ include Google::Apis::Core::Hashable
8078
+
8079
+ # The current version before the upgrade.
8080
+ # Corresponds to the JSON property `currentVersion`
8081
+ # @return [String]
8082
+ attr_accessor :current_version
8083
+
8084
+ # A brief description of the event.
8085
+ # Corresponds to the JSON property `description`
8086
+ # @return [String]
8087
+ attr_accessor :description
8088
+
8089
+ # The time when the operation ended.
8090
+ # Corresponds to the JSON property `endTime`
8091
+ # @return [String]
8092
+ attr_accessor :end_time
8093
+
8094
+ # The type of the event.
8095
+ # Corresponds to the JSON property `eventType`
8096
+ # @return [String]
8097
+ attr_accessor :event_type
8098
+
8099
+ # The end of extended support timestamp.
8100
+ # Corresponds to the JSON property `extendedSupportEndTime`
8101
+ # @return [String]
8102
+ attr_accessor :extended_support_end_time
8103
+
8104
+ # The operation associated with this upgrade.
8105
+ # Corresponds to the JSON property `operation`
8106
+ # @return [String]
8107
+ attr_accessor :operation
8108
+
8109
+ # Optional relative path to the resource. For example in node pool upgrades, the
8110
+ # relative path of the node pool.
8111
+ # Corresponds to the JSON property `resource`
8112
+ # @return [String]
8113
+ attr_accessor :resource
8114
+
8115
+ # The resource type associated with the upgrade.
8116
+ # Corresponds to the JSON property `resourceType`
8117
+ # @return [String]
8118
+ attr_accessor :resource_type
8119
+
8120
+ # The end of standard support timestamp.
8121
+ # Corresponds to the JSON property `standardSupportEndTime`
8122
+ # @return [String]
8123
+ attr_accessor :standard_support_end_time
8124
+
8125
+ # The time when the operation was started.
8126
+ # Corresponds to the JSON property `startTime`
8127
+ # @return [String]
8128
+ attr_accessor :start_time
8129
+
8130
+ # Output only. The state of the upgrade.
8131
+ # Corresponds to the JSON property `state`
8132
+ # @return [String]
8133
+ attr_accessor :state
8134
+
8135
+ # The target version for the upgrade.
8136
+ # Corresponds to the JSON property `targetVersion`
8137
+ # @return [String]
8138
+ attr_accessor :target_version
8139
+
8140
+ def initialize(**args)
8141
+ update!(**args)
8142
+ end
8143
+
8144
+ # Update properties of this object
8145
+ def update!(**args)
8146
+ @current_version = args[:current_version] if args.key?(:current_version)
8147
+ @description = args[:description] if args.key?(:description)
8148
+ @end_time = args[:end_time] if args.key?(:end_time)
8149
+ @event_type = args[:event_type] if args.key?(:event_type)
8150
+ @extended_support_end_time = args[:extended_support_end_time] if args.key?(:extended_support_end_time)
8151
+ @operation = args[:operation] if args.key?(:operation)
8152
+ @resource = args[:resource] if args.key?(:resource)
8153
+ @resource_type = args[:resource_type] if args.key?(:resource_type)
8154
+ @standard_support_end_time = args[:standard_support_end_time] if args.key?(:standard_support_end_time)
8155
+ @start_time = args[:start_time] if args.key?(:start_time)
8156
+ @state = args[:state] if args.key?(:state)
8157
+ @target_version = args[:target_version] if args.key?(:target_version)
8158
+ end
8159
+ end
8160
+
6135
8161
  # These upgrade settings control the level of parallelism and the level of
6136
8162
  # disruption caused by an upgrade. maxUnavailable controls the number of nodes
6137
8163
  # that can be simultaneously unavailable. maxSurge controls the number of
@@ -6281,6 +8307,78 @@ module Google
6281
8307
  end
6282
8308
  end
6283
8309
 
8310
+ # UserManagedKeysConfig holds the resource address to Keys which are used for
8311
+ # signing certs and token that are used for communication within cluster.
8312
+ class UserManagedKeysConfig
8313
+ include Google::Apis::Core::Hashable
8314
+
8315
+ # The Certificate Authority Service caPool to use for the aggregation CA in this
8316
+ # cluster.
8317
+ # Corresponds to the JSON property `aggregationCa`
8318
+ # @return [String]
8319
+ attr_accessor :aggregation_ca
8320
+
8321
+ # The Certificate Authority Service caPool to use for the cluster CA in this
8322
+ # cluster.
8323
+ # Corresponds to the JSON property `clusterCa`
8324
+ # @return [String]
8325
+ attr_accessor :cluster_ca
8326
+
8327
+ # The Cloud KMS cryptoKey to use for Confidential Hyperdisk on the control plane
8328
+ # nodes.
8329
+ # Corresponds to the JSON property `controlPlaneDiskEncryptionKey`
8330
+ # @return [String]
8331
+ attr_accessor :control_plane_disk_encryption_key
8332
+
8333
+ # Resource path of the Certificate Authority Service caPool to use for the etcd
8334
+ # API CA in this cluster.
8335
+ # Corresponds to the JSON property `etcdApiCa`
8336
+ # @return [String]
8337
+ attr_accessor :etcd_api_ca
8338
+
8339
+ # Resource path of the Certificate Authority Service caPool to use for the etcd
8340
+ # peer CA in this cluster.
8341
+ # Corresponds to the JSON property `etcdPeerCa`
8342
+ # @return [String]
8343
+ attr_accessor :etcd_peer_ca
8344
+
8345
+ # Resource path of the Cloud KMS cryptoKey to use for encryption of internal
8346
+ # etcd backups.
8347
+ # Corresponds to the JSON property `gkeopsEtcdBackupEncryptionKey`
8348
+ # @return [String]
8349
+ attr_accessor :gkeops_etcd_backup_encryption_key
8350
+
8351
+ # The Cloud KMS cryptoKeyVersions to use for signing service account JWTs issued
8352
+ # by this cluster. Format: `projects/`project`/locations/`location`/keyRings/`
8353
+ # keyring`/cryptoKeys/`cryptoKey`/cryptoKeyVersions/`cryptoKeyVersion``
8354
+ # Corresponds to the JSON property `serviceAccountSigningKeys`
8355
+ # @return [Array<String>]
8356
+ attr_accessor :service_account_signing_keys
8357
+
8358
+ # The Cloud KMS cryptoKeyVersions to use for verifying service account JWTs
8359
+ # issued by this cluster. Format: `projects/`project`/locations/`location`/
8360
+ # keyRings/`keyring`/cryptoKeys/`cryptoKey`/cryptoKeyVersions/`cryptoKeyVersion``
8361
+ # Corresponds to the JSON property `serviceAccountVerificationKeys`
8362
+ # @return [Array<String>]
8363
+ attr_accessor :service_account_verification_keys
8364
+
8365
+ def initialize(**args)
8366
+ update!(**args)
8367
+ end
8368
+
8369
+ # Update properties of this object
8370
+ def update!(**args)
8371
+ @aggregation_ca = args[:aggregation_ca] if args.key?(:aggregation_ca)
8372
+ @cluster_ca = args[:cluster_ca] if args.key?(:cluster_ca)
8373
+ @control_plane_disk_encryption_key = args[:control_plane_disk_encryption_key] if args.key?(:control_plane_disk_encryption_key)
8374
+ @etcd_api_ca = args[:etcd_api_ca] if args.key?(:etcd_api_ca)
8375
+ @etcd_peer_ca = args[:etcd_peer_ca] if args.key?(:etcd_peer_ca)
8376
+ @gkeops_etcd_backup_encryption_key = args[:gkeops_etcd_backup_encryption_key] if args.key?(:gkeops_etcd_backup_encryption_key)
8377
+ @service_account_signing_keys = args[:service_account_signing_keys] if args.key?(:service_account_signing_keys)
8378
+ @service_account_verification_keys = args[:service_account_verification_keys] if args.key?(:service_account_verification_keys)
8379
+ end
8380
+ end
8381
+
6284
8382
  # VerticalPodAutoscaling contains global, per-cluster information required by
6285
8383
  # Vertical Pod Autoscaler to automatically adjust the resources of pods
6286
8384
  # controlled by it.
@@ -6383,6 +8481,33 @@ module Google
6383
8481
  @mode = args[:mode] if args.key?(:mode)
6384
8482
  end
6385
8483
  end
8484
+
8485
+ # WorkloadPolicyConfig is the configuration related to GCW workload policy
8486
+ class WorkloadPolicyConfig
8487
+ include Google::Apis::Core::Hashable
8488
+
8489
+ # If true, workloads can use NET_ADMIN capability.
8490
+ # Corresponds to the JSON property `allowNetAdmin`
8491
+ # @return [Boolean]
8492
+ attr_accessor :allow_net_admin
8493
+ alias_method :allow_net_admin?, :allow_net_admin
8494
+
8495
+ # If true, enables the GCW Auditor that audits workloads on standard clusters.
8496
+ # Corresponds to the JSON property `autopilotCompatibilityAuditingEnabled`
8497
+ # @return [Boolean]
8498
+ attr_accessor :autopilot_compatibility_auditing_enabled
8499
+ alias_method :autopilot_compatibility_auditing_enabled?, :autopilot_compatibility_auditing_enabled
8500
+
8501
+ def initialize(**args)
8502
+ update!(**args)
8503
+ end
8504
+
8505
+ # Update properties of this object
8506
+ def update!(**args)
8507
+ @allow_net_admin = args[:allow_net_admin] if args.key?(:allow_net_admin)
8508
+ @autopilot_compatibility_auditing_enabled = args[:autopilot_compatibility_auditing_enabled] if args.key?(:autopilot_compatibility_auditing_enabled)
8509
+ end
8510
+ end
6386
8511
  end
6387
8512
  end
6388
8513
  end