google-cloud-container-v1beta1 0.6.0 → 0.8.1

Sign up to get free protection for your applications and to get access to all the features.
@@ -154,9 +154,6 @@ module Google
154
154
  # - "install-ssh-psm1"
155
155
  # - "user-profile-psm1"
156
156
  #
157
- # The following keys are reserved for Windows nodes:
158
- # - "serial-port-logging-enable"
159
- #
160
157
  # Values are free-form strings, and only have meaning as interpreted by
161
158
  # the image running in the instance. The only restriction placed on them is
162
159
  # that each value's size must be less than or equal to 32 KB.
@@ -260,6 +257,9 @@ module Google
260
257
  # @return [::Google::Cloud::Container::V1beta1::EphemeralStorageConfig]
261
258
  # Parameters for the ephemeral storage filesystem.
262
259
  # If unspecified, ephemeral storage is backed by the boot disk.
260
+ # @!attribute [rw] gvnic
261
+ # @return [::Google::Cloud::Container::V1beta1::VirtualNIC]
262
+ # Enable or disable gvnic on the node pool.
263
263
  class NodeConfig
264
264
  include ::Google::Protobuf::MessageExts
265
265
  extend ::Google::Protobuf::MessageExts::ClassMethods
@@ -283,6 +283,53 @@ module Google
283
283
  end
284
284
  end
285
285
 
286
+ # Parameters for node pool-level network config.
287
+ # @!attribute [rw] create_pod_range
288
+ # @return [::Boolean]
289
+ # Input only. Whether to create a new range for pod IPs in this node pool.
290
+ # Defaults are provided for `pod_range` and `pod_ipv4_cidr_block` if they
291
+ # are not specified.
292
+ #
293
+ # If neither `create_pod_range` or `pod_range` are specified, the
294
+ # cluster-level default (`ip_allocation_policy.cluster_ipv4_cidr_block`) is
295
+ # used.
296
+ #
297
+ # Only applicable if `ip_allocation_policy.use_ip_aliases` is true.
298
+ #
299
+ # This field cannot be changed after the node pool has been created.
300
+ # @!attribute [rw] pod_range
301
+ # @return [::String]
302
+ # The ID of the secondary range for pod IPs.
303
+ # If `create_pod_range` is true, this ID is used for the new range.
304
+ # If `create_pod_range` is false, uses an existing secondary range with this
305
+ # ID.
306
+ #
307
+ # Only applicable if `ip_allocation_policy.use_ip_aliases` is true.
308
+ #
309
+ # This field cannot be changed after the node pool has been created.
310
+ # @!attribute [rw] pod_ipv4_cidr_block
311
+ # @return [::String]
312
+ # The IP address range for pod IPs in this node pool.
313
+ #
314
+ # Only applicable if `create_pod_range` is true.
315
+ #
316
+ # Set to blank to have a range chosen with the default size.
317
+ #
318
+ # Set to /netmask (e.g. `/14`) to have a range chosen with a specific
319
+ # netmask.
320
+ #
321
+ # Set to a
322
+ # [CIDR](https://en.wikipedia.org/wiki/Classless_Inter-Domain_Routing)
323
+ # notation (e.g. `10.96.0.0/14`) to pick a specific range to use.
324
+ #
325
+ # Only applicable if `ip_allocation_policy.use_ip_aliases` is true.
326
+ #
327
+ # This field cannot be changed after the node pool has been created.
328
+ class NodeNetworkConfig
329
+ include ::Google::Protobuf::MessageExts
330
+ extend ::Google::Protobuf::MessageExts::ClassMethods
331
+ end
332
+
286
333
  # A set of Shielded Instance options.
287
334
  # @!attribute [rw] enable_secure_boot
288
335
  # @return [::Boolean]
@@ -407,6 +454,46 @@ module Google
407
454
  end
408
455
  end
409
456
 
457
+ # Collection of Kubernetes [node
458
+ # taints](https://kubernetes.io/docs/concepts/configuration/taint-and-toleration).
459
+ # @!attribute [rw] taints
460
+ # @return [::Array<::Google::Cloud::Container::V1beta1::NodeTaint>]
461
+ # List of node taints.
462
+ class NodeTaints
463
+ include ::Google::Protobuf::MessageExts
464
+ extend ::Google::Protobuf::MessageExts::ClassMethods
465
+ end
466
+
467
+ # Collection of node-level [Kubernetes
468
+ # labels](https://kubernetes.io/docs/concepts/overview/working-with-objects/labels).
469
+ # @!attribute [rw] labels
470
+ # @return [::Google::Protobuf::Map{::String => ::String}]
471
+ # Map of node label keys and node label values.
472
+ class NodeLabels
473
+ include ::Google::Protobuf::MessageExts
474
+ extend ::Google::Protobuf::MessageExts::ClassMethods
475
+
476
+ # @!attribute [rw] key
477
+ # @return [::String]
478
+ # @!attribute [rw] value
479
+ # @return [::String]
480
+ class LabelsEntry
481
+ include ::Google::Protobuf::MessageExts
482
+ extend ::Google::Protobuf::MessageExts::ClassMethods
483
+ end
484
+ end
485
+
486
+ # Collection of Compute Engine network tags that can be applied to a node's
487
+ # underlying VM instance. (See `tags` field in
488
+ # [`NodeConfig`](/kubernetes-engine/docs/reference/rest/v1/NodeConfig)).
489
+ # @!attribute [rw] tags
490
+ # @return [::Array<::String>]
491
+ # List of network tags.
492
+ class NetworkTags
493
+ include ::Google::Protobuf::MessageExts
494
+ extend ::Google::Protobuf::MessageExts::ClassMethods
495
+ end
496
+
410
497
  # The authentication information for accessing the master endpoint.
