google-cloud-container-v1 0.7.0 → 0.8.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -21,6 +21,75 @@ module Google
21
21
  module Cloud
22
22
  module Container
23
23
  module V1
24
+ # Parameters that can be configured on Linux nodes.
25
+ # @!attribute [rw] sysctls
26
+ # @return [::Google::Protobuf::Map{::String => ::String}]
27
+ # The Linux kernel parameters to be applied to the nodes and all pods running
28
+ # on the nodes.
29
+ #
30
+ # The following parameters are supported.
31
+ #
32
+ # net.core.netdev_max_backlog
33
+ # net.core.rmem_max
34
+ # net.core.wmem_default
35
+ # net.core.wmem_max
36
+ # net.core.optmem_max
37
+ # net.core.somaxconn
38
+ # net.ipv4.tcp_rmem
39
+ # net.ipv4.tcp_wmem
40
+ # net.ipv4.tcp_tw_reuse
41
+ class LinuxNodeConfig
42
+ include ::Google::Protobuf::MessageExts
43
+ extend ::Google::Protobuf::MessageExts::ClassMethods
44
+
45
+ # @!attribute [rw] key
46
+ # @return [::String]
47
+ # @!attribute [rw] value
48
+ # @return [::String]
49
+ class SysctlsEntry
50
+ include ::Google::Protobuf::MessageExts
51
+ extend ::Google::Protobuf::MessageExts::ClassMethods
52
+ end
53
+ end
54
+
55
+ # Node kubelet configs.
56
+ # @!attribute [rw] cpu_manager_policy
57
+ # @return [::String]
58
+ # Control the CPU management policy on the node.
59
+ # See
60
+ # https://kubernetes.io/docs/tasks/administer-cluster/cpu-management-policies/
61
+ #
62
+ # The following values are allowed.
63
+ # * "none": the default, which represents the existing scheduling behavior.
64
+ # * "static": allows pods with certain resource characteristics to be granted
65
+ # increased CPU affinity and exclusivity on the node.
66
+ # The default value is 'none' if unspecified.
67
+ # @!attribute [rw] cpu_cfs_quota
68
+ # @return [::Google::Protobuf::BoolValue]
69
+ # Enable CPU CFS quota enforcement for containers that specify CPU limits.
70
+ #
71
+ # This option is enabled by default which makes kubelet use CFS quota
72
+ # (https://www.kernel.org/doc/Documentation/scheduler/sched-bwc.txt) to
73
+ # enforce container CPU limits. Otherwise, CPU limits will not be enforced at
74
+ # all.
75
+ #
76
+ # Disable this option to mitigate CPU throttling problems while still having
77
+ # your pods to be in Guaranteed QoS class by specifying the CPU limits.
78
+ #
79
+ # The default value is 'true' if unspecified.
80
+ # @!attribute [rw] cpu_cfs_quota_period
81
+ # @return [::String]
82
+ # Set the CPU CFS quota period value 'cpu.cfs_period_us'.
83
+ #
84
+ # The string must be a sequence of decimal numbers, each with optional
85
+ # fraction and a unit suffix, such as "300ms".
86
+ # Valid time units are "ns", "us" (or "µs"), "ms", "s", "m", "h".
87
+ # The value must be a positive duration.
88
+ class NodeKubeletConfig
89
+ include ::Google::Protobuf::MessageExts
90
+ extend ::Google::Protobuf::MessageExts::ClassMethods
91
+ end
92
+
24
93
  # Parameters that describe the nodes in a cluster.
25
94
  # @!attribute [rw] machine_type
26
95
  # @return [::String]
@@ -84,9 +153,6 @@ module Google
84
153
  # - "install-ssh-psm1"
85
154
  # - "user-profile-psm1"
86
155
  #
87
- # The following keys are reserved for Windows nodes:
88
- # - "serial-port-logging-enable"
89
- #
90
156
  # Values are free-form strings, and only have meaning as interpreted by
91
157
  # the image running in the instance. The only restriction placed on them is
92
158
  # that each value's size must be less than or equal to 32 KB.
@@ -172,6 +238,12 @@ module Google
172
238
  # @!attribute [rw] shielded_instance_config
173
239
  # @return [::Google::Cloud::Container::V1::ShieldedInstanceConfig]
174
240
  # Shielded Instance options.
241
+ # @!attribute [rw] linux_node_config
242
+ # @return [::Google::Cloud::Container::V1::LinuxNodeConfig]
243
+ # Parameters that can be configured on Linux nodes.
244
+ # @!attribute [rw] kubelet_config
245
+ # @return [::Google::Cloud::Container::V1::NodeKubeletConfig]
246
+ # Node kubelet configs.
175
247
  # @!attribute [rw] boot_disk_kms_key
176
248
  # @return [::String]
177
249
  # The Customer Managed Encryption Key used to encrypt the boot disk attached
@@ -180,6 +252,15 @@ module Google
180
252
  # For more information about protecting resources with Cloud KMS Keys please
181
253
  # see:
182
254
  # https://cloud.google.com/compute/docs/disks/customer-managed-encryption
255
+ # @!attribute [rw] gcfs_config
256
+ # @return [::Google::Cloud::Container::V1::GcfsConfig]
257
+ # Google Container File System (image streaming) configs.
258
+ # @!attribute [rw] advanced_machine_features
259
+ # @return [::Google::Cloud::Container::V1::AdvancedMachineFeatures]
260
+ # Advanced features for the Compute Engine VM.
261
+ # @!attribute [rw] gvnic
262
+ # @return [::Google::Cloud::Container::V1::VirtualNIC]
263
+ # Enable or disable gvnic in the node pool.
183
264
  class NodeConfig
184
265
  include ::Google::Protobuf::MessageExts
185
266
  extend ::Google::Protobuf::MessageExts::ClassMethods
@@ -203,6 +284,64 @@ module Google
203
284
  end
204
285
  end
205
286
 
