google-apis-container_v1beta1 0.75.0 → 0.77.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.
@@ -112,6 +112,12 @@ module Google
112
112
  # @return [Google::Apis::ContainerV1beta1::MaxPodsConstraint]
113
113
  attr_accessor :max_pods_per_node
114
114
 
115
+ # The name of the network attachment for pods to communicate to; cannot be
116
+ # specified along with subnetwork or secondary_pod_range.
117
+ # Corresponds to the JSON property `networkAttachment`
118
+ # @return [String]
119
+ attr_accessor :network_attachment
120
+
115
121
  # The name of the secondary range on the subnet which provides IP address for
116
122
  # this pod range.
117
123
  # Corresponds to the JSON property `secondaryPodRange`
@@ -130,6 +136,7 @@ module Google
130
136
  # Update properties of this object
131
137
  def update!(**args)
132
138
  @max_pods_per_node = args[:max_pods_per_node] if args.key?(:max_pods_per_node)
139
+ @network_attachment = args[:network_attachment] if args.key?(:network_attachment)
133
140
  @secondary_pod_range = args[:secondary_pod_range] if args.key?(:secondary_pod_range)
134
141
  @subnetwork = args[:subnetwork] if args.key?(:subnetwork)
135
142
  end
@@ -236,6 +243,11 @@ module Google
236
243
  # @return [Google::Apis::ContainerV1beta1::NetworkPolicyConfig]
237
244
  attr_accessor :network_policy_config
238
245
 
246
+ # Configuration for the Cloud Storage Parallelstore CSI driver.
247
+ # Corresponds to the JSON property `parallelstoreCsiDriverConfig`
248
+ # @return [Google::Apis::ContainerV1beta1::ParallelstoreCsiDriverConfig]
249
+ attr_accessor :parallelstore_csi_driver_config
250
+
239
251
  # Configuration options for the Ray Operator add-on.
240
252
  # Corresponds to the JSON property `rayOperatorConfig`
241
253
  # @return [Google::Apis::ContainerV1beta1::RayOperatorConfig]
@@ -265,6 +277,7 @@ module Google
265
277
  @kalm_config = args[:kalm_config] if args.key?(:kalm_config)
266
278
  @kubernetes_dashboard = args[:kubernetes_dashboard] if args.key?(:kubernetes_dashboard)
267
279
  @network_policy_config = args[:network_policy_config] if args.key?(:network_policy_config)
280
+ @parallelstore_csi_driver_config = args[:parallelstore_csi_driver_config] if args.key?(:parallelstore_csi_driver_config)
268
281
  @ray_operator_config = args[:ray_operator_config] if args.key?(:ray_operator_config)
269
282
  @stateful_ha_config = args[:stateful_ha_config] if args.key?(:stateful_ha_config)
270
283
  end
@@ -360,6 +373,26 @@ module Google
360
373
  end
361
374
  end
362
375
 
376
+ # AutoMonitoringConfig defines the configuration for GKE Workload Auto-
377
+ # Monitoring.
378
+ class AutoMonitoringConfig
379
+ include Google::Apis::Core::Hashable
380
+
381
+ # Scope for GKE Workload Auto-Monitoring.
382
+ # Corresponds to the JSON property `scope`
383
+ # @return [String]
384
+ attr_accessor :scope
385
+
386
+ def initialize(**args)
387
+ update!(**args)
388
+ end
389
+
390
+ # Update properties of this object
391
+ def update!(**args)
392
+ @scope = args[:scope] if args.key?(:scope)
393
+ end
394
+ end
395
+
363
396
  # AutoUpgradeOptions defines the set of options for the user to control how the
364
397
  # Auto Upgrades will proceed.
365
398
  class AutoUpgradeOptions
@@ -404,8 +437,7 @@ module Google
404
437
  attr_accessor :enabled
405
438
  alias_method :enabled?, :enabled
406
439
 
407
- # WorkloadPolicyConfig is the configuration of workload policy for autopilot
408
- # clusters.
440
+ # WorkloadPolicyConfig is the configuration related to GCW workload policy
409
441
  # Corresponds to the JSON property `workloadPolicyConfig`
410
442
  # @return [Google::Apis::ContainerV1beta1::WorkloadPolicyConfig]
411
443
  attr_accessor :workload_policy_config
@@ -1059,6 +1091,11 @@ module Google
1059
1091
  # @return [Google::Apis::ContainerV1beta1::ConfidentialNodes]
1060
1092
  attr_accessor :confidential_nodes
1061
1093
 
1094
+ # Configuration for all of the cluster's control plane endpoints.
1095
+ # Corresponds to the JSON property `controlPlaneEndpointsConfig`
1096
+ # @return [Google::Apis::ContainerV1beta1::ControlPlaneEndpointsConfig]
1097
+ attr_accessor :control_plane_endpoints_config
1098
+
1062
1099
  # Configuration for fine-grained cost management feature.
1063
1100
  # Corresponds to the JSON property `costManagementConfig`
1064
1101
  # @return [Google::Apis::ContainerV1beta1::CostManagementConfig]
@@ -1374,6 +1411,12 @@ module Google
1374
1411
  # @return [Google::Apis::ContainerV1beta1::ParentProductConfig]
1375
1412
  attr_accessor :parent_product_config
1376
1413
 
1414
+ # PodAutoscaling is used for configuration of parameters for workload
1415
+ # autoscaling.
1416
+ # Corresponds to the JSON property `podAutoscaling`
1417
+ # @return [Google::Apis::ContainerV1beta1::PodAutoscaling]
1418
+ attr_accessor :pod_autoscaling
1419
+
1377
1420
  # Configuration for the PodSecurityPolicy feature.
1378
1421
  # Corresponds to the JSON property `podSecurityPolicyConfig`
1379
1422
  # @return [Google::Apis::ContainerV1beta1::PodSecurityPolicyConfig]
@@ -1399,6 +1442,12 @@ module Google
1399
1442
  # @return [Google::Apis::ContainerV1beta1::ProtectConfig]
1400
1443
  attr_accessor :protect_config
1401
1444
 
1445
+ # RBACBindingConfig allows user to restrict ClusterRoleBindings an RoleBindings
1446
+ # that can be created.
1447
+ # Corresponds to the JSON property `rbacBindingConfig`
1448
+ # @return [Google::Apis::ContainerV1beta1::RbacBindingConfig]
1449
+ attr_accessor :rbac_binding_config
1450
+
1402
1451
  # ReleaseChannel indicates which release channel a cluster is subscribed to.
1403
1452
  # Release channels are arranged in order of risk. When a cluster is subscribed
1404
1453
  # to a release channel, Google maintains both the master version and the node
@@ -1489,6 +1538,12 @@ module Google
1489
1538
  # @return [String]
1490
1539
  attr_accessor :tpu_ipv4_cidr_block
1491
1540
 
1541
+ # UserManagedKeysConfig holds the resource address to Keys which are used for
1542
+ # signing certs and token that are used for communication within cluster.
1543
+ # Corresponds to the JSON property `userManagedKeysConfig`
1544
+ # @return [Google::Apis::ContainerV1beta1::UserManagedKeysConfig]
1545
+ attr_accessor :user_managed_keys_config
1546
+
1492
1547
  # VerticalPodAutoscaling contains global, per-cluster information required by
1493
1548
  # Vertical Pod Autoscaler to automatically adjust the resources of pods
1494
1549
  # controlled by it.
@@ -1534,6 +1589,7 @@ module Google
1534
1589
  @compliance_posture_config = args[:compliance_posture_config] if args.key?(:compliance_posture_config)
1535
1590
  @conditions = args[:conditions] if args.key?(:conditions)
1536
1591
  @confidential_nodes = args[:confidential_nodes] if args.key?(:confidential_nodes)
1592
+ @control_plane_endpoints_config = args[:control_plane_endpoints_config] if args.key?(:control_plane_endpoints_config)
1537
1593
  @cost_management_config = args[:cost_management_config] if args.key?(:cost_management_config)
1538
1594
  @create_time = args[:create_time] if args.key?(:create_time)
1539
1595
  @current_master_version = args[:current_master_version] if args.key?(:current_master_version)
@@ -1581,10 +1637,12 @@ module Google
1581
1637
  @node_pools = args[:node_pools] if args.key?(:node_pools)
1582
1638
  @notification_config = args[:notification_config] if args.key?(:notification_config)
1583
1639
  @parent_product_config = args[:parent_product_config] if args.key?(:parent_product_config)
1640
+ @pod_autoscaling = args[:pod_autoscaling] if args.key?(:pod_autoscaling)
1584
1641
  @pod_security_policy_config = args[:pod_security_policy_config] if args.key?(:pod_security_policy_config)
1585
1642
  @private_cluster = args[:private_cluster] if args.key?(:private_cluster)
1586
1643
  @private_cluster_config = args[:private_cluster_config] if args.key?(:private_cluster_config)
1587
1644
  @protect_config = args[:protect_config] if args.key?(:protect_config)
1645
+ @rbac_binding_config = args[:rbac_binding_config] if args.key?(:rbac_binding_config)
1588
1646
  @release_channel = args[:release_channel] if args.key?(:release_channel)
1589
1647
  @resource_labels = args[:resource_labels] if args.key?(:resource_labels)
1590
1648
  @resource_usage_export_config = args[:resource_usage_export_config] if args.key?(:resource_usage_export_config)
