google-apis-container_v1 0.43.0 → 0.88.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,11 @@ 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
+
233
402
  def initialize(**args)
234
403
  update!(**args)
235
404
  end
@@ -237,6 +406,57 @@ module Google
237
406
  # Update properties of this object
238
407
  def update!(**args)
239
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 documnetation, 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)
240
460
  end
241
461
  end
242
462
 
@@ -266,11 +486,18 @@ module Google
266
486
  # @return [String]
267
487
  attr_accessor :disk_type
268
488
 
269
- # The image type to use for NAP created node.
489
+ # The image type to use for NAP created node. Please see https://cloud.google.
490
+ # com/kubernetes-engine/docs/concepts/node-images for available image types.
270
491
  # Corresponds to the JSON property `imageType`
271
492
  # @return [String]
272
493
  attr_accessor :image_type
273
494
 
495
+ # Enable or disable Kubelet read only port.
496
+ # Corresponds to the JSON property `insecureKubeletReadonlyPortEnabled`
497
+ # @return [Boolean]
498
+ attr_accessor :insecure_kubelet_readonly_port_enabled
499
+ alias_method :insecure_kubelet_readonly_port_enabled?, :insecure_kubelet_readonly_port_enabled
500
+
274
501
  # NodeManagement defines the set of node management services turned on for the
275
502
  # node pool.
276
503
  # Corresponds to the JSON property `management`
@@ -283,7 +510,7 @@ module Google
283
510
  # Haswell or minCpuPlatform: Intel Sandy Bridge. For more information, read [how
284
511
  # to specify min CPU platform](https://cloud.google.com/compute/docs/instances/
285
512
  # 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
513
+ # be specified using `cloud.google.com/requested-min-cpu-platform` label
287
514
  # selector on the pod. To unset the min cpu platform field pass "automatic" as
288
515
  # field value.
289
516
  # Corresponds to the JSON property `minCpuPlatform`
@@ -350,6 +577,7 @@ module Google
350
577
  @disk_size_gb = args[:disk_size_gb] if args.key?(:disk_size_gb)
351
578
  @disk_type = args[:disk_type] if args.key?(:disk_type)
352
579
  @image_type = args[:image_type] if args.key?(:image_type)
580
+ @insecure_kubelet_readonly_port_enabled = args[:insecure_kubelet_readonly_port_enabled] if args.key?(:insecure_kubelet_readonly_port_enabled)
353
581
  @management = args[:management] if args.key?(:management)
354
582
  @min_cpu_platform = args[:min_cpu_platform] if args.key?(:min_cpu_platform)
355
583
  @oauth_scopes = args[:oauth_scopes] if args.key?(:oauth_scopes)
@@ -359,6 +587,36 @@ module Google
359
587
  end
360
588
  end
361
589
 
590
+ # Best effort provisioning.
591
+ class BestEffortProvisioning
592
+ include Google::Apis::Core::Hashable
593
+
594
+ # When this is enabled, cluster/node pool creations will ignore non-fatal errors
595
+ # like stockout to best provision as many nodes as possible right now and
596
+ # eventually bring up all target number of nodes
597
+ # Corresponds to the JSON property `enabled`
598
+ # @return [Boolean]
599
+ attr_accessor :enabled
600
+ alias_method :enabled?, :enabled
601
+
602
+ # Minimum number of nodes to be provisioned to be considered as succeeded, and
603
+ # the rest of nodes will be provisioned gradually and eventually when stockout
604
+ # issue has been resolved.
605
+ # Corresponds to the JSON property `minProvisionNodes`
606
+ # @return [Fixnum]
607
+ attr_accessor :min_provision_nodes
608
+
609
+ def initialize(**args)
610
+ update!(**args)
611
+ end
612
+
613
+ # Update properties of this object
614
+ def update!(**args)
615
+ @enabled = args[:enabled] if args.key?(:enabled)
616
+ @min_provision_nodes = args[:min_provision_nodes] if args.key?(:min_provision_nodes)
617
+ end
618
+ end
619
+
362
620
  # Parameters for using BigQuery as the destination of resource usage export.
363
621
  class BigQueryDestination
364
622
  include Google::Apis::Core::Hashable
@@ -522,6 +780,59 @@ module Google
522
780
  end
523
781
  end
524
782
 
783
+ # CertificateAuthorityDomainConfig configures one or more fully qualified domain
784
+ # names (FQDN) to a specific certificate.
785
+ class CertificateAuthorityDomainConfig
786
+ include Google::Apis::Core::Hashable
787
+
788
+ # List of fully qualified domain names (FQDN). Specifying port is supported.
789
+ # Wilcards are NOT supported. Examples: - my.customdomain.com - 10.0.1.2:5000
790
+ # Corresponds to the JSON property `fqdns`
791
+ # @return [Array<String>]
792
+ attr_accessor :fqdns
793
+
794
+ # GCPSecretManagerCertificateConfig configures a secret from [Google Secret
795
+ # Manager](https://cloud.google.com/secret-manager).
796
+ # Corresponds to the JSON property `gcpSecretManagerCertificateConfig`
797
+ # @return [Google::Apis::ContainerV1::GcpSecretManagerCertificateConfig]
798
+ attr_accessor :gcp_secret_manager_certificate_config
799
+
800
+ def initialize(**args)
801
+ update!(**args)
802
+ end
803
+
804
+ # Update properties of this object
805
+ def update!(**args)
806
+ @fqdns = args[:fqdns] if args.key?(:fqdns)
807
+ @gcp_secret_manager_certificate_config = args[:gcp_secret_manager_certificate_config] if args.key?(:gcp_secret_manager_certificate_config)
808
+ end
809
+ end
810
+
811
+ # CheckAutopilotCompatibilityResponse has a list of compatibility issues.
812
+ class CheckAutopilotCompatibilityResponse
813
+ include Google::Apis::Core::Hashable
814
+
815
+ # The list of issues for the given operation.
816
+ # Corresponds to the JSON property `issues`
817
+ # @return [Array<Google::Apis::ContainerV1::AutopilotCompatibilityIssue>]
818
+ attr_accessor :issues
819
+
820
+ # The summary of the autopilot compatibility response.
821
+ # Corresponds to the JSON property `summary`
822
+ # @return [String]
823
+ attr_accessor :summary
824
+
825
+ def initialize(**args)
826
+ update!(**args)
827
+ end
828
+
829
+ # Update properties of this object
830
+ def update!(**args)
831
+ @issues = args[:issues] if args.key?(:issues)
832
+ @summary = args[:summary] if args.key?(:summary)
833
+ end
834
+ end
835
+
525
836
  # CidrBlock contains an optional name and one CIDR block.
526
837
  class CidrBlock
527
838
  include Google::Apis::Core::Hashable
@@ -633,6 +944,12 @@ module Google
633
944
  # @return [String]
634
945
  attr_accessor :cluster_ipv4_cidr
635
946
 
947
+ # CompliancePostureConfig defines the settings needed to enable/disable features
948
+ # for the Compliance Posture.
949
+ # Corresponds to the JSON property `compliancePostureConfig`
950
+ # @return [Google::Apis::ContainerV1::CompliancePostureConfig]
951
+ attr_accessor :compliance_posture_config
952
+
636
953
  # Which conditions caused the current cluster state.
637
954
  # Corresponds to the JSON property `conditions`
638
955
  # @return [Array<Google::Apis::ContainerV1::StatusCondition>]
@@ -644,29 +961,34 @@ module Google
644
961
  # @return [Google::Apis::ContainerV1::ConfidentialNodes]
645
962
  attr_accessor :confidential_nodes
646
963
 
964
+ # Configuration for all of the cluster's control plane endpoints.
965
+ # Corresponds to the JSON property `controlPlaneEndpointsConfig`
966
+ # @return [Google::Apis::ContainerV1::ControlPlaneEndpointsConfig]
967
+ attr_accessor :control_plane_endpoints_config
968
+
647
969
  # Configuration for fine-grained cost management feature.
648
970
  # Corresponds to the JSON property `costManagementConfig`
649
971
  # @return [Google::Apis::ContainerV1::CostManagementConfig]
650
972
  attr_accessor :cost_management_config
651
973
 
652
- # [Output only] The time the cluster was created, in [RFC3339](https://www.ietf.
974
+ # Output only. The time the cluster was created, in [RFC3339](https://www.ietf.
653
975
  # org/rfc/rfc3339.txt) text format.
654
976
  # Corresponds to the JSON property `createTime`
655
977
  # @return [String]
656
978
  attr_accessor :create_time
657
979
 
658
- # [Output only] The current software version of the master endpoint.
980
+ # Output only. The current software version of the master endpoint.
659
981
  # Corresponds to the JSON property `currentMasterVersion`
660
982
  # @return [String]
661
983
  attr_accessor :current_master_version
662
984
 
663
- # [Output only] The number of nodes currently in the cluster. Deprecated. Call
985
+ # Output only. The number of nodes currently in the cluster. Deprecated. Call
664
986
  # Kubernetes API directly to retrieve node information.
665
987
  # Corresponds to the JSON property `currentNodeCount`
666
988
  # @return [Fixnum]
667
989
  attr_accessor :current_node_count
668
990
 
669
- # [Output only] Deprecated, use [NodePools.version](https://cloud.google.com/
991
+ # Output only. Deprecated, use [NodePools.version](https://cloud.google.com/
670
992
  # kubernetes-engine/docs/reference/rest/v1/projects.locations.clusters.nodePools)
671
993
  # instead. The current version of the node software components. If they are
672
994
  # currently at multiple versions because they're in the process of being
@@ -690,6 +1012,11 @@ module Google
690
1012
  # @return [String]
691
1013
  attr_accessor :description
692
1014
 
1015
+ # K8sBetaAPIConfig , configuration for beta APIs
1016
+ # Corresponds to the JSON property `enableK8sBetaApis`
1017
+ # @return [Google::Apis::ContainerV1::K8sBetaApiConfig]
1018
+ attr_accessor :enable_k8s_beta_apis
1019
+
693
1020
  # Kubernetes alpha features are enabled on this cluster. This includes alpha API
694
1021
  # groups (e.g. v1alpha1) and features that may not be production ready in the
695
1022
  # kubernetes version of the master and nodes. The cluster has no SLA for uptime
@@ -706,7 +1033,7 @@ module Google
706
1033
  attr_accessor :enable_tpu
707
1034
  alias_method :enable_tpu?, :enable_tpu
708
1035
 
709
- # [Output only] The IP address of this cluster's master endpoint. The endpoint
1036
+ # Output only. The IP address of this cluster's master endpoint. The endpoint
710
1037
  # can be accessed from the internet at `https://username:password@endpoint/`.
711
1038
  # See the `masterAuth` property of this resource for username and password
712
1039
  # information.
@@ -714,6 +1041,11 @@ module Google
714
1041
  # @return [String]
715
1042
  attr_accessor :endpoint
716
1043
 
1044
+ # EnterpriseConfig is the cluster enterprise configuration.
1045
+ # Corresponds to the JSON property `enterpriseConfig`
1046
+ # @return [Google::Apis::ContainerV1::EnterpriseConfig]
1047
+ attr_accessor :enterprise_config
1048
+
717
1049
  # This checksum is computed by the server based on the value of cluster fields,
718
1050
  # and may be sent on update requests to ensure the client has an up-to-date
719
1051
  # value before proceeding.
@@ -721,12 +1053,17 @@ module Google
721
1053
  # @return [String]
722
1054
  attr_accessor :etag
723
1055
 
724
- # [Output only] The time the cluster will be automatically deleted in [RFC3339](
1056
+ # Output only. The time the cluster will be automatically deleted in [RFC3339](
725
1057
  # https://www.ietf.org/rfc/rfc3339.txt) text format.
726
1058
  # Corresponds to the JSON property `expireTime`
727
1059
  # @return [String]
728
1060
  attr_accessor :expire_time
729
1061
 
1062
+ # Fleet is the fleet configuration for the cluster.
1063
+ # Corresponds to the JSON property `fleet`
1064
+ # @return [Google::Apis::ContainerV1::Fleet]
1065
+ attr_accessor :fleet
1066
+
730
1067
  # Output only. Unique id for the cluster.
731
1068
  # Corresponds to the JSON property `id`
732
1069
  # @return [String]
@@ -763,7 +1100,7 @@ module Google
763
1100
  # @return [Fixnum]
764
1101
  attr_accessor :initial_node_count
765
1102
 
766
- # Deprecated. Use node_pools.instance_group_urls.
1103
+ # Output only. Deprecated. Use node_pools.instance_group_urls.
767
1104
  # Corresponds to the JSON property `instanceGroupUrls`
768
1105
  # @return [Array<String>]
769
1106
  attr_accessor :instance_group_urls
@@ -783,10 +1120,10 @@ module Google
783
1120
  # @return [Google::Apis::ContainerV1::LegacyAbac]
784
1121
  attr_accessor :legacy_abac
785
1122
 
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.
1123
+ # Output only. The name of the Google Compute Engine [zone](https://cloud.google.
1124
+ # com/compute/docs/regions-zones/regions-zones#available) or [region](https://
1125
+ # cloud.google.com/compute/docs/regions-zones/regions-zones#available) in which
1126
+ # the cluster resides.
790
1127
  # Corresponds to the JSON property `location`
791
1128
  # @return [String]
792
1129
  attr_accessor :location
@@ -893,9 +1230,9 @@ module Google
893
1230
  # @return [Google::Apis::ContainerV1::NodeConfig]
894
1231
  attr_accessor :node_config
895
1232
 
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.
1233
+ # Output only. The size of the address space on each node for hosting containers.
1234
+ # This is provisioned from within the `container_ipv4_cidr` range. This field
1235
+ # will only be set when cluster is in route-based network mode.
899
1236
  # Corresponds to the JSON property `nodeIpv4CidrSize`
900
1237
  # @return [Fixnum]
901
1238
  attr_accessor :node_ipv4_cidr_size
@@ -922,11 +1259,24 @@ module Google
922
1259
  # @return [Google::Apis::ContainerV1::NotificationConfig]
923
1260
  attr_accessor :notification_config
924
1261
 
1262
+ # ParentProductConfig is the configuration of the parent product of the cluster.
1263
+ # This field is used by Google internal products that are built on top of a GKE
1264
+ # cluster and take the ownership of the cluster.
1265
+ # Corresponds to the JSON property `parentProductConfig`
1266
+ # @return [Google::Apis::ContainerV1::ParentProductConfig]
1267
+ attr_accessor :parent_product_config
1268
+
925
1269
  # Configuration options for private clusters.
926
1270
  # Corresponds to the JSON property `privateClusterConfig`
927
1271
  # @return [Google::Apis::ContainerV1::PrivateClusterConfig]
928
1272
  attr_accessor :private_cluster_config
929
1273
 
1274
+ # RBACBindingConfig allows user to restrict ClusterRoleBindings an RoleBindings
1275
+ # that can be created.
1276
+ # Corresponds to the JSON property `rbacBindingConfig`
1277
+ # @return [Google::Apis::ContainerV1::RbacBindingConfig]
1278
+ attr_accessor :rbac_binding_config
1279
+
930
1280
  # ReleaseChannel indicates which release channel a cluster is subscribed to.
931
1281
  # Release channels are arranged in order of risk. When a cluster is subscribed
932
1282
  # to a release channel, Google maintains both the master version and the node
@@ -946,12 +1296,35 @@ module Google
946
1296
  # @return [Google::Apis::ContainerV1::ResourceUsageExportConfig]
947
1297
  attr_accessor :resource_usage_export_config
948
1298
 
949
- # [Output only] Server-defined URL for the resource.
1299
+ # Output only. Reserved for future use.
1300
+ # Corresponds to the JSON property `satisfiesPzi`
1301
+ # @return [Boolean]
1302
+ attr_accessor :satisfies_pzi
1303
+ alias_method :satisfies_pzi?, :satisfies_pzi
1304
+
1305
+ # Output only. Reserved for future use.
1306
+ # Corresponds to the JSON property `satisfiesPzs`
1307
+ # @return [Boolean]
1308
+ attr_accessor :satisfies_pzs
1309
+ alias_method :satisfies_pzs?, :satisfies_pzs
1310
+
1311
+ # SecretManagerConfig is config for secret manager enablement.
1312
+ # Corresponds to the JSON property `secretManagerConfig`
1313
+ # @return [Google::Apis::ContainerV1::SecretManagerConfig]
1314
+ attr_accessor :secret_manager_config
1315
+
1316
+ # SecurityPostureConfig defines the flags needed to enable/disable features for
1317
+ # the Security Posture API.
1318
+ # Corresponds to the JSON property `securityPostureConfig`
1319
+ # @return [Google::Apis::ContainerV1::SecurityPostureConfig]
1320
+ attr_accessor :security_posture_config
1321
+
1322
+ # Output only. Server-defined URL for the resource.
950
1323
  # Corresponds to the JSON property `selfLink`
951
1324
  # @return [String]
952
1325
  attr_accessor :self_link
953
1326
 
954
- # [Output only] The IP address range of the Kubernetes services in this cluster,
1327
+ # Output only. The IP address range of the Kubernetes services in this cluster,
955
1328
  # in [CIDR](http://en.wikipedia.org/wiki/Classless_Inter-Domain_Routing)
956
1329
  # notation (e.g. `1.2.3.4/29`). Service addresses are typically put in the last `
957
1330
  # /16` from the container CIDR.
@@ -964,12 +1337,12 @@ module Google
964
1337
  # @return [Google::Apis::ContainerV1::ShieldedNodes]
965
1338
  attr_accessor :shielded_nodes
966
1339
 
967
- # [Output only] The current status of this cluster.
1340
+ # Output only. The current status of this cluster.
968
1341
  # Corresponds to the JSON property `status`
969
1342
  # @return [String]
970
1343
  attr_accessor :status
971
1344
 
972
- # [Output only] Deprecated. Use conditions instead. Additional information about
1345
+ # Output only. Deprecated. Use conditions instead. Additional information about
973
1346
  # the current status of this cluster, if available.
974
1347
  # Corresponds to the JSON property `statusMessage`
975
1348
  # @return [String]
@@ -981,13 +1354,19 @@ module Google
981
1354
  # @return [String]
982
1355
  attr_accessor :subnetwork
983
1356
 
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`).
1357
+ # Output only. The IP address range of the Cloud TPUs in this cluster, in [CIDR](
1358
+ # http://en.wikipedia.org/wiki/Classless_Inter-Domain_Routing) notation (e.g. `1.
1359
+ # 2.3.4/29`).
987
1360
  # Corresponds to the JSON property `tpuIpv4CidrBlock`
988
1361
  # @return [String]
989
1362
  attr_accessor :tpu_ipv4_cidr_block
990
1363
 
1364
+ # UserManagedKeysConfig holds the resource address to Keys which are used for
1365
+ # signing certs and token that are used for communication within cluster.
1366
+ # Corresponds to the JSON property `userManagedKeysConfig`
1367
+ # @return [Google::Apis::ContainerV1::UserManagedKeysConfig]
1368
+ attr_accessor :user_managed_keys_config
1369
+
991
1370
  # VerticalPodAutoscaling contains global, per-cluster information required by
992
1371
  # Vertical Pod Autoscaler to automatically adjust the resources of pods
993
1372
  # controlled by it.
@@ -1000,9 +1379,9 @@ module Google
1000
1379
  # @return [Google::Apis::ContainerV1::WorkloadIdentityConfig]
1001
1380
  attr_accessor :workload_identity_config
1002
1381
 
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.
1382
+ # Output only. The name of the Google Compute Engine [zone](https://cloud.google.
1383
+ # com/compute/docs/zones#available) in which the cluster resides. This field is
1384
+ # deprecated, use location instead.
1006
1385
  # Corresponds to the JSON property `zone`
1007
1386
  # @return [String]
1008
1387
  attr_accessor :zone
@@ -1019,8 +1398,10 @@ module Google
1019
1398
  @autoscaling = args[:autoscaling] if args.key?(:autoscaling)
1020
1399
  @binary_authorization = args[:binary_authorization] if args.key?(:binary_authorization)
1021
1400
  @cluster_ipv4_cidr = args[:cluster_ipv4_cidr] if args.key?(:cluster_ipv4_cidr)
1401
+ @compliance_posture_config = args[:compliance_posture_config] if args.key?(:compliance_posture_config)
1022
1402
  @conditions = args[:conditions] if args.key?(:conditions)
1023
1403
  @confidential_nodes = args[:confidential_nodes] if args.key?(:confidential_nodes)
1404
+ @control_plane_endpoints_config = args[:control_plane_endpoints_config] if args.key?(:control_plane_endpoints_config)
1024
1405
  @cost_management_config = args[:cost_management_config] if args.key?(:cost_management_config)
1025
1406
  @create_time = args[:create_time] if args.key?(:create_time)
1026
1407
  @current_master_version = args[:current_master_version] if args.key?(:current_master_version)
@@ -1029,11 +1410,14 @@ module Google
1029
1410
  @database_encryption = args[:database_encryption] if args.key?(:database_encryption)
1030
1411
  @default_max_pods_constraint = args[:default_max_pods_constraint] if args.key?(:default_max_pods_constraint)
1031
1412
  @description = args[:description] if args.key?(:description)
1413
+ @enable_k8s_beta_apis = args[:enable_k8s_beta_apis] if args.key?(:enable_k8s_beta_apis)
1032
1414
  @enable_kubernetes_alpha = args[:enable_kubernetes_alpha] if args.key?(:enable_kubernetes_alpha)
1033
1415
  @enable_tpu = args[:enable_tpu] if args.key?(:enable_tpu)
1034
1416
  @endpoint = args[:endpoint] if args.key?(:endpoint)
1417
+ @enterprise_config = args[:enterprise_config] if args.key?(:enterprise_config)
1035
1418
  @etag = args[:etag] if args.key?(:etag)
1036
1419
  @expire_time = args[:expire_time] if args.key?(:expire_time)