287
+ # Specifies options for controlling advanced machine features.
288
+ # @!attribute [rw] threads_per_core
289
+ # @return [::Integer]
290
+ # The number of threads per physical core. To disable simultaneous
291
+ # multithreading (SMT) set this to 1. If unset, the maximum number of threads
292
+ # supported per core by the underlying processor is assumed.
293
+ class AdvancedMachineFeatures
294
+ include ::Google::Protobuf::MessageExts
295
+ extend ::Google::Protobuf::MessageExts::ClassMethods
296
+ end
297
+
298
+ # Parameters for node pool-level network config.
299
+ # @!attribute [rw] create_pod_range
300
+ # @return [::Boolean]
301
+ # Input only. Whether to create a new range for pod IPs in this node pool.
302
+ # Defaults are provided for `pod_range` and `pod_ipv4_cidr_block` if they
303
+ # are not specified.
304
+ #
305
+ # If neither `create_pod_range` or `pod_range` are specified, the
306
+ # cluster-level default (`ip_allocation_policy.cluster_ipv4_cidr_block`) is
307
+ # used.
308
+ #
309
+ # Only applicable if `ip_allocation_policy.use_ip_aliases` is true.
310
+ #
311
+ # This field cannot be changed after the node pool has been created.
312
+ # @!attribute [rw] pod_range
313
+ # @return [::String]
314
+ # The ID of the secondary range for pod IPs.
315
+ # If `create_pod_range` is true, this ID is used for the new range.
316
+ # If `create_pod_range` is false, uses an existing secondary range with this
317
+ # ID.
318
+ #
319
+ # Only applicable if `ip_allocation_policy.use_ip_aliases` is true.
320
+ #
321
+ # This field cannot be changed after the node pool has been created.
322
+ # @!attribute [rw] pod_ipv4_cidr_block
323
+ # @return [::String]
324
+ # The IP address range for pod IPs in this node pool.
325
+ #
326
+ # Only applicable if `create_pod_range` is true.
327
+ #
328
+ # Set to blank to have a range chosen with the default size.
329
+ #
330
+ # Set to /netmask (e.g. `/14`) to have a range chosen with a specific
331
+ # netmask.
332
+ #
333
+ # Set to a
334
+ # [CIDR](https://en.wikipedia.org/wiki/Classless_Inter-Domain_Routing)
335
+ # notation (e.g. `10.96.0.0/14`) to pick a specific range to use.
336
+ #
337
+ # Only applicable if `ip_allocation_policy.use_ip_aliases` is true.
338
+ #
339
+ # This field cannot be changed after the node pool has been created.
340
+ class NodeNetworkConfig
341
+ include ::Google::Protobuf::MessageExts
342
+ extend ::Google::Protobuf::MessageExts::ClassMethods
343
+ end
344
+
206
345
  # A set of Shielded Instance options.
207
346
  # @!attribute [rw] enable_secure_boot
208
347
  # @return [::Boolean]
@@ -242,6 +381,16 @@ module Google
242
381
  end
243
382
  end
244
383
 
384
+ # GcfsConfig contains configurations of Google Container File System
385
+ # (image streaming).
386
+ # @!attribute [rw] enabled
387
+ # @return [::Boolean]
388
+ # Whether to use GCFS.
389
+ class GcfsConfig
390
+ include ::Google::Protobuf::MessageExts
391
+ extend ::Google::Protobuf::MessageExts::ClassMethods
392
+ end
393
+
245
394
  # [ReservationAffinity](https://cloud.google.com/compute/docs/instances/reserving-zonal-resources)
246
395
  # is the configuration of desired reservation which instances could take
247
396
  # capacity from.
@@ -401,6 +550,12 @@ module Google
401
550
  # @return [::Google::Cloud::Container::V1::ConfigConnectorConfig]
402
551
  # Configuration for the ConfigConnector add-on, a Kubernetes
403
552
  # extension to manage hosted GCP services through the Kubernetes API
553
+ # @!attribute [rw] gce_persistent_disk_csi_driver_config
554
+ # @return [::Google::Cloud::Container::V1::GcePersistentDiskCsiDriverConfig]
555
+ # Configuration for the Compute Engine Persistent Disk CSI driver.
556
+ # @!attribute [rw] gcp_filestore_csi_driver_config
557
+ # @return [::Google::Cloud::Container::V1::GcpFilestoreCsiDriverConfig]
558
+ # Configuration for the GCP Filestore CSI driver.
404
559
  class AddonsConfig
405
560
  include ::Google::Protobuf::MessageExts
406
561
  extend ::Google::Protobuf::MessageExts::ClassMethods
@@ -548,6 +703,24 @@ module Google
548
703
  extend ::Google::Protobuf::MessageExts::ClassMethods
549
704
  end
550
705
 
706
+ # Configuration for the Compute Engine PD CSI driver.
707
+ # @!attribute [rw] enabled
708
+ # @return [::Boolean]
709
+ # Whether the Compute Engine PD CSI driver is enabled for this cluster.
710
+ class GcePersistentDiskCsiDriverConfig
711
+ include ::Google::Protobuf::MessageExts
712
+ extend ::Google::Protobuf::MessageExts::ClassMethods
713
+ end
714
+
715
+ # Configuration for the GCP Filestore CSI driver.
716
+ # @!attribute [rw] enabled
717
+ # @return [::Boolean]
718
+ # Whether the GCP Filestore CSI driver is enabled for this cluster.
719
+ class GcpFilestoreCsiDriverConfig
720
+ include ::Google::Protobuf::MessageExts
721
+ extend ::Google::Protobuf::MessageExts::ClassMethods
722
+ end
723
+
551
724
  # Configuration options for the master authorized networks feature. Enabled
552
725
  # master authorized networks will disallow all external traffic to access
553
726
  # Kubernetes master through HTTPS except traffic from the given CIDR blocks,
@@ -922,6 +1095,16 @@ module Google
922
1095
  # @return [::Google::Cloud::Container::V1::WorkloadIdentityConfig]
923
1096
  # Configuration for the use of Kubernetes Service Accounts in GCP IAM
924
1097
  # policies.
1098
+ # @!attribute [rw] mesh_certificates
1099
+ # @return [::Google::Cloud::Container::V1::MeshCertificates]
1100
+ # Configuration for issuance of mTLS keys and certificates to Kubernetes
1101
+ # pods.
1102
+ # @!attribute [rw] notification_config
1103
+ # @return [::Google::Cloud::Container::V1::NotificationConfig]
1104
+ # Notification configuration of the cluster.
1105
+ # @!attribute [rw] confidential_nodes
1106
+ # @return [::Google::Cloud::Container::V1::ConfidentialNodes]
1107
+ # Configuration of Confidential Nodes
925
1108
  # @!attribute [rw] self_link