@@ -1600,6 +1658,7 @@ module Google
1600
1658
  @subnetwork = args[:subnetwork] if args.key?(:subnetwork)
1601
1659
  @tpu_config = args[:tpu_config] if args.key?(:tpu_config)
1602
1660
  @tpu_ipv4_cidr_block = args[:tpu_ipv4_cidr_block] if args.key?(:tpu_ipv4_cidr_block)
1661
+ @user_managed_keys_config = args[:user_managed_keys_config] if args.key?(:user_managed_keys_config)
1603
1662
  @vertical_pod_autoscaling = args[:vertical_pod_autoscaling] if args.key?(:vertical_pod_autoscaling)
1604
1663
  @workload_alts_config = args[:workload_alts_config] if args.key?(:workload_alts_config)
1605
1664
  @workload_certificates = args[:workload_certificates] if args.key?(:workload_certificates)
@@ -1717,8 +1776,7 @@ module Google
1717
1776
  # @return [Google::Apis::ContainerV1beta1::AuthenticatorGroupsConfig]
1718
1777
  attr_accessor :desired_authenticator_groups_config
1719
1778
 
1720
- # WorkloadPolicyConfig is the configuration of workload policy for autopilot
1721
- # clusters.
1779
+ # WorkloadPolicyConfig is the configuration related to GCW workload policy
1722
1780
  # Corresponds to the JSON property `desiredAutopilotWorkloadPolicyConfig`
1723
1781
  # @return [Google::Apis::ContainerV1beta1::WorkloadPolicyConfig]
1724
1782
  attr_accessor :desired_autopilot_workload_policy_config
@@ -1740,11 +1798,22 @@ module Google
1740
1798
  # @return [Google::Apis::ContainerV1beta1::ClusterTelemetry]
1741
1799
  attr_accessor :desired_cluster_telemetry
1742
1800
 
1801
+ # CompliancePostureConfig defines the settings needed to enable/disable features
1802
+ # for the Compliance Posture.
1803
+ # Corresponds to the JSON property `desiredCompliancePostureConfig`
1804
+ # @return [Google::Apis::ContainerV1beta1::CompliancePostureConfig]
1805
+ attr_accessor :desired_compliance_posture_config
1806
+
1743
1807
  # ContainerdConfig contains configuration to customize containerd.
1744
1808
  # Corresponds to the JSON property `desiredContainerdConfig`
1745
1809
  # @return [Google::Apis::ContainerV1beta1::ContainerdConfig]
1746
1810
  attr_accessor :desired_containerd_config
1747
1811
 
1812
+ # Configuration for all of the cluster's control plane endpoints.
1813
+ # Corresponds to the JSON property `desiredControlPlaneEndpointsConfig`
1814
+ # @return [Google::Apis::ContainerV1beta1::ControlPlaneEndpointsConfig]
1815
+ attr_accessor :desired_control_plane_endpoints_config
1816
+
1748
1817
  # Configuration for fine-grained cost management feature.
1749
1818
  # Corresponds to the JSON property `desiredCostManagementConfig`
1750
1819
  # @return [Google::Apis::ContainerV1beta1::CostManagementConfig]
@@ -1760,6 +1829,13 @@ module Google
1760
1829
  # @return [String]
1761
1830
  attr_accessor :desired_datapath_provider
1762
1831
 
1832
+ # Override the default setting of whether future created nodes have private IP
1833
+ # addresses only, namely NetworkConfig.default_enable_private_nodes
1834
+ # Corresponds to the JSON property `desiredDefaultEnablePrivateNodes`
1835
+ # @return [Boolean]
1836
+ attr_accessor :desired_default_enable_private_nodes
1837
+ alias_method :desired_default_enable_private_nodes?, :desired_default_enable_private_nodes
1838
+
1763
1839
  # DefaultSnatStatus contains the desired state of whether default sNAT should be
1764
1840
  # disabled on the cluster.
1765
1841
  # Corresponds to the JSON property `desiredDefaultSnatStatus`
@@ -1789,12 +1865,21 @@ module Google
1789
1865
  attr_accessor :desired_enable_multi_networking
1790
1866
  alias_method :desired_enable_multi_networking?, :desired_enable_multi_networking
1791
1867
 
1792
- # Enable/Disable private endpoint for the cluster's master.
1868
+ # Enable/Disable private endpoint for the cluster's master. Deprecated: Use
1869
+ # desired_control_plane_endpoints_config.ip_endpoints_config.
1870
+ # enable_public_endpoint instead. Note that the value of enable_public_endpoint
1871
+ # is reversed: if enable_private_endpoint is false, then enable_public_endpoint
1872
+ # will be true.
1793
1873
  # Corresponds to the JSON property `desiredEnablePrivateEndpoint`
1794
1874
  # @return [Boolean]
1795
1875
  attr_accessor :desired_enable_private_endpoint
1796
1876
  alias_method :desired_enable_private_endpoint?, :desired_enable_private_endpoint
1797
1877
 
1878
+ # DesiredEnterpriseConfig is a wrapper used for updating enterprise_config.
1879
+ # Corresponds to the JSON property `desiredEnterpriseConfig`
1880
+ # @return [Google::Apis::ContainerV1beta1::DesiredEnterpriseConfig]
1881
+ attr_accessor :desired_enterprise_config
1882
+
1798
1883
  # Fleet is the fleet configuration for the cluster.
1799
1884
  # Corresponds to the JSON property `desiredFleet`
1800
1885
  # @return [Google::Apis::ContainerV1beta1::Fleet]
@@ -1936,6 +2021,11 @@ module Google
1936
2021
  # @return [Google::Apis::ContainerV1beta1::NodeKubeletConfig]
1937
2022
  attr_accessor :desired_node_pool_auto_config_kubelet_config
1938
2023
 
2024
+ # Parameters that can be configured on Linux nodes.
2025
+ # Corresponds to the JSON property `desiredNodePoolAutoConfigLinuxNodeConfig`
2026
+ # @return [Google::Apis::ContainerV1beta1::LinuxNodeConfig]
2027
+ attr_accessor :desired_node_pool_auto_config_linux_node_config
2028
+
1939
2029
  # Collection of Compute Engine network tags that can be applied to a node's
1940
2030
  # underlying VM instance. (See `tags` field in [`NodeConfig`](/kubernetes-engine/
1941
2031
  # docs/reference/rest/v1/NodeConfig)).
@@ -1994,6 +2084,12 @@ module Google
1994
2084
  # @return [Google::Apis::ContainerV1beta1::ParentProductConfig]
1995
2085
  attr_accessor :desired_parent_product_config
1996
2086
 
2087
+ # PodAutoscaling is used for configuration of parameters for workload
2088
+ # autoscaling.
2089
+ # Corresponds to the JSON property `desiredPodAutoscaling`
2090
+ # @return [Google::Apis::ContainerV1beta1::PodAutoscaling]
2091
+ attr_accessor :desired_pod_autoscaling
2092
+
1997
2093
  # Configuration for the PodSecurityPolicy feature.
1998
2094
  # Corresponds to the JSON property `desiredPodSecurityPolicyConfig`
1999
2095
  # @return [Google::Apis::ContainerV1beta1::PodSecurityPolicyConfig]
@@ -2015,6 +2111,12 @@ module Google
2015
2111
  # @return [Google::Apis::ContainerV1beta1::ProtectConfig]
2016
2112
  attr_accessor :desired_protect_config
2017
2113
 
2114
+ # RBACBindingConfig allows user to restrict ClusterRoleBindings an RoleBindings
2115
+ # that can be created.
2116
+ # Corresponds to the JSON property `desiredRbacBindingConfig`
2117
+ # @return [Google::Apis::ContainerV1beta1::RbacBindingConfig]
2118
+ attr_accessor :desired_rbac_binding_config
2119
+
2018
2120
  # ReleaseChannel indicates which release channel a cluster is subscribed to.
2019
2121
  # Release channels are arranged in order of risk. When a cluster is subscribed
2020
2122
  # to a release channel, Google maintains both the master version and the node
@@ -2106,6 +2208,12 @@ module Google
2106
2208
  # @return [Google::Apis::ContainerV1beta1::AdditionalPodRangesConfig]
2107
2209
  attr_accessor :removed_additional_pod_ranges_config
2108
2210
 
2211
+ # UserManagedKeysConfig holds the resource address to Keys which are used for
2212
+ # signing certs and token that are used for communication within cluster.
2213
+ # Corresponds to the JSON property `userManagedKeysConfig`
2214
+ # @return [Google::Apis::ContainerV1beta1::UserManagedKeysConfig]
2215
+ attr_accessor :user_managed_keys_config
2216
+
2109
2217
  def initialize(**args)
2110
2218
  update!(**args)
2111
2219
  end
@@ -2119,16 +2227,20 @@ module Google
2119
2227
  @desired_binary_authorization = args[:desired_binary_authorization] if args.key?(:desired_binary_authorization)
2120
2228
  @desired_cluster_autoscaling = args[:desired_cluster_autoscaling] if args.key?(:desired_cluster_autoscaling)
2121
2229
  @desired_cluster_telemetry = args[:desired_cluster_telemetry] if args.key?(:desired_cluster_telemetry)
2230
+ @desired_compliance_posture_config = args[:desired_compliance_posture_config] if args.key?(:desired_compliance_posture_config)
2122
2231
  @desired_containerd_config = args[:desired_containerd_config] if args.key?(:desired_containerd_config)