411
498
  # Authentication can be done using HTTP basic auth or using client
412
499
  # certificates.
@@ -583,8 +670,7 @@ module Google
583
670
  extend ::Google::Protobuf::MessageExts::ClassMethods
584
671
  end
585
672
 
586
- # Configuration for the Compute Engine PD CSI driver. This option can only be
587
- # enabled at cluster creation time.
673
+ # Configuration for the Compute Engine PD CSI driver.
588
674
  # @!attribute [rw] enabled
589
675
  # @return [::Boolean]
590
676
  # Whether the Compute Engine PD CSI driver is enabled for this cluster.
@@ -1132,6 +1218,10 @@ module Google
1132
1218
  # @return [::Google::Cloud::Container::V1beta1::WorkloadIdentityConfig]
1133
1219
  # Configuration for the use of Kubernetes Service Accounts in GCP IAM
1134
1220
  # policies.
1221
+ # @!attribute [rw] workload_certificates
1222
+ # @return [::Google::Cloud::Container::V1beta1::WorkloadCertificates]
1223
+ # Configuration for issuance of mTLS keys and certificates to Kubernetes
1224
+ # pods.
1135
1225
  # @!attribute [rw] cluster_telemetry
1136
1226
  # @return [::Google::Cloud::Container::V1beta1::ClusterTelemetry]
1137
1227
  # Telemetry integration for the cluster.
@@ -1144,6 +1234,9 @@ module Google
1144
1234
  # @!attribute [rw] confidential_nodes
1145
1235
  # @return [::Google::Cloud::Container::V1beta1::ConfidentialNodes]
1146
1236
  # Configuration of Confidential Nodes
1237
+ # @!attribute [rw] identity_service_config
1238
+ # @return [::Google::Cloud::Container::V1beta1::IdentityServiceConfig]
1239
+ # Configuration for Identity Service component.
1147
1240
  # @!attribute [rw] self_link
1148
1241
  # @return [::String]
1149
1242
  # [Output only] Server-defined URL for the resource.
@@ -1246,6 +1339,22 @@ module Google
1246
1339
  # @!attribute [rw] master
1247
1340
  # @return [::Google::Cloud::Container::V1beta1::Master]
1248
1341
  # Configuration for master components.
1342
+ # @!attribute [rw] autopilot
1343
+ # @return [::Google::Cloud::Container::V1beta1::Autopilot]
1344
+ # Autopilot configuration for the cluster.
1345
+ # @!attribute [r] id
1346
+ # @return [::String]
1347
+ # Output only. Unique id for the cluster.
1348
+ # @!attribute [rw] node_pool_defaults
1349
+ # @return [::Google::Cloud::Container::V1beta1::NodePoolDefaults]
1350
+ # Default NodePool settings for the entire cluster. These settings are
1351
+ # overridden if specified on the specific NodePool object.
1352
+ # @!attribute [rw] logging_config
1353
+ # @return [::Google::Cloud::Container::V1beta1::LoggingConfig]
1354
+ # Logging configuration for the cluster.
1355
+ # @!attribute [rw] monitoring_config
1356
+ # @return [::Google::Cloud::Container::V1beta1::MonitoringConfig]
1357
+ # Monitoring configuration for the cluster.
1249
1358
  class Cluster
1250
1359
  include ::Google::Protobuf::MessageExts
1251
1360
  extend ::Google::Protobuf::MessageExts::ClassMethods
@@ -1289,6 +1398,21 @@ module Google
1289
1398
  end
1290
1399
  end
1291
1400
 
1401
+ # Subset of Nodepool message that has defaults.
1402
+ # @!attribute [rw] node_config_defaults
1403
+ # @return [::Google::Cloud::Container::V1beta1::NodeConfigDefaults]
1404
+ # Subset of NodeConfig message that has defaults.
1405
+ class NodePoolDefaults
1406
+ include ::Google::Protobuf::MessageExts
1407
+ extend ::Google::Protobuf::MessageExts::ClassMethods
1408
+ end
1409
+
1410
+ # Subset of NodeConfig message that has defaults.
1411
+ class NodeConfigDefaults
1412
+ include ::Google::Protobuf::MessageExts
1413
+ extend ::Google::Protobuf::MessageExts::ClassMethods
1414
+ end
1415
+
1292
1416
  # ClusterUpdate describes an update to the cluster. Exactly one update can
1293
1417
  # be applied to a cluster with each request, so at most one field can be
1294
1418
  # provided.
@@ -1396,9 +1520,15 @@ module Google
1396
1520
  # @!attribute [rw] desired_tpu_config