926
1109
  # @return [::String]
927
1110
  # [Output only] Server-defined URL for the resource.
@@ -1017,6 +1200,22 @@ module Google
1017
1200
  # @!attribute [rw] conditions
1018
1201
  # @return [::Array<::Google::Cloud::Container::V1::StatusCondition>]
1019
1202
  # Which conditions caused the current cluster state.
1203
+ # @!attribute [rw] autopilot
1204
+ # @return [::Google::Cloud::Container::V1::Autopilot]
1205
+ # Autopilot configuration for the cluster.
1206
+ # @!attribute [r] id
1207
+ # @return [::String]
1208
+ # Output only. Unique id for the cluster.
1209
+ # @!attribute [rw] node_pool_defaults
1210
+ # @return [::Google::Cloud::Container::V1::NodePoolDefaults]
1211
+ # Default NodePool settings for the entire cluster. These settings are
1212
+ # overridden if specified on the specific NodePool object.
1213
+ # @!attribute [rw] logging_config
1214
+ # @return [::Google::Cloud::Container::V1::LoggingConfig]
1215
+ # Logging configuration for the cluster.
1216
+ # @!attribute [rw] monitoring_config
1217
+ # @return [::Google::Cloud::Container::V1::MonitoringConfig]
1218
+ # Monitoring configuration for the cluster.
1020
1219
  class Cluster
1021
1220
  include ::Google::Protobuf::MessageExts
1022
1221
  extend ::Google::Protobuf::MessageExts::ClassMethods
@@ -1060,6 +1259,24 @@ module Google
1060
1259
  end
1061
1260
  end
1062
1261
 
1262
+ # Subset of Nodepool message that has defaults.
1263
+ # @!attribute [rw] node_config_defaults
1264
+ # @return [::Google::Cloud::Container::V1::NodeConfigDefaults]
1265
+ # Subset of NodeConfig message that has defaults.
1266
+ class NodePoolDefaults
1267
+ include ::Google::Protobuf::MessageExts
1268
+ extend ::Google::Protobuf::MessageExts::ClassMethods
1269
+ end
1270
+
1271
+ # Subset of NodeConfig message that has defaults.
1272
+ # @!attribute [rw] gcfs_config
1273
+ # @return [::Google::Cloud::Container::V1::GcfsConfig]
1274
+ # GCFS (Google Container File System, a.k.a Riptide) options.
1275
+ class NodeConfigDefaults
1276
+ include ::Google::Protobuf::MessageExts
1277
+ extend ::Google::Protobuf::MessageExts::ClassMethods
1278
+ end
1279
+
1063
1280
  # ClusterUpdate describes an update to the cluster. Exactly one update can
1064
1281
  # be applied to a cluster with each request, so at most one field can be
1065
1282
  # provided.
@@ -1108,9 +1325,16 @@ module Google
1108
1325
  # @!attribute [rw] desired_workload_identity_config
1109
1326
  # @return [::Google::Cloud::Container::V1::WorkloadIdentityConfig]
1110
1327
  # Configuration for Workload Identity.
1328
+ # @!attribute [rw] desired_mesh_certificates
1329
+ # @return [::Google::Cloud::Container::V1::MeshCertificates]
1330
+ # Configuration for issuance of mTLS keys and certificates to Kubernetes
1331
+ # pods.
1111
1332
  # @!attribute [rw] desired_shielded_nodes
1112
1333
  # @return [::Google::Cloud::Container::V1::ShieldedNodes]
1113
1334
  # Configuration for Shielded Nodes.
1335
+ # @!attribute [rw] desired_dns_config
1336
+ # @return [::Google::Cloud::Container::V1::DNSConfig]
1337
+ # DNSConfig contains clusterDNS config for this cluster.
1114
1338
  # @!attribute [rw] desired_node_pool_autoscaling
1115
1339
  # @return [::Google::Cloud::Container::V1::NodePoolAutoscaling]
1116
1340
  # Autoscaler configuration for the node pool specified in
@@ -1167,9 +1391,31 @@ module Google
1167
1391
  # @!attribute [rw] desired_release_channel
1168
1392
  # @return [::Google::Cloud::Container::V1::ReleaseChannel]
1169
1393
  # The desired release channel configuration.
1394
+ # @!attribute [rw] desired_l4ilb_subsetting_config
1395
+ # @return [::Google::Cloud::Container::V1::ILBSubsettingConfig]
1396
+ # The desired L4 Internal Load Balancer Subsetting configuration.
1397
+ # @!attribute [rw] desired_datapath_provider
1398
+ # @return [::Google::Cloud::Container::V1::DatapathProvider]
1399
+ # The desired datapath provider for the cluster.
1400
+ # @!attribute [rw] desired_private_ipv6_google_access
1401
+ # @return [::Google::Cloud::Container::V1::PrivateIPv6GoogleAccess]
1402
+ # The desired state of IPv6 connectivity to Google Services.
1403
+ # @!attribute [rw] desired_notification_config
1404
+ # @return [::Google::Cloud::Container::V1::NotificationConfig]
1405
+ # The desired notification configuration.
1170
1406
  # @!attribute [rw] desired_authenticator_groups_config
1171
1407
  # @return [::Google::Cloud::Container::V1::AuthenticatorGroupsConfig]
1172
1408
  # The desired authenticator groups config for the cluster.
1409
+ # @!attribute [rw] desired_logging_config
1410
+ # @return [::Google::Cloud::Container::V1::LoggingConfig]
1411
+ # The desired logging configuration.
1412
+ # @!attribute [rw] desired_monitoring_config
1413
+ # @return [::Google::Cloud::Container::V1::MonitoringConfig]
1414
+ # The desired monitoring configuration.
1415
+ # @!attribute [rw] desired_service_external_ips_config
1416
+ # @return [::Google::Cloud::Container::V1::ServiceExternalIPsConfig]
1417
+ # ServiceExternalIPsConfig specifies the config for the use of Services with
1418
+ # ExternalIPs field.
1173
1419
  # @!attribute [rw] desired_master_version
1174
1420
  # @return [::String]
1175
1421
  # The Kubernetes version to change the master to.
@@ -1182,6 +1428,9 @@ module Google
1182
1428
  # - "1.X.Y": picks the highest valid gke.N patch in the 1.X.Y version