2232
+ @desired_control_plane_endpoints_config = args[:desired_control_plane_endpoints_config] if args.key?(:desired_control_plane_endpoints_config)
2123
2233
  @desired_cost_management_config = args[:desired_cost_management_config] if args.key?(:desired_cost_management_config)
2124
2234
  @desired_database_encryption = args[:desired_database_encryption] if args.key?(:desired_database_encryption)
2125
2235
  @desired_datapath_provider = args[:desired_datapath_provider] if args.key?(:desired_datapath_provider)
2236
+ @desired_default_enable_private_nodes = args[:desired_default_enable_private_nodes] if args.key?(:desired_default_enable_private_nodes)
2126
2237
  @desired_default_snat_status = args[:desired_default_snat_status] if args.key?(:desired_default_snat_status)
2127
2238
  @desired_dns_config = args[:desired_dns_config] if args.key?(:desired_dns_config)
2128
2239
  @desired_enable_cilium_clusterwide_network_policy = args[:desired_enable_cilium_clusterwide_network_policy] if args.key?(:desired_enable_cilium_clusterwide_network_policy)
2129
2240
  @desired_enable_fqdn_network_policy = args[:desired_enable_fqdn_network_policy] if args.key?(:desired_enable_fqdn_network_policy)
2130
2241
  @desired_enable_multi_networking = args[:desired_enable_multi_networking] if args.key?(:desired_enable_multi_networking)
2131
2242
  @desired_enable_private_endpoint = args[:desired_enable_private_endpoint] if args.key?(:desired_enable_private_endpoint)
2243
+ @desired_enterprise_config = args[:desired_enterprise_config] if args.key?(:desired_enterprise_config)
2132
2244
  @desired_fleet = args[:desired_fleet] if args.key?(:desired_fleet)
2133
2245
  @desired_gateway_api_config = args[:desired_gateway_api_config] if args.key?(:desired_gateway_api_config)
2134
2246
  @desired_gcfs_config = args[:desired_gcfs_config] if args.key?(:desired_gcfs_config)
@@ -2151,6 +2263,7 @@ module Google
2151
2263
  @desired_network_performance_config = args[:desired_network_performance_config] if args.key?(:desired_network_performance_config)
2152
2264
  @desired_node_kubelet_config = args[:desired_node_kubelet_config] if args.key?(:desired_node_kubelet_config)
2153
2265
  @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)
2266
+ @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)
2154
2267
  @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)
2155
2268
  @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)
2156
2269
  @desired_node_pool_autoscaling = args[:desired_node_pool_autoscaling] if args.key?(:desired_node_pool_autoscaling)
@@ -2159,10 +2272,12 @@ module Google
2159
2272
  @desired_node_version = args[:desired_node_version] if args.key?(:desired_node_version)
2160
2273
  @desired_notification_config = args[:desired_notification_config] if args.key?(:desired_notification_config)
2161
2274
  @desired_parent_product_config = args[:desired_parent_product_config] if args.key?(:desired_parent_product_config)
2275
+ @desired_pod_autoscaling = args[:desired_pod_autoscaling] if args.key?(:desired_pod_autoscaling)
2162
2276
  @desired_pod_security_policy_config = args[:desired_pod_security_policy_config] if args.key?(:desired_pod_security_policy_config)
2163
2277
  @desired_private_cluster_config = args[:desired_private_cluster_config] if args.key?(:desired_private_cluster_config)
2164
2278
  @desired_private_ipv6_google_access = args[:desired_private_ipv6_google_access] if args.key?(:desired_private_ipv6_google_access)
2165
2279
  @desired_protect_config = args[:desired_protect_config] if args.key?(:desired_protect_config)
2280
+ @desired_rbac_binding_config = args[:desired_rbac_binding_config] if args.key?(:desired_rbac_binding_config)
2166
2281
  @desired_release_channel = args[:desired_release_channel] if args.key?(:desired_release_channel)
2167
2282
  @desired_resource_usage_export_config = args[:desired_resource_usage_export_config] if args.key?(:desired_resource_usage_export_config)
2168
2283
  @desired_secret_manager_config = args[:desired_secret_manager_config] if args.key?(:desired_secret_manager_config)
@@ -2179,6 +2294,62 @@ module Google
2179
2294
  @etag = args[:etag] if args.key?(:etag)
2180
2295
  @private_cluster_config = args[:private_cluster_config] if args.key?(:private_cluster_config)
2181
2296
  @removed_additional_pod_ranges_config = args[:removed_additional_pod_ranges_config] if args.key?(:removed_additional_pod_ranges_config)
2297
+ @user_managed_keys_config = args[:user_managed_keys_config] if args.key?(:user_managed_keys_config)
2298
+ end
2299
+ end
2300
+
2301
+ # ClusterUpgradeInfo contains the upgrade information of a cluster.
2302
+ class ClusterUpgradeInfo
2303
+ include Google::Apis::Core::Hashable
2304
+
2305
+ # The auto upgrade status.
2306
+ # Corresponds to the JSON property `autoUpgradeStatus`
2307
+ # @return [Array<String>]
2308
+ attr_accessor :auto_upgrade_status
2309
+
2310
+ # The cluster's current minor version's end of extended support timestamp.
2311
+ # Corresponds to the JSON property `endOfExtendedSupportTimestamp`
2312
+ # @return [String]
2313
+ attr_accessor :end_of_extended_support_timestamp
2314
+
2315
+ # The cluster's current minor version's end of standard support timestamp.
2316
+ # Corresponds to the JSON property `endOfStandardSupportTimestamp`
2317
+ # @return [String]
2318
+ attr_accessor :end_of_standard_support_timestamp
2319
+
2320
+ # minor_target_version indicates the target version for minor upgrade.
2321
+ # Corresponds to the JSON property `minorTargetVersion`
2322
+ # @return [String]
2323
+ attr_accessor :minor_target_version
2324
+
2325
+ # patch_target_version indicates the target version for patch upgrade.
2326
+ # Corresponds to the JSON property `patchTargetVersion`
2327
+ # @return [String]
2328
+ attr_accessor :patch_target_version
2329
+
2330
+ # The auto upgrade paused reason.
2331
+ # Corresponds to the JSON property `pausedReason`
2332
+ # @return [Array<String>]
2333
+ attr_accessor :paused_reason
2334
+
2335
+ # The list of past auto upgrades.
2336
+ # Corresponds to the JSON property `upgradeDetails`
2337
+ # @return [Array<Google::Apis::ContainerV1beta1::UpgradeDetails>]
2338
+ attr_accessor :upgrade_details
2339
+
2340
+ def initialize(**args)
2341
+ update!(**args)
2342
+ end
2343
+
2344
+ # Update properties of this object
2345
+ def update!(**args)
2346
+ @auto_upgrade_status = args[:auto_upgrade_status] if args.key?(:auto_upgrade_status)
2347
+ @end_of_extended_support_timestamp = args[:end_of_extended_support_timestamp] if args.key?(:end_of_extended_support_timestamp)
2348
+ @end_of_standard_support_timestamp = args[:end_of_standard_support_timestamp] if args.key?(:end_of_standard_support_timestamp)
2349
+ @minor_target_version = args[:minor_target_version] if args.key?(:minor_target_version)
2350
+ @patch_target_version = args[:patch_target_version] if args.key?(:patch_target_version)
2351
+ @paused_reason = args[:paused_reason] if args.key?(:paused_reason)
2352
+ @upgrade_details = args[:upgrade_details] if args.key?(:upgrade_details)
2182
2353
  end
2183
2354
  end
2184
2355
 
@@ -2366,6 +2537,31 @@ module Google
2366
2537
  end
2367
2538
  end
2368
2539
 
2540
+ # Configuration for all of the cluster's control plane endpoints.
2541
+ class ControlPlaneEndpointsConfig
2542
+ include Google::Apis::Core::Hashable
2543
+
2544
+ # Describes the configuration of a DNS endpoint.
2545
+ # Corresponds to the JSON property `dnsEndpointConfig`
2546
+ # @return [Google::Apis::ContainerV1beta1::DnsEndpointConfig]
2547
+ attr_accessor :dns_endpoint_config
2548
+
2549
+ # IP endpoints configuration.
2550
+ # Corresponds to the JSON property `ipEndpointsConfig`
2551
+ # @return [Google::Apis::ContainerV1beta1::IpEndpointsConfig]
2552
+ attr_accessor :ip_endpoints_config
2553
+
2554
+ def initialize(**args)
2555
+ update!(**args)
2556
+ end
2557
+
2558
+ # Update properties of this object
2559
+ def update!(**args)
2560
+ @dns_endpoint_config = args[:dns_endpoint_config] if args.key?(:dns_endpoint_config)
2561
+ @ip_endpoints_config = args[:ip_endpoints_config] if args.key?(:ip_endpoints_config)
2562
+ end
2563
+ end
2564
+
2369
2565
  # Configuration for fine-grained cost management feature.
2370
2566
  class CostManagementConfig
2371
2567
  include Google::Apis::Core::Hashable
@@ -2519,6 +2715,36 @@ module Google
2519
2715
  end
2520
2716
  end
2521
2717
 