1420
+ @fleet = args[:fleet] if args.key?(:fleet)
1037
1421
  @id = args[:id] if args.key?(:id)
1038
1422
  @identity_service_config = args[:identity_service_config] if args.key?(:identity_service_config)
1039
1423
  @initial_cluster_version = args[:initial_cluster_version] if args.key?(:initial_cluster_version)
@@ -1062,10 +1446,16 @@ module Google
1062
1446
  @node_pool_defaults = args[:node_pool_defaults] if args.key?(:node_pool_defaults)
1063
1447
  @node_pools = args[:node_pools] if args.key?(:node_pools)
1064
1448
  @notification_config = args[:notification_config] if args.key?(:notification_config)
1449
+ @parent_product_config = args[:parent_product_config] if args.key?(:parent_product_config)
1065
1450
  @private_cluster_config = args[:private_cluster_config] if args.key?(:private_cluster_config)
1451
+ @rbac_binding_config = args[:rbac_binding_config] if args.key?(:rbac_binding_config)
1066
1452
  @release_channel = args[:release_channel] if args.key?(:release_channel)
1067
1453
  @resource_labels = args[:resource_labels] if args.key?(:resource_labels)
1068
1454
  @resource_usage_export_config = args[:resource_usage_export_config] if args.key?(:resource_usage_export_config)
1455
+ @satisfies_pzi = args[:satisfies_pzi] if args.key?(:satisfies_pzi)
1456
+ @satisfies_pzs = args[:satisfies_pzs] if args.key?(:satisfies_pzs)
1457
+ @secret_manager_config = args[:secret_manager_config] if args.key?(:secret_manager_config)
1458
+ @security_posture_config = args[:security_posture_config] if args.key?(:security_posture_config)
1069
1459
  @self_link = args[:self_link] if args.key?(:self_link)
1070
1460
  @services_ipv4_cidr = args[:services_ipv4_cidr] if args.key?(:services_ipv4_cidr)
1071
1461
  @shielded_nodes = args[:shielded_nodes] if args.key?(:shielded_nodes)
@@ -1073,6 +1463,7 @@ module Google
1073
1463
  @status_message = args[:status_message] if args.key?(:status_message)
1074
1464
  @subnetwork = args[:subnetwork] if args.key?(:subnetwork)
1075
1465
  @tpu_ipv4_cidr_block = args[:tpu_ipv4_cidr_block] if args.key?(:tpu_ipv4_cidr_block)
1466
+ @user_managed_keys_config = args[:user_managed_keys_config] if args.key?(:user_managed_keys_config)
1076
1467
  @vertical_pod_autoscaling = args[:vertical_pod_autoscaling] if args.key?(:vertical_pod_autoscaling)
1077
1468
  @workload_identity_config = args[:workload_identity_config] if args.key?(:workload_identity_config)
1078
1469
  @zone = args[:zone] if args.key?(:zone)
@@ -1128,11 +1519,36 @@ module Google
1128
1519
  end
1129
1520
  end
1130
1521
 
1522
+ # Configuration of network bandwidth tiers
1523
+ class ClusterNetworkPerformanceConfig
1524
+ include Google::Apis::Core::Hashable
1525
+
1526
+ # Specifies the total network bandwidth tier for NodePools in the cluster.
1527
+ # Corresponds to the JSON property `totalEgressBandwidthTier`
1528
+ # @return [String]
1529
+ attr_accessor :total_egress_bandwidth_tier
1530
+
1531
+ def initialize(**args)
1532
+ update!(**args)
1533
+ end
1534
+
1535
+ # Update properties of this object
1536
+ def update!(**args)
1537
+ @total_egress_bandwidth_tier = args[:total_egress_bandwidth_tier] if args.key?(:total_egress_bandwidth_tier)
1538
+ end
1539
+ end
1540
+
1131
1541
  # ClusterUpdate describes an update to the cluster. Exactly one update can be
1132
1542
  # applied to a cluster with each request, so at most one field can be provided.
1133
1543
  class ClusterUpdate
1134
1544
  include Google::Apis::Core::Hashable
1135
1545
 
1546
+ # AdditionalPodRangesConfig is the configuration for additional pod secondary
1547
+ # ranges supporting the ClusterUpdate message.
1548
+ # Corresponds to the JSON property `additionalPodRangesConfig`
1549
+ # @return [Google::Apis::ContainerV1::AdditionalPodRangesConfig]
1550
+ attr_accessor :additional_pod_ranges_config
1551
+
1136
1552
  # Configuration for the addons that can be automatically spun up in the cluster,
1137
1553
  # enabling additional functionality.
1138
1554
  # Corresponds to the JSON property `desiredAddonsConfig`
@@ -1144,6 +1560,11 @@ module Google
1144
1560
  # @return [Google::Apis::ContainerV1::AuthenticatorGroupsConfig]
1145
1561
  attr_accessor :desired_authenticator_groups_config
1146
1562
 
1563
+ # WorkloadPolicyConfig is the configuration related to GCW workload policy
1564
+ # Corresponds to the JSON property `desiredAutopilotWorkloadPolicyConfig`
1565
+ # @return [Google::Apis::ContainerV1::WorkloadPolicyConfig]
1566
+ attr_accessor :desired_autopilot_workload_policy_config
1567
+
1147
1568
  # Configuration for Binary Authorization.
1148
1569
  # Corresponds to the JSON property `desiredBinaryAuthorization`
1149
1570
  # @return [Google::Apis::ContainerV1::BinaryAuthorization]
@@ -1156,6 +1577,22 @@ module Google
1156
1577
  # @return [Google::Apis::ContainerV1::ClusterAutoscaling]
1157
1578
  attr_accessor :desired_cluster_autoscaling
1158
1579
 
1580
+ # CompliancePostureConfig defines the settings needed to enable/disable features
1581
+ # for the Compliance Posture.
1582
+ # Corresponds to the JSON property `desiredCompliancePostureConfig`
1583
+ # @return [Google::Apis::ContainerV1::CompliancePostureConfig]
1584
+ attr_accessor :desired_compliance_posture_config
1585
+
1586
+ # ContainerdConfig contains configuration to customize containerd.
1587
+ # Corresponds to the JSON property `desiredContainerdConfig`
1588
+ # @return [Google::Apis::ContainerV1::ContainerdConfig]
1589
+ attr_accessor :desired_containerd_config
1590
+
1591
+ # Configuration for all of the cluster's control plane endpoints.
1592
+ # Corresponds to the JSON property `desiredControlPlaneEndpointsConfig`
1593
+ # @return [Google::Apis::ContainerV1::ControlPlaneEndpointsConfig]
1594
+ attr_accessor :desired_control_plane_endpoints_config
1595
+
1159
1596
  # Configuration for fine-grained cost management feature.
1160
1597
  # Corresponds to the JSON property `desiredCostManagementConfig`
1161
1598
  # @return [Google::Apis::ContainerV1::CostManagementConfig]
@@ -1171,23 +1608,68 @@ module Google
1171
1608
  # @return [String]
1172
1609
  attr_accessor :desired_datapath_provider
1173
1610
 
1611
+ # Override the default setting of whether future created nodes have private IP
1612
+ # addresses only, namely NetworkConfig.default_enable_private_nodes
1613
+ # Corresponds to the JSON property `desiredDefaultEnablePrivateNodes`
1614
+ # @return [Boolean]
1615
+ attr_accessor :desired_default_enable_private_nodes
1616
+ alias_method :desired_default_enable_private_nodes?, :desired_default_enable_private_nodes
1617
+
1174
1618
  # DefaultSnatStatus contains the desired state of whether default sNAT should be
1175
1619
  # disabled on the cluster.
1176
1620
  # Corresponds to the JSON property `desiredDefaultSnatStatus`
1177
1621
  # @return [Google::Apis::ContainerV1::DefaultSnatStatus]
1178
1622
  attr_accessor :desired_default_snat_status
1179
1623
 
1624
+ # Enable/Disable L4 LB VPC firewall reconciliation for the cluster.
1625
+ # Corresponds to the JSON property `desiredDisableL4LbFirewallReconciliation`
1626
+ # @return [Boolean]
1627
+ attr_accessor :desired_disable_l4_lb_firewall_reconciliation
1628
+ alias_method :desired_disable_l4_lb_firewall_reconciliation?, :desired_disable_l4_lb_firewall_reconciliation
1629
+
1180
1630
  # DNSConfig contains the desired set of options for configuring clusterDNS.
1181
1631
  # Corresponds to the JSON property `desiredDnsConfig`
1182
1632
  # @return [Google::Apis::ContainerV1::DnsConfig]
1183
1633
  attr_accessor :desired_dns_config
1184
1634
 
1185
- # Enable/Disable private endpoint for the cluster's master.
1635
+ # Enable/Disable Cilium Clusterwide Network Policy for the cluster.
1636
+ # Corresponds to the JSON property `desiredEnableCiliumClusterwideNetworkPolicy`
1637
+ # @return [Boolean]
1638
+ attr_accessor :desired_enable_cilium_clusterwide_network_policy
1639
+ alias_method :desired_enable_cilium_clusterwide_network_policy?, :desired_enable_cilium_clusterwide_network_policy
1640
+
1641
+ # Enable/Disable FQDN Network Policy for the cluster.
1642
+ # Corresponds to the JSON property `desiredEnableFqdnNetworkPolicy`
1643
+ # @return [Boolean]
1644
+ attr_accessor :desired_enable_fqdn_network_policy
1645
+ alias_method :desired_enable_fqdn_network_policy?, :desired_enable_fqdn_network_policy
1646
+
1647
+ # Enable/Disable Multi-Networking for the cluster
1648
+ # Corresponds to the JSON property `desiredEnableMultiNetworking`
1649
+ # @return [Boolean]
1650
+ attr_accessor :desired_enable_multi_networking
1651
+ alias_method :desired_enable_multi_networking?, :desired_enable_multi_networking
1652
+
1653
+ # Enable/Disable private endpoint for the cluster's master. Deprecated: Use
1654
+ # desired_control_plane_endpoints_config.ip_endpoints_config.
1655
+ # enable_public_endpoint instead. Note that the value of enable_public_endpoint
1656
+ # is reversed: if enable_private_endpoint is false, then enable_public_endpoint
1657
+ # will be true.
1186
1658
  # Corresponds to the JSON property `desiredEnablePrivateEndpoint`
1187
1659
  # @return [Boolean]
1188
1660
  attr_accessor :desired_enable_private_endpoint
1189
1661
  alias_method :desired_enable_private_endpoint?, :desired_enable_private_endpoint
1190
1662
 
1663
+ # DesiredEnterpriseConfig is a wrapper used for updating enterprise_config.
1664
+ # Corresponds to the JSON property `desiredEnterpriseConfig`
1665
+ # @return [Google::Apis::ContainerV1::DesiredEnterpriseConfig]
1666
+ attr_accessor :desired_enterprise_config
1667
+
1668
+ # Fleet is the fleet configuration for the cluster.
1669
+ # Corresponds to the JSON property `desiredFleet`
1670
+ # @return [Google::Apis::ContainerV1::Fleet]
1671
+ attr_accessor :desired_fleet
1672
+
1191
1673
  # GatewayAPIConfig contains the desired config of Gateway API on this cluster.
1192
1674
  # Corresponds to the JSON property `desiredGatewayApiConfig`
1193
1675
  # @return [Google::Apis::ContainerV1::GatewayApiConfig]
@@ -1211,12 +1693,22 @@ module Google
1211
1693
  # @return [String]
1212
1694
  attr_accessor :desired_image_type
1213
1695
 
1696
+ # Specify the details of in-transit encryption.
1697
+ # Corresponds to the JSON property `desiredInTransitEncryptionConfig`
1698
+ # @return [String]
1699
+ attr_accessor :desired_in_transit_encryption_config
1700
+
1214
1701
  # IntraNodeVisibilityConfig contains the desired config of the intra-node
1215
1702
  # visibility on this cluster.
1216
1703
  # Corresponds to the JSON property `desiredIntraNodeVisibilityConfig`
1217
1704
  # @return [Google::Apis::ContainerV1::IntraNodeVisibilityConfig]
1218
1705
  attr_accessor :desired_intra_node_visibility_config
1219
1706
 
1707
+ # K8sBetaAPIConfig , configuration for beta APIs
1708
+ # Corresponds to the JSON property `desiredK8sBetaApis`
1709
+ # @return [Google::Apis::ContainerV1::K8sBetaApiConfig]
1710
+ attr_accessor :desired_k8s_beta_apis
1711
+
1220
1712
  # ILBSubsettingConfig contains the desired config of L4 Internal LoadBalancer
1221
1713
  # subsetting on this cluster.
1222
1714
  # Corresponds to the JSON property `desiredL4ilbSubsettingConfig`
@@ -1288,12 +1780,41 @@ module Google
1288
1780
  # @return [String]
1289
1781
  attr_accessor :desired_monitoring_service
1290
1782
 
1783
+ # Configuration of network bandwidth tiers
1784
+ # Corresponds to the JSON property `desiredNetworkPerformanceConfig`
1785
+ # @return [Google::Apis::ContainerV1::ClusterNetworkPerformanceConfig]
1786
+ attr_accessor :desired_network_performance_config
1787
+
1788
+ # Node kubelet configs.
1789
+ # Corresponds to the JSON property `desiredNodeKubeletConfig`
1790
+ # @return [Google::Apis::ContainerV1::NodeKubeletConfig]
1791
+ attr_accessor :desired_node_kubelet_config
1792
+
1793
+ # Node kubelet configs.
1794
+ # Corresponds to the JSON property `desiredNodePoolAutoConfigKubeletConfig`
1795
+ # @return [Google::Apis::ContainerV1::NodeKubeletConfig]
1796
+ attr_accessor :desired_node_pool_auto_config_kubelet_config
1797
+
1798
+ # Parameters that can be configured on Linux nodes.
1799
+ # Corresponds to the JSON property `desiredNodePoolAutoConfigLinuxNodeConfig`
1800
+ # @return [Google::Apis::ContainerV1::LinuxNodeConfig]
1801
+ attr_accessor :desired_node_pool_auto_config_linux_node_config
1802
+
1291
1803
  # Collection of Compute Engine network tags that can be applied to a node's
1292
1804
  # underlying VM instance.
1293
1805
  # Corresponds to the JSON property `desiredNodePoolAutoConfigNetworkTags`
1294
1806
  # @return [Google::Apis::ContainerV1::NetworkTags]
1295
1807
  attr_accessor :desired_node_pool_auto_config_network_tags
1296
1808
 
1809
+ # A map of resource manager tag keys and values to be attached to the nodes for
1810
+ # managing Compute Engine firewalls using Network Firewall Policies. Tags must
1811
+ # be according to specifications in https://cloud.google.com/vpc/docs/tags-
1812
+ # firewalls-overview#specifications. A maximum of 5 tag key-value pairs can be
1813
+ # specified. Existing tags will be replaced with new values.
1814
+ # Corresponds to the JSON property `desiredNodePoolAutoConfigResourceManagerTags`
1815
+ # @return [Google::Apis::ContainerV1::ResourceManagerTags]
1816
+ attr_accessor :desired_node_pool_auto_config_resource_manager_tags
1817
+
1297
1818
  # NodePoolAutoscaling contains information required by cluster autoscaler to
1298
1819
  # adjust the size of the node pool to the current cluster usage.
1299
1820
  # Corresponds to the JSON property `desiredNodePoolAutoscaling`
@@ -1328,6 +1849,13 @@ module Google
1328
1849
  # @return [Google::Apis::ContainerV1::NotificationConfig]
1329
1850
  attr_accessor :desired_notification_config
1330
1851
 
1852
+ # ParentProductConfig is the configuration of the parent product of the cluster.
1853
+ # This field is used by Google internal products that are built on top of a GKE
1854
+ # cluster and take the ownership of the cluster.
1855
+ # Corresponds to the JSON property `desiredParentProductConfig`
1856
+ # @return [Google::Apis::ContainerV1::ParentProductConfig]
1857
+ attr_accessor :desired_parent_product_config
1858
+
1331
1859
  # Configuration options for private clusters.
1332
1860
  # Corresponds to the JSON property `desiredPrivateClusterConfig`
1333
1861
  # @return [Google::Apis::ContainerV1::PrivateClusterConfig]
@@ -1338,6 +1866,12 @@ module Google
1338
1866
  # @return [String]
1339
1867
  attr_accessor :desired_private_ipv6_google_access
1340
1868
 
1869
+ # RBACBindingConfig allows user to restrict ClusterRoleBindings an RoleBindings
1870
+ # that can be created.
1871
+ # Corresponds to the JSON property `desiredRbacBindingConfig`
1872
+ # @return [Google::Apis::ContainerV1::RbacBindingConfig]
1873
+ attr_accessor :desired_rbac_binding_config
1874
+
1341
1875
  # ReleaseChannel indicates which release channel a cluster is subscribed to.
1342
1876
  # Release channels are arranged in order of risk. When a cluster is subscribed
1343
1877
  # to a release channel, Google maintains both the master version and the node
@@ -1351,6 +1885,17 @@ module Google
1351
1885
  # @return [Google::Apis::ContainerV1::ResourceUsageExportConfig]
1352
1886
  attr_accessor :desired_resource_usage_export_config
1353
1887
 
1888
+ # SecretManagerConfig is config for secret manager enablement.
1889
+ # Corresponds to the JSON property `desiredSecretManagerConfig`
1890
+ # @return [Google::Apis::ContainerV1::SecretManagerConfig]
1891
+ attr_accessor :desired_secret_manager_config
1892
+
1893
+ # SecurityPostureConfig defines the flags needed to enable/disable features for
1894
+ # the Security Posture API.
1895
+ # Corresponds to the JSON property `desiredSecurityPostureConfig`
1896
+ # @return [Google::Apis::ContainerV1::SecurityPostureConfig]
1897
+ attr_accessor :desired_security_posture_config
1898
+
1354
1899
  # Config to block services with externalIPs field.
1355
1900
  # Corresponds to the JSON property `desiredServiceExternalIpsConfig`
1356
1901
  # @return [Google::Apis::ContainerV1::ServiceExternalIPsConfig]
@@ -1380,6 +1925,11 @@ module Google
1380
1925
  # @return [Google::Apis::ContainerV1::WorkloadIdentityConfig]
1381
1926
  attr_accessor :desired_workload_identity_config
1382
1927
 
1928
+ # K8sBetaAPIConfig , configuration for beta APIs
1929
+ # Corresponds to the JSON property `enableK8sBetaApis`
1930
+ # @return [Google::Apis::ContainerV1::K8sBetaApiConfig]
1931
+ attr_accessor :enable_k8s_beta_apis
1932
+
1383
1933
  # The current etag of the cluster. If an etag is provided and does not match the
1384
1934
  # current etag of the cluster, update will be blocked and an ABORTED error will
1385
1935
  # be returned.
@@ -1387,27 +1937,53 @@ module Google
1387
1937
  # @return [String]
1388
1938
  attr_accessor :etag
1389
1939
 
1940
+ # AdditionalPodRangesConfig is the configuration for additional pod secondary
1941
+ # ranges supporting the ClusterUpdate message.
1942
+ # Corresponds to the JSON property `removedAdditionalPodRangesConfig`
1943
+ # @return [Google::Apis::ContainerV1::AdditionalPodRangesConfig]
1944
+ attr_accessor :removed_additional_pod_ranges_config
1945
+
1946
+ # UserManagedKeysConfig holds the resource address to Keys which are used for
1947
+ # signing certs and token that are used for communication within cluster.
1948
+ # Corresponds to the JSON property `userManagedKeysConfig`
1949
+ # @return [Google::Apis::ContainerV1::UserManagedKeysConfig]
1950
+ attr_accessor :user_managed_keys_config
1951
+
1390
1952
  def initialize(**args)
1391
1953
  update!(**args)
1392
1954
  end
1393
1955
 
1394
1956
  # Update properties of this object
1395
1957
  def update!(**args)
1958
+ @additional_pod_ranges_config = args[:additional_pod_ranges_config] if args.key?(:additional_pod_ranges_config)
1396
1959
  @desired_addons_config = args[:desired_addons_config] if args.key?(:desired_addons_config)
1397
1960
  @desired_authenticator_groups_config = args[:desired_authenticator_groups_config] if args.key?(:desired_authenticator_groups_config)
1961
+ @desired_autopilot_workload_policy_config = args[:desired_autopilot_workload_policy_config] if args.key?(:desired_autopilot_workload_policy_config)
1398
1962
  @desired_binary_authorization = args[:desired_binary_authorization] if args.key?(:desired_binary_authorization)
1399
1963
  @desired_cluster_autoscaling = args[:desired_cluster_autoscaling] if args.key?(:desired_cluster_autoscaling)
1964
+ @desired_compliance_posture_config = args[:desired_compliance_posture_config] if args.key?(:desired_compliance_posture_config)
1965
+ @desired_containerd_config = args[:desired_containerd_config] if args.key?(:desired_containerd_config)
1966
+ @desired_control_plane_endpoints_config = args[:desired_control_plane_endpoints_config] if args.key?(:desired_control_plane_endpoints_config)
1400
1967
  @desired_cost_management_config = args[:desired_cost_management_config] if args.key?(:desired_cost_management_config)
1401
1968
  @desired_database_encryption = args[:desired_database_encryption] if args.key?(:desired_database_encryption)
1402
1969
  @desired_datapath_provider = args[:desired_datapath_provider] if args.key?(:desired_datapath_provider)
1970
+ @desired_default_enable_private_nodes = args[:desired_default_enable_private_nodes] if args.key?(:desired_default_enable_private_nodes)
1403
1971
  @desired_default_snat_status = args[:desired_default_snat_status] if args.key?(:desired_default_snat_status)
1972
+ @desired_disable_l4_lb_firewall_reconciliation = args[:desired_disable_l4_lb_firewall_reconciliation] if args.key?(:desired_disable_l4_lb_firewall_reconciliation)
1404
1973
  @desired_dns_config = args[:desired_dns_config] if args.key?(:desired_dns_config)