1183
1429
  # - "1.X.Y-gke.N": picks an explicit Kubernetes version
1184
1430
  # - "-": picks the default Kubernetes version
1431
+ # @!attribute [rw] desired_gcfs_config
1432
+ # @return [::Google::Cloud::Container::V1::GcfsConfig]
1433
+ # The desired GCFS config for the cluster
1185
1434
  class ClusterUpdate
1186
1435
  include ::Google::Protobuf::MessageExts
1187
1436
  extend ::Google::Protobuf::MessageExts::ClassMethods
@@ -1209,6 +1458,7 @@ module Google
1209
1458
  # @!attribute [r] status_message
1210
1459
  # @return [::String]
1211
1460
  # Output only. If an error has occurred, a textual description of the error.
1461
+ # Deprecated. Use the field error instead.
1212
1462
  # @!attribute [rw] self_link
1213
1463
  # @return [::String]
1214
1464
  # Server-defined URL for the resource.
@@ -1236,9 +1486,14 @@ module Google
1236
1486
  # @!attribute [rw] cluster_conditions
1237
1487
  # @return [::Array<::Google::Cloud::Container::V1::StatusCondition>]
1238
1488
  # Which conditions caused the current cluster state.
1489
+ # Deprecated. Use field error instead.
1239
1490
  # @!attribute [rw] nodepool_conditions
1240
1491
  # @return [::Array<::Google::Cloud::Container::V1::StatusCondition>]
1241
1492
  # Which conditions caused the current node pool state.
1493
+ # Deprecated. Use field error instead.
1494
+ # @!attribute [rw] error
1495
+ # @return [::Google::Rpc::Status]
1496
+ # The error result of the operation in case of failure.
1242
1497
  class Operation
1243
1498
  include ::Google::Protobuf::MessageExts
1244
1499
  extend ::Google::Protobuf::MessageExts::ClassMethods
@@ -1491,6 +1746,18 @@ module Google
1491
1746
  # @!attribute [rw] upgrade_settings
1492
1747
  # @return [::Google::Cloud::Container::V1::NodePool::UpgradeSettings]
1493
1748
  # Upgrade settings control disruption and speed of the upgrade.
1749
+ # @!attribute [rw] linux_node_config
1750
+ # @return [::Google::Cloud::Container::V1::LinuxNodeConfig]
1751
+ # Parameters that can be configured on Linux nodes.
1752
+ # @!attribute [rw] kubelet_config
1753
+ # @return [::Google::Cloud::Container::V1::NodeKubeletConfig]
1754
+ # Node kubelet configs.
1755
+ # @!attribute [rw] gcfs_config
1756
+ # @return [::Google::Cloud::Container::V1::GcfsConfig]
1757
+ # GCFS config.
1758
+ # @!attribute [rw] gvnic
1759
+ # @return [::Google::Cloud::Container::V1::VirtualNIC]
1760
+ # Enable or disable gvnic on the node pool.
1494
1761
  class UpdateNodePoolRequest
1495
1762
  include ::Google::Protobuf::MessageExts
1496
1763
  extend ::Google::Protobuf::MessageExts::ClassMethods
@@ -2104,6 +2371,10 @@ module Google
2104
2371
  #
2105
2372
  # Warning: changing node pool locations will result in nodes being added
2106
2373
  # and/or removed.
2374
+ # @!attribute [rw] network_config
2375
+ # @return [::Google::Cloud::Container::V1::NodeNetworkConfig]
2376
+ # Networking configuration for this NodePool. If specified, it overrides the
2377
+ # cluster-level defaults.
2107
2378
  # @!attribute [rw] self_link
2108
2379
  # @return [::String]
2109
2380
  # [Output only] Server-defined URL for the resource.
@@ -2297,6 +2568,10 @@ module Google
2297
2568
  end
2298
2569
 
2299
2570
  # Represents an arbitrary window of time.
2571
+ # @!attribute [rw] maintenance_exclusion_options
2572
+ # @return [::Google::Cloud::Container::V1::MaintenanceExclusionOptions]
2573
+ # MaintenanceExclusionOptions provides maintenance exclusion related
2574
+ # options.
2300
2575
  # @!attribute [rw] start_time
2301
2576
  # @return [::Google::Protobuf::Timestamp]
2302
2577
  # The time that the window first starts.
@@ -2309,6 +2584,33 @@ module Google
2309
2584
  extend ::Google::Protobuf::MessageExts::ClassMethods
2310
2585
  end
2311
2586
 
2587
+ # Represents the Maintenance exclusion option.
2588
+ # @!attribute [rw] scope
2589
+ # @return [::Google::Cloud::Container::V1::MaintenanceExclusionOptions::Scope]
2590
+ # Scope specifies the upgrade scope which upgrades are blocked by the
2591
+ # exclusion.
2592
+ class MaintenanceExclusionOptions
2593
+ include ::Google::Protobuf::MessageExts
2594
+ extend ::Google::Protobuf::MessageExts::ClassMethods
2595
+
2596
+ # Scope of exclusion.
2597
+ module Scope
2598
+ # NO_UPGRADES excludes all upgrades, including patch upgrades and minor
2599
+ # upgrades across control planes and nodes. This is the default exclusion
2600
+ # behavior.
2601
+ NO_UPGRADES = 0
2602
+
2603
+ # NO_MINOR_UPGRADES excludes all minor upgrades for the cluster, only
2604
+ # patches are allowed.
2605
+ NO_MINOR_UPGRADES = 1
2606
+
2607
+ # NO_MINOR_OR_NODE_UPGRADES excludes all minor upgrades for the cluster,
2608
+ # and also exclude all node pool upgrades. Only control
2609
+ # plane patches are allowed.
2610
+ NO_MINOR_OR_NODE_UPGRADES = 2
2611
+ end
2612
+ end
2613
+
2312
2614
  # Represents an arbitrary window of time that recurs.
2313
2615
  # @!attribute [rw] window
2314
2616
  # @return [::Google::Cloud::Container::V1::TimeWindow]
@@ -2403,8 +2705,7 @@ module Google
2403
2705
  extend ::Google::Protobuf::MessageExts::ClassMethods
2404
2706
  end
2405
2707
 