2718
+ # Describes the configuration of a DNS endpoint.
2719
+ class DnsEndpointConfig
2720
+ include Google::Apis::Core::Hashable
2721
+
2722
+ # Controls whether user traffic is allowed over this endpoint. Note that GCP-
2723
+ # managed services may still use the endpoint even if this is false.
2724
+ # Corresponds to the JSON property `allowExternalTraffic`
2725
+ # @return [Boolean]
2726
+ attr_accessor :allow_external_traffic
2727
+ alias_method :allow_external_traffic?, :allow_external_traffic
2728
+
2729
+ # Output only. The cluster's DNS endpoint configuration. A DNS format address.
2730
+ # This is accessible from the public internet. Ex: uid.us-central1.gke.goog.
2731
+ # Always present, but the behavior may change according to the value of
2732
+ # DNSEndpointConfig.allow_external_traffic.
2733
+ # Corresponds to the JSON property `endpoint`
2734
+ # @return [String]
2735
+ attr_accessor :endpoint
2736
+
2737
+ def initialize(**args)
2738
+ update!(**args)
2739
+ end
2740
+
2741
+ # Update properties of this object
2742
+ def update!(**args)
2743
+ @allow_external_traffic = args[:allow_external_traffic] if args.key?(:allow_external_traffic)
2744
+ @endpoint = args[:endpoint] if args.key?(:endpoint)
2745
+ end
2746
+ end
2747
+
2522
2748
  # Time window specified for daily maintenance operations.
2523
2749
  class DailyMaintenanceWindow
2524
2750
  include Google::Apis::Core::Hashable
@@ -2653,6 +2879,25 @@ module Google
2653
2879
  end
2654
2880
  end
2655
2881
 
2882
+ # DesiredEnterpriseConfig is a wrapper used for updating enterprise_config.
2883
+ class DesiredEnterpriseConfig
2884
+ include Google::Apis::Core::Hashable
2885
+
2886
+ # desired_tier specifies the desired tier of the cluster.
2887
+ # Corresponds to the JSON property `desiredTier`
2888
+ # @return [String]
2889
+ attr_accessor :desired_tier
2890
+
2891
+ def initialize(**args)
2892
+ update!(**args)
2893
+ end
2894
+
2895
+ # Update properties of this object
2896
+ def update!(**args)
2897
+ @desired_tier = args[:desired_tier] if args.key?(:desired_tier)
2898
+ end
2899
+ end
2900
+
2656
2901
  # Configuration for NodeLocal DNSCache
2657
2902
  class DnsCacheConfig
2658
2903
  include Google::Apis::Core::Hashable
@@ -2693,11 +2938,16 @@ module Google
2693
2938
  class EnterpriseConfig
2694
2939
  include Google::Apis::Core::Hashable
2695
2940
 
2696
- # Output only. cluster_tier specifies the premium tier of the cluster.
2941
+ # Output only. cluster_tier indicates the effective tier of the cluster.
2697
2942
  # Corresponds to the JSON property `clusterTier`
2698
2943
  # @return [String]
2699
2944
  attr_accessor :cluster_tier
2700
2945
 
2946
+ # desired_tier specifies the desired tier of the cluster.
2947
+ # Corresponds to the JSON property `desiredTier`
2948
+ # @return [String]
2949
+ attr_accessor :desired_tier
2950
+
2701
2951
  def initialize(**args)
2702
2952
  update!(**args)
2703
2953
  end
@@ -2705,6 +2955,7 @@ module Google
2705
2955
  # Update properties of this object
2706
2956
  def update!(**args)
2707
2957
  @cluster_tier = args[:cluster_tier] if args.key?(:cluster_tier)
2958
+ @desired_tier = args[:desired_tier] if args.key?(:desired_tier)
2708
2959
  end
2709
2960
  end
2710
2961
 
@@ -3465,6 +3716,76 @@ module Google
3465
3716
  end
3466
3717
  end
3467
3718
 
3719
+ # IP endpoints configuration.
3720
+ class IpEndpointsConfig
3721
+ include Google::Apis::Core::Hashable
3722
+
3723
+ # Configuration options for the master authorized networks feature. Enabled
3724
+ # master authorized networks will disallow all external traffic to access
3725
+ # Kubernetes master through HTTPS except traffic from the given CIDR blocks,
3726
+ # Google Compute Engine Public IPs and Google Prod IPs.
3727
+ # Corresponds to the JSON property `authorizedNetworksConfig`
3728
+ # @return [Google::Apis::ContainerV1beta1::MasterAuthorizedNetworksConfig]
3729
+ attr_accessor :authorized_networks_config
3730
+
3731
+ # Controls whether the control plane allows access through a public IP. It is
3732
+ # invalid to specify both PrivateClusterConfig.enablePrivateEndpoint and this
3733
+ # field at the same time.
3734
+ # Corresponds to the JSON property `enablePublicEndpoint`
3735
+ # @return [Boolean]
3736
+ attr_accessor :enable_public_endpoint
3737
+ alias_method :enable_public_endpoint?, :enable_public_endpoint
3738
+
3739
+ # Controls whether to allow direct IP access.
3740
+ # Corresponds to the JSON property `enabled`
3741
+ # @return [Boolean]
3742
+ attr_accessor :enabled
3743
+ alias_method :enabled?, :enabled
3744
+
3745
+ # Controls whether the control plane's private endpoint is accessible from
3746
+ # sources in other regions. It is invalid to specify both
3747
+ # PrivateClusterMasterGlobalAccessConfig.enabled and this field at the same time.
3748
+ # Corresponds to the JSON property `globalAccess`
3749
+ # @return [Boolean]
3750
+ attr_accessor :global_access
3751
+ alias_method :global_access?, :global_access
3752
+
3753
+ # Output only. The internal IP address of this cluster's control plane. Only
3754
+ # populated if enabled.
3755
+ # Corresponds to the JSON property `privateEndpoint`
3756
+ # @return [String]
3757
+ attr_accessor :private_endpoint
3758
+
3759
+ # Subnet to provision the master's private endpoint during cluster creation.
3760
+ # Specified in projects/*/regions/*/subnetworks/* format. It is invalid to
3761
+ # specify both PrivateClusterConfig.privateEndpointSubnetwork and this field at
3762
+ # the same time.
3763
+ # Corresponds to the JSON property `privateEndpointSubnetwork`
3764
+ # @return [String]
3765
+ attr_accessor :private_endpoint_subnetwork
3766
+
3767
+ # Output only. The external IP address of this cluster's control plane. Only
3768
+ # populated if enabled.
3769
+ # Corresponds to the JSON property `publicEndpoint`
3770
+ # @return [String]
3771
+ attr_accessor :public_endpoint
3772
+
3773
+ def initialize(**args)
3774
+ update!(**args)
3775
+ end
3776
+
3777
+ # Update properties of this object
3778
+ def update!(**args)
3779
+ @authorized_networks_config = args[:authorized_networks_config] if args.key?(:authorized_networks_config)
3780
+ @enable_public_endpoint = args[:enable_public_endpoint] if args.key?(:enable_public_endpoint)
3781
+ @enabled = args[:enabled] if args.key?(:enabled)
3782
+ @global_access = args[:global_access] if args.key?(:global_access)
3783
+ @private_endpoint = args[:private_endpoint] if args.key?(:private_endpoint)
3784
+ @private_endpoint_subnetwork = args[:private_endpoint_subnetwork] if args.key?(:private_endpoint_subnetwork)
3785
+ @public_endpoint = args[:public_endpoint] if args.key?(:public_endpoint)
3786
+ end
3787
+ end
3788
+
3468
3789
  # IdentityServiceConfig is configuration for Identity Service which allows
3469
3790
  # customers to use external identity providers with the K8S API
3470
3791
  class IdentityServiceConfig
@@ -3700,7 +4021,7 @@ module Google
3700
4021
  # the nodes. The following parameters are supported. net.core.busy_poll net.core.
3701
4022
  # busy_read net.core.netdev_max_backlog net.core.rmem_max net.core.wmem_default
3702
4023
  # net.core.wmem_max net.core.optmem_max net.core.somaxconn net.ipv4.tcp_rmem net.
3703
- # ipv4.tcp_wmem net.ipv4.tcp_tw_reuse
4024
+ # ipv4.tcp_wmem net.ipv4.tcp_tw_reuse kernel.shmmni kernel.shmmax kernel.shmall
3704
4025
  # Corresponds to the JSON property `sysctls`
3705
4026
  # @return [Hash<String,String>]
3706
4027
  attr_accessor :sysctls
@@ -4052,6 +4373,12 @@ module Google
4052
4373
  class ManagedPrometheusConfig
4053
4374
  include Google::Apis::Core::Hashable
4054
4375
 
4376
+ # AutoMonitoringConfig defines the configuration for GKE Workload Auto-
4377
+ # Monitoring.
4378
+ # Corresponds to the JSON property `autoMonitoringConfig`
4379
+ # @return [Google::Apis::ContainerV1beta1::AutoMonitoringConfig]
4380
+ attr_accessor :auto_monitoring_config
4381
+
4055
4382
  # Enable Managed Collection.
4056
4383
  # Corresponds to the JSON property `enabled`
4057
4384
  # @return [Boolean]
@@ -4064,6 +4391,7 @@ module Google
4064
4391
 
4065
4392
  # Update properties of this object
4066
4393
  def update!(**args)
4394
+ @auto_monitoring_config = args[:auto_monitoring_config] if args.key?(:auto_monitoring_config)
4067
4395
  @enabled = args[:enabled] if args.key?(:enabled)
4068
4396
  end
4069
4397
  end