1974
+ @desired_enable_cilium_clusterwide_network_policy = args[:desired_enable_cilium_clusterwide_network_policy] if args.key?(:desired_enable_cilium_clusterwide_network_policy)
1975
+ @desired_enable_fqdn_network_policy = args[:desired_enable_fqdn_network_policy] if args.key?(:desired_enable_fqdn_network_policy)
1976
+ @desired_enable_multi_networking = args[:desired_enable_multi_networking] if args.key?(:desired_enable_multi_networking)
1405
1977
  @desired_enable_private_endpoint = args[:desired_enable_private_endpoint] if args.key?(:desired_enable_private_endpoint)
1978
+ @desired_enterprise_config = args[:desired_enterprise_config] if args.key?(:desired_enterprise_config)
1979
+ @desired_fleet = args[:desired_fleet] if args.key?(:desired_fleet)
1406
1980
  @desired_gateway_api_config = args[:desired_gateway_api_config] if args.key?(:desired_gateway_api_config)
1407
1981
  @desired_gcfs_config = args[:desired_gcfs_config] if args.key?(:desired_gcfs_config)
1408
1982
  @desired_identity_service_config = args[:desired_identity_service_config] if args.key?(:desired_identity_service_config)
1409
1983
  @desired_image_type = args[:desired_image_type] if args.key?(:desired_image_type)
1984
+ @desired_in_transit_encryption_config = args[:desired_in_transit_encryption_config] if args.key?(:desired_in_transit_encryption_config)
1410
1985
  @desired_intra_node_visibility_config = args[:desired_intra_node_visibility_config] if args.key?(:desired_intra_node_visibility_config)
1986
+ @desired_k8s_beta_apis = args[:desired_k8s_beta_apis] if args.key?(:desired_k8s_beta_apis)
1411
1987
  @desired_l4ilb_subsetting_config = args[:desired_l4ilb_subsetting_config] if args.key?(:desired_l4ilb_subsetting_config)
1412
1988
  @desired_locations = args[:desired_locations] if args.key?(:desired_locations)
1413
1989
  @desired_logging_config = args[:desired_logging_config] if args.key?(:desired_logging_config)
@@ -1417,22 +1993,34 @@ module Google
1417
1993
  @desired_mesh_certificates = args[:desired_mesh_certificates] if args.key?(:desired_mesh_certificates)
1418
1994
  @desired_monitoring_config = args[:desired_monitoring_config] if args.key?(:desired_monitoring_config)
1419
1995
  @desired_monitoring_service = args[:desired_monitoring_service] if args.key?(:desired_monitoring_service)
1996
+ @desired_network_performance_config = args[:desired_network_performance_config] if args.key?(:desired_network_performance_config)
1997
+ @desired_node_kubelet_config = args[:desired_node_kubelet_config] if args.key?(:desired_node_kubelet_config)
1998
+ @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)
1999
+ @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
2000
  @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)
2001
+ @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
2002
  @desired_node_pool_autoscaling = args[:desired_node_pool_autoscaling] if args.key?(:desired_node_pool_autoscaling)
1422
2003
  @desired_node_pool_id = args[:desired_node_pool_id] if args.key?(:desired_node_pool_id)
1423
2004
  @desired_node_pool_logging_config = args[:desired_node_pool_logging_config] if args.key?(:desired_node_pool_logging_config)
1424
2005
  @desired_node_version = args[:desired_node_version] if args.key?(:desired_node_version)
1425
2006
  @desired_notification_config = args[:desired_notification_config] if args.key?(:desired_notification_config)
2007
+ @desired_parent_product_config = args[:desired_parent_product_config] if args.key?(:desired_parent_product_config)
1426
2008
  @desired_private_cluster_config = args[:desired_private_cluster_config] if args.key?(:desired_private_cluster_config)
1427
2009
  @desired_private_ipv6_google_access = args[:desired_private_ipv6_google_access] if args.key?(:desired_private_ipv6_google_access)
2010
+ @desired_rbac_binding_config = args[:desired_rbac_binding_config] if args.key?(:desired_rbac_binding_config)
1428
2011
  @desired_release_channel = args[:desired_release_channel] if args.key?(:desired_release_channel)
1429
2012
  @desired_resource_usage_export_config = args[:desired_resource_usage_export_config] if args.key?(:desired_resource_usage_export_config)
2013
+ @desired_secret_manager_config = args[:desired_secret_manager_config] if args.key?(:desired_secret_manager_config)
2014
+ @desired_security_posture_config = args[:desired_security_posture_config] if args.key?(:desired_security_posture_config)
1430
2015
  @desired_service_external_ips_config = args[:desired_service_external_ips_config] if args.key?(:desired_service_external_ips_config)
1431
2016
  @desired_shielded_nodes = args[:desired_shielded_nodes] if args.key?(:desired_shielded_nodes)
1432
2017
  @desired_stack_type = args[:desired_stack_type] if args.key?(:desired_stack_type)
1433
2018
  @desired_vertical_pod_autoscaling = args[:desired_vertical_pod_autoscaling] if args.key?(:desired_vertical_pod_autoscaling)
1434
2019
  @desired_workload_identity_config = args[:desired_workload_identity_config] if args.key?(:desired_workload_identity_config)
2020
+ @enable_k8s_beta_apis = args[:enable_k8s_beta_apis] if args.key?(:enable_k8s_beta_apis)
1435
2021
  @etag = args[:etag] if args.key?(:etag)
2022
+ @removed_additional_pod_ranges_config = args[:removed_additional_pod_ranges_config] if args.key?(:removed_additional_pod_ranges_config)
2023
+ @user_managed_keys_config = args[:user_managed_keys_config] if args.key?(:user_managed_keys_config)
1436
2024
  end
1437
2025
  end
1438
2026
 
@@ -1493,16 +2081,20 @@ module Google
1493
2081
  end
1494
2082
  end
1495
2083
 
1496
- # ConfidentialNodes is configuration for the confidential nodes feature, which
1497
- # makes nodes run on confidential VMs.
1498
- class ConfidentialNodes
2084
+ # CompliancePostureConfig defines the settings needed to enable/disable features
2085
+ # for the Compliance Posture.
2086
+ class CompliancePostureConfig
1499
2087
  include Google::Apis::Core::Hashable
1500
2088
 
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
2089
+ # List of enabled compliance standards.
2090
+ # Corresponds to the JSON property `complianceStandards`
2091
+ # @return [Array<Google::Apis::ContainerV1::ComplianceStandard>]
2092
+ attr_accessor :compliance_standards
2093
+
2094
+ # Defines the enablement mode for Compliance Posture.
2095
+ # Corresponds to the JSON property `mode`
2096
+ # @return [String]
2097
+ attr_accessor :mode
1506
2098
 
1507
2099
  def initialize(**args)
1508
2100
  update!(**args)
@@ -1510,19 +2102,19 @@ module Google
1510
2102
 
1511
2103
  # Update properties of this object
1512
2104
  def update!(**args)
1513
- @enabled = args[:enabled] if args.key?(:enabled)
2105
+ @compliance_standards = args[:compliance_standards] if args.key?(:compliance_standards)
2106
+ @mode = args[:mode] if args.key?(:mode)
1514
2107
  end
1515
2108
  end
1516
2109
 
1517
- # Configuration options for the Config Connector add-on.
1518
- class ConfigConnectorConfig
2110
+ # Defines the details of a compliance standard.
2111
+ class ComplianceStandard
1519
2112
  include Google::Apis::Core::Hashable
1520
2113
 
1521
- # Whether Cloud Connector is enabled for this cluster.
1522
- # Corresponds to the JSON property `enabled`
1523
- # @return [Boolean]
1524
- attr_accessor :enabled
1525
- alias_method :enabled?, :enabled
2114
+ # Name of the compliance standard.
2115
+ # Corresponds to the JSON property `standard`
2116
+ # @return [String]
2117
+ attr_accessor :standard
1526
2118
 
1527
2119
  def initialize(**args)
1528
2120
  update!(**args)
@@ -1530,13 +2122,54 @@ module Google
1530
2122
 
1531
2123
  # Update properties of this object
1532
2124
  def update!(**args)
1533
- @enabled = args[:enabled] if args.key?(:enabled)
2125
+ @standard = args[:standard] if args.key?(:standard)
1534
2126
  end
1535
2127
  end
1536
2128
 
1537
- # Parameters for controlling consumption metering.
1538
- class ConsumptionMeteringConfig
1539
- include Google::Apis::Core::Hashable
2129
+ # ConfidentialNodes is configuration for the confidential nodes feature, which
2130
+ # makes nodes run on confidential VMs.
2131
+ class ConfidentialNodes
2132
+ include Google::Apis::Core::Hashable
2133
+
2134
+ # Whether Confidential Nodes feature is enabled.
2135
+ # Corresponds to the JSON property `enabled`
2136
+ # @return [Boolean]
2137
+ attr_accessor :enabled
2138
+ alias_method :enabled?, :enabled
2139
+
2140
+ def initialize(**args)
2141
+ update!(**args)
2142
+ end
2143
+
2144
+ # Update properties of this object
2145
+ def update!(**args)
2146
+ @enabled = args[:enabled] if args.key?(:enabled)
2147
+ end
2148
+ end
2149
+
2150
+ # Configuration options for the Config Connector add-on.
2151
+ class ConfigConnectorConfig
2152
+ include Google::Apis::Core::Hashable
2153
+
2154
+ # Whether Cloud Connector is enabled for this cluster.
2155
+ # Corresponds to the JSON property `enabled`
2156
+ # @return [Boolean]
2157
+ attr_accessor :enabled
2158
+ alias_method :enabled?, :enabled
2159
+
2160
+ def initialize(**args)
2161
+ update!(**args)
2162
+ end
2163
+
2164
+ # Update properties of this object
2165
+ def update!(**args)
2166
+ @enabled = args[:enabled] if args.key?(:enabled)
2167
+ end
2168
+ end
2169
+
2170
+ # Parameters for controlling consumption metering.
2171
+ class ConsumptionMeteringConfig
2172
+ include Google::Apis::Core::Hashable
1540
2173
 
1541
2174
  # Whether to enable consumption metering for this cluster. If enabled, a second
1542
2175
  # BigQuery table will be created to hold resource consumption records.
@@ -1555,6 +2188,51 @@ module Google
1555
2188
  end
1556
2189
  end
1557
2190
 
2191
+ # ContainerdConfig contains configuration to customize containerd.
2192
+ class ContainerdConfig
2193
+ include Google::Apis::Core::Hashable
2194
+
2195
+ # PrivateRegistryAccessConfig contains access configuration for private
2196
+ # container registries.
2197
+ # Corresponds to the JSON property `privateRegistryAccessConfig`
2198
+ # @return [Google::Apis::ContainerV1::PrivateRegistryAccessConfig]
2199
+ attr_accessor :private_registry_access_config
2200
+
2201
+ def initialize(**args)
2202
+ update!(**args)
2203
+ end
2204
+
2205
+ # Update properties of this object
2206
+ def update!(**args)
2207
+ @private_registry_access_config = args[:private_registry_access_config] if args.key?(:private_registry_access_config)
2208
+ end
2209
+ end
2210
+
2211
+ # Configuration for all of the cluster's control plane endpoints.
2212
+ class ControlPlaneEndpointsConfig
2213
+ include Google::Apis::Core::Hashable
2214
+
2215
+ # Describes the configuration of a DNS endpoint.
2216
+ # Corresponds to the JSON property `dnsEndpointConfig`
2217
+ # @return [Google::Apis::ContainerV1::DnsEndpointConfig]
2218
+ attr_accessor :dns_endpoint_config
2219
+
2220
+ # IP endpoints configuration.
2221
+ # Corresponds to the JSON property `ipEndpointsConfig`
2222
+ # @return [Google::Apis::ContainerV1::IpEndpointsConfig]
2223
+ attr_accessor :ip_endpoints_config
2224
+
2225
+ def initialize(**args)
2226
+ update!(**args)
2227
+ end
2228
+
2229
+ # Update properties of this object
2230
+ def update!(**args)
2231
+ @dns_endpoint_config = args[:dns_endpoint_config] if args.key?(:dns_endpoint_config)
2232
+ @ip_endpoints_config = args[:ip_endpoints_config] if args.key?(:ip_endpoints_config)
2233
+ end
2234
+ end
2235
+
1558
2236
  # Configuration for fine-grained cost management feature.
1559
2237
  class CostManagementConfig
1560
2238
  include Google::Apis::Core::Hashable
@@ -1675,6 +2353,11 @@ module Google
1675
2353
  class DnsConfig
1676
2354
  include Google::Apis::Core::Hashable
1677
2355
 
2356
+ # Optional. The domain used in Additive VPC scope.
2357
+ # Corresponds to the JSON property `additiveVpcScopeDnsDomain`
2358
+ # @return [String]
2359
+ attr_accessor :additive_vpc_scope_dns_domain
2360
+
1678
2361
  # cluster_dns indicates which in-cluster DNS provider should be used.
1679
2362
  # Corresponds to the JSON property `clusterDns`
1680
2363
  # @return [String]
@@ -1696,17 +2379,48 @@ module Google
1696
2379
 
1697
2380
  # Update properties of this object
1698
2381
  def update!(**args)
2382
+ @additive_vpc_scope_dns_domain = args[:additive_vpc_scope_dns_domain] if args.key?(:additive_vpc_scope_dns_domain)
1699
2383
  @cluster_dns = args[:cluster_dns] if args.key?(:cluster_dns)
1700
2384
  @cluster_dns_domain = args[:cluster_dns_domain] if args.key?(:cluster_dns_domain)
1701
2385
  @cluster_dns_scope = args[:cluster_dns_scope] if args.key?(:cluster_dns_scope)
1702
2386
  end
1703
2387
  end
1704
2388
 
2389
+ # Describes the configuration of a DNS endpoint.
2390
+ class DnsEndpointConfig
2391
+ include Google::Apis::Core::Hashable
2392
+
2393
+ # Controls whether user traffic is allowed over this endpoint. Note that GCP-
2394
+ # managed services may still use the endpoint even if this is false.
2395
+ # Corresponds to the JSON property `allowExternalTraffic`
2396
+ # @return [Boolean]
2397
+ attr_accessor :allow_external_traffic
2398
+ alias_method :allow_external_traffic?, :allow_external_traffic
2399
+
2400
+ # Output only. The cluster's DNS endpoint configuration. A DNS format address.
2401
+ # This is accessible from the public internet. Ex: uid.us-central1.gke.goog.
2402
+ # Always present, but the behavior may change according to the value of
2403
+ # DNSEndpointConfig.allow_external_traffic.
2404
+ # Corresponds to the JSON property `endpoint`
2405
+ # @return [String]
2406
+ attr_accessor :endpoint
2407
+
2408
+ def initialize(**args)
2409
+ update!(**args)
2410
+ end
2411
+
2412
+ # Update properties of this object
2413
+ def update!(**args)
2414
+ @allow_external_traffic = args[:allow_external_traffic] if args.key?(:allow_external_traffic)
2415
+ @endpoint = args[:endpoint] if args.key?(:endpoint)
2416
+ end
2417
+ end
2418
+
1705
2419
  # Time window specified for daily maintenance operations.
1706
2420
  class DailyMaintenanceWindow
1707
2421
  include Google::Apis::Core::Hashable
1708
2422
 
1709
- # [Output only] Duration of the time window, automatically chosen to be smallest
2423
+ # Output only. Duration of the time window, automatically chosen to be smallest
1710
2424
  # possible in the given scenario. Duration will be in [RFC3339](https://www.ietf.
1711
2425
  # org/rfc/rfc3339.txt) format "PTnHnMnS".
1712
2426
  # Corresponds to the JSON property `duration`
@@ -1735,13 +2449,29 @@ module Google
1735
2449
  class DatabaseEncryption
1736
2450
  include Google::Apis::Core::Hashable
1737
2451
 
2452
+ # Output only. The current state of etcd encryption.
2453
+ # Corresponds to the JSON property `currentState`
2454
+ # @return [String]
2455
+ attr_accessor :current_state
2456
+
2457
+ # Output only. Keys in use by the cluster for decrypting existing objects, in
2458
+ # addition to the key in `key_name`. Each item is a CloudKMS key resource.
2459
+ # Corresponds to the JSON property `decryptionKeys`
2460
+ # @return [Array<String>]
2461
+ attr_accessor :decryption_keys
2462
+
1738
2463
  # Name of CloudKMS key to use for the encryption of secrets in etcd. Ex.
1739
2464
  # projects/my-project/locations/global/keyRings/my-ring/cryptoKeys/my-key
1740
2465
  # Corresponds to the JSON property `keyName`
1741
2466
  # @return [String]
1742
2467
  attr_accessor :key_name
1743
2468
 
1744
- # Denotes the state of etcd encryption.
2469
+ # Output only. Records errors seen during DatabaseEncryption update operations.
2470
+ # Corresponds to the JSON property `lastOperationErrors`
2471
+ # @return [Array<Google::Apis::ContainerV1::OperationError>]
2472
+ attr_accessor :last_operation_errors
2473
+
2474
+ # The desired state of etcd encryption.
1745
2475
  # Corresponds to the JSON property `state`
1746
2476
  # @return [String]
1747
2477
  attr_accessor :state
@@ -1752,7 +2482,10 @@ module Google
1752
2482
 
1753
2483
  # Update properties of this object
1754
2484
  def update!(**args)
2485
+ @current_state = args[:current_state] if args.key?(:current_state)
2486
+ @decryption_keys = args[:decryption_keys] if args.key?(:decryption_keys)
1755
2487
  @key_name = args[:key_name] if args.key?(:key_name)
2488
+ @last_operation_errors = args[:last_operation_errors] if args.key?(:last_operation_errors)
1756
2489
  @state = args[:state] if args.key?(:state)
1757
2490
  end
1758
2491
  end
@@ -1778,6 +2511,25 @@ module Google
1778
2511
  end
1779
2512
  end
1780
2513
 
2514
+ # DesiredEnterpriseConfig is a wrapper used for updating enterprise_config.
2515
+ class DesiredEnterpriseConfig
2516
+ include Google::Apis::Core::Hashable
2517
+
2518
+ # desired_tier specifies the desired tier of the cluster.
2519
+ # Corresponds to the JSON property `desiredTier`
2520
+ # @return [String]
2521
+ attr_accessor :desired_tier
2522
+
2523
+ def initialize(**args)
2524
+ update!(**args)
2525
+ end
2526
+
2527
+ # Update properties of this object
2528
+ def update!(**args)
2529
+ @desired_tier = args[:desired_tier] if args.key?(:desired_tier)
2530
+ end
2531
+ end
2532
+
1781
2533
  # Configuration for NodeLocal DNSCache
1782
2534
  class DnsCacheConfig
1783
2535
  include Google::Apis::Core::Hashable
@@ -1814,16 +2566,48 @@ module Google
1814
2566
  end
1815
2567
  end
1816
2568
 
2569
+ # EnterpriseConfig is the cluster enterprise configuration.
2570
+ class EnterpriseConfig
2571
+ include Google::Apis::Core::Hashable
2572
+
2573
+ # Output only. cluster_tier indicates the effective tier of the cluster.
2574
+ # Corresponds to the JSON property `clusterTier`
2575
+ # @return [String]
2576
+ attr_accessor :cluster_tier
2577
+
2578
+ # desired_tier specifies the desired tier of the cluster.
2579
+ # Corresponds to the JSON property `desiredTier`
2580
+ # @return [String]
2581
+ attr_accessor :desired_tier
2582
+
2583
+ def initialize(**args)
2584
+ update!(**args)
2585
+ end
2586
+
2587
+ # Update properties of this object
2588
+ def update!(**args)
2589
+ @cluster_tier = args[:cluster_tier] if args.key?(:cluster_tier)
2590
+ @desired_tier = args[:desired_tier] if args.key?(:desired_tier)
2591
+ end
2592
+ end
2593
+
1817
2594
  # EphemeralStorageLocalSsdConfig contains configuration for the node ephemeral
1818
- # storage using Local SSD.
2595
+ # storage using Local SSDs.
1819
2596
  class EphemeralStorageLocalSsdConfig
1820
2597
  include Google::Apis::Core::Hashable
1821
2598
 
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.
2599
+ # Number of local SSDs to use to back ephemeral storage. Uses NVMe interfaces. A
2600
+ # zero (or unset) value has different meanings depending on machine type being
2601
+ # used: 1. For pre-Gen3 machines, which support flexible numbers of local ssds,
2602
+ # zero (or unset) means to disable using local SSDs as ephemeral storage. The
2603
+ # limit for this value is dependent upon the maximum number of disk available on
2604
+ # a machine per zone. See: https://cloud.google.com/compute/docs/disks/local-ssd
2605
+ # for more information. 2. For Gen3 machines which dictate a specific number of
2606
+ # local ssds, zero (or unset) means to use the default number of local ssds that
2607
+ # goes with that machine type. For example, for a c3-standard-8-lssd machine, 2
2608
+ # local ssds would be provisioned. For c3-standard-8 (which doesn't support
2609
+ # local ssds), 0 will be provisioned. See https://cloud.google.com/compute/docs/
2610
+ # disks/local-ssd#choose_number_local_ssds for more info.
1827
2611
  # Corresponds to the JSON property `localSsdCount`
1828
2612
  # @return [Fixnum]
1829
2613
  attr_accessor :local_ssd_count
@@ -1880,6 +2664,83 @@ module Google
1880
2664
  end
1881
2665
  end
1882
2666
 