1397
1521
  # @return [::Google::Cloud::Container::V1beta1::TpuConfig]
1398
1522
  # The desired Cloud TPU configuration.
1523
+ # @!attribute [rw] desired_l4ilb_subsetting_config
1524
+ # @return [::Google::Cloud::Container::V1beta1::ILBSubsettingConfig]
1525
+ # The desired L4 Internal Load Balancer Subsetting configuration.
1399
1526
  # @!attribute [rw] desired_datapath_provider
1400
1527
  # @return [::Google::Cloud::Container::V1beta1::DatapathProvider]
1401
1528
  # The desired datapath provider for the cluster.
1529
+ # @!attribute [rw] desired_private_ipv6_google_access
1530
+ # @return [::Google::Cloud::Container::V1beta1::PrivateIPv6GoogleAccess]
1531
+ # The desired state of IPv6 connectivity to Google Services.
1402
1532
  # @!attribute [rw] desired_notification_config
1403
1533
  # @return [::Google::Cloud::Container::V1beta1::NotificationConfig]
1404
1534
  # The desired notification configuration.
@@ -1421,12 +1551,36 @@ module Google
1421
1551
  # @!attribute [rw] desired_workload_identity_config
1422
1552
  # @return [::Google::Cloud::Container::V1beta1::WorkloadIdentityConfig]
1423
1553
  # Configuration for Workload Identity.
1554
+ # @!attribute [rw] desired_workload_certificates
1555
+ # @return [::Google::Cloud::Container::V1beta1::WorkloadCertificates]
1556
+ # Configuration for issuance of mTLS keys and certificates to Kubernetes
1557
+ # pods.
1424
1558
  # @!attribute [rw] desired_shielded_nodes
1425
1559
  # @return [::Google::Cloud::Container::V1beta1::ShieldedNodes]
1426
1560
  # Configuration for Shielded Nodes.
1427
1561
  # @!attribute [rw] desired_master
1428
1562
  # @return [::Google::Cloud::Container::V1beta1::Master]
1429
1563
  # Configuration for master components.
1564
+ # @!attribute [rw] desired_dns_config
1565
+ # @return [::Google::Cloud::Container::V1beta1::DNSConfig]
1566
+ # DNSConfig contains clusterDNS config for this cluster.
1567
+ # @!attribute [rw] desired_service_external_ips_config
1568
+ # @return [::Google::Cloud::Container::V1beta1::ServiceExternalIPsConfig]
1569
+ # ServiceExternalIPsConfig specifies the config for the use of Services with
1570
+ # ExternalIPs field.
1571
+ # @!attribute [rw] desired_authenticator_groups_config
1572
+ # @return [::Google::Cloud::Container::V1beta1::AuthenticatorGroupsConfig]
1573
+ # AuthenticatorGroupsConfig specifies the config for the cluster security
1574
+ # groups settings.
1575
+ # @!attribute [rw] desired_logging_config
1576
+ # @return [::Google::Cloud::Container::V1beta1::LoggingConfig]
1577
+ # The desired logging configuration.
1578
+ # @!attribute [rw] desired_monitoring_config
1579
+ # @return [::Google::Cloud::Container::V1beta1::MonitoringConfig]
1580
+ # The desired monitoring configuration.
1581
+ # @!attribute [rw] desired_identity_service_config
1582
+ # @return [::Google::Cloud::Container::V1beta1::IdentityServiceConfig]
1583
+ # The desired Identity Service component configuration.
1430
1584
  class ClusterUpdate
1431
1585
  include ::Google::Protobuf::MessageExts
1432
1586
  extend ::Google::Protobuf::MessageExts::ClassMethods
@@ -1742,12 +1896,30 @@ module Google
1742
1896
  # @!attribute [rw] upgrade_settings
1743
1897
  # @return [::Google::Cloud::Container::V1beta1::NodePool::UpgradeSettings]
1744
1898
  # Upgrade settings control disruption and speed of the upgrade.
1899
+ # @!attribute [rw] tags
1900
+ # @return [::Google::Cloud::Container::V1beta1::NetworkTags]
1901
+ # The desired network tags to be applied to all nodes in the node pool.
1902
+ # If this field is not present, the tags will not be changed. Otherwise,
1903
+ # the existing network tags will be *replaced* with the provided tags.
1904
+ # @!attribute [rw] taints
1905
+ # @return [::Google::Cloud::Container::V1beta1::NodeTaints]
1906
+ # The desired node taints to be applied to all nodes in the node pool.
1907
+ # If this field is not present, the taints will not be changed. Otherwise,
1908
+ # the existing node taints will be *replaced* with the provided taints.
1909
+ # @!attribute [rw] labels
1910
+ # @return [::Google::Cloud::Container::V1beta1::NodeLabels]
1911
+ # The desired node labels to be applied to all nodes in the node pool.
1912
+ # If this field is not present, the labels will not be changed. Otherwise,
1913
+ # the existing node labels will be *replaced* with the provided labels.
1745
1914
  # @!attribute [rw] linux_node_config
1746
1915
  # @return [::Google::Cloud::Container::V1beta1::LinuxNodeConfig]
1747
1916
  # Parameters that can be configured on Linux nodes.