@@ -4087,7 +4415,7 @@ module Google
4087
4415
  include Google::Apis::Core::Hashable
4088
4416
 
4089
4417
  # Output only. Base64-encoded public certificate used by clients to authenticate
4090
- # to the cluster endpoint.
4418
+ # to the cluster endpoint. Issued only if client_certificate_config is set.
4091
4419
  # Corresponds to the JSON property `clientCertificate`
4092
4420
  # @return [String]
4093
4421
  attr_accessor :client_certificate
@@ -4171,6 +4499,12 @@ module Google
4171
4499
  attr_accessor :gcp_public_cidrs_access_enabled
4172
4500
  alias_method :gcp_public_cidrs_access_enabled?, :gcp_public_cidrs_access_enabled
4173
4501
 
4502
+ # Whether master authorized networks is enforced on private endpoint or not.
4503
+ # Corresponds to the JSON property `privateEndpointEnforcementEnabled`
4504
+ # @return [Boolean]
4505
+ attr_accessor :private_endpoint_enforcement_enabled
4506
+ alias_method :private_endpoint_enforcement_enabled?, :private_endpoint_enforcement_enabled
4507
+
4174
4508
  def initialize(**args)
4175
4509
  update!(**args)
4176
4510
  end
@@ -4180,6 +4514,7 @@ module Google
4180
4514
  @cidr_blocks = args[:cidr_blocks] if args.key?(:cidr_blocks)
4181
4515
  @enabled = args[:enabled] if args.key?(:enabled)
4182
4516
  @gcp_public_cidrs_access_enabled = args[:gcp_public_cidrs_access_enabled] if args.key?(:gcp_public_cidrs_access_enabled)
4517
+ @private_endpoint_enforcement_enabled = args[:private_endpoint_enforcement_enabled] if args.key?(:private_endpoint_enforcement_enabled)
4183
4518
  end
4184
4519
  end
4185
4520
 
@@ -4326,6 +4661,15 @@ module Google
4326
4661
  # @return [String]
4327
4662
  attr_accessor :datapath_provider
4328
4663
 
4664
+ # Controls whether by default nodes have private IP addresses only. It is
4665
+ # invalid to specify both PrivateClusterConfig.enablePrivateNodes and this field
4666
+ # at the same time. To update the default setting, use ClusterUpdate.
4667
+ # desired_default_enable_private_nodes
4668
+ # Corresponds to the JSON property `defaultEnablePrivateNodes`
4669
+ # @return [Boolean]
4670
+ attr_accessor :default_enable_private_nodes
4671
+ alias_method :default_enable_private_nodes?, :default_enable_private_nodes
4672
+
4329
4673
  # DefaultSnatStatus contains the desired state of whether default sNAT should be
4330
4674
  # disabled on the cluster.
4331
4675
  # Corresponds to the JSON property `defaultSnatStatus`
@@ -4415,6 +4759,7 @@ module Google
4415
4759
  # Update properties of this object
4416
4760
  def update!(**args)
4417
4761
  @datapath_provider = args[:datapath_provider] if args.key?(:datapath_provider)
4762
+ @default_enable_private_nodes = args[:default_enable_private_nodes] if args.key?(:default_enable_private_nodes)
4418
4763
  @default_snat_status = args[:default_snat_status] if args.key?(:default_snat_status)
4419
4764
  @dns_config = args[:dns_config] if args.key?(:dns_config)
4420
4765
  @enable_cilium_clusterwide_network_policy = args[:enable_cilium_clusterwide_network_policy] if args.key?(:enable_cilium_clusterwide_network_policy)
@@ -4610,6 +4955,14 @@ module Google
4610
4955
  # @return [String]
4611
4956
  attr_accessor :disk_type
4612
4957
 
4958
+ # Output only. effective_cgroup_mode is the cgroup mode actually used by the
4959
+ # node pool. It is determined by the cgroup mode specified in the
4960
+ # LinuxNodeConfig or the default cgroup mode based on the cluster creation
4961
+ # version.
4962
+ # Corresponds to the JSON property `effectiveCgroupMode`
4963
+ # @return [String]
4964
+ attr_accessor :effective_cgroup_mode
4965
+
4613
4966
  # Optional. Reserved for future use.
4614
4967
  # Corresponds to the JSON property `enableConfidentialStorage`
4615
4968
  # @return [Boolean]
@@ -4691,6 +5044,12 @@ module Google
4691
5044
  # @return [Fixnum]
4692
5045
  attr_accessor :local_ssd_count
4693
5046
 
5047
+ # Specifies which method should be used for encrypting the Local SSDs attahced
5048
+ # to the node.
5049
+ # Corresponds to the JSON property `localSsdEncryptionMode`
5050
+ # @return [String]
5051
+ attr_accessor :local_ssd_encryption_mode
5052
+
4694
5053
  # NodePoolLoggingConfig specifies logging configuration for nodepools.
4695
5054
  # Corresponds to the JSON property `loggingConfig`
4696
5055
  # @return [Google::Apis::ContainerV1beta1::NodePoolLoggingConfig]
@@ -4703,6 +5062,12 @@ module Google
4703
5062
  # @return [String]
4704
5063
  attr_accessor :machine_type
4705
5064
 
5065
+ # The maximum duration for the nodes to exist. If unspecified, the nodes can
5066
+ # exist indefinitely.
5067
+ # Corresponds to the JSON property `maxRunDuration`
5068
+ # @return [String]
5069
+ attr_accessor :max_run_duration
5070
+
4706
5071
  # The metadata key/value pairs assigned to instances in the cluster. Keys must
4707
5072
  # conform to the regexp `[a-zA-Z0-9-_]+` and be less than 128 bytes in length.
4708
5073
  # These are reflected as part of a URL in the metadata server. Additionally, to
@@ -4822,6 +5187,11 @@ module Google
4822
5187
  attr_accessor :spot
4823
5188
  alias_method :spot?, :spot
4824
5189
 
5190
+ # List of Storage Pools where boot disks are provisioned.
5191
+ # Corresponds to the JSON property `storagePools`
5192
+ # @return [Array<String>]
5193
+ attr_accessor :storage_pools
5194
+
4825
5195
  # The list of instance tags applied to all nodes. Tags are used to identify
4826
5196
  # valid sources or targets for network firewalls and are specified by the client
4827
5197
  # during cluster or node pool creation. Each tag within the list must comply
@@ -4863,6 +5233,7 @@ module Google
4863
5233
  @containerd_config = args[:containerd_config] if args.key?(:containerd_config)
4864
5234
  @disk_size_gb = args[:disk_size_gb] if args.key?(:disk_size_gb)
4865
5235
  @disk_type = args[:disk_type] if args.key?(:disk_type)
5236
+ @effective_cgroup_mode = args[:effective_cgroup_mode] if args.key?(:effective_cgroup_mode)
4866
5237
  @enable_confidential_storage = args[:enable_confidential_storage] if args.key?(:enable_confidential_storage)
4867
5238
  @ephemeral_storage_config = args[:ephemeral_storage_config] if args.key?(:ephemeral_storage_config)
4868
5239
  @ephemeral_storage_local_ssd_config = args[:ephemeral_storage_local_ssd_config] if args.key?(:ephemeral_storage_local_ssd_config)
@@ -4876,8 +5247,10 @@ module Google
4876
5247
  @linux_node_config = args[:linux_node_config] if args.key?(:linux_node_config)
4877
5248
  @local_nvme_ssd_block_config = args[:local_nvme_ssd_block_config] if args.key?(:local_nvme_ssd_block_config)
4878
5249
  @local_ssd_count = args[:local_ssd_count] if args.key?(:local_ssd_count)
5250
+ @local_ssd_encryption_mode = args[:local_ssd_encryption_mode] if args.key?(:local_ssd_encryption_mode)
4879
5251
  @logging_config = args[:logging_config] if args.key?(:logging_config)
4880
5252
  @machine_type = args[:machine_type] if args.key?(:machine_type)
5253
+ @max_run_duration = args[:max_run_duration] if args.key?(:max_run_duration)
4881
5254
  @metadata = args[:metadata] if args.key?(:metadata)
4882
5255
  @min_cpu_platform = args[:min_cpu_platform] if args.key?(:min_cpu_platform)
4883
5256
  @node_group = args[:node_group] if args.key?(:node_group)
@@ -4893,6 +5266,7 @@ module Google
4893
5266
  @shielded_instance_config = args[:shielded_instance_config] if args.key?(:shielded_instance_config)
4894
5267
  @sole_tenant_config = args[:sole_tenant_config] if args.key?(:sole_tenant_config)
4895
5268
  @spot = args[:spot] if args.key?(:spot)
5269
+ @storage_pools = args[:storage_pools] if args.key?(:storage_pools)
4896
5270
  @tags = args[:tags] if args.key?(:tags)
4897
5271
  @taints = args[:taints] if args.key?(:taints)
4898
5272
  @windows_node_config = args[:windows_node_config] if args.key?(:windows_node_config)
@@ -5089,8 +5463,8 @@ module Google
5089
5463
  alias_method :create_pod_range?, :create_pod_range
5090
5464
 
5091
5465
  # Whether nodes have internal IP addresses only. If enable_private_nodes is not
5092
- # specified, then the value is derived from cluster.privateClusterConfig.
5093
- # enablePrivateNodes
5466
+ # specified, then the value is derived from Cluster.NetworkConfig.
5467
+ # default_enable_private_nodes
5094
5468
  # Corresponds to the JSON property `enablePrivateNodes`