2667
+ # Fleet is the fleet configuration for the cluster.
2668
+ class Fleet
2669
+ include Google::Apis::Core::Hashable
2670
+
2671
+ # Output only. The full resource name of the registered fleet membership of the
2672
+ # cluster, in the format `//gkehub.googleapis.com/projects/*/locations/*/
2673
+ # memberships/*`.
2674
+ # Corresponds to the JSON property `membership`
2675
+ # @return [String]
2676
+ attr_accessor :membership
2677
+
2678
+ # Output only. Whether the cluster has been registered through the fleet API.
2679
+ # Corresponds to the JSON property `preRegistered`
2680
+ # @return [Boolean]
2681
+ attr_accessor :pre_registered
2682
+ alias_method :pre_registered?, :pre_registered
2683
+
2684
+ # The Fleet host project(project ID or project number) where this cluster will
2685
+ # be registered to. This field cannot be changed after the cluster has been
2686
+ # registered.
2687
+ # Corresponds to the JSON property `project`
2688
+ # @return [String]
2689
+ attr_accessor :project
2690
+
2691
+ def initialize(**args)
2692
+ update!(**args)
2693
+ end
2694
+
2695
+ # Update properties of this object
2696
+ def update!(**args)
2697
+ @membership = args[:membership] if args.key?(:membership)
2698
+ @pre_registered = args[:pre_registered] if args.key?(:pre_registered)
2699
+ @project = args[:project] if args.key?(:project)
2700
+ end
2701
+ end
2702
+
2703
+ # GCPSecretManagerCertificateConfig configures a secret from [Google Secret
2704
+ # Manager](https://cloud.google.com/secret-manager).
2705
+ class GcpSecretManagerCertificateConfig
2706
+ include Google::Apis::Core::Hashable
2707
+
2708
+ # Secret URI, in the form "projects/$PROJECT_ID/secrets/$SECRET_NAME/versions/$
2709
+ # VERSION". Version can be fixed (e.g. "2") or "latest"
2710
+ # Corresponds to the JSON property `secretUri`
2711
+ # @return [String]
2712
+ attr_accessor :secret_uri
2713
+
2714
+ def initialize(**args)
2715
+ update!(**args)
2716
+ end
2717
+
2718
+ # Update properties of this object
2719
+ def update!(**args)
2720
+ @secret_uri = args[:secret_uri] if args.key?(:secret_uri)
2721
+ end
2722
+ end
2723
+
2724
+ # GPUDriverInstallationConfig specifies the version of GPU driver to be auto
2725
+ # installed.
2726
+ class GpuDriverInstallationConfig
2727
+ include Google::Apis::Core::Hashable
2728
+
2729
+ # Mode for how the GPU driver is installed.
2730
+ # Corresponds to the JSON property `gpuDriverVersion`
2731
+ # @return [String]
2732
+ attr_accessor :gpu_driver_version
2733
+
2734
+ def initialize(**args)
2735
+ update!(**args)
2736
+ end
2737
+
2738
+ # Update properties of this object
2739
+ def update!(**args)
2740
+ @gpu_driver_version = args[:gpu_driver_version] if args.key?(:gpu_driver_version)
2741
+ end
2742
+ end
2743
+
1883
2744
  # GPUSharingConfig represents the GPU sharing configuration for Hardware
1884
2745
  # Accelerators.
1885
2746
  class GpuSharingConfig
@@ -1986,6 +2847,26 @@ module Google
1986
2847
  end
1987
2848
  end
1988
2849
 
2850
+ # Configuration for the Cloud Storage Fuse CSI driver.
2851
+ class GcsFuseCsiDriverConfig
2852
+ include Google::Apis::Core::Hashable
2853
+
2854
+ # Whether the Cloud Storage Fuse CSI driver is enabled for this cluster.
2855
+ # Corresponds to the JSON property `enabled`
2856
+ # @return [Boolean]
2857
+ attr_accessor :enabled
2858
+ alias_method :enabled?, :enabled
2859
+
2860
+ def initialize(**args)
2861
+ update!(**args)
2862
+ end
2863
+
2864
+ # Update properties of this object
2865
+ def update!(**args)
2866
+ @enabled = args[:enabled] if args.key?(:enabled)
2867
+ end
2868
+ end
2869
+
1989
2870
  # GetJSONWebKeysResponse is a valid JSON Web Key Set as specififed in rfc 7517
1990
2871
  class GetJsonWebKeysResponse
1991
2872
  include Google::Apis::Core::Hashable
@@ -2169,6 +3050,31 @@ module Google
2169
3050
  end
2170
3051
  end
2171
3052
 
3053
+ # Hugepages amount in both 2m and 1g size
3054
+ class HugepagesConfig
3055
+ include Google::Apis::Core::Hashable
3056
+
3057
+ # Optional. Amount of 1G hugepages
3058
+ # Corresponds to the JSON property `hugepageSize1g`
3059
+ # @return [Fixnum]
3060
+ attr_accessor :hugepage_size1g
3061
+
3062
+ # Optional. Amount of 2M hugepages
3063
+ # Corresponds to the JSON property `hugepageSize2m`
3064
+ # @return [Fixnum]
3065
+ attr_accessor :hugepage_size2m
3066
+
3067
+ def initialize(**args)
3068
+ update!(**args)
3069
+ end
3070
+
3071
+ # Update properties of this object
3072
+ def update!(**args)
3073
+ @hugepage_size1g = args[:hugepage_size1g] if args.key?(:hugepage_size1g)
3074
+ @hugepage_size2m = args[:hugepage_size2m] if args.key?(:hugepage_size2m)
3075
+ end
3076
+ end
3077
+
2172
3078
  # ILBSubsettingConfig contains the desired config of L4 Internal LoadBalancer
2173
3079
  # subsetting on this cluster.
2174
3080
  class IlbSubsettingConfig
@@ -2194,6 +3100,12 @@ module Google
2194
3100
  class IpAllocationPolicy
2195
3101
  include Google::Apis::Core::Hashable
2196
3102
 
3103
+ # AdditionalPodRangesConfig is the configuration for additional pod secondary
3104
+ # ranges supporting the ClusterUpdate message.
3105
+ # Corresponds to the JSON property `additionalPodRangesConfig`
3106
+ # @return [Google::Apis::ContainerV1::AdditionalPodRangesConfig]
3107
+ attr_accessor :additional_pod_ranges_config
3108
+
2197
3109
  # This field is deprecated, use cluster_ipv4_cidr_block.
2198
3110
  # Corresponds to the JSON property `clusterIpv4Cidr`
2199
3111
  # @return [String]
@@ -2226,6 +3138,13 @@ module Google
2226
3138
  attr_accessor :create_subnetwork
2227
3139
  alias_method :create_subnetwork?, :create_subnetwork
2228
3140
 
3141
+ # Output only. The utilization of the cluster default IPv4 range for the pod.
3142
+ # The ratio is Usage/[Total number of IPs in the secondary range], Usage=
3143
+ # numNodes*numZones*podIPsPerNode.
3144
+ # Corresponds to the JSON property `defaultPodIpv4RangeUtilization`
3145
+ # @return [Float]
3146
+ attr_accessor :default_pod_ipv4_range_utilization
3147
+
2229
3148
  # The ipv6 access type (internal or external) when create_subnetwork is true
2230
3149
  # Corresponds to the JSON property `ipv6AccessType`
2231
3150
  # @return [String]
@@ -2247,6 +3166,11 @@ module Google
2247
3166
  # @return [String]
2248
3167
  attr_accessor :node_ipv4_cidr_block
2249
3168
 
3169
+ # [PRIVATE FIELD] Config for pod CIDR size overprovisioning.
3170
+ # Corresponds to the JSON property `podCidrOverprovisionConfig`
3171
+ # @return [Google::Apis::ContainerV1::PodCidrOverprovisionConfig]
3172
+ attr_accessor :pod_cidr_overprovision_config
3173
+
2250
3174
  # This field is deprecated, use services_ipv4_cidr_block.
2251
3175
  # Corresponds to the JSON property `servicesIpv4Cidr`
2252
3176
  # @return [String]
@@ -2264,6 +3188,11 @@ module Google
2264
3188
  # @return [String]
2265
3189
  attr_accessor :services_ipv4_cidr_block
2266
3190
 
3191
+ # Output only. The services IPv6 CIDR block for the cluster.
3192
+ # Corresponds to the JSON property `servicesIpv6CidrBlock`
3193
+ # @return [String]
3194
+ attr_accessor :services_ipv6_cidr_block
3195
+
2267
3196
  # The name of the secondary range to be used as for the services CIDR block. The
2268
3197
  # secondary range will be used for service ClusterIPs. This must be an existing
2269
3198
  # secondary range associated with the cluster subnetwork. This field is only
@@ -2277,6 +3206,11 @@ module Google
2277
3206
  # @return [String]
2278
3207
  attr_accessor :stack_type
2279
3208
 
3209
+ # Output only. The subnet's IPv6 CIDR block used by nodes and pods.
3210
+ # Corresponds to the JSON property `subnetIpv6CidrBlock`
3211
+ # @return [String]
3212
+ attr_accessor :subnet_ipv6_cidr_block
3213
+
2280
3214
  # A custom subnetwork name to be used if `create_subnetwork` is true. If this
2281
3215
  # field is empty, then an automatic name will be chosen for the new subnetwork.
2282
3216
  # Corresponds to the JSON property `subnetworkName`
@@ -2319,17 +3253,22 @@ module Google
2319
3253
 
2320
3254
  # Update properties of this object
2321
3255
  def update!(**args)
3256
+ @additional_pod_ranges_config = args[:additional_pod_ranges_config] if args.key?(:additional_pod_ranges_config)
2322
3257
  @cluster_ipv4_cidr = args[:cluster_ipv4_cidr] if args.key?(:cluster_ipv4_cidr)
2323
3258
  @cluster_ipv4_cidr_block = args[:cluster_ipv4_cidr_block] if args.key?(:cluster_ipv4_cidr_block)
2324
3259
  @cluster_secondary_range_name = args[:cluster_secondary_range_name] if args.key?(:cluster_secondary_range_name)
2325
3260
  @create_subnetwork = args[:create_subnetwork] if args.key?(:create_subnetwork)
3261
+ @default_pod_ipv4_range_utilization = args[:default_pod_ipv4_range_utilization] if args.key?(:default_pod_ipv4_range_utilization)
2326
3262
  @ipv6_access_type = args[:ipv6_access_type] if args.key?(:ipv6_access_type)
2327
3263
  @node_ipv4_cidr = args[:node_ipv4_cidr] if args.key?(:node_ipv4_cidr)
2328
3264
  @node_ipv4_cidr_block = args[:node_ipv4_cidr_block] if args.key?(:node_ipv4_cidr_block)
3265
+ @pod_cidr_overprovision_config = args[:pod_cidr_overprovision_config] if args.key?(:pod_cidr_overprovision_config)
2329
3266
  @services_ipv4_cidr = args[:services_ipv4_cidr] if args.key?(:services_ipv4_cidr)
2330
3267
  @services_ipv4_cidr_block = args[:services_ipv4_cidr_block] if args.key?(:services_ipv4_cidr_block)
3268
+ @services_ipv6_cidr_block = args[:services_ipv6_cidr_block] if args.key?(:services_ipv6_cidr_block)
2331
3269
  @services_secondary_range_name = args[:services_secondary_range_name] if args.key?(:services_secondary_range_name)
2332
3270
  @stack_type = args[:stack_type] if args.key?(:stack_type)
3271
+ @subnet_ipv6_cidr_block = args[:subnet_ipv6_cidr_block] if args.key?(:subnet_ipv6_cidr_block)
2333
3272
  @subnetwork_name = args[:subnetwork_name] if args.key?(:subnetwork_name)
2334
3273
  @tpu_ipv4_cidr_block = args[:tpu_ipv4_cidr_block] if args.key?(:tpu_ipv4_cidr_block)
2335
3274
  @use_ip_aliases = args[:use_ip_aliases] if args.key?(:use_ip_aliases)
@@ -2337,6 +3276,76 @@ module Google
2337
3276
  end
2338
3277
  end
2339
3278
 
3279
+ # IP endpoints configuration.
3280
+ class IpEndpointsConfig
3281
+ include Google::Apis::Core::Hashable
3282
+
3283
+ # Configuration options for the master authorized networks feature. Enabled
3284
+ # master authorized networks will disallow all external traffic to access
3285
+ # Kubernetes master through HTTPS except traffic from the given CIDR blocks,
3286
+ # Google Compute Engine Public IPs and Google Prod IPs.
3287
+ # Corresponds to the JSON property `authorizedNetworksConfig`
3288
+ # @return [Google::Apis::ContainerV1::MasterAuthorizedNetworksConfig]
3289
+ attr_accessor :authorized_networks_config
3290
+
3291
+ # Controls whether the control plane allows access through a public IP. It is
3292
+ # invalid to specify both PrivateClusterConfig.enablePrivateEndpoint and this
3293
+ # field at the same time.
3294
+ # Corresponds to the JSON property `enablePublicEndpoint`
3295
+ # @return [Boolean]
3296
+ attr_accessor :enable_public_endpoint
3297
+ alias_method :enable_public_endpoint?, :enable_public_endpoint
3298
+
3299
+ # Controls whether to allow direct IP access.
3300
+ # Corresponds to the JSON property `enabled`
3301
+ # @return [Boolean]
3302
+ attr_accessor :enabled
3303
+ alias_method :enabled?, :enabled
3304
+
3305
+ # Controls whether the control plane's private endpoint is accessible from
3306
+ # sources in other regions. It is invalid to specify both
3307
+ # PrivateClusterMasterGlobalAccessConfig.enabled and this field at the same time.
3308
+ # Corresponds to the JSON property `globalAccess`
3309
+ # @return [Boolean]
3310
+ attr_accessor :global_access
3311
+ alias_method :global_access?, :global_access
3312
+
3313
+ # Output only. The internal IP address of this cluster's control plane. Only
3314
+ # populated if enabled.
3315
+ # Corresponds to the JSON property `privateEndpoint`
3316
+ # @return [String]
3317
+ attr_accessor :private_endpoint
3318
+
3319
+ # Subnet to provision the master's private endpoint during cluster creation.
3320
+ # Specified in projects/*/regions/*/subnetworks/* format. It is invalid to
3321
+ # specify both PrivateClusterConfig.privateEndpointSubnetwork and this field at
3322
+ # the same time.
3323
+ # Corresponds to the JSON property `privateEndpointSubnetwork`
3324
+ # @return [String]
3325
+ attr_accessor :private_endpoint_subnetwork
3326
+
3327
+ # Output only. The external IP address of this cluster's control plane. Only
3328
+ # populated if enabled.
3329
+ # Corresponds to the JSON property `publicEndpoint`
3330
+ # @return [String]
3331
+ attr_accessor :public_endpoint
3332
+
3333
+ def initialize(**args)
3334
+ update!(**args)
3335
+ end
3336
+
3337
+ # Update properties of this object
3338
+ def update!(**args)
3339
+ @authorized_networks_config = args[:authorized_networks_config] if args.key?(:authorized_networks_config)
3340
+ @enable_public_endpoint = args[:enable_public_endpoint] if args.key?(:enable_public_endpoint)
3341
+ @enabled = args[:enabled] if args.key?(:enabled)
3342
+ @global_access = args[:global_access] if args.key?(:global_access)
3343
+ @private_endpoint = args[:private_endpoint] if args.key?(:private_endpoint)
3344
+ @private_endpoint_subnetwork = args[:private_endpoint_subnetwork] if args.key?(:private_endpoint_subnetwork)
3345
+ @public_endpoint = args[:public_endpoint] if args.key?(:public_endpoint)
3346
+ end
3347
+ end
3348
+
2340
3349
  # IdentityServiceConfig is configuration for Identity Service which allows
2341
3350
  # customers to use external identity providers with the K8S API
2342
3351
  class IdentityServiceConfig
@@ -2446,6 +3455,25 @@ module Google
2446
3455
  end
2447
3456
  end
2448
3457
 
3458
+ # K8sBetaAPIConfig , configuration for beta APIs
3459
+ class K8sBetaApiConfig
3460
+ include Google::Apis::Core::Hashable
3461
+
3462
+ # Enabled k8s beta APIs.
3463
+ # Corresponds to the JSON property `enabledApis`
3464
+ # @return [Array<String>]
3465
+ attr_accessor :enabled_apis
3466
+
3467
+ def initialize(**args)
3468
+ update!(**args)
3469
+ end
3470
+
3471
+ # Update properties of this object
3472
+ def update!(**args)
3473
+ @enabled_apis = args[:enabled_apis] if args.key?(:enabled_apis)
3474
+ end
3475
+ end
3476
+
2449
3477
  # Configuration for the Kubernetes Dashboard.
2450
3478
  class KubernetesDashboard
2451
3479
  include Google::Apis::Core::Hashable
@@ -2498,11 +3526,16 @@ module Google
2498
3526
  # @return [String]
2499
3527
  attr_accessor :cgroup_mode
2500
3528
 
3529
+ # Hugepages amount in both 2m and 1g size
3530
+ # Corresponds to the JSON property `hugepages`
3531
+ # @return [Google::Apis::ContainerV1::HugepagesConfig]
3532
+ attr_accessor :hugepages
3533
+
2501
3534
  # The Linux kernel parameters to be applied to the nodes and all pods running on
2502
3535
  # the nodes. The following parameters are supported. net.core.busy_poll net.core.
2503
3536
  # busy_read net.core.netdev_max_backlog net.core.rmem_max net.core.wmem_default
2504
3537
  # 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
3538
+ # ipv4.tcp_wmem net.ipv4.tcp_tw_reuse kernel.shmmni kernel.shmmax kernel.shmall
2506
3539
  # Corresponds to the JSON property `sysctls`
2507
3540
  # @return [Hash<String,String>]
2508
3541
  attr_accessor :sysctls
@@ -2514,6 +3547,7 @@ module Google
2514
3547
  # Update properties of this object
2515
3548
  def update!(**args)
2516
3549
  @cgroup_mode = args[:cgroup_mode] if args.key?(:cgroup_mode)
3550
+ @hugepages = args[:hugepages] if args.key?(:hugepages)
2517
3551
  @sysctls = args[:sysctls] if args.key?(:sysctls)
2518
3552
  end
2519
3553
  end
@@ -2618,15 +3652,22 @@ module Google
2618
3652
  end
2619
3653
 
2620
3654
  # LocalNvmeSsdBlockConfig contains configuration for using raw-block local NVMe
2621
- # SSD.
3655
+ # SSDs
2622
3656
  class LocalNvmeSsdBlockConfig
2623
3657
  include Google::Apis::Core::Hashable
2624
3658
 
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.
3659
+ # Number of local NVMe SSDs to use. The limit for this value is dependent upon
3660
+ # the maximum number of disk available on a machine per zone. See: https://cloud.
3661
+ # google.com/compute/docs/disks/local-ssd for more information. A zero (or unset)
3662
+ # value has different meanings depending on machine type being used: 1. For pre-
3663
+ # Gen3 machines, which support flexible numbers of local ssds, zero (or unset)
3664
+ # means to disable using local SSDs as ephemeral storage. 2. For Gen3 machines
3665
+ # which dictate a specific number of local ssds, zero (or unset) means to use
3666
+ # the default number of local ssds that goes with that machine type. For example,
3667
+ # for a c3-standard-8-lssd machine, 2 local ssds would be provisioned. For c3-
3668
+ # standard-8 (which doesn't support local ssds), 0 will be provisioned. See
3669
+ # https://cloud.google.com/compute/docs/disks/local-ssd#choose_number_local_ssds
3670
+ # for more info.
2630
3671
  # Corresponds to the JSON property `localSsdCount`
2631
3672
  # @return [Fixnum]
2632
3673
  attr_accessor :local_ssd_count
@@ -2804,8 +3845,8 @@ module Google
2804
3845
  class MasterAuth
2805
3846
  include Google::Apis::Core::Hashable
2806
3847
 
2807
- # [Output only] Base64-encoded public certificate used by clients to
2808
- # authenticate to the cluster endpoint.
3848
+ # Output only. Base64-encoded public certificate used by clients to authenticate
3849
+ # to the cluster endpoint. Issued only if client_certificate_config is set.
2809
3850
  # Corresponds to the JSON property `clientCertificate`
2810
3851
  # @return [String]
2811
3852
  attr_accessor :client_certificate
@@ -2815,13 +3856,13 @@ module Google
2815
3856
  # @return [Google::Apis::ContainerV1::ClientCertificateConfig]
2816
3857
  attr_accessor :client_certificate_config
2817
3858
 
2818
- # [Output only] Base64-encoded private key used by clients to authenticate to
2819
- # the cluster endpoint.
3859
+ # Output only. Base64-encoded private key used by clients to authenticate to the
3860
+ # cluster endpoint.
2820
3861
  # Corresponds to the JSON property `clientKey`
2821
3862
  # @return [String]
2822
3863
  attr_accessor :client_key
2823
3864
 
2824
- # [Output only] Base64-encoded public certificate that is the root of trust for
3865
+ # Output only. Base64-encoded public certificate that is the root of trust for
2825
3866
  # the cluster.
2826
3867
  # Corresponds to the JSON property `clusterCaCertificate`
2827
3868
  # @return [String]
@@ -2889,6 +3930,12 @@ module Google
2889
3930
  attr_accessor :gcp_public_cidrs_access_enabled
2890
3931
  alias_method :gcp_public_cidrs_access_enabled?, :gcp_public_cidrs_access_enabled
2891
3932
 
3933
+ # Whether master authorized networks is enforced on private endpoint or not.
3934
+ # Corresponds to the JSON property `privateEndpointEnforcementEnabled`
3935
+ # @return [Boolean]
3936
+ attr_accessor :private_endpoint_enforcement_enabled
3937
+ alias_method :private_endpoint_enforcement_enabled?, :private_endpoint_enforcement_enabled
3938
+
2892
3939
  def initialize(**args)
2893
3940
  update!(**args)
2894
3941
  end
@@ -2898,6 +3945,7 @@ module Google
2898
3945
  @cidr_blocks = args[:cidr_blocks] if args.key?(:cidr_blocks)
2899
3946
  @enabled = args[:enabled] if args.key?(:enabled)
2900
3947
  @gcp_public_cidrs_access_enabled = args[:gcp_public_cidrs_access_enabled] if args.key?(:gcp_public_cidrs_access_enabled)