2406
- # SetNodePoolSizeRequest sets the size a node
2407
- # pool.
2708
+ # SetNodePoolSizeRequest sets the size of a node pool.
2408
2709
  # @!attribute [rw] project_id
2409
2710
  # @return [::String]
2410
2711
  # Deprecated. The Google Developers Console [project ID or project
@@ -2489,6 +2790,9 @@ module Google
2489
2790
  # @return [::Array<::Google::Cloud::Container::V1::ResourceLimit>]
2490
2791
  # Contains global constraints regarding minimum and maximum
2491
2792
  # amount of resources in the cluster.
2793
+ # @!attribute [rw] autoscaling_profile
2794
+ # @return [::Google::Cloud::Container::V1::ClusterAutoscaling::AutoscalingProfile]
2795
+ # Defines autoscaling behaviour.
2492
2796
  # @!attribute [rw] autoprovisioning_node_pool_defaults
2493
2797
  # @return [::Google::Cloud::Container::V1::AutoprovisioningNodePoolDefaults]
2494
2798
  # AutoprovisioningNodePoolDefaults contains defaults for a node pool
@@ -2501,6 +2805,18 @@ module Google
2501
2805
  class ClusterAutoscaling
2502
2806
  include ::Google::Protobuf::MessageExts
2503
2807
  extend ::Google::Protobuf::MessageExts::ClassMethods
2808
+
2809
+ # Defines possible options for autoscaling_profile field.
2810
+ module AutoscalingProfile
2811
+ # No change to autoscaling configuration.
2812
+ PROFILE_UNSPECIFIED = 0
2813
+
2814
+ # Prioritize optimizing utilization of resources.
2815
+ OPTIMIZE_UTILIZATION = 1
2816
+
2817
+ # Use default (balanced) autoscaling configuration.
2818
+ BALANCED = 2
2819
+ end
2504
2820
  end
2505
2821
 
2506
2822
  # AutoprovisioningNodePoolDefaults contains defaults for a node pool created
@@ -2582,12 +2898,12 @@ module Google
2582
2898
  # Is autoscaling enabled for this node pool.
2583
2899
  # @!attribute [rw] min_node_count
2584
2900
  # @return [::Integer]
2585
- # Minimum number of nodes in the NodePool. Must be >= 1 and <=
2586
- # max_node_count.
2901
+ # Minimum number of nodes for one location in the NodePool. Must be >= 1 and
2902
+ # <= max_node_count.
2587
2903
  # @!attribute [rw] max_node_count
2588
2904
  # @return [::Integer]
2589
- # Maximum number of nodes in the NodePool. Must be >= min_node_count. There
2590
- # has to enough quota to scale up the cluster.
2905
+ # Maximum number of nodes for one location in the NodePool. Must be >=
2906
+ # min_node_count. There has to be enough quota to scale up the cluster.
2591
2907
  # @!attribute [rw] autoprovisioned
2592
2908
  # @return [::Boolean]
2593
2909
  # Can this node pool be deleted automatically.
@@ -2734,6 +3050,11 @@ module Google
2734
3050
  # @return [::String]
2735
3051
  # The accelerator type resource name. List of supported accelerators
2736
3052
  # [here](https://cloud.google.com/compute/docs/gpus)
3053
+ # @!attribute [rw] gpu_partition_size
3054
+ # @return [::String]
3055
+ # Size of partitions to create on the GPU. Valid values are described in the
3056
+ # NVIDIA [mig user
3057
+ # guide](https://docs.nvidia.com/datacenter/tesla/mig-user-guide/#partitioning).
2737
3058
  class AcceleratorConfig
2738
3059
  include ::Google::Protobuf::MessageExts
2739
3060
  extend ::Google::Protobuf::MessageExts::ClassMethods
@@ -2827,9 +3148,13 @@ module Google
2827
3148
  # @!attribute [rw] code
2828
3149
  # @return [::Google::Cloud::Container::V1::StatusCondition::Code]
2829
3150
  # Machine-friendly representation of the condition
3151
+ # Deprecated. Use canonical_code instead.
2830
3152
  # @!attribute [rw] message
2831
3153
  # @return [::String]
2832
3154
  # Human-friendly representation of the condition
3155
+ # @!attribute [rw] canonical_code
3156
+ # @return [::Google::Rpc::Code]
3157
+ # Canonical code of the condition.
2833
3158
  class StatusCondition
2834
3159
  include ::Google::Protobuf::MessageExts
2835
3160
  extend ::Google::Protobuf::MessageExts::ClassMethods
@@ -2855,8 +3180,10 @@ module Google
2855
3180
 
2856
3181
  # Unable to perform an encrypt operation against the CloudKMS key used for
2857
3182
  # etcd level encryption.
2858
- # More codes TBA
2859
3183
  CLOUD_KMS_KEY_ERROR = 7
3184
+
3185
+ # Cluster CA is expiring soon.
3186
+ CA_EXPIRING = 9
2860
3187
  end
2861
3188
  end
2862
3189
 
@@ -2883,16 +3210,44 @@ module Google
2883
3210
  # will be disabled when default_snat_status is disabled. When disabled is set
2884
3211
  # to false, default IP masquerade rules will be applied to the nodes to
2885
3212
  # prevent sNAT on cluster internal traffic.
3213
+ # @!attribute [rw] enable_l4ilb_subsetting
3214
+ # @return [::Boolean]
3215
+ # Whether L4ILB Subsetting is enabled for this cluster.
3216
+ # @!attribute [rw] datapath_provider
3217
+ # @return [::Google::Cloud::Container::V1::DatapathProvider]
3218
+ # The desired datapath provider for this cluster. By default, uses the
3219
+ # IPTables-based kube-proxy implementation.
3220
+ # @!attribute [rw] private_ipv6_google_access
3221
+ # @return [::Google::Cloud::Container::V1::PrivateIPv6GoogleAccess]
3222
+ # The desired state of IPv6 connectivity to Google Services.
3223
+ # By default, no private IPv6 access to or from Google Services (all access
3224
+ # will be via IPv4)
3225
+ # @!attribute [rw] dns_config
3226
+ # @return [::Google::Cloud::Container::V1::DNSConfig]
3227
+ # DNSConfig contains clusterDNS config for this cluster.
3228
+ # @!attribute [rw] service_external_ips_config
3229
+ # @return [::Google::Cloud::Container::V1::ServiceExternalIPsConfig]
3230
+ # ServiceExternalIPsConfig specifies if services with externalIPs field are
3231
+ # blocked or not.
2886
3232
  class NetworkConfig