1748
1917
  # @!attribute [rw] kubelet_config
1749
1918
  # @return [::Google::Cloud::Container::V1beta1::NodeKubeletConfig]
1750
1919
  # Node kubelet configs.
1920
+ # @!attribute [rw] gvnic
1921
+ # @return [::Google::Cloud::Container::V1beta1::VirtualNIC]
1922
+ # Enable or disable gvnic on the node pool.
1751
1923
  class UpdateNodePoolRequest
1752
1924
  include ::Google::Protobuf::MessageExts
1753
1925
  extend ::Google::Protobuf::MessageExts::ClassMethods
@@ -1880,8 +2052,8 @@ module Google
1880
2052
  # This field has been deprecated and replaced by the name field.
1881
2053
  # @!attribute [rw] addons_config
1882
2054
  # @return [::Google::Cloud::Container::V1beta1::AddonsConfig]
1883
- # Required. The desired configurations for the various addons available to run in the
1884
- # cluster.
2055
+ # Required. The desired configurations for the various addons available to
2056
+ # run in the cluster.
1885
2057
  # @!attribute [rw] name
1886
2058
  # @return [::String]
1887
2059
  # The name (project, location, cluster) of the cluster to set addons.
@@ -2197,6 +2369,9 @@ module Google
2197
2369
  # @!attribute [rw] channels
2198
2370
  # @return [::Array<::Google::Cloud::Container::V1beta1::ServerConfig::ReleaseChannelConfig>]
2199
2371
  # List of release channel configurations.
2372
+ # @!attribute [rw] windows_version_maps
2373
+ # @return [::Google::Protobuf::Map{::String => ::Google::Cloud::Container::V1beta1::WindowsVersions}]
2374
+ # Maps of Kubernetes version and supported Windows server versions.
2200
2375
  class ServerConfig
2201
2376
  include ::Google::Protobuf::MessageExts
2202
2377
  extend ::Google::Protobuf::MessageExts::ClassMethods
@@ -2232,6 +2407,39 @@ module Google
2232
2407
  extend ::Google::Protobuf::MessageExts::ClassMethods
2233
2408
  end
2234
2409
  end
2410
+
2411
+ # @!attribute [rw] key
2412
+ # @return [::String]
2413
+ # @!attribute [rw] value
2414
+ # @return [::Google::Cloud::Container::V1beta1::WindowsVersions]
2415
+ class WindowsVersionMapsEntry
2416
+ include ::Google::Protobuf::MessageExts
2417
+ extend ::Google::Protobuf::MessageExts::ClassMethods
2418
+ end
2419
+ end
2420
+
2421
+ # Windows server versions.
2422
+ # @!attribute [rw] windows_versions
2423
+ # @return [::Array<::Google::Cloud::Container::V1beta1::WindowsVersions::WindowsVersion>]
2424
+ # List of Windows server versions.
2425
+ class WindowsVersions
2426
+ include ::Google::Protobuf::MessageExts
2427
+ extend ::Google::Protobuf::MessageExts::ClassMethods
2428
+
2429
+ # Windows server version.
2430
+ # @!attribute [rw] image_type
2431
+ # @return [::String]
2432
+ # Windows server image type
2433
+ # @!attribute [rw] os_version
2434
+ # @return [::String]
2435
+ # Windows server build number
2436
+ # @!attribute [rw] support_end_date
2437
+ # @return [::Google::Type::Date]
2438
+ # Mainstream support end date
2439
+ class WindowsVersion
2440
+ include ::Google::Protobuf::MessageExts
2441
+ extend ::Google::Protobuf::MessageExts::ClassMethods
2442
+ end
2235
2443
  end
2236
2444
 
2237
2445
  # CreateNodePoolRequest creates a node pool for a cluster.
@@ -2354,6 +2562,29 @@ module Google
2354
2562
  # of Kubernetes labels applied to them, which may be used to reference them
2355
2563
  # during pod scheduling. They may also be resized up or down, to accommodate
2356
2564
  # the workload.
2565
+ # These upgrade settings control the level of parallelism and the level of
2566
+ # disruption caused by an upgrade.
2567
+ #
2568
+ # maxUnavailable controls the number of nodes that can be simultaneously
2569
+ # unavailable.
2570
+ #
2571
+ # maxSurge controls the number of additional nodes that can be added to the
2572
+ # node pool temporarily for the time of the upgrade to increase the number of
2573
+ # available nodes.
2574
+ #
2575
+ # (maxUnavailable + maxSurge) determines the level of parallelism (how many
2576
+ # nodes are being upgraded at the same time).
2577
+ #
2578
+ # Note: upgrades inevitably introduce some disruption since workloads need to
2579
+ # be moved from old nodes to new, upgraded ones. Even if maxUnavailable=0,
2580
+ # this holds true. (Disruption stays within the limits of
2581
+ # PodDisruptionBudget, if it is configured.)
2582
+ #
2583
+ # Consider a hypothetical node pool with 5 nodes having maxSurge=2,
2584
+ # maxUnavailable=1. This means the upgrade process upgrades 3 nodes
2585
+ # simultaneously. It creates 2 additional (upgraded) nodes, then it brings
2586
+ # down 3 old (not yet upgraded) nodes at the same time. This ensures that
2587
+ # there are always at least 4 nodes available.
2357
2588
  # @!attribute [rw] name