5095
5469
  # @return [Boolean]
5096
5470
  attr_accessor :enable_private_nodes
@@ -5351,6 +5725,11 @@ module Google
5351
5725
  class NodePoolAutoConfig
5352
5726
  include Google::Apis::Core::Hashable
5353
5727
 
5728
+ # Parameters that can be configured on Linux nodes.
5729
+ # Corresponds to the JSON property `linuxNodeConfig`
5730
+ # @return [Google::Apis::ContainerV1beta1::LinuxNodeConfig]
5731
+ attr_accessor :linux_node_config
5732
+
5354
5733
  # Collection of Compute Engine network tags that can be applied to a node's
5355
5734
  # underlying VM instance. (See `tags` field in [`NodeConfig`](/kubernetes-engine/
5356
5735
  # docs/reference/rest/v1/NodeConfig)).
@@ -5378,6 +5757,7 @@ module Google
5378
5757
 
5379
5758
  # Update properties of this object
5380
5759
  def update!(**args)
5760
+ @linux_node_config = args[:linux_node_config] if args.key?(:linux_node_config)
5381
5761
  @network_tags = args[:network_tags] if args.key?(:network_tags)
5382
5762
  @node_kubelet_config = args[:node_kubelet_config] if args.key?(:node_kubelet_config)
5383
5763
  @resource_manager_tags = args[:resource_manager_tags] if args.key?(:resource_manager_tags)
@@ -5406,19 +5786,19 @@ module Google
5406
5786
  # @return [String]
5407
5787
  attr_accessor :location_policy
5408
5788
 
5409
- # Maximum number of nodes for one location in the NodePool. Must be >=
5789
+ # Maximum number of nodes for one location in the node pool. Must be >=
5410
5790
  # min_node_count. There has to be enough quota to scale up the cluster.
5411
5791
  # Corresponds to the JSON property `maxNodeCount`
5412
5792
  # @return [Fixnum]
5413
5793
  attr_accessor :max_node_count
5414
5794
 
5415
- # Minimum number of nodes for one location in the NodePool. Must be >= 1 and <=
5416
- # max_node_count.
5795
+ # Minimum number of nodes for one location in the node pool. Must be greater
5796
+ # than or equal to 0 and less than or equal to max_node_count.
5417
5797
  # Corresponds to the JSON property `minNodeCount`
5418
5798
  # @return [Fixnum]
5419
5799
  attr_accessor :min_node_count
5420
5800
 
5421
- # Maximum number of nodes in the node pool. Must be greater than
5801
+ # Maximum number of nodes in the node pool. Must be greater than or equal to
5422
5802
  # total_min_node_count. There has to be enough quota to scale up the cluster.
5423
5803
  # The total_*_node_count fields are mutually exclusive with the *_node_count
5424
5804
  # fields.
@@ -5426,9 +5806,9 @@ module Google
5426
5806
  # @return [Fixnum]
5427
5807
  attr_accessor :total_max_node_count
5428
5808
 
5429
- # Minimum number of nodes in the node pool. Must be greater than 1 less than
5430
- # total_max_node_count. The total_*_node_count fields are mutually exclusive
5431
- # with the *_node_count fields.
5809
+ # Minimum number of nodes in the node pool. Must be greater than or equal to 0
5810
+ # and less than or equal to total_max_node_count. The total_*_node_count fields
5811
+ # are mutually exclusive with the *_node_count fields.
5432
5812
  # Corresponds to the JSON property `totalMinNodeCount`
5433
5813
  # @return [Fixnum]
5434
5814
  attr_accessor :total_min_node_count
@@ -5487,6 +5867,61 @@ module Google
5487
5867
  end
5488
5868
  end
5489
5869
 
5870
+ # NodePoolUpgradeInfo contains the upgrade information of a nodepool.
5871
+ class NodePoolUpgradeInfo
5872
+ include Google::Apis::Core::Hashable
5873
+
5874
+ # The auto upgrade status.
5875
+ # Corresponds to the JSON property `autoUpgradeStatus`
5876
+ # @return [Array<String>]
5877
+ attr_accessor :auto_upgrade_status
5878
+
5879
+ # The nodepool's current minor version's end of extended support timestamp.
5880
+ # Corresponds to the JSON property `endOfExtendedSupportTimestamp`
5881
+ # @return [String]
5882
+ attr_accessor :end_of_extended_support_timestamp
5883
+
5884
+ # The nodepool's current minor version's end of standard support timestamp.
5885
+ # Corresponds to the JSON property `endOfStandardSupportTimestamp`
5886
+ # @return [String]
5887
+ attr_accessor :end_of_standard_support_timestamp
5888
+
5889
+ # minor_target_version indicates the target version for minor upgrade.
5890
+ # Corresponds to the JSON property `minorTargetVersion`
5891
+ # @return [String]
5892
+ attr_accessor :minor_target_version
5893
+
5894
+ # patch_target_version indicates the target version for patch upgrade.
5895
+ # Corresponds to the JSON property `patchTargetVersion`
5896
+ # @return [String]
5897
+ attr_accessor :patch_target_version
5898
+
5899
+ # The auto upgrade paused reason.
5900
+ # Corresponds to the JSON property `pausedReason`
5901
+ # @return [Array<String>]
5902
+ attr_accessor :paused_reason
5903
+
5904
+ # The list of past auto upgrades.
5905
+ # Corresponds to the JSON property `upgradeDetails`
5906
+ # @return [Array<Google::Apis::ContainerV1beta1::UpgradeDetails>]
5907
+ attr_accessor :upgrade_details
5908
+
5909
+ def initialize(**args)
5910
+ update!(**args)
5911
+ end
5912
+
5913
+ # Update properties of this object
5914
+ def update!(**args)
5915
+ @auto_upgrade_status = args[:auto_upgrade_status] if args.key?(:auto_upgrade_status)
5916
+ @end_of_extended_support_timestamp = args[:end_of_extended_support_timestamp] if args.key?(:end_of_extended_support_timestamp)
5917
+ @end_of_standard_support_timestamp = args[:end_of_standard_support_timestamp] if args.key?(:end_of_standard_support_timestamp)
5918
+ @minor_target_version = args[:minor_target_version] if args.key?(:minor_target_version)
5919
+ @patch_target_version = args[:patch_target_version] if args.key?(:patch_target_version)
5920
+ @paused_reason = args[:paused_reason] if args.key?(:paused_reason)
5921
+ @upgrade_details = args[:upgrade_details] if args.key?(:upgrade_details)
5922
+ end
5923
+ end
5924
+
5490
5925
  # Kubernetes taint is composed of three fields: key, value, and effect. Effect
5491
5926
  # can only be one of three types: NoSchedule, PreferNoSchedule or NoExecute. See
5492
5927
  # [here](https://kubernetes.io/docs/concepts/configuration/taint-and-toleration)
@@ -5797,6 +6232,26 @@ module Google
5797
6232
  end
5798
6233
  end
5799
6234
 
6235
+ # Configuration for the Cloud Storage Parallelstore CSI driver.
6236
+ class ParallelstoreCsiDriverConfig
6237
+ include Google::Apis::Core::Hashable
6238
+
6239
+ # Whether the Cloud Storage Parallelstore CSI driver is enabled for this cluster.
6240
+ # Corresponds to the JSON property `enabled`
6241
+ # @return [Boolean]
6242
+ attr_accessor :enabled
6243
+ alias_method :enabled?, :enabled
6244
+
6245
+ def initialize(**args)
6246
+ update!(**args)
6247
+ end
6248
+
6249
+ # Update properties of this object
6250
+ def update!(**args)
6251
+ @enabled = args[:enabled] if args.key?(:enabled)
6252
+ end
6253
+ end
6254
+
5800
6255
  # ParentProductConfig is the configuration of the parent product of the cluster.
5801
6256
  # This field is used by Google internal products that are built on top of a GKE
5802
6257
  # cluster and take the ownership of the cluster.
@@ -5858,6 +6313,26 @@ module Google
5858
6313
  end
5859
6314
  end
5860
6315
 
6316
+ # PodAutoscaling is used for configuration of parameters for workload
6317
+ # autoscaling.
6318
+ class PodAutoscaling
6319
+ include Google::Apis::Core::Hashable
6320
+
6321
+ # Selected Horizontal Pod Autoscaling profile.
6322
+ # Corresponds to the JSON property `hpaProfile`
6323
+ # @return [String]
6324
+ attr_accessor :hpa_profile
6325
+
6326
+ def initialize(**args)
6327
+ update!(**args)
6328
+ end
6329
+
6330
+ # Update properties of this object
6331
+ def update!(**args)
6332
+ @hpa_profile = args[:hpa_profile] if args.key?(:hpa_profile)
6333
+ end
6334
+ end
6335
+
5861
6336
  # [PRIVATE FIELD] Config for pod CIDR size overprovisioning.
5862
6337
  class PodCidrOverprovisionConfig
5863
6338
  include Google::Apis::Core::Hashable
@@ -5925,7 +6400,10 @@ module Google
5925
6400
  class PrivateClusterConfig
5926
6401
  include Google::Apis::Core::Hashable
5927
6402
 