2887
3233
  include ::Google::Protobuf::MessageExts
2888
3234
  extend ::Google::Protobuf::MessageExts::ClassMethods
2889
3235
  end
2890
3236
 
3237
+ # Config to block services with externalIPs field.
3238
+ # @!attribute [rw] enabled
3239
+ # @return [::Boolean]
3240
+ # Whether Services with ExternalIPs field are allowed or not.
3241
+ class ServiceExternalIPsConfig
3242
+ include ::Google::Protobuf::MessageExts
3243
+ extend ::Google::Protobuf::MessageExts::ClassMethods
3244
+ end
3245
+
2891
3246
  # GetOpenIDConfigRequest gets the OIDC discovery document for the
2892
3247
  # cluster. See the OpenID Connect Discovery 1.0 specification for details.
2893
3248
  # @!attribute [rw] parent
2894
3249
  # @return [::String]
2895
- # The cluster (project, location, cluster id) to get the discovery document
3250
+ # The cluster (project, location, cluster name) to get the discovery document
2896
3251
  # for. Specified in the format `projects/*/locations/*/clusters/*`.
2897
3252
  class GetOpenIDConfigRequest
2898
3253
  include ::Google::Protobuf::MessageExts
@@ -3030,6 +3385,52 @@ module Google
3030
3385
  extend ::Google::Protobuf::MessageExts::ClassMethods
3031
3386
  end
3032
3387
 
3388
+ # ILBSubsettingConfig contains the desired config of L4 Internal LoadBalancer
3389
+ # subsetting on this cluster.
3390
+ # @!attribute [rw] enabled
3391
+ # @return [::Boolean]
3392
+ # Enables l4 ILB subsetting for this cluster.
3393
+ class ILBSubsettingConfig
3394
+ include ::Google::Protobuf::MessageExts
3395
+ extend ::Google::Protobuf::MessageExts::ClassMethods
3396
+ end
3397
+
3398
+ # DNSConfig contains the desired set of options for configuring clusterDNS.
3399
+ # @!attribute [rw] cluster_dns
3400
+ # @return [::Google::Cloud::Container::V1::DNSConfig::Provider]
3401
+ # cluster_dns indicates which in-cluster DNS provider should be used.
3402
+ # @!attribute [rw] cluster_dns_scope
3403
+ # @return [::Google::Cloud::Container::V1::DNSConfig::DNSScope]
3404
+ # cluster_dns_scope indicates the scope of access to cluster DNS records.
3405
+ # @!attribute [rw] cluster_dns_domain
3406
+ # @return [::String]
3407
+ # cluster_dns_domain is the suffix used for all cluster service records.
3408
+ class DNSConfig
3409
+ include ::Google::Protobuf::MessageExts
3410
+ extend ::Google::Protobuf::MessageExts::ClassMethods
3411
+
3412
+ # Provider lists the various in-cluster DNS providers.
3413
+ module Provider
3414
+ # Default value
3415
+ PROVIDER_UNSPECIFIED = 0
3416
+
3417
+ # Use GKE default DNS provider(kube-dns) for DNS resolution.
3418
+ PLATFORM_DEFAULT = 1
3419
+
3420
+ # Use CloudDNS for DNS resolution.
3421
+ CLOUD_DNS = 2
3422
+ end
3423
+
3424
+ # DNSScope lists the various scopes of access to cluster DNS records.
3425
+ module DNSScope
3426
+ # Default value, will be inferred as cluster scope.
3427
+ DNS_SCOPE_UNSPECIFIED = 0
3428
+
3429
+ # DNS records are accessible from within the VPC.
3430
+ VPC_SCOPE = 2
3431
+ end
3432
+ end
3433
+
3033
3434
  # Constraints applied to pods.
3034
3435
  # @!attribute [rw] max_pods_per_node
3035
3436
  # @return [::Integer]
@@ -3049,6 +3450,23 @@ module Google
3049
3450
  extend ::Google::Protobuf::MessageExts::ClassMethods
3050
3451
  end
3051
3452
 
3453
+ # Configuration for issuance of mTLS keys and certificates to Kubernetes pods.
3454
+ # @!attribute [rw] enable_certificates
3455
+ # @return [::Google::Protobuf::BoolValue]
3456
+ # enable_certificates controls issuance of workload mTLS certificates.
3457
+ #
3458
+ # If set, the GKE Workload Identity Certificates controller and node agent
3459
+ # will be deployed in the cluster, which can then be configured by creating a
3460
+ # WorkloadCertificateConfig Custom Resource.
3461
+ #
3462
+ # Requires Workload Identity
3463
+ # ({::Google::Cloud::Container::V1::WorkloadIdentityConfig#workload_pool workload_pool}
3464
+ # must be non-empty).
3465
+ class MeshCertificates
3466
+ include ::Google::Protobuf::MessageExts
3467
+ extend ::Google::Protobuf::MessageExts::ClassMethods
3468
+ end
3469
+
3052
3470
  # Configuration of etcd encryption.
3053
3471
  # @!attribute [rw] state
3054
3472
  # @return [::Google::Cloud::Container::V1::DatabaseEncryption::State]
@@ -3248,6 +3666,285 @@ module Google
3248
3666
  include ::Google::Protobuf::MessageExts
3249
3667
  extend ::Google::Protobuf::MessageExts::ClassMethods
3250
3668
  end