3948
+ @private_endpoint_enforcement_enabled = args[:private_endpoint_enforcement_enabled] if args.key?(:private_endpoint_enforcement_enabled)
2901
3949
  end
2902
3950
  end
2903
3951
 
@@ -3005,6 +4053,12 @@ module Google
3005
4053
  class MonitoringConfig
3006
4054
  include Google::Apis::Core::Hashable
3007
4055
 
4056
+ # AdvancedDatapathObservabilityConfig specifies configuration of observability
4057
+ # features of advanced datapath.
4058
+ # Corresponds to the JSON property `advancedDatapathObservabilityConfig`
4059
+ # @return [Google::Apis::ContainerV1::AdvancedDatapathObservabilityConfig]
4060
+ attr_accessor :advanced_datapath_observability_config
4061
+
3008
4062
  # MonitoringComponentConfig is cluster monitoring component configuration.
3009
4063
  # Corresponds to the JSON property `componentConfig`
3010
4064
  # @return [Google::Apis::ContainerV1::MonitoringComponentConfig]
@@ -3022,6 +4076,7 @@ module Google
3022
4076
 
3023
4077
  # Update properties of this object
3024
4078
  def update!(**args)
4079
+ @advanced_datapath_observability_config = args[:advanced_datapath_observability_config] if args.key?(:advanced_datapath_observability_config)
3025
4080
  @component_config = args[:component_config] if args.key?(:component_config)
3026
4081
  @managed_prometheus_config = args[:managed_prometheus_config] if args.key?(:managed_prometheus_config)
3027
4082
  end
@@ -3037,17 +4092,44 @@ module Google
3037
4092
  # @return [String]
3038
4093
  attr_accessor :datapath_provider
3039
4094
 
4095
+ # Controls whether by default nodes have private IP addresses only. It is
4096
+ # invalid to specify both PrivateClusterConfig.enablePrivateNodes and this field
4097
+ # at the same time. To update the default setting, use ClusterUpdate.
4098
+ # desired_default_enable_private_nodes
4099
+ # Corresponds to the JSON property `defaultEnablePrivateNodes`
4100
+ # @return [Boolean]
4101
+ attr_accessor :default_enable_private_nodes
4102
+ alias_method :default_enable_private_nodes?, :default_enable_private_nodes
4103
+
3040
4104
  # DefaultSnatStatus contains the desired state of whether default sNAT should be
3041
4105
  # disabled on the cluster.
3042
4106
  # Corresponds to the JSON property `defaultSnatStatus`
3043
4107
  # @return [Google::Apis::ContainerV1::DefaultSnatStatus]
3044
4108
  attr_accessor :default_snat_status
3045
4109
 
4110
+ # Disable L4 load balancer VPC firewalls to enable firewall policies.
4111
+ # Corresponds to the JSON property `disableL4LbFirewallReconciliation`
4112
+ # @return [Boolean]
4113
+ attr_accessor :disable_l4_lb_firewall_reconciliation
4114
+ alias_method :disable_l4_lb_firewall_reconciliation?, :disable_l4_lb_firewall_reconciliation
4115
+
3046
4116
  # DNSConfig contains the desired set of options for configuring clusterDNS.
3047
4117
  # Corresponds to the JSON property `dnsConfig`
3048
4118
  # @return [Google::Apis::ContainerV1::DnsConfig]
3049
4119
  attr_accessor :dns_config
3050
4120
 
4121
+ # Whether CiliumClusterwideNetworkPolicy is enabled on this cluster.
4122
+ # Corresponds to the JSON property `enableCiliumClusterwideNetworkPolicy`
4123
+ # @return [Boolean]
4124
+ attr_accessor :enable_cilium_clusterwide_network_policy
4125
+ alias_method :enable_cilium_clusterwide_network_policy?, :enable_cilium_clusterwide_network_policy
4126
+
4127
+ # Whether FQDN Network Policy is enabled on this cluster.
4128
+ # Corresponds to the JSON property `enableFqdnNetworkPolicy`
4129
+ # @return [Boolean]
4130
+ attr_accessor :enable_fqdn_network_policy
4131
+ alias_method :enable_fqdn_network_policy?, :enable_fqdn_network_policy
4132
+
3051
4133
  # Whether Intra-node visibility is enabled for this cluster. This makes same
3052
4134
  # node pod to pod traffic visible for VPC network.
3053
4135
  # Corresponds to the JSON property `enableIntraNodeVisibility`
@@ -3061,11 +4143,23 @@ module Google
3061
4143
  attr_accessor :enable_l4ilb_subsetting
3062
4144
  alias_method :enable_l4ilb_subsetting?, :enable_l4ilb_subsetting
3063
4145
 
4146
+ # Whether multi-networking is enabled for this cluster.
4147
+ # Corresponds to the JSON property `enableMultiNetworking`
4148
+ # @return [Boolean]
4149
+ attr_accessor :enable_multi_networking
4150
+ alias_method :enable_multi_networking?, :enable_multi_networking
4151
+
3064
4152
  # GatewayAPIConfig contains the desired config of Gateway API on this cluster.
3065
4153
  # Corresponds to the JSON property `gatewayApiConfig`
3066
4154
  # @return [Google::Apis::ContainerV1::GatewayApiConfig]
3067
4155
  attr_accessor :gateway_api_config
3068
4156
 
4157
+ # Specify the details of in-transit encryption. Now named inter-node transparent
4158
+ # encryption.
4159
+ # Corresponds to the JSON property `inTransitEncryptionConfig`
4160
+ # @return [String]
4161
+ attr_accessor :in_transit_encryption_config
4162
+
3069
4163
  # Output only. The relative name of the Google Compute Engine network(https://
3070
4164
  # cloud.google.com/compute/docs/networks-and-firewalls#networks) to which the
3071
4165
  # cluster is connected. Example: projects/my-project/global/networks/my-network
@@ -3073,6 +4167,11 @@ module Google
3073
4167
  # @return [String]
3074
4168
  attr_accessor :network
3075
4169
 
4170
+ # Configuration of network bandwidth tiers
4171
+ # Corresponds to the JSON property `networkPerformanceConfig`
4172
+ # @return [Google::Apis::ContainerV1::ClusterNetworkPerformanceConfig]
4173
+ attr_accessor :network_performance_config
4174
+
3076
4175
  # The desired state of IPv6 connectivity to Google Services. By default, no
3077
4176
  # private IPv6 access to or from Google Services (all access will be via IPv4)
3078
4177
  # Corresponds to the JSON property `privateIpv6GoogleAccess`
@@ -3098,12 +4197,19 @@ module Google
3098
4197
  # Update properties of this object
3099
4198
  def update!(**args)
3100
4199
  @datapath_provider = args[:datapath_provider] if args.key?(:datapath_provider)
4200
+ @default_enable_private_nodes = args[:default_enable_private_nodes] if args.key?(:default_enable_private_nodes)
3101
4201
  @default_snat_status = args[:default_snat_status] if args.key?(:default_snat_status)
4202
+ @disable_l4_lb_firewall_reconciliation = args[:disable_l4_lb_firewall_reconciliation] if args.key?(:disable_l4_lb_firewall_reconciliation)
3102
4203
  @dns_config = args[:dns_config] if args.key?(:dns_config)
4204
+ @enable_cilium_clusterwide_network_policy = args[:enable_cilium_clusterwide_network_policy] if args.key?(:enable_cilium_clusterwide_network_policy)
4205
+ @enable_fqdn_network_policy = args[:enable_fqdn_network_policy] if args.key?(:enable_fqdn_network_policy)
3103
4206
  @enable_intra_node_visibility = args[:enable_intra_node_visibility] if args.key?(:enable_intra_node_visibility)
3104
4207
  @enable_l4ilb_subsetting = args[:enable_l4ilb_subsetting] if args.key?(:enable_l4ilb_subsetting)
4208
+ @enable_multi_networking = args[:enable_multi_networking] if args.key?(:enable_multi_networking)
3105
4209
  @gateway_api_config = args[:gateway_api_config] if args.key?(:gateway_api_config)
4210
+ @in_transit_encryption_config = args[:in_transit_encryption_config] if args.key?(:in_transit_encryption_config)
3106
4211
  @network = args[:network] if args.key?(:network)
4212
+ @network_performance_config = args[:network_performance_config] if args.key?(:network_performance_config)
3107
4213
  @private_ipv6_google_access = args[:private_ipv6_google_access] if args.key?(:private_ipv6_google_access)
3108
4214
  @service_external_ips_config = args[:service_external_ips_config] if args.key?(:service_external_ips_config)
3109
4215
  @subnetwork = args[:subnetwork] if args.key?(:subnetwork)
@@ -3174,19 +4280,50 @@ module Google
3174
4280
 
3175
4281
  # Update properties of this object
3176
4282
  def update!(**args)
3177
- @disabled = args[:disabled] if args.key?(:disabled)
4283
+ @disabled = args[:disabled] if args.key?(:disabled)
4284
+ end
4285
+ end
4286
+
4287
+ # Collection of Compute Engine network tags that can be applied to a node's
4288
+ # underlying VM instance.
4289
+ class NetworkTags
4290
+ include Google::Apis::Core::Hashable
4291
+
4292
+ # List of network tags.
4293
+ # Corresponds to the JSON property `tags`
4294
+ # @return [Array<String>]
4295
+ attr_accessor :tags
4296
+
4297
+ def initialize(**args)
4298
+ update!(**args)
4299
+ end
4300
+
4301
+ # Update properties of this object
4302
+ def update!(**args)
4303
+ @tags = args[:tags] if args.key?(:tags)
3178
4304
  end
3179
4305
  end
3180
4306
 
3181
- # Collection of Compute Engine network tags that can be applied to a node's
3182
- # underlying VM instance.
3183
- class NetworkTags
4307
+ # Specifies the NodeAffinity key, values, and affinity operator according to [
4308
+ # shared sole tenant node group affinities](https://cloud.google.com/compute/
4309
+ # docs/nodes/sole-tenant-nodes#node_affinity_and_anti-affinity).
4310
+ class NodeAffinity
3184
4311
  include Google::Apis::Core::Hashable
3185
4312
 
3186
- # List of network tags.
3187
- # Corresponds to the JSON property `tags`
4313
+ # Key for NodeAffinity.
4314
+ # Corresponds to the JSON property `key`
4315
+ # @return [String]
4316
+ attr_accessor :key
4317
+
4318
+ # Operator for NodeAffinity.
4319
+ # Corresponds to the JSON property `operator`
4320
+ # @return [String]
4321
+ attr_accessor :operator
4322
+
4323
+ # Values for NodeAffinity.
4324
+ # Corresponds to the JSON property `values`
3188
4325
  # @return [Array<String>]
3189
- attr_accessor :tags
4326
+ attr_accessor :values
3190
4327
 
3191
4328
  def initialize(**args)
3192
4329
  update!(**args)
@@ -3194,7 +4331,9 @@ module Google
3194
4331
 
3195
4332
  # Update properties of this object
3196
4333
  def update!(**args)
3197
- @tags = args[:tags] if args.key?(:tags)
4334
+ @key = args[:key] if args.key?(:key)
4335
+ @operator = args[:operator] if args.key?(:operator)
4336
+ @values = args[:values] if args.key?(:values)
3198
4337
  end
3199
4338
  end
3200
4339
 
@@ -3230,6 +4369,11 @@ module Google
3230
4369
  # @return [Google::Apis::ContainerV1::ConfidentialNodes]
3231
4370
  attr_accessor :confidential_nodes
3232
4371
 
4372
+ # ContainerdConfig contains configuration to customize containerd.
4373
+ # Corresponds to the JSON property `containerdConfig`
4374
+ # @return [Google::Apis::ContainerV1::ContainerdConfig]
4375
+ attr_accessor :containerd_config
4376
+
3233
4377
  # Size of the disk attached to each node, specified in GB. The smallest allowed
3234
4378
  # disk size is 10GB. If unspecified, the default disk size is 100GB.
3235
4379
  # Corresponds to the JSON property `diskSizeGb`
@@ -3242,8 +4386,22 @@ module Google
3242
4386
  # @return [String]
3243
4387
  attr_accessor :disk_type
3244
4388
 
4389
+ # Output only. effective_cgroup_mode is the cgroup mode actually used by the
4390
+ # node pool. It is determined by the cgroup mode specified in the
4391
+ # LinuxNodeConfig or the default cgroup mode based on the cluster creation
4392
+ # version.
4393
+ # Corresponds to the JSON property `effectiveCgroupMode`
4394
+ # @return [String]
4395
+ attr_accessor :effective_cgroup_mode
4396
+
4397
+ # Optional. Reserved for future use.
4398
+ # Corresponds to the JSON property `enableConfidentialStorage`
4399
+ # @return [Boolean]
4400
+ attr_accessor :enable_confidential_storage
4401
+ alias_method :enable_confidential_storage?, :enable_confidential_storage
4402
+
3245
4403
  # EphemeralStorageLocalSsdConfig contains configuration for the node ephemeral
3246
- # storage using Local SSD.
4404
+ # storage using Local SSDs.
3247
4405
  # Corresponds to the JSON property `ephemeralStorageLocalSsdConfig`
3248
4406
  # @return [Google::Apis::ContainerV1::EphemeralStorageLocalSsdConfig]
3249
4407
  attr_accessor :ephemeral_storage_local_ssd_config
@@ -3265,7 +4423,8 @@ module Google
3265
4423
  attr_accessor :gvnic
3266
4424
 
3267
4425
  # The image type to use for this node. Note that for a given image type, the
3268
- # latest version of it will be used.
4426
+ # latest version of it will be used. Please see https://cloud.google.com/
4427
+ # kubernetes-engine/docs/concepts/node-images for available image types.
3269
4428
  # Corresponds to the JSON property `imageType`
3270
4429
  # @return [String]
3271
4430
  attr_accessor :image_type
@@ -3292,7 +4451,7 @@ module Google
3292
4451
  attr_accessor :linux_node_config
3293
4452
 
3294
4453
  # LocalNvmeSsdBlockConfig contains configuration for using raw-block local NVMe
3295
- # SSD.
4454
+ # SSDs
3296
4455
  # Corresponds to the JSON property `localNvmeSsdBlockConfig`
3297
4456
  # @return [Google::Apis::ContainerV1::LocalNvmeSsdBlockConfig]
3298
4457
  attr_accessor :local_nvme_ssd_block_config
@@ -3305,6 +4464,12 @@ module Google
3305
4464
  # @return [Fixnum]
3306
4465
  attr_accessor :local_ssd_count
3307
4466
 
4467
+ # Specifies which method should be used for encrypting the Local SSDs attahced
4468
+ # to the node.
4469
+ # Corresponds to the JSON property `localSsdEncryptionMode`
4470
+ # @return [String]
4471
+ attr_accessor :local_ssd_encryption_mode
4472
+
3308
4473
  # NodePoolLoggingConfig specifies logging configuration for nodepools.
3309
4474
  # Corresponds to the JSON property `loggingConfig`
3310
4475
  # @return [Google::Apis::ContainerV1::NodePoolLoggingConfig]
@@ -3317,6 +4482,12 @@ module Google
3317
4482
  # @return [String]
3318
4483
  attr_accessor :machine_type
3319
4484
 
4485
+ # The maximum duration for the nodes to exist. If unspecified, the nodes can
4486
+ # exist indefinitely.
4487
+ # Corresponds to the JSON property `maxRunDuration`
4488
+ # @return [String]
4489
+ attr_accessor :max_run_duration
4490
+
3320
4491
  # The metadata key/value pairs assigned to instances in the cluster. Keys must
3321
4492
  # conform to the regexp `[a-zA-Z0-9-_]+` and be less than 128 bytes in length.
3322
4493
  # These are reflected as part of a URL in the metadata server. Additionally, to
@@ -3386,11 +4557,31 @@ module Google
3386
4557
  # @return [Hash<String,String>]
3387
4558
  attr_accessor :resource_labels
3388
4559
 
4560
+ # A map of resource manager tag keys and values to be attached to the nodes for
4561
+ # managing Compute Engine firewalls using Network Firewall Policies. Tags must
4562
+ # be according to specifications in https://cloud.google.com/vpc/docs/tags-
4563
+ # firewalls-overview#specifications. A maximum of 5 tag key-value pairs can be
4564
+ # specified. Existing tags will be replaced with new values.
4565
+ # Corresponds to the JSON property `resourceManagerTags`
4566
+ # @return [Google::Apis::ContainerV1::ResourceManagerTags]
4567
+ attr_accessor :resource_manager_tags
4568
+
3389
4569
  # SandboxConfig contains configurations of the sandbox to use for the node.
3390
4570
  # Corresponds to the JSON property `sandboxConfig`
3391
4571
  # @return [Google::Apis::ContainerV1::SandboxConfig]
3392
4572
  attr_accessor :sandbox_config
3393
4573
 
4574
+ # SecondaryBootDiskUpdateStrategy is a placeholder which will be extended in the
4575
+ # future to define different options for updating secondary boot disks.
4576
+ # Corresponds to the JSON property `secondaryBootDiskUpdateStrategy`
4577
+ # @return [Google::Apis::ContainerV1::SecondaryBootDiskUpdateStrategy]
4578
+ attr_accessor :secondary_boot_disk_update_strategy
4579
+
4580
+ # List of secondary boot disks attached to the nodes.
4581
+ # Corresponds to the JSON property `secondaryBootDisks`
4582
+ # @return [Array<Google::Apis::ContainerV1::SecondaryBootDisk>]
4583
+ attr_accessor :secondary_boot_disks
4584
+
3394
4585
  # The Google Cloud Platform Service Account to be used by the node VMs. Specify
3395
4586
  # the email address of the Service Account; otherwise, if no Service Account is
3396
4587
  # specified, the "default" service account is used.
@@ -3403,6 +4594,12 @@ module Google
3403
4594
  # @return [Google::Apis::ContainerV1::ShieldedInstanceConfig]
3404
4595
  attr_accessor :shielded_instance_config
3405
4596
 
4597
+ # SoleTenantConfig contains the NodeAffinities to specify what shared sole
4598
+ # tenant node groups should back the node pool.
4599
+ # Corresponds to the JSON property `soleTenantConfig`
4600
+ # @return [Google::Apis::ContainerV1::SoleTenantConfig]
4601
+ attr_accessor :sole_tenant_config
4602
+
3406
4603
  # Spot flag for enabling Spot VM, which is a rebrand of the existing preemptible
3407
4604
  # flag.
3408
4605
  # Corresponds to the JSON property `spot`
@@ -3410,6 +4607,11 @@ module Google
3410
4607
  attr_accessor :spot
3411
4608
  alias_method :spot?, :spot
3412
4609
 
4610
+ # List of Storage Pools where boot disks are provisioned.
4611
+ # Corresponds to the JSON property `storagePools`
4612
+ # @return [Array<String>]
4613
+ attr_accessor :storage_pools
4614
+
3413
4615
  # The list of instance tags applied to all nodes. Tags are used to identify
3414
4616
  # valid sources or targets for network firewalls and are specified by the client
3415
4617
  # during cluster or node pool creation. Each tag within the list must comply
@@ -3448,8 +4650,11 @@ module Google
3448
4650
  @advanced_machine_features = args[:advanced_machine_features] if args.key?(:advanced_machine_features)
3449
4651
  @boot_disk_kms_key = args[:boot_disk_kms_key] if args.key?(:boot_disk_kms_key)
3450
4652
  @confidential_nodes = args[:confidential_nodes] if args.key?(:confidential_nodes)
4653
+ @containerd_config = args[:containerd_config] if args.key?(:containerd_config)
3451
4654
  @disk_size_gb = args[:disk_size_gb] if args.key?(:disk_size_gb)
3452
4655
  @disk_type = args[:disk_type] if args.key?(:disk_type)
4656
+ @effective_cgroup_mode = args[:effective_cgroup_mode] if args.key?(:effective_cgroup_mode)
4657
+ @enable_confidential_storage = args[:enable_confidential_storage] if args.key?(:enable_confidential_storage)
3453
4658
  @ephemeral_storage_local_ssd_config = args[:ephemeral_storage_local_ssd_config] if args.key?(:ephemeral_storage_local_ssd_config)
3454
4659
  @fast_socket = args[:fast_socket] if args.key?(:fast_socket)
3455
4660
  @gcfs_config = args[:gcfs_config] if args.key?(:gcfs_config)
@@ -3460,8 +4665,10 @@ module Google
3460
4665
  @linux_node_config = args[:linux_node_config] if args.key?(:linux_node_config)
3461
4666
  @local_nvme_ssd_block_config = args[:local_nvme_ssd_block_config] if args.key?(:local_nvme_ssd_block_config)
3462
4667
  @local_ssd_count = args[:local_ssd_count] if args.key?(:local_ssd_count)
4668
+ @local_ssd_encryption_mode = args[:local_ssd_encryption_mode] if args.key?(:local_ssd_encryption_mode)
3463
4669
  @logging_config = args[:logging_config] if args.key?(:logging_config)
3464
4670
  @machine_type = args[:machine_type] if args.key?(:machine_type)
4671
+ @max_run_duration = args[:max_run_duration] if args.key?(:max_run_duration)
3465
4672
  @metadata = args[:metadata] if args.key?(:metadata)
3466
4673
  @min_cpu_platform = args[:min_cpu_platform] if args.key?(:min_cpu_platform)
3467
4674
  @node_group = args[:node_group] if args.key?(:node_group)
@@ -3469,10 +4676,15 @@ module Google
3469
4676
  @preemptible = args[:preemptible] if args.key?(:preemptible)
3470
4677
  @reservation_affinity = args[:reservation_affinity] if args.key?(:reservation_affinity)
3471
4678
  @resource_labels = args[:resource_labels] if args.key?(:resource_labels)
4679
+ @resource_manager_tags = args[:resource_manager_tags] if args.key?(:resource_manager_tags)
3472
4680
  @sandbox_config = args[:sandbox_config] if args.key?(:sandbox_config)