5928
- # Whether the master's internal IP address is used as the cluster endpoint.
6403
+ # Whether the master's internal IP address is used as the cluster endpoint. Use
6404
+ # ControlPlaneEndpointsConfig.IPEndpointsConfig.enable_public_endpoint instead.
6405
+ # Note that the value of enable_public_endpoint is reversed: if
6406
+ # enable_private_endpoint is false, then enable_public_endpoint will be true.
5929
6407
  # Corresponds to the JSON property `enablePrivateEndpoint`
5930
6408
  # @return [Boolean]
5931
6409
  attr_accessor :enable_private_endpoint
@@ -5933,7 +6411,7 @@ module Google
5933
6411
 
5934
6412
  # Whether nodes have internal IP addresses only. If enabled, all nodes are given
5935
6413
  # only RFC 1918 private addresses and communicate with the master via private
5936
- # networking.
6414
+ # networking. Deprecated: Use NetworkConfig.default_enable_private_nodes instead.
5937
6415
  # Corresponds to the JSON property `enablePrivateNodes`
5938
6416
  # @return [Boolean]
5939
6417
  attr_accessor :enable_private_nodes
@@ -5958,17 +6436,23 @@ module Google
5958
6436
  attr_accessor :peering_name
5959
6437
 
5960
6438
  # Output only. The internal IP address of this cluster's master endpoint.
6439
+ # Deprecated: Use ControlPlaneEndpointsConfig.IPEndpointsConfig.private_endpoint
6440
+ # instead.
5961
6441
  # Corresponds to the JSON property `privateEndpoint`
5962
6442
  # @return [String]
5963
6443
  attr_accessor :private_endpoint
5964
6444
 
5965
6445
  # Subnet to provision the master's private endpoint during cluster creation.
5966
- # Specified in projects/*/regions/*/subnetworks/* format.
6446
+ # Specified in projects/*/regions/*/subnetworks/* format. Deprecated: Use
6447
+ # ControlPlaneEndpointsConfig.IPEndpointsConfig.private_endpoint_subnetwork
6448
+ # instead.
5967
6449
  # Corresponds to the JSON property `privateEndpointSubnetwork`
5968
6450
  # @return [String]
5969
6451
  attr_accessor :private_endpoint_subnetwork
5970
6452
 
5971
6453
  # Output only. The external IP address of this cluster's master endpoint.
6454
+ # Deprecated: Use ControlPlaneEndpointsConfig.IPEndpointsConfig.public_endpoint
6455
+ # instead.
5972
6456
  # Corresponds to the JSON property `publicEndpoint`
5973
6457
  # @return [String]
5974
6458
  attr_accessor :public_endpoint
@@ -6121,6 +6605,36 @@ module Google
6121
6605
  end
6122
6606
  end
6123
6607
 
6608
+ # RBACBindingConfig allows user to restrict ClusterRoleBindings an RoleBindings
6609
+ # that can be created.
6610
+ class RbacBindingConfig
6611
+ include Google::Apis::Core::Hashable
6612
+
6613
+ # Setting this to true will allow any ClusterRoleBinding and RoleBinding with
6614
+ # subjects system:authenticated.
6615
+ # Corresponds to the JSON property `enableInsecureBindingSystemAuthenticated`
6616
+ # @return [Boolean]
6617
+ attr_accessor :enable_insecure_binding_system_authenticated
6618
+ alias_method :enable_insecure_binding_system_authenticated?, :enable_insecure_binding_system_authenticated
6619
+
6620
+ # Setting this to true will allow any ClusterRoleBinding and RoleBinding with
6621
+ # subjets system:anonymous or system:unauthenticated.
6622
+ # Corresponds to the JSON property `enableInsecureBindingSystemUnauthenticated`
6623
+ # @return [Boolean]
6624
+ attr_accessor :enable_insecure_binding_system_unauthenticated
6625
+ alias_method :enable_insecure_binding_system_unauthenticated?, :enable_insecure_binding_system_unauthenticated
6626
+
6627
+ def initialize(**args)
6628
+ update!(**args)
6629
+ end
6630
+
6631
+ # Update properties of this object
6632
+ def update!(**args)
6633
+ @enable_insecure_binding_system_authenticated = args[:enable_insecure_binding_system_authenticated] if args.key?(:enable_insecure_binding_system_authenticated)
6634
+ @enable_insecure_binding_system_unauthenticated = args[:enable_insecure_binding_system_unauthenticated] if args.key?(:enable_insecure_binding_system_unauthenticated)
6635
+ end
6636
+ end
6637
+
6124
6638
  # RangeInfo contains the range name and the range utilization by this cluster.
6125
6639
  class RangeInfo
6126
6640
  include Google::Apis::Core::Hashable
@@ -6299,6 +6813,11 @@ module Google
6299
6813
  # @return [String]
6300
6814
  attr_accessor :default_version
6301
6815
 
6816
+ # The auto upgrade target version for clusters on the channel.
6817
+ # Corresponds to the JSON property `upgradeTargetVersion`
6818
+ # @return [String]
6819
+ attr_accessor :upgrade_target_version
6820
+
6302
6821
  # List of valid versions for the channel.
6303
6822
  # Corresponds to the JSON property `validVersions`
6304
6823
  # @return [Array<String>]
@@ -6313,6 +6832,7 @@ module Google
6313
6832
  @available_versions = args[:available_versions] if args.key?(:available_versions)
6314
6833
  @channel = args[:channel] if args.key?(:channel)
6315
6834
  @default_version = args[:default_version] if args.key?(:default_version)
6835
+ @upgrade_target_version = args[:upgrade_target_version] if args.key?(:upgrade_target_version)
6316
6836
  @valid_versions = args[:valid_versions] if args.key?(:valid_versions)
6317
6837
  end
6318
6838
  end
@@ -6591,7 +7111,7 @@ module Google
6591
7111
  class SecretManagerConfig
6592
7112
  include Google::Apis::Core::Hashable
6593
7113
 
6594
- # Whether the cluster is configured to use secret manager CSI component.
7114
+ # Enable/Disable Secret Manager Config.
6595
7115
  # Corresponds to the JSON property `enabled`
6596
7116
  # @return [Boolean]
6597
7117
  attr_accessor :enabled
@@ -7988,6 +8508,12 @@ module Google
7988
8508
  # @return [String]
7989
8509
  attr_accessor :machine_type
7990
8510
 
8511
+ # The maximum duration for the nodes to exist. If unspecified, the nodes can
8512
+ # exist indefinitely.
8513
+ # Corresponds to the JSON property `maxRunDuration`
8514
+ # @return [String]
8515
+ attr_accessor :max_run_duration
8516
+
7991
8517
  # The name (project, location, cluster, node pool) of the node pool to update.
7992
8518
  # Specified in the format `projects/*/locations/*/clusters/*/nodePools/*`.
7993
8519
  # Corresponds to the JSON property `name`
@@ -8043,6 +8569,12 @@ module Google
8043
8569
  # @return [Google::Apis::ContainerV1beta1::ResourceManagerTags]
8044
8570
  attr_accessor :resource_manager_tags
8045
8571
 
8572
+ # List of Storage Pools where boot disks are provisioned. Existing Storage Pools
8573
+ # will be replaced with storage-pools.
8574
+ # Corresponds to the JSON property `storagePools`
8575
+ # @return [Array<String>]
8576
+ attr_accessor :storage_pools
8577
+
8046
8578
  # Collection of Compute Engine network tags that can be applied to a node's
8047
8579
  # underlying VM instance. (See `tags` field in [`NodeConfig`](/kubernetes-engine/
8048
8580
  # docs/reference/rest/v1/NodeConfig)).
@@ -8134,6 +8666,7 @@ module Google
8134
8666
  @locations = args[:locations] if args.key?(:locations)
8135
8667
  @logging_config = args[:logging_config] if args.key?(:logging_config)
8136
8668
  @machine_type = args[:machine_type] if args.key?(:machine_type)
8669
+ @max_run_duration = args[:max_run_duration] if args.key?(:max_run_duration)
8137
8670
  @name = args[:name] if args.key?(:name)
8138
8671
  @node_network_config = args[:node_network_config] if args.key?(:node_network_config)
8139
8672
  @node_pool_id = args[:node_pool_id] if args.key?(:node_pool_id)
@@ -8142,6 +8675,7 @@ module Google
8142
8675
  @queued_provisioning = args[:queued_provisioning] if args.key?(:queued_provisioning)
8143
8676
  @resource_labels = args[:resource_labels] if args.key?(:resource_labels)
8144
8677
  @resource_manager_tags = args[:resource_manager_tags] if args.key?(:resource_manager_tags)
8678
+ @storage_pools = args[:storage_pools] if args.key?(:storage_pools)
8145
8679
  @tags = args[:tags] if args.key?(:tags)
8146
8680
  @taints = args[:taints] if args.key?(:taints)
8147
8681
  @upgrade_settings = args[:upgrade_settings] if args.key?(:upgrade_settings)
@@ -8199,6 +8733,50 @@ module Google
8199
8733
  end
8200
8734
  end
8201
8735
 
