google-apis-container_v1beta1 0.75.0 → 0.77.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -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