2358
2589
  # @return [::String]
2359
2590
  # The name of the node pool.
@@ -2378,6 +2609,10 @@ module Google
2378
2609
  #
2379
2610
  # Warning: changing node pool locations will result in nodes being added
2380
2611
  # and/or removed.
2612
+ # @!attribute [rw] network_config
2613
+ # @return [::Google::Cloud::Container::V1beta1::NodeNetworkConfig]
2614
+ # Networking configuration for this NodePool. If specified, it overrides the
2615
+ # cluster-level defaults.
2381
2616
  # @!attribute [rw] self_link
2382
2617
  # @return [::String]
2383
2618
  # [Output only] Server-defined URL for the resource.
@@ -2421,29 +2656,6 @@ module Google
2421
2656
  include ::Google::Protobuf::MessageExts
2422
2657
  extend ::Google::Protobuf::MessageExts::ClassMethods
2423
2658
 
2424
- # These upgrade settings control the level of parallelism and the level of
2425
- # disruption caused by an upgrade.
2426
- #
2427
- # maxUnavailable controls the number of nodes that can be simultaneously
2428
- # unavailable.
2429
- #
2430
- # maxSurge controls the number of additional nodes that can be added to the
2431
- # node pool temporarily for the time of the upgrade to increase the number of
2432
- # available nodes.
2433
- #
2434
- # (maxUnavailable + maxSurge) determines the level of parallelism (how many
2435
- # nodes are being upgraded at the same time).
2436
- #
2437
- # Note: upgrades inevitably introduce some disruption since workloads need to
2438
- # be moved from old nodes to new, upgraded ones. Even if maxUnavailable=0,
2439
- # this holds true. (Disruption stays within the limits of
2440
- # PodDisruptionBudget, if it is configured.)
2441
- #
2442
- # Consider a hypothetical node pool with 5 nodes having maxSurge=2,
2443
- # maxUnavailable=1. This means the upgrade process upgrades 3 nodes
2444
- # simultaneously. It creates 2 additional (upgraded) nodes, then it brings
2445
- # down 3 old (not yet upgraded) nodes at the same time. This ensures that
2446
- # there are always at least 4 nodes available.
2447
2659
  # @!attribute [rw] max_surge
2448
2660
  # @return [::Integer]
2449
2661
  # The maximum number of nodes that can be created beyond the current size
@@ -2669,8 +2881,7 @@ module Google
2669
2881
  extend ::Google::Protobuf::MessageExts::ClassMethods
2670
2882
  end
2671
2883
 
2672
- # SetNodePoolSizeRequest sets the size a node
2673
- # pool.
2884
+ # SetNodePoolSizeRequest sets the size of a node pool.
2674
2885
  # @!attribute [rw] project_id
2675
2886
  # @return [::String]
2676
2887
  # Required. Deprecated. The Google Developers Console [project ID or project
@@ -2850,7 +3061,7 @@ module Google
2850
3061
  # https://cloud.google.com/compute/docs/disks/customer-managed-encryption
2851
3062
  # @!attribute [rw] image_type
2852
3063
  # @return [::String]
2853
- # The image type to use for node created by NodeAutoprovisioning.
3064
+ # The image type to use for NAP created node.
2854
3065
  class AutoprovisioningNodePoolDefaults
2855
3066
  include ::Google::Protobuf::MessageExts
2856
3067
  extend ::Google::Protobuf::MessageExts::ClassMethods
@@ -2884,7 +3095,7 @@ module Google
2884
3095
  # @!attribute [rw] max_node_count
2885
3096
  # @return [::Integer]
2886
3097
  # Maximum number of nodes in the NodePool. Must be >= min_node_count. There
2887
- # has to enough quota to scale up the cluster.
3098
+ # has to be enough quota to scale up the cluster.
2888
3099
  # @!attribute [rw] autoprovisioned
2889
3100
  # @return [::Boolean]
2890
3101
  # Can this node pool be deleted automatically.
@@ -3031,6 +3242,11 @@ module Google
3031
3242
  # @return [::String]
3032
3243
  # The accelerator type resource name. List of supported accelerators
3033
3244
  # [here](https://cloud.google.com/compute/docs/gpus)
3245
+ # @!attribute [rw] gpu_partition_size
3246
+ # @return [::String]
3247
+ # Size of partitions to create on the GPU. Valid values are described in the
3248
+ # NVIDIA [mig user
3249
+ # guide](https://docs.nvidia.com/datacenter/tesla/mig-user-guide/#partitioning).
3034
3250
  class AcceleratorConfig
3035
3251
  include ::Google::Protobuf::MessageExts
3036
3252
  extend ::Google::Protobuf::MessageExts::ClassMethods
@@ -3243,8 +3459,11 @@ module Google
3243
3459
 
3244
3460
  # Unable to perform an encrypt operation against the CloudKMS key used for
3245
3461
  # etcd level encryption.
3246
- # More codes TBA
3247
3462
  CLOUD_KMS_KEY_ERROR = 7