4681
+ @secondary_boot_disk_update_strategy = args[:secondary_boot_disk_update_strategy] if args.key?(:secondary_boot_disk_update_strategy)
4682
+ @secondary_boot_disks = args[:secondary_boot_disks] if args.key?(:secondary_boot_disks)
3473
4683
  @service_account = args[:service_account] if args.key?(:service_account)
3474
4684
  @shielded_instance_config = args[:shielded_instance_config] if args.key?(:shielded_instance_config)
4685
+ @sole_tenant_config = args[:sole_tenant_config] if args.key?(:sole_tenant_config)
3475
4686
  @spot = args[:spot] if args.key?(:spot)
4687
+ @storage_pools = args[:storage_pools] if args.key?(:storage_pools)
3476
4688
  @tags = args[:tags] if args.key?(:tags)
3477
4689
  @taints = args[:taints] if args.key?(:taints)
3478
4690
  @windows_node_config = args[:windows_node_config] if args.key?(:windows_node_config)
@@ -3484,6 +4696,11 @@ module Google
3484
4696
  class NodeConfigDefaults
3485
4697
  include Google::Apis::Core::Hashable
3486
4698
 
4699
+ # ContainerdConfig contains configuration to customize containerd.
4700
+ # Corresponds to the JSON property `containerdConfig`
4701
+ # @return [Google::Apis::ContainerV1::ContainerdConfig]
4702
+ attr_accessor :containerd_config
4703
+
3487
4704
  # GcfsConfig contains configurations of Google Container File System (image
3488
4705
  # streaming).
3489
4706
  # Corresponds to the JSON property `gcfsConfig`
@@ -3495,14 +4712,21 @@ module Google
3495
4712
  # @return [Google::Apis::ContainerV1::NodePoolLoggingConfig]
3496
4713
  attr_accessor :logging_config
3497
4714
 
4715
+ # Node kubelet configs.
4716
+ # Corresponds to the JSON property `nodeKubeletConfig`
4717
+ # @return [Google::Apis::ContainerV1::NodeKubeletConfig]
4718
+ attr_accessor :node_kubelet_config
4719
+
3498
4720
  def initialize(**args)
3499
4721
  update!(**args)
3500
4722
  end
3501
4723
 
3502
4724
  # Update properties of this object
3503
4725
  def update!(**args)
4726
+ @containerd_config = args[:containerd_config] if args.key?(:containerd_config)
3504
4727
  @gcfs_config = args[:gcfs_config] if args.key?(:gcfs_config)
3505
4728
  @logging_config = args[:logging_config] if args.key?(:logging_config)
4729
+ @node_kubelet_config = args[:node_kubelet_config] if args.key?(:node_kubelet_config)
3506
4730
  end
3507
4731
  end
3508
4732
 
@@ -3540,6 +4764,12 @@ module Google
3540
4764
  # @return [String]
3541
4765
  attr_accessor :cpu_manager_policy
3542
4766
 
4767
+ # Enable or disable Kubelet read only port.
4768
+ # Corresponds to the JSON property `insecureKubeletReadonlyPortEnabled`
4769
+ # @return [Boolean]
4770
+ attr_accessor :insecure_kubelet_readonly_port_enabled
4771
+ alias_method :insecure_kubelet_readonly_port_enabled?, :insecure_kubelet_readonly_port_enabled
4772
+
3543
4773
  # Set the Pod PID limits. See https://kubernetes.io/docs/concepts/policy/pid-
3544
4774
  # limiting/#pod-pid-limits Controls the maximum number of processes allowed to
3545
4775
  # run in a pod. The value must be greater than or equal to 1024 and less than
@@ -3557,6 +4787,7 @@ module Google
3557
4787
  @cpu_cfs_quota = args[:cpu_cfs_quota] if args.key?(:cpu_cfs_quota)
3558
4788
  @cpu_cfs_quota_period = args[:cpu_cfs_quota_period] if args.key?(:cpu_cfs_quota_period)
3559
4789
  @cpu_manager_policy = args[:cpu_manager_policy] if args.key?(:cpu_manager_policy)
4790
+ @insecure_kubelet_readonly_port_enabled = args[:insecure_kubelet_readonly_port_enabled] if args.key?(:insecure_kubelet_readonly_port_enabled)
3560
4791
  @pod_pids_limit = args[:pod_pids_limit] if args.key?(:pod_pids_limit)
3561
4792
  end
3562
4793
  end
@@ -3625,6 +4856,18 @@ module Google
3625
4856
  class NodeNetworkConfig
3626
4857
  include Google::Apis::Core::Hashable
3627
4858
 
4859
+ # We specify the additional node networks for this node pool using this list.
4860
+ # Each node network corresponds to an additional interface
4861
+ # Corresponds to the JSON property `additionalNodeNetworkConfigs`
4862
+ # @return [Array<Google::Apis::ContainerV1::AdditionalNodeNetworkConfig>]
4863
+ attr_accessor :additional_node_network_configs
4864
+
4865
+ # We specify the additional pod networks for this node pool using this list.
4866
+ # Each pod network corresponds to an additional alias IP range for the node
4867
+ # Corresponds to the JSON property `additionalPodNetworkConfigs`
4868
+ # @return [Array<Google::Apis::ContainerV1::AdditionalPodNetworkConfig>]
4869
+ attr_accessor :additional_pod_network_configs
4870
+
3628
4871
  # Input only. Whether to create a new range for pod IPs in this node pool.
3629
4872
  # Defaults are provided for `pod_range` and `pod_ipv4_cidr_block` if they are
3630
4873
  # not specified. If neither `create_pod_range` or `pod_range` are specified, the
@@ -3637,8 +4880,8 @@ module Google
3637
4880
  alias_method :create_pod_range?, :create_pod_range
3638
4881
 
3639
4882
  # 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
4883
+ # specified, then the value is derived from Cluster.NetworkConfig.
4884
+ # default_enable_private_nodes
3642
4885
  # Corresponds to the JSON property `enablePrivateNodes`
3643
4886
  # @return [Boolean]
3644
4887
  attr_accessor :enable_private_nodes
@@ -3649,6 +4892,11 @@ module Google
3649
4892
  # @return [Google::Apis::ContainerV1::NetworkPerformanceConfig]
3650
4893
  attr_accessor :network_performance_config
3651
4894
 
4895
+ # [PRIVATE FIELD] Config for pod CIDR size overprovisioning.
4896
+ # Corresponds to the JSON property `podCidrOverprovisionConfig`
4897
+ # @return [Google::Apis::ContainerV1::PodCidrOverprovisionConfig]
4898
+ attr_accessor :pod_cidr_overprovision_config
4899
+
3652
4900
  # The IP address range for pod IPs in this node pool. Only applicable if `
3653
4901
  # create_pod_range` is true. Set to blank to have a range chosen with the
3654
4902
  # default size. Set to /netmask (e.g. `/14`) to have a range chosen with a
@@ -3660,6 +4908,13 @@ module Google
3660
4908
  # @return [String]
3661
4909
  attr_accessor :pod_ipv4_cidr_block
3662
4910
 
4911
+ # Output only. The utilization of the IPv4 range for the pod. The ratio is Usage/
4912
+ # [Total number of IPs in the secondary range], Usage=numNodes*numZones*
4913
+ # podIPsPerNode.
4914
+ # Corresponds to the JSON property `podIpv4RangeUtilization`
4915
+ # @return [Float]
4916
+ attr_accessor :pod_ipv4_range_utilization
4917
+
3663
4918
  # The ID of the secondary range for pod IPs. If `create_pod_range` is true, this
3664
4919
  # ID is used for the new range. If `create_pod_range` is false, uses an existing
3665
4920
  # secondary range with this ID. Only applicable if `ip_allocation_policy.
@@ -3675,10 +4930,14 @@ module Google
3675
4930
 
3676
4931
  # Update properties of this object
3677
4932
  def update!(**args)
4933
+ @additional_node_network_configs = args[:additional_node_network_configs] if args.key?(:additional_node_network_configs)
4934
+ @additional_pod_network_configs = args[:additional_pod_network_configs] if args.key?(:additional_pod_network_configs)
3678
4935
  @create_pod_range = args[:create_pod_range] if args.key?(:create_pod_range)
3679
4936
  @enable_private_nodes = args[:enable_private_nodes] if args.key?(:enable_private_nodes)
3680
4937
  @network_performance_config = args[:network_performance_config] if args.key?(:network_performance_config)
4938
+ @pod_cidr_overprovision_config = args[:pod_cidr_overprovision_config] if args.key?(:pod_cidr_overprovision_config)
3681
4939
  @pod_ipv4_cidr_block = args[:pod_ipv4_cidr_block] if args.key?(:pod_ipv4_cidr_block)
4940
+ @pod_ipv4_range_utilization = args[:pod_ipv4_range_utilization] if args.key?(:pod_ipv4_range_utilization)
3682
4941
  @pod_range = args[:pod_range] if args.key?(:pod_range)
3683
4942
  end
3684
4943
  end
@@ -3698,6 +4957,11 @@ module Google
3698
4957
  # @return [Google::Apis::ContainerV1::NodePoolAutoscaling]
3699
4958
  attr_accessor :autoscaling
3700
4959
 
4960
+ # Best effort provisioning.
4961
+ # Corresponds to the JSON property `bestEffortProvisioning`
4962
+ # @return [Google::Apis::ContainerV1::BestEffortProvisioning]
4963
+ attr_accessor :best_effort_provisioning
4964
+
3701
4965
  # Which conditions caused the current node pool state.
3702
4966
  # Corresponds to the JSON property `conditions`
3703
4967
  # @return [Array<Google::Apis::ContainerV1::StatusCondition>]
@@ -3725,7 +4989,7 @@ module Google
3725
4989
  # @return [Fixnum]
3726
4990
  attr_accessor :initial_node_count
3727
4991
 
3728
- # [Output only] The resource URLs of the [managed instance groups](https://cloud.
4992
+ # Output only. The resource URLs of the [managed instance groups](https://cloud.
3729
4993
  # google.com/compute/docs/instance-groups/creating-groups-of-managed-instances)
3730
4994
  # associated with this node pool. During the node pool blue-green upgrade
3731
4995
  # operation, the URLs contain both blue and green resources.
@@ -3769,22 +5033,27 @@ module Google
3769
5033
  # @return [Google::Apis::ContainerV1::PlacementPolicy]
3770
5034
  attr_accessor :placement_policy
3771
5035
 
3772
- # [Output only] The pod CIDR block size per node in this node pool.
5036
+ # Output only. The pod CIDR block size per node in this node pool.
3773
5037
  # Corresponds to the JSON property `podIpv4CidrSize`
3774
5038
  # @return [Fixnum]
3775
5039
  attr_accessor :pod_ipv4_cidr_size
3776
5040
 
3777
- # [Output only] Server-defined URL for the resource.
5041
+ # QueuedProvisioning defines the queued provisioning used by the node pool.
5042
+ # Corresponds to the JSON property `queuedProvisioning`
5043
+ # @return [Google::Apis::ContainerV1::QueuedProvisioning]
5044
+ attr_accessor :queued_provisioning
5045
+
5046
+ # Output only. Server-defined URL for the resource.
3778
5047
  # Corresponds to the JSON property `selfLink`
3779
5048
  # @return [String]
3780
5049
  attr_accessor :self_link
3781
5050
 
3782
- # [Output only] The status of the nodes in this pool instance.
5051
+ # Output only. The status of the nodes in this pool instance.
3783
5052
  # Corresponds to the JSON property `status`
3784
5053
  # @return [String]
3785
5054
  attr_accessor :status
3786
5055
 
3787
- # [Output only] Deprecated. Use conditions instead. Additional information about
5056
+ # Output only. Deprecated. Use conditions instead. Additional information about
3788
5057
  # the current status of this node pool instance, if available.
3789
5058
  # Corresponds to the JSON property `statusMessage`
3790
5059
  # @return [String]
@@ -3831,7 +5100,9 @@ module Google
3831
5100
  # @return [Google::Apis::ContainerV1::UpgradeSettings]
3832
5101
  attr_accessor :upgrade_settings
3833
5102
 
3834
- # The version of the Kubernetes of this node.
5103
+ # The version of Kubernetes running on this NodePool's nodes. If unspecified, it
5104
+ # defaults as described [here](https://cloud.google.com/kubernetes-engine/
5105
+ # versioning#specifying_node_version).
3835
5106
  # Corresponds to the JSON property `version`
3836
5107
  # @return [String]
3837
5108
  attr_accessor :version
@@ -3843,6 +5114,7 @@ module Google
3843
5114
  # Update properties of this object
3844
5115
  def update!(**args)
3845
5116
  @autoscaling = args[:autoscaling] if args.key?(:autoscaling)
5117
+ @best_effort_provisioning = args[:best_effort_provisioning] if args.key?(:best_effort_provisioning)
3846
5118
  @conditions = args[:conditions] if args.key?(:conditions)
3847
5119
  @config = args[:config] if args.key?(:config)
3848
5120
  @etag = args[:etag] if args.key?(:etag)
@@ -3855,6 +5127,7 @@ module Google
3855
5127
  @network_config = args[:network_config] if args.key?(:network_config)
3856
5128
  @placement_policy = args[:placement_policy] if args.key?(:placement_policy)
3857
5129
  @pod_ipv4_cidr_size = args[:pod_ipv4_cidr_size] if args.key?(:pod_ipv4_cidr_size)
5130
+ @queued_provisioning = args[:queued_provisioning] if args.key?(:queued_provisioning)
3858
5131
  @self_link = args[:self_link] if args.key?(:self_link)
3859
5132
  @status = args[:status] if args.key?(:status)
3860
5133
  @status_message = args[:status_message] if args.key?(:status_message)
@@ -3869,19 +5142,41 @@ module Google
3869
5142
  class NodePoolAutoConfig
3870
5143
  include Google::Apis::Core::Hashable
3871
5144
 
5145
+ # Parameters that can be configured on Linux nodes.
5146
+ # Corresponds to the JSON property `linuxNodeConfig`
5147
+ # @return [Google::Apis::ContainerV1::LinuxNodeConfig]
5148
+ attr_accessor :linux_node_config
5149
+
3872
5150
  # Collection of Compute Engine network tags that can be applied to a node's
3873
5151
  # underlying VM instance.
3874
5152
  # Corresponds to the JSON property `networkTags`
3875
5153
  # @return [Google::Apis::ContainerV1::NetworkTags]
3876
5154
  attr_accessor :network_tags
3877
5155
 
5156
+ # Node kubelet configs.
5157
+ # Corresponds to the JSON property `nodeKubeletConfig`
5158
+ # @return [Google::Apis::ContainerV1::NodeKubeletConfig]
5159
+ attr_accessor :node_kubelet_config
5160
+
5161
+ # A map of resource manager tag keys and values to be attached to the nodes for
5162
+ # managing Compute Engine firewalls using Network Firewall Policies. Tags must
5163
+ # be according to specifications in https://cloud.google.com/vpc/docs/tags-
5164
+ # firewalls-overview#specifications. A maximum of 5 tag key-value pairs can be
5165
+ # specified. Existing tags will be replaced with new values.
5166
+ # Corresponds to the JSON property `resourceManagerTags`
5167
+ # @return [Google::Apis::ContainerV1::ResourceManagerTags]
5168
+ attr_accessor :resource_manager_tags
5169
+
3878
5170
  def initialize(**args)
3879
5171
  update!(**args)
3880
5172
  end
3881
5173
 
3882
5174
  # Update properties of this object
3883
5175
  def update!(**args)
5176
+ @linux_node_config = args[:linux_node_config] if args.key?(:linux_node_config)
3884
5177
  @network_tags = args[:network_tags] if args.key?(:network_tags)
5178
+ @node_kubelet_config = args[:node_kubelet_config] if args.key?(:node_kubelet_config)
5179
+ @resource_manager_tags = args[:resource_manager_tags] if args.key?(:resource_manager_tags)
3885
5180
  end
3886
5181
  end
3887
5182
 
@@ -3907,19 +5202,19 @@ module Google
3907
5202
  # @return [String]
3908
5203
  attr_accessor :location_policy
3909
5204
 
3910
- # Maximum number of nodes for one location in the NodePool. Must be >=
5205
+ # Maximum number of nodes for one location in the node pool. Must be >=
3911
5206
  # min_node_count. There has to be enough quota to scale up the cluster.
3912
5207
  # Corresponds to the JSON property `maxNodeCount`
3913
5208
  # @return [Fixnum]
3914
5209
  attr_accessor :max_node_count
3915
5210
 
3916
- # Minimum number of nodes for one location in the NodePool. Must be >= 1 and <=
3917
- # max_node_count.
5211
+ # Minimum number of nodes for one location in the node pool. Must be greater
5212
+ # than or equal to 0 and less than or equal to max_node_count.
3918
5213
  # Corresponds to the JSON property `minNodeCount`
3919
5214
  # @return [Fixnum]
3920
5215
  attr_accessor :min_node_count
3921
5216
 
3922
- # Maximum number of nodes in the node pool. Must be greater than
5217
+ # Maximum number of nodes in the node pool. Must be greater than or equal to
3923
5218
  # total_min_node_count. There has to be enough quota to scale up the cluster.
3924
5219
  # The total_*_node_count fields are mutually exclusive with the *_node_count
3925
5220
  # fields.
@@ -3927,9 +5222,9 @@ module Google
3927
5222
  # @return [Fixnum]
3928
5223
  attr_accessor :total_max_node_count
3929
5224
 
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.
5225
+ # Minimum number of nodes in the node pool. Must be greater than or equal to 0
5226
+ # and less than or equal to total_max_node_count. The total_*_node_count fields
5227
+ # are mutually exclusive with the *_node_count fields.
3933
5228
  # Corresponds to the JSON property `totalMinNodeCount`
3934
5229
  # @return [Fixnum]
3935
5230
  attr_accessor :total_min_node_count
@@ -3988,7 +5283,7 @@ module Google
3988
5283
  end
3989
5284
  end
3990
5285
 
3991
- # Kubernetes taint is comprised of three fields: key, value, and effect. Effect
5286
+ # Kubernetes taint is composed of three fields: key, value, and effect. Effect
3992
5287
  # can only be one of three types: NoSchedule, PreferNoSchedule or NoExecute. See
3993
5288
  # [here](https://kubernetes.io/docs/concepts/configuration/taint-and-toleration)
3994
5289
  # for more information, including usage and the valid values.
@@ -4072,12 +5367,12 @@ module Google
4072
5367
  # @return [Array<Google::Apis::ContainerV1::StatusCondition>]
4073
5368
  attr_accessor :cluster_conditions
4074
5369
 
4075
- # Detailed operation progress, if available.
5370
+ # Output only. Detailed operation progress, if available.
4076
5371
  # Corresponds to the JSON property `detail`
4077
5372
  # @return [String]
4078
5373
  attr_accessor :detail
4079
5374
 
4080
- # [Output only] The time the operation completed, in [RFC3339](https://www.ietf.
5375
+ # Output only. The time the operation completed, in [RFC3339](https://www.ietf.
4081
5376
  # org/rfc/rfc3339.txt) text format.
4082
5377
  # Corresponds to the JSON property `endTime`
4083
5378
  # @return [String]
@@ -4093,15 +5388,15 @@ module Google
4093
5388
  # @return [Google::Apis::ContainerV1::Status]
4094
5389
  attr_accessor :error
4095
5390
 
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.
5391
+ # Output only. The name of the Google Compute Engine [zone](https://cloud.google.
5392
+ # com/compute/docs/regions-zones/regions-zones#available) or [region](https://
5393
+ # cloud.google.com/compute/docs/regions-zones/regions-zones#available) in which
5394
+ # the cluster resides.
4100
5395
  # Corresponds to the JSON property `location`
4101
5396
  # @return [String]
4102
5397
  attr_accessor :location
4103
5398
 
4104
- # The server-assigned ID for the operation.
5399
+ # Output only. The server-assigned ID for the operation.
4105
5400
  # Corresponds to the JSON property `name`
4106
5401
  # @return [String]
4107
5402
  attr_accessor :name
@@ -4112,7 +5407,7 @@ module Google
4112
5407
  # @return [Array<Google::Apis::ContainerV1::StatusCondition>]
4113
5408
  attr_accessor :nodepool_conditions
4114
5409
 
4115
- # The operation type.
5410
+ # Output only. The operation type.
4116
5411
  # Corresponds to the JSON property `operationType`
4117
5412
  # @return [String]
4118
5413
  attr_accessor :operation_type
@@ -4122,18 +5417,20 @@ module Google
4122
5417
  # @return [Google::Apis::ContainerV1::OperationProgress]
4123
5418
  attr_accessor :progress
4124
5419
 
4125
- # Server-defined URL for the resource.
5420
+ # Output only. Server-defined URI for the operation. Example: `https://container.
5421
+ # googleapis.com/v1alpha1/projects/123/locations/us-central1/operations/
5422
+ # operation-123`.
4126
5423
  # Corresponds to the JSON property `selfLink`
4127
5424
  # @return [String]
4128
5425
  attr_accessor :self_link
4129
5426
 
4130
- # [Output only] The time the operation started, in [RFC3339](https://www.ietf.
4131
- # org/rfc/rfc3339.txt) text format.
5427
+ # Output only. The time the operation started, in [RFC3339](https://www.ietf.org/
5428
+ # rfc/rfc3339.txt) text format.
4132
5429
  # Corresponds to the JSON property `startTime`
4133
5430
  # @return [String]
4134
5431
  attr_accessor :start_time
4135
5432
 
4136
- # The current status of the operation.
5433
+ # Output only. The current status of the operation.
4137
5434
  # Corresponds to the JSON property `status`
4138
5435
  # @return [String]
4139
5436
  attr_accessor :status
@@ -4144,14 +5441,21 @@ module Google
4144
5441
  # @return [String]
4145
5442
  attr_accessor :status_message
4146
5443
 