3669
+
3670
+ # Configuration of gVNIC feature.
3671
+ # @!attribute [rw] enabled
3672
+ # @return [::Boolean]
3673
+ # Whether gVNIC features are enabled in the node pool.
3674
+ class VirtualNIC
3675
+ include ::Google::Protobuf::MessageExts
3676
+ extend ::Google::Protobuf::MessageExts::ClassMethods
3677
+ end
3678
+
3679
+ # NotificationConfig is the configuration of notifications.
3680
+ # @!attribute [rw] pubsub
3681
+ # @return [::Google::Cloud::Container::V1::NotificationConfig::PubSub]
3682
+ # Notification config for Pub/Sub.
3683
+ class NotificationConfig
3684
+ include ::Google::Protobuf::MessageExts
3685
+ extend ::Google::Protobuf::MessageExts::ClassMethods
3686
+
3687
+ # Pub/Sub specific notification config.
3688
+ # @!attribute [rw] enabled
3689
+ # @return [::Boolean]
3690
+ # Enable notifications for Pub/Sub.
3691
+ # @!attribute [rw] topic
3692
+ # @return [::String]
3693
+ # The desired Pub/Sub topic to which notifications will be
3694
+ # sent by GKE. Format is `projects/{project}/topics/{topic}`.
3695
+ # @!attribute [rw] filter
3696
+ # @return [::Google::Cloud::Container::V1::NotificationConfig::Filter]
3697
+ # Allows filtering to one or more specific event types. If no filter is
3698
+ # specified, or if a filter is specified with no event types, all event
3699
+ # types will be sent
3700
+ class PubSub
3701
+ include ::Google::Protobuf::MessageExts
3702
+ extend ::Google::Protobuf::MessageExts::ClassMethods
3703
+ end
3704
+
3705
+ # Allows filtering to one or more specific event types. If event types are
3706
+ # present, those and only those event types will be transmitted to the
3707
+ # cluster. Other types will be skipped. If no filter is specified, or no
3708
+ # event types are present, all event types will be sent
3709
+ # @!attribute [rw] event_type
3710
+ # @return [::Array<::Google::Cloud::Container::V1::NotificationConfig::EventType>]
3711
+ # Event types to allowlist.
3712
+ class Filter
3713
+ include ::Google::Protobuf::MessageExts
3714
+ extend ::Google::Protobuf::MessageExts::ClassMethods
3715
+ end
3716
+
3717
+ # Types of notifications currently supported. Can be used to filter what
3718
+ # notifications are sent.
3719
+ module EventType
3720
+ # Not set, will be ignored.
3721
+ EVENT_TYPE_UNSPECIFIED = 0
3722
+
3723
+ # Corresponds with UpgradeAvailableEvent.
3724
+ UPGRADE_AVAILABLE_EVENT = 1
3725
+
3726
+ # Corresponds with UpgradeEvent.
3727
+ UPGRADE_EVENT = 2
3728
+
3729
+ # Corresponds with SecurityBulletinEvent.
3730
+ SECURITY_BULLETIN_EVENT = 3
3731
+ end
3732
+ end
3733
+
3734
+ # ConfidentialNodes is configuration for the confidential nodes feature, which
3735
+ # makes nodes run on confidential VMs.
3736
+ # @!attribute [rw] enabled
3737
+ # @return [::Boolean]
3738
+ # Whether Confidential Nodes feature is enabled for all nodes in this
3739
+ # cluster.
3740
+ class ConfidentialNodes
3741
+ include ::Google::Protobuf::MessageExts
3742
+ extend ::Google::Protobuf::MessageExts::ClassMethods
3743
+ end
3744
+
3745
+ # UpgradeEvent is a notification sent to customers by the cluster server when
3746
+ # a resource is upgrading.
3747
+ # @!attribute [rw] resource_type
3748
+ # @return [::Google::Cloud::Container::V1::UpgradeResourceType]
3749
+ # The resource type that is upgrading.
3750
+ # @!attribute [rw] operation
3751
+ # @return [::String]
3752
+ # The operation associated with this upgrade.
3753
+ # @!attribute [rw] operation_start_time
3754
+ # @return [::Google::Protobuf::Timestamp]
3755
+ # The time when the operation was started.
3756
+ # @!attribute [rw] current_version
3757
+ # @return [::String]
3758
+ # The current version before the upgrade.
3759
+ # @!attribute [rw] target_version
3760
+ # @return [::String]
3761
+ # The target version for the upgrade.
3762
+ # @!attribute [rw] resource
3763
+ # @return [::String]
3764
+ # Optional relative path to the resource. For example in node pool upgrades,
3765
+ # the relative path of the node pool.
3766
+ class UpgradeEvent
3767
+ include ::Google::Protobuf::MessageExts
3768
+ extend ::Google::Protobuf::MessageExts::ClassMethods
3769
+ end
3770
+
3771
+ # UpgradeAvailableEvent is a notification sent to customers when a new
3772
+ # available version is released.
3773
+ # @!attribute [rw] version
3774
+ # @return [::String]
3775
+ # The release version available for upgrade.
3776
+ # @!attribute [rw] resource_type
3777
+ # @return [::Google::Cloud::Container::V1::UpgradeResourceType]
3778
+ # The resource type of the release version.
3779
+ # @!attribute [rw] release_channel
3780
+ # @return [::Google::Cloud::Container::V1::ReleaseChannel]
3781
+ # The release channel of the version. If empty, it means a non-channel
3782
+ # release.
3783
+ # @!attribute [rw] resource
3784
+ # @return [::String]
3785
+ # Optional relative path to the resource. For example, the relative path of
3786
+ # the node pool.
3787
+ class UpgradeAvailableEvent
3788
+ include ::Google::Protobuf::MessageExts
3789
+ extend ::Google::Protobuf::MessageExts::ClassMethods
3790
+ end
3791
+
3792
+ # SecurityBulletinEvent is a notification sent to customers when a security
3793
+ # bulletin has been posted that they are vulnerable to.
3794
+ # @!attribute [rw] resource_type_affected
3795
+ # @return [::String]
3796
+ # The resource type (node/control plane) that has the vulnerability. Multiple
3797
+ # notifications (1 notification per resource type) will be sent for a
3798
+ # vulnerability that affects > 1 resource type.
3799
+ # @!attribute [rw] bulletin_id
3800
+ # @return [::String]
3801
+ # The ID of the bulletin corresponding to the vulnerability.
3802
+ # @!attribute [rw] cve_ids
3803
+ # @return [::Array<::String>]
3804
+ # The CVEs associated with this bulletin.
3805
+ # @!attribute [rw] severity
3806
+ # @return [::String]
3807
+ # The severity of this bulletin as it relates to GKE.
3808
+ # @!attribute [rw] bulletin_uri
3809
+ # @return [::String]
3810
+ # The URI link to the bulletin on the website for more information.
3811
+ # @!attribute [rw] brief_description
3812
+ # @return [::String]
3813
+ # A brief description of the bulletin. See the bulletin pointed to by the
3814
+ # bulletin_uri field for an expanded description.
3815
+ # @!attribute [rw] affected_supported_minors
3816
+ # @return [::Array<::String>]
3817
+ # The GKE minor versions affected by this vulnerability.
3818
+ # @!attribute [rw] patched_versions
3819
+ # @return [::Array<::String>]
3820
+ # The GKE versions where this vulnerability is patched.
3821
+ # @!attribute [rw] suggested_upgrade_target
3822
+ # @return [::String]
3823
+ # This represents a version selected from the patched_versions field that
3824
+ # the cluster receiving this notification should most likely want to upgrade
3825
+ # to based on its current version. Note that if this notification is being
3826
+ # received by a given cluster, it means that this version is currently
3827
+ # available as an upgrade target in that cluster's location.
3828
+ # @!attribute [rw] manual_steps_required
3829
+ # @return [::Boolean]
3830
+ # If this field is specified, it means there are manual steps that the user
3831
+ # must take to make their clusters safe.
3832
+ class SecurityBulletinEvent
3833
+ include ::Google::Protobuf::MessageExts
3834
+ extend ::Google::Protobuf::MessageExts::ClassMethods
3835
+ end
3836
+
3837
+ # Autopilot is the configuration for Autopilot settings on the cluster.
3838
+ # @!attribute [rw] enabled
3839
+ # @return [::Boolean]
3840
+ # Enable Autopilot
3841
+ class Autopilot
3842
+ include ::Google::Protobuf::MessageExts
3843
+ extend ::Google::Protobuf::MessageExts::ClassMethods
3844
+ end
3845
+
3846
+ # LoggingConfig is cluster logging configuration.
3847
+ # @!attribute [rw] component_config
3848
+ # @return [::Google::Cloud::Container::V1::LoggingComponentConfig]
3849
+ # Logging components configuration
3850
+ class LoggingConfig
3851
+ include ::Google::Protobuf::MessageExts
3852
+ extend ::Google::Protobuf::MessageExts::ClassMethods
3853
+ end
3854
+
3855
+ # LoggingComponentConfig is cluster logging component configuration.
3856
+ # @!attribute [rw] enable_components
3857
+ # @return [::Array<::Google::Cloud::Container::V1::LoggingComponentConfig::Component>]
3858
+ # Select components to collect logs. An empty set would disable all logging.
3859
+ class LoggingComponentConfig
3860
+ include ::Google::Protobuf::MessageExts
3861
+ extend ::Google::Protobuf::MessageExts::ClassMethods
3862
+
3863
+ # GKE components exposing logs
3864
+ module Component
3865
+ # Default value. This shouldn't be used.
3866
+ COMPONENT_UNSPECIFIED = 0
3867
+
3868
+ # system components
3869
+ SYSTEM_COMPONENTS = 1
3870
+
3871
+ # workloads
3872
+ WORKLOADS = 2
3873
+ end
3874
+ end
3875
+
3876
+ # MonitoringConfig is cluster monitoring configuration.
3877
+ # @!attribute [rw] component_config
3878
+ # @return [::Google::Cloud::Container::V1::MonitoringComponentConfig]
3879
+ # Monitoring components configuration
3880
+ class MonitoringConfig
3881
+ include ::Google::Protobuf::MessageExts
3882
+ extend ::Google::Protobuf::MessageExts::ClassMethods
3883
+ end
3884
+
3885
+ # MonitoringComponentConfig is cluster monitoring component configuration.
3886
+ # @!attribute [rw] enable_components
3887
+ # @return [::Array<::Google::Cloud::Container::V1::MonitoringComponentConfig::Component>]
3888
+ # Select components to collect metrics. An empty set would disable all
3889
+ # monitoring.
3890
+ class MonitoringComponentConfig
3891
+ include ::Google::Protobuf::MessageExts
3892
+ extend ::Google::Protobuf::MessageExts::ClassMethods
3893
+
3894
+ # GKE components exposing metrics
3895
+ module Component
3896
+ # Default value. This shouldn't be used.
3897
+ COMPONENT_UNSPECIFIED = 0
3898
+
3899
+ # system components
3900
+ SYSTEM_COMPONENTS = 1
3901
+ end
3902
+ end
3903
+
3904
+ # PrivateIPv6GoogleAccess controls whether and how the pods can communicate
3905
+ # with Google Services through gRPC over IPv6.
3906
+ module PrivateIPv6GoogleAccess
3907
+ # Default value. Same as DISABLED
3908
+ PRIVATE_IPV6_GOOGLE_ACCESS_UNSPECIFIED = 0
3909
+
3910
+ # No private access to or from Google Services
3911
+ PRIVATE_IPV6_GOOGLE_ACCESS_DISABLED = 1
3912
+
3913
+ # Enables private IPv6 access to Google Services from GKE
3914
+ PRIVATE_IPV6_GOOGLE_ACCESS_TO_GOOGLE = 2
3915
+
3916
+ # Enables priate IPv6 access to and from Google Services
3917
+ PRIVATE_IPV6_GOOGLE_ACCESS_BIDIRECTIONAL = 3
3918
+ end
3919
+
3920
+ # The datapath provider selects the implementation of the Kubernetes networking
3921
+ # model for service resolution and network policy enforcement.
3922
+ module DatapathProvider
3923
+ # Default value.
3924
+ DATAPATH_PROVIDER_UNSPECIFIED = 0
3925
+
3926
+ # Use the IPTables implementation based on kube-proxy.
3927
+ LEGACY_DATAPATH = 1
3928
+
3929
+ # Use the eBPF based GKE Dataplane V2 with additional features. See the [GKE
3930
+ # Dataplane V2
3931
+ # documentation](https://cloud.google.com/kubernetes-engine/docs/how-to/dataplane-v2)
3932
+ # for more.
3933
+ ADVANCED_DATAPATH = 2
3934
+ end
3935
+
3936
+ # UpgradeResourceType is the resource type that is upgrading. It is used
3937
+ # in upgrade notifications.
3938
+ module UpgradeResourceType
3939
+ # Default value. This shouldn't be used.
3940
+ UPGRADE_RESOURCE_TYPE_UNSPECIFIED = 0
3941
+
3942
+ # Master / control plane
3943
+ MASTER = 1
3944
+
3945
+ # Node pool
3946
+ NODE_POOL = 2
3947
+ end
3251
3948
  end
3252
3949
  end
3253
3950
  end