google-cloud-container-v1 0.7.3 → 0.8.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -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