3463
+
3464
+ # Cluster CA is expiring soon.
3465
+ # More codes TBA
3466
+ CA_EXPIRING = 9
3248
3467
  end
3249
3468
  end
3250
3469
 
@@ -3271,15 +3490,39 @@ module Google
3271
3490
  # will be disabled when default_snat_status is disabled. When disabled is set
3272
3491
  # to false, default IP masquerade rules will be applied to the nodes to
3273
3492
  # prevent sNAT on cluster internal traffic.
3493
+ # @!attribute [rw] enable_l4ilb_subsetting
3494
+ # @return [::Boolean]
3495
+ # Whether L4ILB Subsetting is enabled for this cluster.
3274
3496
  # @!attribute [rw] datapath_provider
3275
3497
  # @return [::Google::Cloud::Container::V1beta1::DatapathProvider]
3276
3498
  # The desired datapath provider for this cluster. By default, uses the
3277
3499
  # IPTables-based kube-proxy implementation.
3500
+ # @!attribute [rw] private_ipv6_google_access
3501
+ # @return [::Google::Cloud::Container::V1beta1::PrivateIPv6GoogleAccess]
3502
+ # The desired state of IPv6 connectivity to Google Services.
3503
+ # By default, no private IPv6 access to or from Google Services (all access
3504
+ # will be via IPv4)
3505
+ # @!attribute [rw] dns_config
3506
+ # @return [::Google::Cloud::Container::V1beta1::DNSConfig]
3507
+ # DNSConfig contains clusterDNS config for this cluster.
3508
+ # @!attribute [rw] service_external_ips_config
3509
+ # @return [::Google::Cloud::Container::V1beta1::ServiceExternalIPsConfig]
3510
+ # ServiceExternalIPsConfig specifies if services with externalIPs field are
3511
+ # blocked or not.
3278
3512
  class NetworkConfig
3279
3513
  include ::Google::Protobuf::MessageExts
3280
3514
  extend ::Google::Protobuf::MessageExts::ClassMethods
3281
3515
  end
3282
3516
 
3517
+ # Config to block services with externalIPs field.
3518
+ # @!attribute [rw] enabled
3519
+ # @return [::Boolean]
3520
+ # Whether Services with ExternalIPs field are allowed or not.
3521
+ class ServiceExternalIPsConfig
3522
+ include ::Google::Protobuf::MessageExts
3523
+ extend ::Google::Protobuf::MessageExts::ClassMethods
3524
+ end
3525
+
3283
3526
  # ListUsableSubnetworksRequest requests the list of usable subnetworks.
3284
3527
  # available to a user for creating clusters.
3285
3528
  # @!attribute [rw] parent
@@ -3419,6 +3662,55 @@ module Google
3419
3662
  extend ::Google::Protobuf::MessageExts::ClassMethods
3420
3663
  end
3421
3664
 
3665
+ # ILBSubsettingConfig contains the desired config of L4 Internal LoadBalancer
3666
+ # subsetting on this cluster.
3667
+ # @!attribute [rw] enabled
3668
+ # @return [::Boolean]
3669
+ # Enables l4 ILB subsetting for this cluster
3670
+ class ILBSubsettingConfig
3671
+ include ::Google::Protobuf::MessageExts
3672
+ extend ::Google::Protobuf::MessageExts::ClassMethods
3673
+ end
3674
+
3675
+ # DNSConfig contains the desired set of options for configuring clusterDNS.
3676
+ # @!attribute [rw] cluster_dns
3677
+ # @return [::Google::Cloud::Container::V1beta1::DNSConfig::Provider]
3678
+ # cluster_dns indicates which in-cluster DNS provider should be used.
3679
+ # @!attribute [rw] cluster_dns_scope
3680
+ # @return [::Google::Cloud::Container::V1beta1::DNSConfig::DNSScope]
3681
+ # cluster_dns_scope indicates the scope of access to cluster DNS records.
3682
+ # @!attribute [rw] cluster_dns_domain
3683
+ # @return [::String]
3684
+ # cluster_dns_domain is the suffix used for all cluster service records.
3685
+ class DNSConfig
3686
+ include ::Google::Protobuf::MessageExts
3687
+ extend ::Google::Protobuf::MessageExts::ClassMethods
3688
+
3689
+ # Provider lists the various in-cluster DNS providers.
3690
+ module Provider
3691
+ # Default value
3692
+ PROVIDER_UNSPECIFIED = 0
3693
+
3694
+ # Use GKE default DNS provider(kube-dns) for DNS resolution.
3695
+ PLATFORM_DEFAULT = 1
3696
+
3697
+ # Use CloudDNS for DNS resolution.
3698
+ CLOUD_DNS = 2
3699
+ end
3700
+
3701
+ # DNSScope lists the various scopes of access to cluster DNS records.
3702
+ module DNSScope
3703
+ # Default value, will be inferred as cluster scope.
3704
+ DNS_SCOPE_UNSPECIFIED = 0
3705
+
3706
+ # DNS records are accessible from within the cluster.
3707
+ CLUSTER_SCOPE = 1
3708
+
3709
+ # DNS records are accessible from within the VPC.
3710
+ VPC_SCOPE = 2
3711
+ end
3712
+ end
3713
+
3422
3714
  # Constraints applied to pods.