4147
- # Server-defined URL for the target of the operation.
5444
+ # Output only. Server-defined URI for the target of the operation. The format of
5445
+ # this is a URI to the resource being modified (such as a cluster, node pool, or
5446
+ # node). For node pool repairs, there may be multiple nodes being repaired, but
5447
+ # only one will be the target. Examples: - ## `https://container.googleapis.com/
5448
+ # v1/projects/123/locations/us-central1/clusters/my-cluster` ## `https://
5449
+ # container.googleapis.com/v1/projects/123/zones/us-central1-c/clusters/my-
5450
+ # cluster/nodePools/my-np` `https://container.googleapis.com/v1/projects/123/
5451
+ # zones/us-central1-c/clusters/my-cluster/nodePools/my-np/node/my-node`
4148
5452
  # Corresponds to the JSON property `targetLink`
4149
5453
  # @return [String]
4150
5454
  attr_accessor :target_link
4151
5455
 
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.
5456
+ # Output only. The name of the Google Compute Engine [zone](https://cloud.google.
5457
+ # com/compute/docs/zones#available) in which the operation is taking place. This
5458
+ # field is deprecated, use location instead.
4155
5459
  # Corresponds to the JSON property `zone`
4156
5460
  # @return [String]
4157
5461
  attr_accessor :zone
@@ -4180,6 +5484,38 @@ module Google
4180
5484
  end
4181
5485
  end
4182
5486
 
5487
+ # OperationError records errors seen from CloudKMS keys encountered during
5488
+ # updates to DatabaseEncryption configuration.
5489
+ class OperationError
5490
+ include Google::Apis::Core::Hashable
5491
+
5492
+ # Description of the error seen during the operation.
5493
+ # Corresponds to the JSON property `errorMessage`
5494
+ # @return [String]
5495
+ attr_accessor :error_message
5496
+
5497
+ # CloudKMS key resource that had the error.
5498
+ # Corresponds to the JSON property `keyName`
5499
+ # @return [String]
5500
+ attr_accessor :key_name
5501
+
5502
+ # Time when the CloudKMS error was seen.
5503
+ # Corresponds to the JSON property `timestamp`
5504
+ # @return [String]
5505
+ attr_accessor :timestamp
5506
+
5507
+ def initialize(**args)
5508
+ update!(**args)
5509
+ end
5510
+
5511
+ # Update properties of this object
5512
+ def update!(**args)
5513
+ @error_message = args[:error_message] if args.key?(:error_message)
5514
+ @key_name = args[:key_name] if args.key?(:key_name)
5515
+ @timestamp = args[:timestamp] if args.key?(:timestamp)
5516
+ end
5517
+ end
5518
+
4183
5519
  # Information about operation (or operation stage) progress.
4184
5520
  class OperationProgress
4185
5521
  include Google::Apis::Core::Hashable
@@ -4220,10 +5556,70 @@ module Google
4220
5556
  end
4221
5557
  end
4222
5558
 
5559
+ # Configuration for the Cloud Storage Parallelstore CSI driver.
5560
+ class ParallelstoreCsiDriverConfig
5561
+ include Google::Apis::Core::Hashable
5562
+
5563
+ # Whether the Cloud Storage Parallelstore CSI driver is enabled for this cluster.
5564
+ # Corresponds to the JSON property `enabled`
5565
+ # @return [Boolean]
5566
+ attr_accessor :enabled
5567
+ alias_method :enabled?, :enabled
5568
+
5569
+ def initialize(**args)
5570
+ update!(**args)
5571
+ end
5572
+
5573
+ # Update properties of this object
5574
+ def update!(**args)
5575
+ @enabled = args[:enabled] if args.key?(:enabled)
5576
+ end
5577
+ end
5578
+
5579
+ # ParentProductConfig is the configuration of the parent product of the cluster.
5580
+ # This field is used by Google internal products that are built on top of a GKE
5581
+ # cluster and take the ownership of the cluster.
5582
+ class ParentProductConfig
5583
+ include Google::Apis::Core::Hashable
5584
+
5585
+ # Labels contain the configuration of the parent product.
5586
+ # Corresponds to the JSON property `labels`
5587
+ # @return [Hash<String,String>]
5588
+ attr_accessor :labels
5589
+
5590
+ # Name of the parent product associated with the cluster.
5591
+ # Corresponds to the JSON property `productName`
5592
+ # @return [String]
5593
+ attr_accessor :product_name
5594
+
5595
+ def initialize(**args)
5596
+ update!(**args)
5597
+ end
5598
+
5599
+ # Update properties of this object
5600
+ def update!(**args)
5601
+ @labels = args[:labels] if args.key?(:labels)
5602
+ @product_name = args[:product_name] if args.key?(:product_name)
5603
+ end
5604
+ end
5605
+
4223
5606
  # PlacementPolicy defines the placement policy used by the node pool.
4224
5607
  class PlacementPolicy
4225
5608
  include Google::Apis::Core::Hashable
4226
5609
 
5610
+ # If set, refers to the name of a custom resource policy supplied by the user.
5611
+ # The resource policy must be in the same project and region as the node pool.
5612
+ # If not found, InvalidArgument error is returned.
5613
+ # Corresponds to the JSON property `policyName`
5614
+ # @return [String]
5615
+ attr_accessor :policy_name
5616
+
5617
+ # Optional. TPU placement topology for pod slice node pool. https://cloud.google.
5618
+ # com/tpu/docs/types-topologies#tpu_topologies
5619
+ # Corresponds to the JSON property `tpuTopology`
5620
+ # @return [String]
5621
+ attr_accessor :tpu_topology
5622
+
4227
5623
  # The type of placement.
4228
5624
  # Corresponds to the JSON property `type`
4229
5625
  # @return [String]
@@ -4235,15 +5631,42 @@ module Google
4235
5631
 
4236
5632
  # Update properties of this object
4237
5633
  def update!(**args)
5634
+ @policy_name = args[:policy_name] if args.key?(:policy_name)
5635
+ @tpu_topology = args[:tpu_topology] if args.key?(:tpu_topology)
4238
5636
  @type = args[:type] if args.key?(:type)
4239
5637
  end
4240
5638
  end
4241
5639
 
5640
+ # [PRIVATE FIELD] Config for pod CIDR size overprovisioning.
5641
+ class PodCidrOverprovisionConfig
5642
+ include Google::Apis::Core::Hashable
5643
+
5644
+ # Whether Pod CIDR overprovisioning is disabled. Note: Pod CIDR overprovisioning
5645
+ # is enabled by default.
5646
+ # Corresponds to the JSON property `disable`
5647
+ # @return [Boolean]
5648
+ attr_accessor :disable
5649
+ alias_method :disable?, :disable
5650
+
5651
+ def initialize(**args)
5652
+ update!(**args)
5653
+ end
5654
+
5655
+ # Update properties of this object
5656
+ def update!(**args)
5657
+ @disable = args[:disable] if args.key?(:disable)
5658
+ end
5659
+ end
5660
+
4242
5661
  # Configuration options for private clusters.
4243
5662
  class PrivateClusterConfig
4244
5663
  include Google::Apis::Core::Hashable
4245
5664
 
4246
5665
  # Whether the master's internal IP address is used as the cluster endpoint.
5666
+ # Deprecated: Use ControlPlaneEndpointsConfig.IPEndpointsConfig.
5667
+ # enable_public_endpoint instead. Note that the value of enable_public_endpoint
5668
+ # is reversed: if enable_private_endpoint is false, then enable_public_endpoint
5669
+ # will be true.
4247
5670
  # Corresponds to the JSON property `enablePrivateEndpoint`
4248
5671
  # @return [Boolean]
4249
5672
  attr_accessor :enable_private_endpoint
@@ -4251,7 +5674,7 @@ module Google
4251
5674
 
4252
5675
  # Whether nodes have internal IP addresses only. If enabled, all nodes are given
4253
5676
  # only RFC 1918 private addresses and communicate with the master via private
4254
- # networking.
5677
+ # networking. Deprecated: Use NetworkConfig.default_enable_private_nodes instead.
4255
5678
  # Corresponds to the JSON property `enablePrivateNodes`
4256
5679
  # @return [Boolean]
4257
5680
  attr_accessor :enable_private_nodes
@@ -4276,17 +5699,23 @@ module Google
4276
5699
  attr_accessor :peering_name
4277
5700
 
4278
5701
  # Output only. The internal IP address of this cluster's master endpoint.
5702
+ # Deprecated: Use ControlPlaneEndpointsConfig.IPEndpointsConfig.private_endpoint
5703
+ # instead.
4279
5704
  # Corresponds to the JSON property `privateEndpoint`
4280
5705
  # @return [String]
4281
5706
  attr_accessor :private_endpoint
4282
5707
 
4283
5708
  # Subnet to provision the master's private endpoint during cluster creation.
4284
- # Specified in projects/*/regions/*/subnetworks/* format.
5709
+ # Specified in projects/*/regions/*/subnetworks/* format. Deprecated: Use
5710
+ # ControlPlaneEndpointsConfig.IPEndpointsConfig.private_endpoint_subnetwork
5711
+ # instead.
4285
5712
  # Corresponds to the JSON property `privateEndpointSubnetwork`
4286
5713
  # @return [String]
4287
5714
  attr_accessor :private_endpoint_subnetwork
4288
5715
 
4289
5716
  # Output only. The external IP address of this cluster's master endpoint.
5717
+ # Deprecated:Use ControlPlaneEndpointsConfig.IPEndpointsConfig.public_endpoint
5718
+ # instead.
4290
5719
  # Corresponds to the JSON property `publicEndpoint`
4291
5720
  # @return [String]
4292
5721
  attr_accessor :public_endpoint
@@ -4328,6 +5757,33 @@ module Google
4328
5757
  end
4329
5758
  end
4330
5759
 
5760
+ # PrivateRegistryAccessConfig contains access configuration for private
5761
+ # container registries.
5762
+ class PrivateRegistryAccessConfig
5763
+ include Google::Apis::Core::Hashable
5764
+
5765
+ # Private registry access configuration.
5766
+ # Corresponds to the JSON property `certificateAuthorityDomainConfig`
5767
+ # @return [Array<Google::Apis::ContainerV1::CertificateAuthorityDomainConfig>]
5768
+ attr_accessor :certificate_authority_domain_config
5769
+
5770
+ # Private registry access is enabled.
5771
+ # Corresponds to the JSON property `enabled`
5772
+ # @return [Boolean]
5773
+ attr_accessor :enabled
5774
+ alias_method :enabled?, :enabled
5775
+
5776
+ def initialize(**args)
5777
+ update!(**args)
5778
+ end
5779
+
5780
+ # Update properties of this object
5781
+ def update!(**args)
5782
+ @certificate_authority_domain_config = args[:certificate_authority_domain_config] if args.key?(:certificate_authority_domain_config)
5783
+ @enabled = args[:enabled] if args.key?(:enabled)
5784
+ end
5785
+ end
5786
+
4331
5787
  # Pub/Sub specific notification config.
4332
5788
  class PubSub
4333
5789
  include Google::Apis::Core::Hashable
@@ -4359,8 +5815,156 @@ module Google
4359
5815
  # Update properties of this object
4360
5816
  def update!(**args)
4361
5817
  @enabled = args[:enabled] if args.key?(:enabled)
4362
- @filter = args[:filter] if args.key?(:filter)
4363
- @topic = args[:topic] if args.key?(:topic)
5818
+ @filter = args[:filter] if args.key?(:filter)
5819
+ @topic = args[:topic] if args.key?(:topic)
5820
+ end
5821
+ end
5822
+
5823
+ # QueuedProvisioning defines the queued provisioning used by the node pool.
5824
+ class QueuedProvisioning
5825
+ include Google::Apis::Core::Hashable
5826
+
5827
+ # Denotes that this nodepool is QRM specific, meaning nodes can be only obtained
5828
+ # through queuing via the Cluster Autoscaler ProvisioningRequest API.
5829
+ # Corresponds to the JSON property `enabled`
5830
+ # @return [Boolean]
5831
+ attr_accessor :enabled
5832
+ alias_method :enabled?, :enabled
5833
+
5834
+ def initialize(**args)
5835
+ update!(**args)
5836
+ end
5837
+
5838
+ # Update properties of this object
5839
+ def update!(**args)
5840
+ @enabled = args[:enabled] if args.key?(:enabled)
5841
+ end
5842
+ end
5843
+
5844
+ # RBACBindingConfig allows user to restrict ClusterRoleBindings an RoleBindings
5845
+ # that can be created.
5846
+ class RbacBindingConfig
5847
+ include Google::Apis::Core::Hashable
5848
+
5849
+ # Setting this to true will allow any ClusterRoleBinding and RoleBinding with
5850
+ # subjects system:authenticated.
5851
+ # Corresponds to the JSON property `enableInsecureBindingSystemAuthenticated`
5852
+ # @return [Boolean]
5853
+ attr_accessor :enable_insecure_binding_system_authenticated
5854
+ alias_method :enable_insecure_binding_system_authenticated?, :enable_insecure_binding_system_authenticated
5855
+
5856
+ # Setting this to true will allow any ClusterRoleBinding and RoleBinding with
5857
+ # subjets system:anonymous or system:unauthenticated.
5858
+ # Corresponds to the JSON property `enableInsecureBindingSystemUnauthenticated`
5859
+ # @return [Boolean]
5860
+ attr_accessor :enable_insecure_binding_system_unauthenticated
5861
+ alias_method :enable_insecure_binding_system_unauthenticated?, :enable_insecure_binding_system_unauthenticated
5862
+
5863
+ def initialize(**args)
5864
+ update!(**args)
5865
+ end
5866
+
5867
+ # Update properties of this object
5868
+ def update!(**args)
5869
+ @enable_insecure_binding_system_authenticated = args[:enable_insecure_binding_system_authenticated] if args.key?(:enable_insecure_binding_system_authenticated)
5870
+ @enable_insecure_binding_system_unauthenticated = args[:enable_insecure_binding_system_unauthenticated] if args.key?(:enable_insecure_binding_system_unauthenticated)
5871
+ end
5872
+ end
5873
+
5874
+ # RangeInfo contains the range name and the range utilization by this cluster.
5875
+ class RangeInfo
5876
+ include Google::Apis::Core::Hashable
5877
+
5878
+ # Output only. Name of a range.
5879
+ # Corresponds to the JSON property `rangeName`
5880
+ # @return [String]
5881
+ attr_accessor :range_name
5882
+
5883
+ # Output only. The utilization of the range.
5884
+ # Corresponds to the JSON property `utilization`
5885
+ # @return [Float]
5886
+ attr_accessor :utilization
5887
+
5888
+ def initialize(**args)
5889
+ update!(**args)
5890
+ end
5891
+
5892
+ # Update properties of this object
5893
+ def update!(**args)
5894
+ @range_name = args[:range_name] if args.key?(:range_name)
5895
+ @utilization = args[:utilization] if args.key?(:utilization)
5896
+ end
5897
+ end
5898
+
5899
+ # RayClusterLoggingConfig specifies configuration of Ray logging.
5900
+ class RayClusterLoggingConfig
5901
+ include Google::Apis::Core::Hashable
5902
+
5903
+ # Enable log collection for Ray clusters.
5904
+ # Corresponds to the JSON property `enabled`
5905
+ # @return [Boolean]
5906
+ attr_accessor :enabled
5907
+ alias_method :enabled?, :enabled
5908
+
5909
+ def initialize(**args)
5910
+ update!(**args)
5911
+ end
5912
+
5913
+ # Update properties of this object
5914
+ def update!(**args)
5915
+ @enabled = args[:enabled] if args.key?(:enabled)
5916
+ end
5917
+ end
5918
+
5919
+ # RayClusterMonitoringConfig specifies monitoring configuration for Ray clusters.
5920
+ class RayClusterMonitoringConfig
5921
+ include Google::Apis::Core::Hashable
5922
+
5923
+ # Enable metrics collection for Ray clusters.
5924
+ # Corresponds to the JSON property `enabled`
5925
+ # @return [Boolean]
5926
+ attr_accessor :enabled
5927
+ alias_method :enabled?, :enabled
5928
+
5929
+ def initialize(**args)
5930
+ update!(**args)
5931
+ end
5932
+
5933
+ # Update properties of this object
5934
+ def update!(**args)
5935
+ @enabled = args[:enabled] if args.key?(:enabled)
5936
+ end
5937
+ end
5938
+
5939
+ # Configuration options for the Ray Operator add-on.
5940
+ class RayOperatorConfig
5941
+ include Google::Apis::Core::Hashable
5942
+
5943
+ # Whether the Ray Operator addon is enabled for this cluster.
5944
+ # Corresponds to the JSON property `enabled`
5945
+ # @return [Boolean]
5946
+ attr_accessor :enabled
5947
+ alias_method :enabled?, :enabled
5948
+
5949
+ # RayClusterLoggingConfig specifies configuration of Ray logging.
5950
+ # Corresponds to the JSON property `rayClusterLoggingConfig`
5951
+ # @return [Google::Apis::ContainerV1::RayClusterLoggingConfig]
5952
+ attr_accessor :ray_cluster_logging_config
5953
+
5954
+ # RayClusterMonitoringConfig specifies monitoring configuration for Ray clusters.
5955
+ # Corresponds to the JSON property `rayClusterMonitoringConfig`
5956
+ # @return [Google::Apis::ContainerV1::RayClusterMonitoringConfig]
5957
+ attr_accessor :ray_cluster_monitoring_config
5958
+
5959
+ def initialize(**args)
5960
+ update!(**args)
5961
+ end
5962
+
5963
+ # Update properties of this object
5964
+ def update!(**args)
5965
+ @enabled = args[:enabled] if args.key?(:enabled)
5966
+ @ray_cluster_logging_config = args[:ray_cluster_logging_config] if args.key?(:ray_cluster_logging_config)
5967
+ @ray_cluster_monitoring_config = args[:ray_cluster_monitoring_config] if args.key?(:ray_cluster_monitoring_config)
4364
5968
  end
4365
5969
  end
4366
5970
 
@@ -4439,6 +6043,11 @@ module Google
4439
6043
  # @return [String]
4440
6044
  attr_accessor :default_version
4441
6045
 
6046
+ # The auto upgrade target version for clusters on the channel.
6047
+ # Corresponds to the JSON property `upgradeTargetVersion`
6048
+ # @return [String]
6049
+ attr_accessor :upgrade_target_version
6050
+
4442
6051
  # List of valid versions for the channel.
4443
6052
  # Corresponds to the JSON property `validVersions`
4444
6053
  # @return [Array<String>]
@@ -4452,6 +6061,7 @@ module Google
4452
6061
  def update!(**args)
4453
6062
  @channel = args[:channel] if args.key?(:channel)
4454
6063
  @default_version = args[:default_version] if args.key?(:default_version)
6064
+ @upgrade_target_version = args[:upgrade_target_version] if args.key?(:upgrade_target_version)
4455
6065
  @valid_versions = args[:valid_versions] if args.key?(:valid_versions)
4456
6066
  end
4457
6067
  end
@@ -4543,6 +6153,31 @@ module Google
4543
6153
  end
4544
6154
  end
4545
6155
 
6156
+ # A map of resource manager tag keys and values to be attached to the nodes for
6157
+ # managing Compute Engine firewalls using Network Firewall Policies. Tags must
6158
+ # be according to specifications in https://cloud.google.com/vpc/docs/tags-
6159
+ # firewalls-overview#specifications. A maximum of 5 tag key-value pairs can be
6160
+ # specified. Existing tags will be replaced with new values.
6161
+ class ResourceManagerTags
6162
+ include Google::Apis::Core::Hashable
6163
+
6164
+ # TagKeyValue must be in one of the following formats ([KEY]=[VALUE]) 1. `
6165
+ # tagKeys/`tag_key_id`=tagValues/`tag_value_id`` 2. ``org_id`/`tag_key_name`=`
6166
+ # tag_value_name`` 3. ``project_id`/`tag_key_name`=`tag_value_name``
6167
+ # Corresponds to the JSON property `tags`
6168
+ # @return [Hash<String,String>]
6169
+ attr_accessor :tags
6170
+
6171
+ def initialize(**args)
6172
+ update!(**args)
6173
+ end
6174
+
6175
+ # Update properties of this object
6176
+ def update!(**args)
6177
+ @tags = args[:tags] if args.key?(:tags)
6178
+ end
6179
+ end
6180
+
4546
6181
  # Configuration for exporting cluster resource usages.
4547
6182
  class ResourceUsageExportConfig
4548
6183
  include Google::Apis::Core::Hashable
@@ -4655,6 +6290,66 @@ module Google
4655
6290
  end
4656
6291
  end
4657
6292
 
6293
+ # SecondaryBootDisk represents a persistent disk attached to a node with special
6294
+ # configurations based on its mode.
6295
+ class SecondaryBootDisk
6296
+ include Google::Apis::Core::Hashable
6297
+
6298
+ # Fully-qualified resource ID for an existing disk image.
6299
+ # Corresponds to the JSON property `diskImage`
6300
+ # @return [String]
6301
+ attr_accessor :disk_image
6302
+
6303
+ # Disk mode (container image cache, etc.)
6304
+ # Corresponds to the JSON property `mode`
6305
+ # @return [String]
6306
+ attr_accessor :mode
6307
+
6308
+ def initialize(**args)
6309
+ update!(**args)
6310
+ end
6311
+
6312
+ # Update properties of this object
6313
+ def update!(**args)
6314
+ @disk_image = args[:disk_image] if args.key?(:disk_image)
6315
+ @mode = args[:mode] if args.key?(:mode)
6316
+ end
6317
+ end
6318
+
6319
+ # SecondaryBootDiskUpdateStrategy is a placeholder which will be extended in the
6320
+ # future to define different options for updating secondary boot disks.
6321
+ class SecondaryBootDiskUpdateStrategy
6322
+ include Google::Apis::Core::Hashable
6323
+
6324
+ def initialize(**args)
6325
+ update!(**args)
6326
+ end
6327
+
6328
+ # Update properties of this object
6329
+ def update!(**args)
6330
+ end
6331
+ end
6332
+
6333
+ # SecretManagerConfig is config for secret manager enablement.
6334
+ class SecretManagerConfig
6335
+ include Google::Apis::Core::Hashable
6336
+
6337
+ # Enable/Disable Secret Manager Config.
6338
+ # Corresponds to the JSON property `enabled`
6339
+ # @return [Boolean]
6340
+ attr_accessor :enabled
6341
+ alias_method :enabled?, :enabled
6342
+
6343
+ def initialize(**args)
6344
+ update!(**args)
6345
+ end
6346
+
6347
+ # Update properties of this object
6348
+ def update!(**args)
6349
+ @enabled = args[:enabled] if args.key?(:enabled)
6350
+ end
6351
+ end
6352
+
4658
6353
  # SecurityBulletinEvent is a notification sent to customers when a security