8736
+ # UpgradeDetails contains detailed information of each individual upgrade
8737
+ # operation.
8738
+ class UpgradeDetails
8739
+ include Google::Apis::Core::Hashable
8740
+
8741
+ # The end timestamp of the upgrade.
8742
+ # Corresponds to the JSON property `endTime`
8743
+ # @return [String]
8744
+ attr_accessor :end_time
8745
+
8746
+ # The version before the upgrade.
8747
+ # Corresponds to the JSON property `initialVersion`
8748
+ # @return [String]
8749
+ attr_accessor :initial_version
8750
+
8751
+ # The start timestamp of the upgrade.
8752
+ # Corresponds to the JSON property `startTime`
8753
+ # @return [String]
8754
+ attr_accessor :start_time
8755
+
8756
+ # Output only. The state of the upgrade.
8757
+ # Corresponds to the JSON property `state`
8758
+ # @return [String]
8759
+ attr_accessor :state
8760
+
8761
+ # The version after the upgrade.
8762
+ # Corresponds to the JSON property `targetVersion`
8763
+ # @return [String]
8764
+ attr_accessor :target_version
8765
+
8766
+ def initialize(**args)
8767
+ update!(**args)
8768
+ end
8769
+
8770
+ # Update properties of this object
8771
+ def update!(**args)
8772
+ @end_time = args[:end_time] if args.key?(:end_time)
8773
+ @initial_version = args[:initial_version] if args.key?(:initial_version)
8774
+ @start_time = args[:start_time] if args.key?(:start_time)
8775
+ @state = args[:state] if args.key?(:state)
8776
+ @target_version = args[:target_version] if args.key?(:target_version)
8777
+ end
8778
+ end
8779
+
8202
8780
  # UpgradeEvent is a notification sent to customers by the cluster server when a
8203
8781
  # resource is upgrading.
8204
8782
  class UpgradeEvent
@@ -8250,6 +8828,75 @@ module Google
8250
8828
  end
8251
8829
  end
8252
8830
 
8831
+ # UpgradeInfoEvent is a notification sent to customers about the upgrade
8832
+ # information of a resource.
8833
+ class UpgradeInfoEvent
8834
+ include Google::Apis::Core::Hashable
8835
+
8836
+ # The current version before the upgrade.
8837
+ # Corresponds to the JSON property `currentVersion`
8838
+ # @return [String]
8839
+ attr_accessor :current_version
8840
+
8841
+ # A brief description of the event.
8842
+ # Corresponds to the JSON property `description`
8843
+ # @return [String]
8844
+ attr_accessor :description
8845
+
8846
+ # The time when the operation ended.
8847
+ # Corresponds to the JSON property `endTime`
8848
+ # @return [String]
8849
+ attr_accessor :end_time
8850
+
8851
+ # The operation associated with this upgrade.
8852
+ # Corresponds to the JSON property `operation`
8853
+ # @return [String]
8854
+ attr_accessor :operation
8855
+
8856
+ # Optional relative path to the resource. For example in node pool upgrades, the
8857
+ # relative path of the node pool.
8858
+ # Corresponds to the JSON property `resource`
8859
+ # @return [String]
8860
+ attr_accessor :resource
8861
+
8862
+ # The resource type associated with the upgrade.
8863
+ # Corresponds to the JSON property `resourceType`
8864
+ # @return [String]
8865
+ attr_accessor :resource_type
8866
+
8867
+ # The time when the operation was started.
8868
+ # Corresponds to the JSON property `startTime`
8869
+ # @return [String]
8870
+ attr_accessor :start_time
8871
+
8872
+ # Output only. The state of the upgrade.
8873
+ # Corresponds to the JSON property `state`
8874
+ # @return [String]
8875
+ attr_accessor :state
8876
+
8877
+ # The target version for the upgrade.
8878
+ # Corresponds to the JSON property `targetVersion`
8879
+ # @return [String]
8880
+ attr_accessor :target_version
8881
+
8882
+ def initialize(**args)
8883
+ update!(**args)
8884
+ end
8885
+
8886
+ # Update properties of this object
8887
+ def update!(**args)
8888
+ @current_version = args[:current_version] if args.key?(:current_version)
8889
+ @description = args[:description] if args.key?(:description)
8890
+ @end_time = args[:end_time] if args.key?(:end_time)
8891
+ @operation = args[:operation] if args.key?(:operation)
8892
+ @resource = args[:resource] if args.key?(:resource)
8893
+ @resource_type = args[:resource_type] if args.key?(:resource_type)
8894
+ @start_time = args[:start_time] if args.key?(:start_time)
8895
+ @state = args[:state] if args.key?(:state)
8896
+ @target_version = args[:target_version] if args.key?(:target_version)
8897
+ end
8898
+ end
8899
+
8253
8900
  # These upgrade settings control the level of parallelism and the level of
8254
8901
  # disruption caused by an upgrade. maxUnavailable controls the number of nodes
8255
8902
  # that can be simultaneously unavailable. maxSurge controls the number of
@@ -8399,6 +9046,78 @@ module Google
8399
9046
  end
8400
9047
  end
8401
9048
 
9049
+ # UserManagedKeysConfig holds the resource address to Keys which are used for
9050
+ # signing certs and token that are used for communication within cluster.
9051
+ class UserManagedKeysConfig
9052
+ include Google::Apis::Core::Hashable
9053
+
9054
+ # The Certificate Authority Service caPool to use for the aggregation CA in this
9055
+ # cluster.
9056
+ # Corresponds to the JSON property `aggregationCa`
9057
+ # @return [String]
9058
+ attr_accessor :aggregation_ca
9059
+
9060
+ # The Certificate Authority Service caPool to use for the cluster CA in this
9061
+ # cluster.
9062
+ # Corresponds to the JSON property `clusterCa`
9063
+ # @return [String]
9064
+ attr_accessor :cluster_ca
9065
+
9066
+ # The Cloud KMS cryptoKey to use for Confidential Hyperdisk on the control plane
9067
+ # nodes.
9068
+ # Corresponds to the JSON property `controlPlaneDiskEncryptionKey`
9069
+ # @return [String]
9070
+ attr_accessor :control_plane_disk_encryption_key
9071
+
9072
+ # Resource path of the Certificate Authority Service caPool to use for the etcd
9073
+ # API CA in this cluster.
9074
+ # Corresponds to the JSON property `etcdApiCa`
9075
+ # @return [String]
9076
+ attr_accessor :etcd_api_ca
9077
+
9078
+ # Resource path of the Certificate Authority Service caPool to use for the etcd
9079
+ # peer CA in this cluster.
9080
+ # Corresponds to the JSON property `etcdPeerCa`
9081
+ # @return [String]
9082
+ attr_accessor :etcd_peer_ca
9083
+
9084
+ # Resource path of the Cloud KMS cryptoKey to use for encryption of internal
9085
+ # etcd backups.
9086
+ # Corresponds to the JSON property `gkeopsEtcdBackupEncryptionKey`
9087
+ # @return [String]
9088
+ attr_accessor :gkeops_etcd_backup_encryption_key
9089
+
9090
+ # The Cloud KMS cryptoKeyVersions to use for signing service account JWTs issued
9091
+ # by this cluster. Format: `projects/`project`/locations/`location`/keyRings/`
9092
+ # keyring`/cryptoKeys/`cryptoKey`/cryptoKeyVersions/`cryptoKeyVersion``
9093
+ # Corresponds to the JSON property `serviceAccountSigningKeys`
9094
+ # @return [Array<String>]
9095
+ attr_accessor :service_account_signing_keys
9096
+
9097
+ # The Cloud KMS cryptoKeyVersions to use for verifying service account JWTs
9098
+ # issued by this cluster. Format: `projects/`project`/locations/`location`/
9099
+ # keyRings/`keyring`/cryptoKeys/`cryptoKey`/cryptoKeyVersions/`cryptoKeyVersion``
9100
+ # Corresponds to the JSON property `serviceAccountVerificationKeys`
9101
+ # @return [Array<String>]
9102
+ attr_accessor :service_account_verification_keys
9103
+
9104
+ def initialize(**args)
9105
+ update!(**args)
9106
+ end
9107
+
9108
+ # Update properties of this object
9109
+ def update!(**args)
9110
+ @aggregation_ca = args[:aggregation_ca] if args.key?(:aggregation_ca)
9111
+ @cluster_ca = args[:cluster_ca] if args.key?(:cluster_ca)
9112
+ @control_plane_disk_encryption_key = args[:control_plane_disk_encryption_key] if args.key?(:control_plane_disk_encryption_key)
9113
+ @etcd_api_ca = args[:etcd_api_ca] if args.key?(:etcd_api_ca)
9114
+ @etcd_peer_ca = args[:etcd_peer_ca] if args.key?(:etcd_peer_ca)
9115
+ @gkeops_etcd_backup_encryption_key = args[:gkeops_etcd_backup_encryption_key] if args.key?(:gkeops_etcd_backup_encryption_key)
9116
+ @service_account_signing_keys = args[:service_account_signing_keys] if args.key?(:service_account_signing_keys)
9117
+ @service_account_verification_keys = args[:service_account_verification_keys] if args.key?(:service_account_verification_keys)
9118
+ end
9119
+ end
9120
+
8402
9121
  # VerticalPodAutoscaling contains global, per-cluster information required by
8403
9122
  # Vertical Pod Autoscaler to automatically adjust the resources of pods
8404
9123
  # controlled by it.
@@ -8643,8 +9362,7 @@ module Google
8643
9362
  end
8644
9363
  end
8645
9364
 
8646
- # WorkloadPolicyConfig is the configuration of workload policy for autopilot
8647
- # clusters.
9365
+ # WorkloadPolicyConfig is the configuration related to GCW workload policy
8648
9366
  class WorkloadPolicyConfig
8649
9367
  include Google::Apis::Core::Hashable
8650
9368