3423
3715
  # @!attribute [rw] max_pods_per_node
3424
3716
  # @return [::Integer]
@@ -3444,6 +3736,23 @@ module Google
3444
3736
  extend ::Google::Protobuf::MessageExts::ClassMethods
3445
3737
  end
3446
3738
 
3739
+ # Configuration for issuance of mTLS keys and certificates to Kubernetes pods.
3740
+ # @!attribute [rw] enable_certificates
3741
+ # @return [::Google::Protobuf::BoolValue]
3742
+ # enable_certificates controls issuance of workload mTLS certificates.
3743
+ #
3744
+ # If set, the GKE Workload Identity Certificates controller and node agent
3745
+ # will be deployed in the cluster, which can then be configured by creating a
3746
+ # WorkloadCertificateConfig Custom Resource.
3747
+ #
3748
+ # Requires Workload Identity
3749
+ # ({::Google::Cloud::Container::V1beta1::WorkloadIdentityConfig#workload_pool workload_pool}
3750
+ # must be non-empty).
3751
+ class WorkloadCertificates
3752
+ include ::Google::Protobuf::MessageExts
3753
+ extend ::Google::Protobuf::MessageExts::ClassMethods
3754
+ end
3755
+
3447
3756
  # Configuration of etcd encryption.
3448
3757
  # @!attribute [rw] state
3449
3758
  # @return [::Google::Cloud::Container::V1beta1::DatabaseEncryption::State]
@@ -3515,6 +3824,15 @@ module Google
3515
3824
  extend ::Google::Protobuf::MessageExts::ClassMethods
3516
3825
  end
3517
3826
 
3827
+ # Configuration of gVNIC feature.
3828
+ # @!attribute [rw] enabled
3829
+ # @return [::Boolean]
3830
+ # Whether gVNIC features are enabled in the node pool.
3831
+ class VirtualNIC
3832
+ include ::Google::Protobuf::MessageExts
3833
+ extend ::Google::Protobuf::MessageExts::ClassMethods
3834
+ end
3835
+
3518
3836
  # GetOpenIDConfigRequest gets the OIDC discovery document for the
3519
3837
  # cluster. See the OpenID Connect Discovery 1.0 specification for details.
3520
3838
  # @!attribute [rw] parent
@@ -3668,6 +3986,15 @@ module Google
3668
3986
  extend ::Google::Protobuf::MessageExts::ClassMethods
3669
3987
  end
3670
3988
 
3989
+ # Autopilot is the configuration for Autopilot settings on the cluster.
3990
+ # @!attribute [rw] enabled
3991
+ # @return [::Boolean]
3992
+ # Enable Autopilot
3993
+ class Autopilot
3994
+ include ::Google::Protobuf::MessageExts
3995
+ extend ::Google::Protobuf::MessageExts::ClassMethods
3996
+ end
3997
+
3671
3998
  # NotificationConfig is the configuration of notifications.
3672
3999
  # @!attribute [rw] pubsub
3673
4000
  # @return [::Google::Cloud::Container::V1beta1::NotificationConfig::PubSub]
@@ -3705,28 +4032,139 @@ module Google
3705
4032
  # a resource is upgrading.
3706
4033
  # @!attribute [rw] resource_type
3707
4034
  # @return [::Google::Cloud::Container::V1beta1::UpgradeResourceType]
3708
- # Required. The resource type that is upgrading.
4035
+ # The resource type that is upgrading.
3709
4036
  # @!attribute [rw] operation
3710
4037
  # @return [::String]
3711
- # Required. The operation associated with this upgrade.
4038
+ # The operation associated with this upgrade.
3712
4039
  # @!attribute [rw] operation_start_time
3713
4040
  # @return [::Google::Protobuf::Timestamp]
3714
- # Required. The time when the operation was started.
4041
+ # The time when the operation was started.
3715
4042
  # @!attribute [rw] current_version
3716
4043
  # @return [::String]
3717
- # Required. The current version before the upgrade.
4044
+ # The current version before the upgrade.
3718
4045
  # @!attribute [rw] target_version
3719
4046
  # @return [::String]
3720
- # Required. The target version for the upgrade.
4047
+ # The target version for the upgrade.
3721
4048
  # @!attribute [rw] resource
3722
4049
  # @return [::String]
3723
- # Optional. Optional relative path to the resource. For example in node pool upgrades,
4050
+ # Optional relative path to the resource. For example in node pool upgrades,
3724
4051
  # the relative path of the node pool.
3725
4052
  class UpgradeEvent
3726
4053
  include ::Google::Protobuf::MessageExts
3727
4054
  extend ::Google::Protobuf::MessageExts::ClassMethods
3728
4055
  end
3729
4056
 