4659
6354
  # bulletin has been posted that they are vulnerable to.
4660
6355
  class SecurityBulletinEvent
@@ -4738,6 +6433,32 @@ module Google
4738
6433
  end
4739
6434
  end
4740
6435
 
6436
+ # SecurityPostureConfig defines the flags needed to enable/disable features for
6437
+ # the Security Posture API.
6438
+ class SecurityPostureConfig
6439
+ include Google::Apis::Core::Hashable
6440
+
6441
+ # Sets which mode to use for Security Posture features.
6442
+ # Corresponds to the JSON property `mode`
6443
+ # @return [String]
6444
+ attr_accessor :mode
6445
+
6446
+ # Sets which mode to use for vulnerability scanning.
6447
+ # Corresponds to the JSON property `vulnerabilityMode`
6448
+ # @return [String]
6449
+ attr_accessor :vulnerability_mode
6450
+
6451
+ def initialize(**args)
6452
+ update!(**args)
6453
+ end
6454
+
6455
+ # Update properties of this object
6456
+ def update!(**args)
6457
+ @mode = args[:mode] if args.key?(:mode)
6458
+ @vulnerability_mode = args[:vulnerability_mode] if args.key?(:vulnerability_mode)
6459
+ end
6460
+ end
6461
+
4741
6462
  # Kubernetes Engine service configuration.
4742
6463
  class ServerConfig
4743
6464
  include Google::Apis::Core::Hashable
@@ -5512,6 +7233,26 @@ module Google
5512
7233
  end
5513
7234
  end
5514
7235
 
7236
+ # SoleTenantConfig contains the NodeAffinities to specify what shared sole
7237
+ # tenant node groups should back the node pool.
7238
+ class SoleTenantConfig
7239
+ include Google::Apis::Core::Hashable
7240
+
7241
+ # NodeAffinities used to match to a shared sole tenant node group.
7242
+ # Corresponds to the JSON property `nodeAffinities`
7243
+ # @return [Array<Google::Apis::ContainerV1::NodeAffinity>]
7244
+ attr_accessor :node_affinities
7245
+
7246
+ def initialize(**args)
7247
+ update!(**args)
7248
+ end
7249
+
7250
+ # Update properties of this object
7251
+ def update!(**args)
7252
+ @node_affinities = args[:node_affinities] if args.key?(:node_affinities)
7253
+ end
7254
+ end
7255
+
5515
7256
  # Standard rollout policy is the default policy for blue-green.
5516
7257
  class StandardRolloutPolicy
5517
7258
  include Google::Apis::Core::Hashable
@@ -5595,6 +7336,26 @@ module Google
5595
7336
  end
5596
7337
  end
5597
7338
 
7339
+ # Configuration for the Stateful HA add-on.
7340
+ class StatefulHaConfig
7341
+ include Google::Apis::Core::Hashable
7342
+
7343
+ # Whether the Stateful HA add-on is enabled for this cluster.
7344
+ # Corresponds to the JSON property `enabled`
7345
+ # @return [Boolean]
7346
+ attr_accessor :enabled
7347
+ alias_method :enabled?, :enabled
7348
+
7349
+ def initialize(**args)
7350
+ update!(**args)
7351
+ end
7352
+
7353
+ # Update properties of this object
7354
+ def update!(**args)
7355
+ @enabled = args[:enabled] if args.key?(:enabled)
7356
+ end
7357
+ end
7358
+
5598
7359
  # The `Status` type defines a logical error model that is suitable for different
5599
7360
  # programming environments, including REST APIs and RPC APIs. It is used by [
5600
7361
  # gRPC](https://github.com/grpc). Each `Status` message contains three pieces of
@@ -5828,6 +7589,12 @@ module Google
5828
7589
  class UpdateNodePoolRequest
5829
7590
  include Google::Apis::Core::Hashable
5830
7591
 
7592
+ # A list of hardware accelerators to be attached to each node. See https://cloud.
7593
+ # google.com/compute/docs/gpus for more information about support for GPUs.
7594
+ # Corresponds to the JSON property `accelerators`
7595
+ # @return [Array<Google::Apis::ContainerV1::AcceleratorConfig>]
7596
+ attr_accessor :accelerators
7597
+
5831
7598
  # Deprecated. The name of the cluster to upgrade. This field has been deprecated
5832
7599
  # and replaced by the name field.
5833
7600
  # Corresponds to the JSON property `clusterId`
@@ -5840,6 +7607,25 @@ module Google
5840
7607
  # @return [Google::Apis::ContainerV1::ConfidentialNodes]
5841
7608
  attr_accessor :confidential_nodes
5842
7609
 
7610
+ # ContainerdConfig contains configuration to customize containerd.
7611
+ # Corresponds to the JSON property `containerdConfig`
7612
+ # @return [Google::Apis::ContainerV1::ContainerdConfig]
7613
+ attr_accessor :containerd_config
7614
+
7615
+ # Optional. The desired disk size for nodes in the node pool specified in GB.
7616
+ # The smallest allowed disk size is 10GB. Initiates an upgrade operation that
7617
+ # migrates the nodes in the node pool to the specified disk size.
7618
+ # Corresponds to the JSON property `diskSizeGb`
7619
+ # @return [Fixnum]
7620
+ attr_accessor :disk_size_gb
7621
+
7622
+ # Optional. The desired disk type (e.g. 'pd-standard', 'pd-ssd' or 'pd-balanced')
7623
+ # for nodes in the node pool. Initiates an upgrade operation that migrates the
7624
+ # nodes in the node pool to the specified disk type.
7625
+ # Corresponds to the JSON property `diskType`
7626
+ # @return [String]
7627
+ attr_accessor :disk_type
7628
+
5843
7629
  # The current etag of the node pool. If an etag is provided and does not match
5844
7630
  # the current etag of the node pool, update will be blocked and an ABORTED error
5845
7631
  # will be returned.
@@ -5863,7 +7649,9 @@ module Google
5863
7649
  # @return [Google::Apis::ContainerV1::VirtualNic]
5864
7650
  attr_accessor :gvnic
5865
7651
 
5866
- # Required. The desired image type for the node pool.
7652
+ # Required. The desired image type for the node pool. Please see https://cloud.
7653
+ # google.com/kubernetes-engine/docs/concepts/node-images for available image
7654
+ # types.
5867
7655
  # Corresponds to the JSON property `imageType`
5868
7656
  # @return [String]
5869
7657
  attr_accessor :image_type
@@ -5898,6 +7686,20 @@ module Google
5898
7686
  # @return [Google::Apis::ContainerV1::NodePoolLoggingConfig]
5899
7687
  attr_accessor :logging_config
5900
7688
 
7689
+ # Optional. The desired [Google Compute Engine machine type](https://cloud.
7690
+ # google.com/compute/docs/machine-types) for nodes in the node pool. Initiates
7691
+ # an upgrade operation that migrates the nodes in the node pool to the specified
7692
+ # machine type.
7693
+ # Corresponds to the JSON property `machineType`
7694
+ # @return [String]
7695
+ attr_accessor :machine_type
7696
+
7697
+ # The maximum duration for the nodes to exist. If unspecified, the nodes can
7698
+ # exist indefinitely.
7699
+ # Corresponds to the JSON property `maxRunDuration`
7700
+ # @return [String]
7701
+ attr_accessor :max_run_duration
7702
+
5901
7703
  # The name (project, location, cluster, node pool) of the node pool to update.
5902
7704
  # Specified in the format `projects/*/locations/*/clusters/*/nodePools/*`.
5903
7705
  # Corresponds to the JSON property `name`
@@ -5933,12 +7735,32 @@ module Google
5933
7735
  # @return [String]
5934
7736
  attr_accessor :project_id
5935
7737
 
7738
+ # QueuedProvisioning defines the queued provisioning used by the node pool.
7739
+ # Corresponds to the JSON property `queuedProvisioning`
7740
+ # @return [Google::Apis::ContainerV1::QueuedProvisioning]
7741
+ attr_accessor :queued_provisioning
7742
+
5936
7743
  # Collection of [GCP labels](https://cloud.google.com/resource-manager/docs/
5937
7744
  # creating-managing-labels).
5938
7745
  # Corresponds to the JSON property `resourceLabels`
5939
7746
  # @return [Google::Apis::ContainerV1::ResourceLabels]
5940
7747
  attr_accessor :resource_labels
5941
7748
 
7749
+ # A map of resource manager tag keys and values to be attached to the nodes for
7750
+ # managing Compute Engine firewalls using Network Firewall Policies. Tags must
7751
+ # be according to specifications in https://cloud.google.com/vpc/docs/tags-
7752
+ # firewalls-overview#specifications. A maximum of 5 tag key-value pairs can be
7753
+ # specified. Existing tags will be replaced with new values.
7754
+ # Corresponds to the JSON property `resourceManagerTags`
7755
+ # @return [Google::Apis::ContainerV1::ResourceManagerTags]
7756
+ attr_accessor :resource_manager_tags
7757
+
7758
+ # List of Storage Pools where boot disks are provisioned. Existing Storage Pools
7759
+ # will be replaced with storage-pools.
7760
+ # Corresponds to the JSON property `storagePools`
7761
+ # @return [Array<String>]
7762
+ attr_accessor :storage_pools
7763
+
5942
7764
  # Collection of Compute Engine network tags that can be applied to a node's
5943
7765
  # underlying VM instance.
5944
7766
  # Corresponds to the JSON property `tags`
@@ -6012,8 +7834,12 @@ module Google
6012
7834
 
6013
7835
  # Update properties of this object
6014
7836
  def update!(**args)
7837
+ @accelerators = args[:accelerators] if args.key?(:accelerators)
6015
7838
  @cluster_id = args[:cluster_id] if args.key?(:cluster_id)
6016
7839
  @confidential_nodes = args[:confidential_nodes] if args.key?(:confidential_nodes)
7840
+ @containerd_config = args[:containerd_config] if args.key?(:containerd_config)
7841
+ @disk_size_gb = args[:disk_size_gb] if args.key?(:disk_size_gb)
7842
+ @disk_type = args[:disk_type] if args.key?(:disk_type)
6017
7843
  @etag = args[:etag] if args.key?(:etag)
6018
7844
  @fast_socket = args[:fast_socket] if args.key?(:fast_socket)
6019
7845
  @gcfs_config = args[:gcfs_config] if args.key?(:gcfs_config)
@@ -6024,12 +7850,17 @@ module Google
6024
7850
  @linux_node_config = args[:linux_node_config] if args.key?(:linux_node_config)
6025
7851
  @locations = args[:locations] if args.key?(:locations)
6026
7852
  @logging_config = args[:logging_config] if args.key?(:logging_config)
7853
+ @machine_type = args[:machine_type] if args.key?(:machine_type)
7854
+ @max_run_duration = args[:max_run_duration] if args.key?(:max_run_duration)
6027
7855
  @name = args[:name] if args.key?(:name)
6028
7856
  @node_network_config = args[:node_network_config] if args.key?(:node_network_config)
6029
7857
  @node_pool_id = args[:node_pool_id] if args.key?(:node_pool_id)
6030
7858
  @node_version = args[:node_version] if args.key?(:node_version)
6031
7859
  @project_id = args[:project_id] if args.key?(:project_id)
7860
+ @queued_provisioning = args[:queued_provisioning] if args.key?(:queued_provisioning)
6032
7861
  @resource_labels = args[:resource_labels] if args.key?(:resource_labels)
7862
+ @resource_manager_tags = args[:resource_manager_tags] if args.key?(:resource_manager_tags)
7863
+ @storage_pools = args[:storage_pools] if args.key?(:storage_pools)
6033
7864
  @tags = args[:tags] if args.key?(:tags)
6034
7865
  @taints = args[:taints] if args.key?(:taints)
6035
7866
  @upgrade_settings = args[:upgrade_settings] if args.key?(:upgrade_settings)
@@ -6132,6 +7963,93 @@ module Google
6132
7963
  end
6133
7964
  end
6134
7965
 
7966
+ # UpgradeInfoEvent is a notification sent to customers about the upgrade
7967
+ # information of a resource.
7968
+ class UpgradeInfoEvent
7969
+ include Google::Apis::Core::Hashable
7970
+
7971
+ # The current version before the upgrade.
7972
+ # Corresponds to the JSON property `currentVersion`
7973
+ # @return [String]
7974
+ attr_accessor :current_version
7975
+
7976
+ # A brief description of the event.
7977
+ # Corresponds to the JSON property `description`
7978
+ # @return [String]
7979
+ attr_accessor :description
7980
+
7981
+ # The time when the operation ended.
7982
+ # Corresponds to the JSON property `endTime`
7983
+ # @return [String]
7984
+ attr_accessor :end_time
7985
+
7986
+ # The type of the event.
7987
+ # Corresponds to the JSON property `eventType`
7988
+ # @return [String]
7989
+ attr_accessor :event_type
7990
+
7991
+ # The end of extended support timestamp.
7992
+ # Corresponds to the JSON property `extendedSupportEndTime`
7993
+ # @return [String]
7994
+ attr_accessor :extended_support_end_time
7995
+
7996
+ # The operation associated with this upgrade.
7997
+ # Corresponds to the JSON property `operation`
7998
+ # @return [String]
7999
+ attr_accessor :operation
8000
+
8001
+ # Optional relative path to the resource. For example in node pool upgrades, the
8002
+ # relative path of the node pool.
8003
+ # Corresponds to the JSON property `resource`
8004
+ # @return [String]
8005
+ attr_accessor :resource
8006
+
8007
+ # The resource type associated with the upgrade.
8008
+ # Corresponds to the JSON property `resourceType`
8009
+ # @return [String]
8010
+ attr_accessor :resource_type
8011
+
8012
+ # The end of standard support timestamp.
8013
+ # Corresponds to the JSON property `standardSupportEndTime`
8014
+ # @return [String]
8015
+ attr_accessor :standard_support_end_time
8016
+
8017
+ # The time when the operation was started.
8018
+ # Corresponds to the JSON property `startTime`
8019
+ # @return [String]
8020
+ attr_accessor :start_time
8021
+
8022
+ # Output only. The state of the upgrade.
8023
+ # Corresponds to the JSON property `state`
8024
+ # @return [String]
8025
+ attr_accessor :state
8026
+
8027
+ # The target version for the upgrade.
8028
+ # Corresponds to the JSON property `targetVersion`
8029
+ # @return [String]
8030
+ attr_accessor :target_version
8031
+
8032
+ def initialize(**args)
8033
+ update!(**args)
8034
+ end
8035
+
8036
+ # Update properties of this object
8037
+ def update!(**args)
8038
+ @current_version = args[:current_version] if args.key?(:current_version)
8039
+ @description = args[:description] if args.key?(:description)
8040
+ @end_time = args[:end_time] if args.key?(:end_time)
8041
+ @event_type = args[:event_type] if args.key?(:event_type)
8042
+ @extended_support_end_time = args[:extended_support_end_time] if args.key?(:extended_support_end_time)
8043
+ @operation = args[:operation] if args.key?(:operation)
8044
+ @resource = args[:resource] if args.key?(:resource)
8045
+ @resource_type = args[:resource_type] if args.key?(:resource_type)
8046
+ @standard_support_end_time = args[:standard_support_end_time] if args.key?(:standard_support_end_time)
8047
+ @start_time = args[:start_time] if args.key?(:start_time)
8048
+ @state = args[:state] if args.key?(:state)
8049
+ @target_version = args[:target_version] if args.key?(:target_version)
8050
+ end
8051
+ end
8052
+
6135
8053
  # These upgrade settings control the level of parallelism and the level of
6136
8054
  # disruption caused by an upgrade. maxUnavailable controls the number of nodes
6137
8055
  # that can be simultaneously unavailable. maxSurge controls the number of
@@ -6281,6 +8199,78 @@ module Google
6281
8199
  end
6282
8200
  end
6283
8201
 
8202
+ # UserManagedKeysConfig holds the resource address to Keys which are used for
8203
+ # signing certs and token that are used for communication within cluster.
8204
+ class UserManagedKeysConfig
8205
+ include Google::Apis::Core::Hashable
8206
+
8207
+ # The Certificate Authority Service caPool to use for the aggregation CA in this
8208
+ # cluster.
8209
+ # Corresponds to the JSON property `aggregationCa`
8210
+ # @return [String]
8211
+ attr_accessor :aggregation_ca
8212
+
8213
+ # The Certificate Authority Service caPool to use for the cluster CA in this
8214
+ # cluster.
8215
+ # Corresponds to the JSON property `clusterCa`
8216
+ # @return [String]
8217
+ attr_accessor :cluster_ca
8218
+
8219
+ # The Cloud KMS cryptoKey to use for Confidential Hyperdisk on the control plane
8220
+ # nodes.
8221
+ # Corresponds to the JSON property `controlPlaneDiskEncryptionKey`
8222
+ # @return [String]
8223
+ attr_accessor :control_plane_disk_encryption_key
8224
+
8225
+ # Resource path of the Certificate Authority Service caPool to use for the etcd
8226
+ # API CA in this cluster.
8227
+ # Corresponds to the JSON property `etcdApiCa`
8228
+ # @return [String]
8229
+ attr_accessor :etcd_api_ca
8230
+
8231
+ # Resource path of the Certificate Authority Service caPool to use for the etcd
8232
+ # peer CA in this cluster.
8233
+ # Corresponds to the JSON property `etcdPeerCa`
8234
+ # @return [String]
8235
+ attr_accessor :etcd_peer_ca
8236
+
8237
+ # Resource path of the Cloud KMS cryptoKey to use for encryption of internal
8238
+ # etcd backups.
8239
+ # Corresponds to the JSON property `gkeopsEtcdBackupEncryptionKey`
8240
+ # @return [String]
8241
+ attr_accessor :gkeops_etcd_backup_encryption_key
8242
+
8243
+ # The Cloud KMS cryptoKeyVersions to use for signing service account JWTs issued
8244
+ # by this cluster. Format: `projects/`project`/locations/`location`/keyRings/`
8245
+ # keyring`/cryptoKeys/`cryptoKey`/cryptoKeyVersions/`cryptoKeyVersion``
8246
+ # Corresponds to the JSON property `serviceAccountSigningKeys`
8247
+ # @return [Array<String>]
8248
+ attr_accessor :service_account_signing_keys
8249
+
8250
+ # The Cloud KMS cryptoKeyVersions to use for verifying service account JWTs
8251
+ # issued by this cluster. Format: `projects/`project`/locations/`location`/
8252
+ # keyRings/`keyring`/cryptoKeys/`cryptoKey`/cryptoKeyVersions/`cryptoKeyVersion``
8253
+ # Corresponds to the JSON property `serviceAccountVerificationKeys`
8254
+ # @return [Array<String>]
8255
+ attr_accessor :service_account_verification_keys
8256
+
8257
+ def initialize(**args)
8258
+ update!(**args)
8259
+ end
8260
+
8261
+ # Update properties of this object
8262
+ def update!(**args)
8263
+ @aggregation_ca = args[:aggregation_ca] if args.key?(:aggregation_ca)
8264
+ @cluster_ca = args[:cluster_ca] if args.key?(:cluster_ca)
8265
+ @control_plane_disk_encryption_key = args[:control_plane_disk_encryption_key] if args.key?(:control_plane_disk_encryption_key)
8266
+ @etcd_api_ca = args[:etcd_api_ca] if args.key?(:etcd_api_ca)
8267
+ @etcd_peer_ca = args[:etcd_peer_ca] if args.key?(:etcd_peer_ca)
8268
+ @gkeops_etcd_backup_encryption_key = args[:gkeops_etcd_backup_encryption_key] if args.key?(:gkeops_etcd_backup_encryption_key)
8269
+ @service_account_signing_keys = args[:service_account_signing_keys] if args.key?(:service_account_signing_keys)
8270
+ @service_account_verification_keys = args[:service_account_verification_keys] if args.key?(:service_account_verification_keys)
8271
+ end
8272
+ end
8273
+
6284
8274
  # VerticalPodAutoscaling contains global, per-cluster information required by
6285
8275
  # Vertical Pod Autoscaler to automatically adjust the resources of pods
6286
8276
  # controlled by it.
@@ -6383,6 +8373,26 @@ module Google
6383
8373
  @mode = args[:mode] if args.key?(:mode)
6384
8374
  end
6385
8375
  end
8376
+
8377
+ # WorkloadPolicyConfig is the configuration related to GCW workload policy
8378
+ class WorkloadPolicyConfig
8379
+ include Google::Apis::Core::Hashable
8380
+
8381
+ # If true, workloads can use NET_ADMIN capability.
8382
+ # Corresponds to the JSON property `allowNetAdmin`
8383
+ # @return [Boolean]
8384
+ attr_accessor :allow_net_admin
8385
+ alias_method :allow_net_admin?, :allow_net_admin
8386
+
8387
+ def initialize(**args)
8388
+ update!(**args)
8389
+ end
8390
+
8391
+ # Update properties of this object
8392
+ def update!(**args)
8393
+ @allow_net_admin = args[:allow_net_admin] if args.key?(:allow_net_admin)
8394
+ end
8395
+ end
6386
8396
  end
6387
8397
  end
6388
8398
  end