4057
+ # UpgradeAvailableEvent is a notification sent to customers when a new
4058
+ # available version is released.
4059
+ # @!attribute [rw] version
4060
+ # @return [::String]
4061
+ # The release version available for upgrade.
4062
+ # @!attribute [rw] resource_type
4063
+ # @return [::Google::Cloud::Container::V1beta1::UpgradeResourceType]
4064
+ # The resource type of the release version.
4065
+ # @!attribute [rw] release_channel
4066
+ # @return [::Google::Cloud::Container::V1beta1::ReleaseChannel]
4067
+ # The release channel of the version. If empty, it means a non-channel
4068
+ # release.
4069
+ # @!attribute [rw] resource
4070
+ # @return [::String]
4071
+ # Optional relative path to the resource. For example, the relative path of
4072
+ # the node pool.
4073
+ # @!attribute [rw] windows_versions
4074
+ # @return [::Google::Cloud::Container::V1beta1::WindowsVersions]
4075
+ # Windows node versions info.
4076
+ class UpgradeAvailableEvent
4077
+ include ::Google::Protobuf::MessageExts
4078
+ extend ::Google::Protobuf::MessageExts::ClassMethods
4079
+ end
4080
+
4081
+ # IdentityServiceConfig is configuration for Identity Service which allows
4082
+ # customers to use external identity providers with the K8S API
4083
+ # @!attribute [rw] enabled
4084
+ # @return [::Boolean]
4085
+ # Whether to enable the Identity Service component
4086
+ class IdentityServiceConfig
4087
+ include ::Google::Protobuf::MessageExts
4088
+ extend ::Google::Protobuf::MessageExts::ClassMethods
4089
+ end
4090
+
4091
+ # LoggingConfig is cluster logging configuration.
4092
+ # @!attribute [rw] component_config
4093
+ # @return [::Google::Cloud::Container::V1beta1::LoggingComponentConfig]
4094
+ # Logging components configuration
4095
+ class LoggingConfig
4096
+ include ::Google::Protobuf::MessageExts
4097
+ extend ::Google::Protobuf::MessageExts::ClassMethods
4098
+ end
4099
+
4100
+ # LoggingComponentConfig is cluster logging component configuration.
4101
+ # @!attribute [rw] enable_components
4102
+ # @return [::Array<::Google::Cloud::Container::V1beta1::LoggingComponentConfig::Component>]
4103
+ # Select components to collect logs. An empty set would disable all logging.
4104
+ class LoggingComponentConfig
4105
+ include ::Google::Protobuf::MessageExts
4106
+ extend ::Google::Protobuf::MessageExts::ClassMethods
4107
+
4108
+ # GKE components exposing logs
4109
+ module Component
4110
+ # Default value. This shouldn't be used.
4111
+ COMPONENT_UNSPECIFIED = 0
4112
+
4113
+ # system components
4114
+ SYSTEM_COMPONENTS = 1
4115
+
4116
+ # workloads
4117
+ WORKLOADS = 2
4118
+ end
4119
+ end
4120
+
4121
+ # MonitoringConfig is cluster monitoring configuration.
4122
+ # @!attribute [rw] component_config
4123
+ # @return [::Google::Cloud::Container::V1beta1::MonitoringComponentConfig]
4124
+ # Monitoring components configuration
4125
+ class MonitoringConfig
4126
+ include ::Google::Protobuf::MessageExts
4127
+ extend ::Google::Protobuf::MessageExts::ClassMethods
4128
+ end
4129
+
4130
+ # MonitoringComponentConfig is cluster monitoring component configuration.
4131
+ # @!attribute [rw] enable_components
4132
+ # @return [::Array<::Google::Cloud::Container::V1beta1::MonitoringComponentConfig::Component>]
4133
+ # Select components to collect metrics. An empty set would disable all
4134
+ # monitoring.
4135
+ class MonitoringComponentConfig
4136
+ include ::Google::Protobuf::MessageExts
4137
+ extend ::Google::Protobuf::MessageExts::ClassMethods
4138
+
4139
+ # GKE components exposing metrics
4140
+ module Component
4141
+ # Default value. This shouldn't be used.
4142
+ COMPONENT_UNSPECIFIED = 0
4143
+
4144
+ # system components
4145
+ SYSTEM_COMPONENTS = 1
4146
+
4147
+ # workloads
4148
+ WORKLOADS = 2
4149
+ end
4150
+ end
4151
+
4152
+ # PrivateIPv6GoogleAccess controls whether and how the pods can communicate
4153
+ # with Google Services through gRPC over IPv6.
4154
+ module PrivateIPv6GoogleAccess
4155
+ # Default value. Same as DISABLED
4156
+ PRIVATE_IPV6_GOOGLE_ACCESS_UNSPECIFIED = 0
4157
+
4158
+ # No private access to or from Google Services
4159
+ PRIVATE_IPV6_GOOGLE_ACCESS_DISABLED = 1
4160
+
4161
+ # Enables private IPv6 access to Google Services from GKE
4162
+ PRIVATE_IPV6_GOOGLE_ACCESS_TO_GOOGLE = 2
4163
+
4164
+ # Enables priate IPv6 access to and from Google Services
4165
+ PRIVATE_IPV6_GOOGLE_ACCESS_BIDIRECTIONAL = 3
4166
+ end
4167
+
3730
4168
  # The datapath provider selects the implementation of the Kubernetes networking
3731
4169
  # // model for service resolution and network policy enforcement.
3732
4170
  module DatapathProvider