google-cloud-container-v1 0.7.2 → 0.9.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,7 +21,90 @@ 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.busy_poll
33
+ # net.core.busy_read
34
+ # net.core.netdev_max_backlog
35
+ # net.core.rmem_max
36
+ # net.core.wmem_default
37
+ # net.core.wmem_max
38
+ # net.core.optmem_max
39
+ # net.core.somaxconn
40
+ # net.ipv4.tcp_rmem
41
+ # net.ipv4.tcp_wmem
42
+ # net.ipv4.tcp_tw_reuse
43
+ class LinuxNodeConfig
44
+ include ::Google::Protobuf::MessageExts
45
+ extend ::Google::Protobuf::MessageExts::ClassMethods
46
+
47
+ # @!attribute [rw] key
48
+ # @return [::String]
49
+ # @!attribute [rw] value
50
+ # @return [::String]
51
+ class SysctlsEntry
52
+ include ::Google::Protobuf::MessageExts
53
+ extend ::Google::Protobuf::MessageExts::ClassMethods
54
+ end
55
+ end
56
+
57
+ # Node kubelet configs.
58
+ # @!attribute [rw] cpu_manager_policy
59
+ # @return [::String]
60
+ # Control the CPU management policy on the node.
61
+ # See
62
+ # https://kubernetes.io/docs/tasks/administer-cluster/cpu-management-policies/
63
+ #
64
+ # The following values are allowed.
65
+ # * "none": the default, which represents the existing scheduling behavior.
66
+ # * "static": allows pods with certain resource characteristics to be granted
67
+ # increased CPU affinity and exclusivity on the node.
68
+ # The default value is 'none' if unspecified.
69
+ # @!attribute [rw] cpu_cfs_quota
70
+ # @return [::Google::Protobuf::BoolValue]
71
+ # Enable CPU CFS quota enforcement for containers that specify CPU limits.
72
+ #
73
+ # This option is enabled by default which makes kubelet use CFS quota
74
+ # (https://www.kernel.org/doc/Documentation/scheduler/sched-bwc.txt) to
75
+ # enforce container CPU limits. Otherwise, CPU limits will not be enforced at
76
+ # all.
77
+ #
78
+ # Disable this option to mitigate CPU throttling problems while still having
79
+ # your pods to be in Guaranteed QoS class by specifying the CPU limits.
80
+ #
81
+ # The default value is 'true' if unspecified.
82
+ # @!attribute [rw] cpu_cfs_quota_period
83
+ # @return [::String]
84
+ # Set the CPU CFS quota period value 'cpu.cfs_period_us'.
85
+ #
86
+ # The string must be a sequence of decimal numbers, each with optional
87
+ # fraction and a unit suffix, such as "300ms".
88
+ # Valid time units are "ns", "us" (or "µs"), "ms", "s", "m", "h".
89
+ # The value must be a positive duration.
90
+ # @!attribute [rw] pod_pids_limit
91
+ # @return [::Integer]
92
+ # Set the Pod PID limits. See
93
+ # https://kubernetes.io/docs/concepts/policy/pid-limiting/#pod-pid-limits
94
+ #
95
+ # Controls the maximum number of processes allowed to run in a pod. The value
96
+ # must be greater than or equal to 1024 and less than 4194304.
97
+ class NodeKubeletConfig
98
+ include ::Google::Protobuf::MessageExts
99
+ extend ::Google::Protobuf::MessageExts::ClassMethods
100
+ end
101
+
24
102
  # Parameters that describe the nodes in a cluster.
103
+ #
104
+ # GKE Autopilot clusters do not
105
+ # recognize parameters in `NodeConfig`. Use
106
+ # {::Google::Cloud::Container::V1::AutoprovisioningNodePoolDefaults AutoprovisioningNodePoolDefaults}
107
+ # instead.
25
108
  # @!attribute [rw] machine_type
26
109
  # @return [::String]
27
110
  # The name of a Google Compute Engine [machine
@@ -64,6 +147,7 @@ module Google
64
147
  # in length. These are reflected as part of a URL in the metadata server.
65
148
  # Additionally, to avoid ambiguity, keys must not conflict with any other
66
149
  # metadata keys for the project or be one of the reserved keys:
150
+ #
67
151
  # - "cluster-location"
68
152
  # - "cluster-name"
69
153
  # - "cluster-uid"
@@ -84,9 +168,6 @@ module Google
84
168
  # - "install-ssh-psm1"
85
169
  # - "user-profile-psm1"
86
170
  #
87
- # The following keys are reserved for Windows nodes:
88
- # - "serial-port-logging-enable"
89
- #
90
171
  # Values are free-form strings, and only have meaning as interpreted by
91
172
  # the image running in the instance. The only restriction placed on them is
92
173
  # that each value's size must be less than or equal to 32 KB.
@@ -172,6 +253,12 @@ module Google
172
253
  # @!attribute [rw] shielded_instance_config
173
254
  # @return [::Google::Cloud::Container::V1::ShieldedInstanceConfig]
174
255
  # Shielded Instance options.
256
+ # @!attribute [rw] linux_node_config
257
+ # @return [::Google::Cloud::Container::V1::LinuxNodeConfig]
258
+ # Parameters that can be configured on Linux nodes.
259
+ # @!attribute [rw] kubelet_config
260
+ # @return [::Google::Cloud::Container::V1::NodeKubeletConfig]
261
+ # Node kubelet configs.
175
262
  # @!attribute [rw] boot_disk_kms_key
176
263
  # @return [::String]
177
264
  # The Customer Managed Encryption Key used to encrypt the boot disk attached
@@ -180,6 +267,23 @@ module Google
180
267
  # For more information about protecting resources with Cloud KMS Keys please
181
268
  # see:
182
269
  # https://cloud.google.com/compute/docs/disks/customer-managed-encryption
270
+ # @!attribute [rw] gcfs_config
271
+ # @return [::Google::Cloud::Container::V1::GcfsConfig]
272
+ # Google Container File System (image streaming) configs.
273
+ # @!attribute [rw] advanced_machine_features
274
+ # @return [::Google::Cloud::Container::V1::AdvancedMachineFeatures]
275
+ # Advanced features for the Compute Engine VM.
276
+ # @!attribute [rw] gvnic
277
+ # @return [::Google::Cloud::Container::V1::VirtualNIC]
278
+ # Enable or disable gvnic in the node pool.
279
+ # @!attribute [rw] spot
280
+ # @return [::Boolean]
281
+ # Spot flag for enabling Spot VM, which is a rebrand of
282
+ # the existing preemptible flag.
283
+ # @!attribute [rw] confidential_nodes
284
+ # @return [::Google::Cloud::Container::V1::ConfidentialNodes]
285
+ # Confidential nodes config.
286
+ # All the nodes in the node pool will be Confidential VM once enabled.
183
287
  class NodeConfig
184
288
  include ::Google::Protobuf::MessageExts
185
289
  extend ::Google::Protobuf::MessageExts::ClassMethods
@@ -203,6 +307,85 @@ module Google
203
307
  end
204
308
  end
205
309
 
310
+ # Specifies options for controlling advanced machine features.
311
+ # @!attribute [rw] threads_per_core
312
+ # @return [::Integer]
313
+ # The number of threads per physical core. To disable simultaneous
314
+ # multithreading (SMT) set this to 1. If unset, the maximum number of threads
315
+ # supported per core by the underlying processor is assumed.
316
+ class AdvancedMachineFeatures
317
+ include ::Google::Protobuf::MessageExts
318
+ extend ::Google::Protobuf::MessageExts::ClassMethods
319
+ end
320
+
321
+ # Parameters for node pool-level network config.
322
+ # @!attribute [rw] create_pod_range
323
+ # @return [::Boolean]
324
+ # Input only. Whether to create a new range for pod IPs in this node pool.
325
+ # Defaults are provided for `pod_range` and `pod_ipv4_cidr_block` if they
326
+ # are not specified.
327
+ #
328
+ # If neither `create_pod_range` or `pod_range` are specified, the
329
+ # cluster-level default (`ip_allocation_policy.cluster_ipv4_cidr_block`) is
330
+ # used.
331
+ #
332
+ # Only applicable if `ip_allocation_policy.use_ip_aliases` is true.
333
+ #
334
+ # This field cannot be changed after the node pool has been created.
335
+ # @!attribute [rw] pod_range
336
+ # @return [::String]
337
+ # The ID of the secondary range for pod IPs.
338
+ # If `create_pod_range` is true, this ID is used for the new range.
339
+ # If `create_pod_range` is false, uses an existing secondary range with this
340
+ # ID.
341
+ #
342
+ # Only applicable if `ip_allocation_policy.use_ip_aliases` is true.
343
+ #
344
+ # This field cannot be changed after the node pool has been created.
345
+ # @!attribute [rw] pod_ipv4_cidr_block
346
+ # @return [::String]
347
+ # The IP address range for pod IPs in this node pool.
348
+ #
349
+ # Only applicable if `create_pod_range` is true.
350
+ #
351
+ # Set to blank to have a range chosen with the default size.
352
+ #
353
+ # Set to /netmask (e.g. `/14`) to have a range chosen with a specific
354
+ # netmask.
355
+ #
356
+ # Set to a
357
+ # [CIDR](https://en.wikipedia.org/wiki/Classless_Inter-Domain_Routing)
358
+ # notation (e.g. `10.96.0.0/14`) to pick a specific range to use.
359
+ #
360
+ # Only applicable if `ip_allocation_policy.use_ip_aliases` is true.
361
+ #
362
+ # This field cannot be changed after the node pool has been created.
363
+ # @!attribute [rw] network_performance_config
364
+ # @return [::Google::Cloud::Container::V1::NodeNetworkConfig::NetworkPerformanceConfig]
365
+ # Network bandwidth tier configuration.
366
+ class NodeNetworkConfig
367
+ include ::Google::Protobuf::MessageExts
368
+ extend ::Google::Protobuf::MessageExts::ClassMethods
369
+
370
+ # Configuration of all network bandwidth tiers
371
+ # @!attribute [rw] total_egress_bandwidth_tier
372
+ # @return [::Google::Cloud::Container::V1::NodeNetworkConfig::NetworkPerformanceConfig::Tier]
373
+ # Specifies the total network bandwidth tier for the NodePool.
374
+ class NetworkPerformanceConfig
375
+ include ::Google::Protobuf::MessageExts
376
+ extend ::Google::Protobuf::MessageExts::ClassMethods
377
+
378
+ # Node network tier
379
+ module Tier
380
+ # Default value
381
+ TIER_UNSPECIFIED = 0
382
+
383
+ # Higher bandwidth, actual values based on VM size.
384
+ TIER_1 = 1
385
+ end
386
+ end
387
+ end
388
+
206
389
  # A set of Shielded Instance options.
207
390
  # @!attribute [rw] enable_secure_boot
208
391
  # @return [::Boolean]
@@ -242,6 +425,16 @@ module Google
242
425
  end
243
426
  end
244
427
 
428
+ # GcfsConfig contains configurations of Google Container File System
429
+ # (image streaming).
430
+ # @!attribute [rw] enabled
431
+ # @return [::Boolean]
432
+ # Whether to use GCFS.
433
+ class GcfsConfig
434
+ include ::Google::Protobuf::MessageExts
435
+ extend ::Google::Protobuf::MessageExts::ClassMethods
436
+ end
437
+
245
438
  # [ReservationAffinity](https://cloud.google.com/compute/docs/instances/reserving-zonal-resources)
246
439
  # is the configuration of desired reservation which instances could take
247
440
  # capacity from.
@@ -312,6 +505,45 @@ module Google
312
505
  end
313
506
  end
314
507
 
508
+ # Collection of Kubernetes [node
509
+ # taints](https://kubernetes.io/docs/concepts/configuration/taint-and-toleration).
510
+ # @!attribute [rw] taints
511
+ # @return [::Array<::Google::Cloud::Container::V1::NodeTaint>]
512
+ # List of node taints.
513
+ class NodeTaints
514
+ include ::Google::Protobuf::MessageExts
515
+ extend ::Google::Protobuf::MessageExts::ClassMethods
516
+ end
517
+
518
+ # Collection of node-level [Kubernetes
519
+ # labels](https://kubernetes.io/docs/concepts/overview/working-with-objects/labels).
520
+ # @!attribute [rw] labels
521
+ # @return [::Google::Protobuf::Map{::String => ::String}]
522
+ # Map of node label keys and node label values.
523
+ class NodeLabels
524
+ include ::Google::Protobuf::MessageExts
525
+ extend ::Google::Protobuf::MessageExts::ClassMethods
526
+
527
+ # @!attribute [rw] key
528
+ # @return [::String]
529
+ # @!attribute [rw] value
530
+ # @return [::String]
531
+ class LabelsEntry
532
+ include ::Google::Protobuf::MessageExts
533
+ extend ::Google::Protobuf::MessageExts::ClassMethods
534
+ end
535
+ end
536
+
537
+ # Collection of Compute Engine network tags that can be applied to a node's
538
+ # underlying VM instance.
539
+ # @!attribute [rw] tags
540
+ # @return [::Array<::String>]
541
+ # List of network tags.
542
+ class NetworkTags
543
+ include ::Google::Protobuf::MessageExts
544
+ extend ::Google::Protobuf::MessageExts::ClassMethods
545
+ end
546
+
315
547
  # The authentication information for accessing the master endpoint.
316
548
  # Authentication can be done using HTTP basic auth or using client
317
549
  # certificates.
@@ -401,6 +633,12 @@ module Google
401
633
  # @return [::Google::Cloud::Container::V1::ConfigConnectorConfig]
402
634
  # Configuration for the ConfigConnector add-on, a Kubernetes
403
635
  # extension to manage hosted GCP services through the Kubernetes API
636
+ # @!attribute [rw] gce_persistent_disk_csi_driver_config
637
+ # @return [::Google::Cloud::Container::V1::GcePersistentDiskCsiDriverConfig]
638
+ # Configuration for the Compute Engine Persistent Disk CSI driver.
639
+ # @!attribute [rw] gcp_filestore_csi_driver_config
640
+ # @return [::Google::Cloud::Container::V1::GcpFilestoreCsiDriverConfig]
641
+ # Configuration for the GCP Filestore CSI driver.
404
642
  class AddonsConfig
405
643
  include ::Google::Protobuf::MessageExts
406
644
  extend ::Google::Protobuf::MessageExts::ClassMethods
@@ -548,6 +786,24 @@ module Google
548
786
  extend ::Google::Protobuf::MessageExts::ClassMethods
549
787
  end
550
788
 
789
+ # Configuration for the Compute Engine PD CSI driver.
790
+ # @!attribute [rw] enabled
791
+ # @return [::Boolean]
792
+ # Whether the Compute Engine PD CSI driver is enabled for this cluster.
793
+ class GcePersistentDiskCsiDriverConfig
794
+ include ::Google::Protobuf::MessageExts
795
+ extend ::Google::Protobuf::MessageExts::ClassMethods
796
+ end
797
+
798
+ # Configuration for the GCP Filestore CSI driver.
799
+ # @!attribute [rw] enabled
800
+ # @return [::Boolean]
801
+ # Whether the GCP Filestore CSI driver is enabled for this cluster.
802
+ class GcpFilestoreCsiDriverConfig
803
+ include ::Google::Protobuf::MessageExts
804
+ extend ::Google::Protobuf::MessageExts::ClassMethods
805
+ end
806
+
551
807
  # Configuration options for the master authorized networks feature. Enabled
552
808
  # master authorized networks will disallow all external traffic to access
553
809
  # Kubernetes master through HTTPS except traffic from the given CIDR blocks,
@@ -616,9 +872,28 @@ module Google
616
872
  # @return [::Boolean]
617
873
  # Enable Binary Authorization for this cluster. If enabled, all container
618
874
  # images will be validated by Binary Authorization.
875
+ # @!attribute [rw] evaluation_mode
876
+ # @return [::Google::Cloud::Container::V1::BinaryAuthorization::EvaluationMode]
877
+ # Mode of operation for binauthz policy evaluation. Currently the only
878
+ # options are equivalent to enable/disable. If unspecified, defaults to
879
+ # DISABLED.
619
880
  class BinaryAuthorization
620
881
  include ::Google::Protobuf::MessageExts
621
882
  extend ::Google::Protobuf::MessageExts::ClassMethods
883
+
884
+ # Binary Authorization mode of operation.
885
+ module EvaluationMode
886
+ # Default value
887
+ EVALUATION_MODE_UNSPECIFIED = 0
888
+
889
+ # Disable BinaryAuthorization
890
+ DISABLED = 1
891
+
892
+ # Enforce Kubernetes admission requests with BinaryAuthorization using the
893
+ # project's singleton policy. This is equivalent to setting the
894
+ # enabled boolean to true.
895
+ PROJECT_SINGLETON_POLICY_ENFORCE = 2
896
+ end
622
897
  end
623
898
 
624
899
  # Configuration for controlling how IPs are allocated in the cluster.
@@ -922,6 +1197,20 @@ module Google
922
1197
  # @return [::Google::Cloud::Container::V1::WorkloadIdentityConfig]
923
1198
  # Configuration for the use of Kubernetes Service Accounts in GCP IAM
924
1199
  # policies.
1200
+ # @!attribute [rw] mesh_certificates
1201
+ # @return [::Google::Cloud::Container::V1::MeshCertificates]
1202
+ # Configuration for issuance of mTLS keys and certificates to Kubernetes
1203
+ # pods.
1204
+ # @!attribute [rw] notification_config
1205
+ # @return [::Google::Cloud::Container::V1::NotificationConfig]
1206
+ # Notification configuration of the cluster.
1207
+ # @!attribute [rw] confidential_nodes
1208
+ # @return [::Google::Cloud::Container::V1::ConfidentialNodes]
1209
+ # Configuration of Confidential Nodes.
1210
+ # All the nodes in the cluster will be Confidential VM once enabled.
1211
+ # @!attribute [rw] identity_service_config
1212
+ # @return [::Google::Cloud::Container::V1::IdentityServiceConfig]
1213
+ # Configuration for Identity Service component.
925
1214
  # @!attribute [rw] self_link
926
1215
  # @return [::String]
927
1216
  # [Output only] Server-defined URL for the resource.
@@ -1017,6 +1306,26 @@ module Google
1017
1306
  # @!attribute [rw] conditions
1018
1307
  # @return [::Array<::Google::Cloud::Container::V1::StatusCondition>]
1019
1308
  # Which conditions caused the current cluster state.
1309
+ # @!attribute [rw] autopilot
1310
+ # @return [::Google::Cloud::Container::V1::Autopilot]
1311
+ # Autopilot configuration for the cluster.
1312
+ # @!attribute [r] id
1313
+ # @return [::String]
1314
+ # Output only. Unique id for the cluster.
1315
+ # @!attribute [rw] node_pool_defaults
1316
+ # @return [::Google::Cloud::Container::V1::NodePoolDefaults]
1317
+ # Default NodePool settings for the entire cluster. These settings are
1318
+ # overridden if specified on the specific NodePool object.
1319
+ # @!attribute [rw] logging_config
1320
+ # @return [::Google::Cloud::Container::V1::LoggingConfig]
1321
+ # Logging configuration for the cluster.
1322
+ # @!attribute [rw] monitoring_config
1323
+ # @return [::Google::Cloud::Container::V1::MonitoringConfig]
1324
+ # Monitoring configuration for the cluster.
1325
+ # @!attribute [rw] node_pool_auto_config
1326
+ # @return [::Google::Cloud::Container::V1::NodePoolAutoConfig]
1327
+ # Node pool configs that apply to all auto-provisioned node pools
1328
+ # in autopilot clusters and node auto-provisioning enabled clusters.
1020
1329
  class Cluster
1021
1330
  include ::Google::Protobuf::MessageExts
1022
1331
  extend ::Google::Protobuf::MessageExts::ClassMethods
@@ -1060,6 +1369,37 @@ module Google
1060
1369
  end
1061
1370
  end
1062
1371
 
1372
+ # Node pool configs that apply to all auto-provisioned node pools
1373
+ # in autopilot clusters and node auto-provisioning enabled clusters.
1374
+ # @!attribute [rw] network_tags
1375
+ # @return [::Google::Cloud::Container::V1::NetworkTags]
1376
+ # The list of instance tags applied to all nodes. Tags are used to identify
1377
+ # valid sources or targets for network firewalls and are specified by
1378
+ # the client during cluster creation. Each tag within the list
1379
+ # must comply with RFC1035.
1380
+ class NodePoolAutoConfig
1381
+ include ::Google::Protobuf::MessageExts
1382
+ extend ::Google::Protobuf::MessageExts::ClassMethods
1383
+ end
1384
+
1385
+ # Subset of Nodepool message that has defaults.
1386
+ # @!attribute [rw] node_config_defaults
1387
+ # @return [::Google::Cloud::Container::V1::NodeConfigDefaults]
1388
+ # Subset of NodeConfig message that has defaults.
1389
+ class NodePoolDefaults
1390
+ include ::Google::Protobuf::MessageExts
1391
+ extend ::Google::Protobuf::MessageExts::ClassMethods
1392
+ end
1393
+
1394
+ # Subset of NodeConfig message that has defaults.
1395
+ # @!attribute [rw] gcfs_config
1396
+ # @return [::Google::Cloud::Container::V1::GcfsConfig]
1397
+ # GCFS (Google Container File System, a.k.a. Riptide) options.
1398
+ class NodeConfigDefaults
1399
+ include ::Google::Protobuf::MessageExts
1400
+ extend ::Google::Protobuf::MessageExts::ClassMethods
1401
+ end
1402
+
1063
1403
  # ClusterUpdate describes an update to the cluster. Exactly one update can
1064
1404
  # be applied to a cluster with each request, so at most one field can be
1065
1405
  # provided.
@@ -1108,9 +1448,16 @@ module Google
1108
1448
  # @!attribute [rw] desired_workload_identity_config
1109
1449
  # @return [::Google::Cloud::Container::V1::WorkloadIdentityConfig]
1110
1450
  # Configuration for Workload Identity.
1451
+ # @!attribute [rw] desired_mesh_certificates
1452
+ # @return [::Google::Cloud::Container::V1::MeshCertificates]
1453
+ # Configuration for issuance of mTLS keys and certificates to Kubernetes
1454
+ # pods.
1111
1455
  # @!attribute [rw] desired_shielded_nodes
1112
1456
  # @return [::Google::Cloud::Container::V1::ShieldedNodes]
1113
1457
  # Configuration for Shielded Nodes.
1458
+ # @!attribute [rw] desired_dns_config
1459
+ # @return [::Google::Cloud::Container::V1::DNSConfig]
1460
+ # DNSConfig contains clusterDNS config for this cluster.
1114
1461
  # @!attribute [rw] desired_node_pool_autoscaling
1115
1462
  # @return [::Google::Cloud::Container::V1::NodePoolAutoscaling]
1116
1463
  # Autoscaler configuration for the node pool specified in
@@ -1167,9 +1514,34 @@ module Google
1167
1514
  # @!attribute [rw] desired_release_channel
1168
1515
  # @return [::Google::Cloud::Container::V1::ReleaseChannel]
1169
1516
  # The desired release channel configuration.
1517
+ # @!attribute [rw] desired_l4ilb_subsetting_config
1518
+ # @return [::Google::Cloud::Container::V1::ILBSubsettingConfig]
1519
+ # The desired L4 Internal Load Balancer Subsetting configuration.
1520
+ # @!attribute [rw] desired_datapath_provider
1521
+ # @return [::Google::Cloud::Container::V1::DatapathProvider]
1522
+ # The desired datapath provider for the cluster.
1523
+ # @!attribute [rw] desired_private_ipv6_google_access
1524
+ # @return [::Google::Cloud::Container::V1::PrivateIPv6GoogleAccess]
1525
+ # The desired state of IPv6 connectivity to Google Services.
1526
+ # @!attribute [rw] desired_notification_config
1527
+ # @return [::Google::Cloud::Container::V1::NotificationConfig]
1528
+ # The desired notification configuration.
1170
1529
  # @!attribute [rw] desired_authenticator_groups_config
1171
1530
  # @return [::Google::Cloud::Container::V1::AuthenticatorGroupsConfig]
1172
1531
  # The desired authenticator groups config for the cluster.
1532
+ # @!attribute [rw] desired_logging_config
1533
+ # @return [::Google::Cloud::Container::V1::LoggingConfig]
1534
+ # The desired logging configuration.
1535
+ # @!attribute [rw] desired_monitoring_config
1536
+ # @return [::Google::Cloud::Container::V1::MonitoringConfig]
1537
+ # The desired monitoring configuration.
1538
+ # @!attribute [rw] desired_identity_service_config
1539
+ # @return [::Google::Cloud::Container::V1::IdentityServiceConfig]
1540
+ # The desired Identity Service component configuration.
1541
+ # @!attribute [rw] desired_service_external_ips_config
1542
+ # @return [::Google::Cloud::Container::V1::ServiceExternalIPsConfig]
1543
+ # ServiceExternalIPsConfig specifies the config for the use of Services with
1544
+ # ExternalIPs field.
1173
1545
  # @!attribute [rw] desired_master_version
1174
1546
  # @return [::String]
1175
1547
  # The Kubernetes version to change the master to.
@@ -1182,6 +1554,13 @@ module Google
1182
1554
  # - "1.X.Y": picks the highest valid gke.N patch in the 1.X.Y version
1183
1555
  # - "1.X.Y-gke.N": picks an explicit Kubernetes version
1184
1556
  # - "-": picks the default Kubernetes version
1557
+ # @!attribute [rw] desired_gcfs_config
1558
+ # @return [::Google::Cloud::Container::V1::GcfsConfig]
1559
+ # The desired GCFS config for the cluster
1560
+ # @!attribute [rw] desired_node_pool_auto_config_network_tags
1561
+ # @return [::Google::Cloud::Container::V1::NetworkTags]
1562
+ # The desired network tags that apply to all auto-provisioned node pools
1563
+ # in autopilot clusters and node auto-provisioning enabled clusters.
1185
1564
  class ClusterUpdate
1186
1565
  include ::Google::Protobuf::MessageExts
1187
1566
  extend ::Google::Protobuf::MessageExts::ClassMethods
@@ -1209,6 +1588,7 @@ module Google
1209
1588
  # @!attribute [r] status_message
1210
1589
  # @return [::String]
1211
1590
  # Output only. If an error has occurred, a textual description of the error.
1591
+ # Deprecated. Use the field error instead.
1212
1592
  # @!attribute [rw] self_link
1213
1593
  # @return [::String]
1214
1594
  # Server-defined URL for the resource.
@@ -1236,9 +1616,14 @@ module Google
1236
1616
  # @!attribute [rw] cluster_conditions
1237
1617
  # @return [::Array<::Google::Cloud::Container::V1::StatusCondition>]
1238
1618
  # Which conditions caused the current cluster state.
1619
+ # Deprecated. Use field error instead.
1239
1620
  # @!attribute [rw] nodepool_conditions
1240
1621
  # @return [::Array<::Google::Cloud::Container::V1::StatusCondition>]
1241
1622
  # Which conditions caused the current node pool state.
1623
+ # Deprecated. Use field error instead.
1624
+ # @!attribute [rw] error
1625
+ # @return [::Google::Rpc::Status]
1626
+ # The error result of the operation in case of failure.
1242
1627
  class Operation
1243
1628
  include ::Google::Protobuf::MessageExts
1244
1629
  extend ::Google::Protobuf::MessageExts::ClassMethods
@@ -1363,7 +1748,7 @@ module Google
1363
1748
  # @!attribute [rw] project_id
1364
1749
  # @return [::String]
1365
1750
  # Deprecated. The Google Developers Console [project ID or project
1366
- # number](https://support.google.com/cloud/answer/6158840).
1751
+ # number](https://cloud.google.com/resource-manager/docs/creating-managing-projects).
1367
1752
  # This field has been deprecated and replaced by the parent field.
1368
1753
  # @!attribute [rw] zone
1369
1754
  # @return [::String]
@@ -1388,7 +1773,7 @@ module Google
1388
1773
  # @!attribute [rw] project_id
1389
1774
  # @return [::String]
1390
1775
  # Deprecated. The Google Developers Console [project ID or project
1391
- # number](https://support.google.com/cloud/answer/6158840).
1776
+ # number](https://cloud.google.com/resource-manager/docs/creating-managing-projects).
1392
1777
  # This field has been deprecated and replaced by the name field.
1393
1778
  # @!attribute [rw] zone
1394
1779
  # @return [::String]
@@ -1413,7 +1798,7 @@ module Google
1413
1798
  # @!attribute [rw] project_id
1414
1799
  # @return [::String]
1415
1800
  # Deprecated. The Google Developers Console [project ID or project
1416
- # number](https://support.google.com/cloud/answer/6158840).
1801
+ # number](https://cloud.google.com/resource-manager/docs/creating-managing-projects).
1417
1802
  # This field has been deprecated and replaced by the name field.
1418
1803
  # @!attribute [rw] zone
1419
1804
  # @return [::String]
@@ -1441,7 +1826,7 @@ module Google
1441
1826
  # @!attribute [rw] project_id
1442
1827
  # @return [::String]
1443
1828
  # Deprecated. The Google Developers Console [project ID or project
1444
- # number](https://support.google.com/cloud/answer/6158840).
1829
+ # number](https://cloud.google.com/resource-manager/docs/creating-managing-projects).
1445
1830
  # This field has been deprecated and replaced by the name field.
1446
1831
  # @!attribute [rw] zone
1447
1832
  # @return [::String]
@@ -1491,6 +1876,40 @@ module Google
1491
1876
  # @!attribute [rw] upgrade_settings
1492
1877
  # @return [::Google::Cloud::Container::V1::NodePool::UpgradeSettings]
1493
1878
  # Upgrade settings control disruption and speed of the upgrade.
1879
+ # @!attribute [rw] tags
1880
+ # @return [::Google::Cloud::Container::V1::NetworkTags]
1881
+ # The desired network tags to be applied to all nodes in the node pool.
1882
+ # If this field is not present, the tags will not be changed. Otherwise,
1883
+ # the existing network tags will be *replaced* with the provided tags.
1884
+ # @!attribute [rw] taints
1885
+ # @return [::Google::Cloud::Container::V1::NodeTaints]
1886
+ # The desired node taints to be applied to all nodes in the node pool.
1887
+ # If this field is not present, the taints will not be changed. Otherwise,
1888
+ # the existing node taints will be *replaced* with the provided taints.
1889
+ # @!attribute [rw] labels
1890
+ # @return [::Google::Cloud::Container::V1::NodeLabels]
1891
+ # The desired node labels to be applied to all nodes in the node pool.
1892
+ # If this field is not present, the labels will not be changed. Otherwise,
1893
+ # the existing node labels will be *replaced* with the provided labels.
1894
+ # @!attribute [rw] linux_node_config
1895
+ # @return [::Google::Cloud::Container::V1::LinuxNodeConfig]
1896
+ # Parameters that can be configured on Linux nodes.
1897
+ # @!attribute [rw] kubelet_config
1898
+ # @return [::Google::Cloud::Container::V1::NodeKubeletConfig]
1899
+ # Node kubelet configs.
1900
+ # @!attribute [rw] node_network_config
1901
+ # @return [::Google::Cloud::Container::V1::NodeNetworkConfig]
1902
+ # Node network config.
1903
+ # @!attribute [rw] gcfs_config
1904
+ # @return [::Google::Cloud::Container::V1::GcfsConfig]
1905
+ # GCFS config.
1906
+ # @!attribute [rw] confidential_nodes
1907
+ # @return [::Google::Cloud::Container::V1::ConfidentialNodes]
1908
+ # Confidential nodes config.
1909
+ # All the nodes in the node pool will be Confidential VM once enabled.
1910
+ # @!attribute [rw] gvnic
1911
+ # @return [::Google::Cloud::Container::V1::VirtualNIC]
1912
+ # Enable or disable gvnic on the node pool.
1494
1913
  class UpdateNodePoolRequest
1495
1914
  include ::Google::Protobuf::MessageExts
1496
1915
  extend ::Google::Protobuf::MessageExts::ClassMethods
@@ -1500,7 +1919,7 @@ module Google
1500
1919
  # @!attribute [rw] project_id
1501
1920
  # @return [::String]
1502
1921
  # Deprecated. The Google Developers Console [project ID or project
1503
- # number](https://support.google.com/cloud/answer/6158840).
1922
+ # number](https://cloud.google.com/resource-manager/docs/creating-managing-projects).
1504
1923
  # This field has been deprecated and replaced by the name field.
1505
1924
  # @!attribute [rw] zone
1506
1925
  # @return [::String]
@@ -1533,7 +1952,7 @@ module Google
1533
1952
  # @!attribute [rw] project_id
1534
1953
  # @return [::String]
1535
1954
  # Deprecated. The Google Developers Console [project ID or project
1536
- # number](https://support.google.com/cloud/answer/6158840).
1955
+ # number](https://cloud.google.com/resource-manager/docs/creating-managing-projects).
1537
1956
  # This field has been deprecated and replaced by the name field.
1538
1957
  # @!attribute [rw] zone
1539
1958
  # @return [::String]
@@ -1571,7 +1990,7 @@ module Google
1571
1990
  # @!attribute [rw] project_id
1572
1991
  # @return [::String]
1573
1992
  # Deprecated. The Google Developers Console [project ID or project
1574
- # number](https://support.google.com/cloud/answer/6158840).
1993
+ # number](https://cloud.google.com/resource-manager/docs/creating-managing-projects).
1575
1994
  # This field has been deprecated and replaced by the name field.
1576
1995
  # @!attribute [rw] zone
1577
1996
  # @return [::String]
@@ -1609,7 +2028,7 @@ module Google
1609
2028
  # @!attribute [rw] project_id
1610
2029
  # @return [::String]
1611
2030
  # Deprecated. The Google Developers Console [project ID or project
1612
- # number](https://support.google.com/cloud/answer/6158840).
2031
+ # number](https://cloud.google.com/resource-manager/docs/creating-managing-projects).
1613
2032
  # This field has been deprecated and replaced by the name field.
1614
2033
  # @!attribute [rw] zone
1615
2034
  # @return [::String]
@@ -1638,7 +2057,7 @@ module Google
1638
2057
  # @!attribute [rw] project_id
1639
2058
  # @return [::String]
1640
2059
  # Deprecated. The Google Developers Console [project ID or project
1641
- # number](https://support.google.com/cloud/answer/6158840).
2060
+ # number](https://cloud.google.com/resource-manager/docs/creating-managing-projects).
1642
2061
  # This field has been deprecated and replaced by the name field.
1643
2062
  # @!attribute [rw] zone
1644
2063
  # @return [::String]
@@ -1672,7 +2091,7 @@ module Google
1672
2091
  # @!attribute [rw] project_id
1673
2092
  # @return [::String]
1674
2093
  # Deprecated. The Google Developers Console [project ID or project
1675
- # number](https://support.google.com/cloud/answer/6158840).
2094
+ # number](https://cloud.google.com/resource-manager/docs/creating-managing-projects).
1676
2095
  # This field has been deprecated and replaced by the name field.
1677
2096
  # @!attribute [rw] zone
1678
2097
  # @return [::String]
@@ -1709,7 +2128,7 @@ module Google
1709
2128
  # @!attribute [rw] project_id
1710
2129
  # @return [::String]
1711
2130
  # Deprecated. The Google Developers Console [project ID or project
1712
- # number](https://support.google.com/cloud/answer/6158840).
2131
+ # number](https://cloud.google.com/resource-manager/docs/creating-managing-projects).
1713
2132
  # This field has been deprecated and replaced by the name field.
1714
2133
  # @!attribute [rw] zone
1715
2134
  # @return [::String]
@@ -1758,7 +2177,7 @@ module Google
1758
2177
  # @!attribute [rw] project_id
1759
2178
  # @return [::String]
1760
2179
  # Deprecated. The Google Developers Console [project ID or project
1761
- # number](https://support.google.com/cloud/answer/6158840).
2180
+ # number](https://cloud.google.com/resource-manager/docs/creating-managing-projects).
1762
2181
  # This field has been deprecated and replaced by the name field.
1763
2182
  # @!attribute [rw] zone
1764
2183
  # @return [::String]
@@ -1783,7 +2202,7 @@ module Google
1783
2202
  # @!attribute [rw] project_id
1784
2203
  # @return [::String]
1785
2204
  # Deprecated. The Google Developers Console [project ID or project
1786
- # number](https://support.google.com/cloud/answer/6158840).
2205
+ # number](https://cloud.google.com/resource-manager/docs/creating-managing-projects).
1787
2206
  # This field has been deprecated and replaced by the parent field.
1788
2207
  # @!attribute [rw] zone
1789
2208
  # @return [::String]
@@ -1819,7 +2238,7 @@ module Google
1819
2238
  # @!attribute [rw] project_id
1820
2239
  # @return [::String]
1821
2240
  # Deprecated. The Google Developers Console [project ID or project
1822
- # number](https://support.google.com/cloud/answer/6158840).
2241
+ # number](https://cloud.google.com/resource-manager/docs/creating-managing-projects).
1823
2242
  # This field has been deprecated and replaced by the name field.
1824
2243
  # @!attribute [rw] zone
1825
2244
  # @return [::String]
@@ -1844,7 +2263,7 @@ module Google
1844
2263
  # @!attribute [rw] project_id
1845
2264
  # @return [::String]
1846
2265
  # Deprecated. The Google Developers Console [project ID or project
1847
- # number](https://support.google.com/cloud/answer/6158840).
2266
+ # number](https://cloud.google.com/resource-manager/docs/creating-managing-projects).
1848
2267
  # This field has been deprecated and replaced by the parent field.
1849
2268
  # @!attribute [rw] zone
1850
2269
  # @return [::String]
@@ -1866,7 +2285,7 @@ module Google
1866
2285
  # @!attribute [rw] project_id
1867
2286
  # @return [::String]
1868
2287
  # Deprecated. The Google Developers Console [project ID or project
1869
- # number](https://support.google.com/cloud/answer/6158840).
2288
+ # number](https://cloud.google.com/resource-manager/docs/creating-managing-projects).
1870
2289
  # This field has been deprecated and replaced by the name field.
1871
2290
  # @!attribute [rw] zone
1872
2291
  # @return [::String]
@@ -1904,7 +2323,7 @@ module Google
1904
2323
  # @!attribute [rw] project_id
1905
2324
  # @return [::String]
1906
2325
  # Deprecated. The Google Developers Console [project ID or project
1907
- # number](https://support.google.com/cloud/answer/6158840).
2326
+ # number](https://cloud.google.com/resource-manager/docs/creating-managing-projects).
1908
2327
  # This field has been deprecated and replaced by the name field.
1909
2328
  # @!attribute [rw] zone
1910
2329
  # @return [::String]
@@ -1964,7 +2383,7 @@ module Google
1964
2383
  # @!attribute [rw] project_id
1965
2384
  # @return [::String]
1966
2385
  # Deprecated. The Google Developers Console [project ID or project
1967
- # number](https://developers.google.com/console/help/new/#projectnumber).
2386
+ # number](https://cloud.google.com/resource-manager/docs/creating-managing-projects).
1968
2387
  # This field has been deprecated and replaced by the parent field.
1969
2388
  # @!attribute [rw] zone
1970
2389
  # @return [::String]
@@ -1981,7 +2400,7 @@ module Google
1981
2400
  # Required. The node pool to create.
1982
2401
  # @!attribute [rw] parent
1983
2402
  # @return [::String]
1984
- # The parent (project, location, cluster id) where the node pool will be
2403
+ # The parent (project, location, cluster name) where the node pool will be
1985
2404
  # created. Specified in the format
1986
2405
  # `projects/*/locations/*/clusters/*`.
1987
2406
  class CreateNodePoolRequest
@@ -1993,7 +2412,7 @@ module Google
1993
2412
  # @!attribute [rw] project_id
1994
2413
  # @return [::String]
1995
2414
  # Deprecated. The Google Developers Console [project ID or project
1996
- # number](https://developers.google.com/console/help/new/#projectnumber).
2415
+ # number](https://cloud.google.com/resource-manager/docs/creating-managing-projects).
1997
2416
  # This field has been deprecated and replaced by the name field.
1998
2417
  # @!attribute [rw] zone
1999
2418
  # @return [::String]
@@ -2023,7 +2442,7 @@ module Google
2023
2442
  # @!attribute [rw] project_id
2024
2443
  # @return [::String]
2025
2444
  # Deprecated. The Google Developers Console [project ID or project
2026
- # number](https://developers.google.com/console/help/new/#projectnumber).
2445
+ # number](https://cloud.google.com/resource-manager/docs/creating-managing-projects).
2027
2446
  # This field has been deprecated and replaced by the parent field.
2028
2447
  # @!attribute [rw] zone
2029
2448
  # @return [::String]
@@ -2037,7 +2456,7 @@ module Google
2037
2456
  # This field has been deprecated and replaced by the parent field.
2038
2457
  # @!attribute [rw] parent
2039
2458
  # @return [::String]
2040
- # The parent (project, location, cluster id) where the node pools will be
2459
+ # The parent (project, location, cluster name) where the node pools will be
2041
2460
  # listed. Specified in the format `projects/*/locations/*/clusters/*`.
2042
2461
  class ListNodePoolsRequest
2043
2462
  include ::Google::Protobuf::MessageExts
@@ -2048,7 +2467,7 @@ module Google
2048
2467
  # @!attribute [rw] project_id
2049
2468
  # @return [::String]
2050
2469
  # Deprecated. The Google Developers Console [project ID or project
2051
- # number](https://developers.google.com/console/help/new/#projectnumber).
2470
+ # number](https://cloud.google.com/resource-manager/docs/creating-managing-projects).
2052
2471
  # This field has been deprecated and replaced by the name field.
2053
2472
  # @!attribute [rw] zone
2054
2473
  # @return [::String]
@@ -2074,6 +2493,35 @@ module Google
2074
2493
  extend ::Google::Protobuf::MessageExts::ClassMethods
2075
2494
  end
2076
2495
 
2496
+ # Settings for blue-green upgrade.
2497
+ # @!attribute [rw] standard_rollout_policy
2498
+ # @return [::Google::Cloud::Container::V1::BlueGreenSettings::StandardRolloutPolicy]
2499
+ # Standard policy for the blue-green upgrade.
2500
+ # @!attribute [rw] node_pool_soak_duration
2501
+ # @return [::Google::Protobuf::Duration]
2502
+ # Time needed after draining entire blue pool. After this period, blue pool
2503
+ # will be cleaned up.
2504
+ class BlueGreenSettings
2505
+ include ::Google::Protobuf::MessageExts
2506
+ extend ::Google::Protobuf::MessageExts::ClassMethods
2507
+
2508
+ # Standard rollout policy is the default policy for blue-green.
2509
+ # @!attribute [rw] batch_percentage
2510
+ # @return [::Float]
2511
+ # Percentage of the bool pool nodes to drain in a batch.
2512
+ # The range of this field should be (0.0, 1.0].
2513
+ # @!attribute [rw] batch_node_count
2514
+ # @return [::Integer]
2515
+ # Number of blue nodes to drain in a batch.
2516
+ # @!attribute [rw] batch_soak_duration
2517
+ # @return [::Google::Protobuf::Duration]
2518
+ # Soak time after each batch gets drained. Default to zero.
2519
+ class StandardRolloutPolicy
2520
+ include ::Google::Protobuf::MessageExts
2521
+ extend ::Google::Protobuf::MessageExts::ClassMethods
2522
+ end
2523
+ end
2524
+
2077
2525
  # NodePool contains the name and configuration for a cluster's node pool.
2078
2526
  # Node pools are a set of nodes (i.e. VM's), with a common configuration and
2079
2527
  # specification, under the control of the cluster master. They may have a set
@@ -2104,6 +2552,10 @@ module Google
2104
2552
  #
2105
2553
  # Warning: changing node pool locations will result in nodes being added
2106
2554
  # and/or removed.
2555
+ # @!attribute [rw] network_config
2556
+ # @return [::Google::Cloud::Container::V1::NodeNetworkConfig]
2557
+ # Networking configuration for this NodePool. If specified, it overrides the
2558
+ # cluster-level defaults.
2107
2559
  # @!attribute [rw] self_link
2108
2560
  # @return [::String]
2109
2561
  # [Output only] Server-defined URL for the resource.
@@ -2115,6 +2567,8 @@ module Google
2115
2567
  # [Output only] The resource URLs of the [managed instance
2116
2568
  # groups](https://cloud.google.com/compute/docs/instance-groups/creating-groups-of-managed-instances)
2117
2569
  # associated with this node pool.
2570
+ # During the node pool blue-green upgrade operation, the URLs contain both
2571
+ # blue and green resources.
2118
2572
  # @!attribute [rw] status
2119
2573
  # @return [::Google::Cloud::Container::V1::NodePool::Status]
2120
2574
  # [Output only] The status of the nodes in this pool instance.
@@ -2143,6 +2597,10 @@ module Google
2143
2597
  # @!attribute [rw] upgrade_settings
2144
2598
  # @return [::Google::Cloud::Container::V1::NodePool::UpgradeSettings]
2145
2599
  # Upgrade settings control disruption and speed of the upgrade.
2600
+ # @!attribute [r] update_info
2601
+ # @return [::Google::Cloud::Container::V1::NodePool::UpdateInfo]
2602
+ # Output only. [Output only] Update info contains relevant information during a node
2603
+ # pool update.
2146
2604
  class NodePool
2147
2605
  include ::Google::Protobuf::MessageExts
2148
2606
  extend ::Google::Protobuf::MessageExts::ClassMethods
@@ -2170,6 +2628,29 @@ module Google
2170
2628
  # simultaneously. It creates 2 additional (upgraded) nodes, then it brings
2171
2629
  # down 3 old (not yet upgraded) nodes at the same time. This ensures that
2172
2630
  # there are always at least 4 nodes available.
2631
+ #
2632
+ # These upgrade settings configure the upgrade strategy for the node pool.
2633
+ # Use strategy to switch between the strategies applied to the node pool.
2634
+ #
2635
+ # If the strategy is ROLLING, use max_surge and max_unavailable to control
2636
+ # the level of parallelism and the level of disruption caused by upgrade.
2637
+ # 1. maxSurge controls the number of additional nodes that can be added to
2638
+ # the node pool temporarily for the time of the upgrade to increase the
2639
+ # number of available nodes.
2640
+ # 2. maxUnavailable controls the number of nodes that can be simultaneously
2641
+ # unavailable.
2642
+ # 3. (maxUnavailable + maxSurge) determines the level of parallelism (how
2643
+ # many nodes are being upgraded at the same time).
2644
+ #
2645
+ # If the strategy is BLUE_GREEN, use blue_green_settings to configure the
2646
+ # blue-green upgrade related settings.
2647
+ # 1. standard_rollout_policy is the default policy. The policy is used to
2648
+ # control the way blue pool gets drained. The draining is executed in the
2649
+ # batch mode. The batch size could be specified as either percentage of the
2650
+ # node pool size or the number of nodes. batch_soak_duration is the soak
2651
+ # time after each batch gets drained.
2652
+ # 2. node_pool_soak_duration is the soak time after all blue nodes are
2653
+ # drained. After this period, the blue pool nodes will be deleted.
2173
2654
  # @!attribute [rw] max_surge
2174
2655
  # @return [::Integer]
2175
2656
  # The maximum number of nodes that can be created beyond the current size
@@ -2179,11 +2660,80 @@ module Google
2179
2660
  # The maximum number of nodes that can be simultaneously unavailable during
2180
2661
  # the upgrade process. A node is considered available if its status is
2181
2662
  # Ready.
2663
+ # @!attribute [rw] strategy
2664
+ # @return [::Google::Cloud::Container::V1::NodePoolUpdateStrategy]
2665
+ # Update strategy of the node pool.
2666
+ # @!attribute [rw] blue_green_settings
2667
+ # @return [::Google::Cloud::Container::V1::BlueGreenSettings]
2668
+ # Settings for blue-green upgrade strategy.
2182
2669
  class UpgradeSettings
2183
2670
  include ::Google::Protobuf::MessageExts
2184
2671
  extend ::Google::Protobuf::MessageExts::ClassMethods
2185
2672
  end
2186
2673
 
2674
+ # UpdateInfo contains resource (instance groups, etc), status and other
2675
+ # intermediate information relevant to a node pool upgrade.
2676
+ # @!attribute [rw] blue_green_info
2677
+ # @return [::Google::Cloud::Container::V1::NodePool::UpdateInfo::BlueGreenInfo]
2678
+ # Information of a blue-green upgrade.
2679
+ class UpdateInfo
2680
+ include ::Google::Protobuf::MessageExts
2681
+ extend ::Google::Protobuf::MessageExts::ClassMethods
2682
+
2683
+ # Information relevant to blue-green upgrade.
2684
+ # @!attribute [rw] phase
2685
+ # @return [::Google::Cloud::Container::V1::NodePool::UpdateInfo::BlueGreenInfo::Phase]
2686
+ # Current blue-green upgrade phase.
2687
+ # @!attribute [rw] blue_instance_group_urls
2688
+ # @return [::Array<::String>]
2689
+ # The resource URLs of the [managed instance groups]
2690
+ # (/compute/docs/instance-groups/creating-groups-of-managed-instances)
2691
+ # associated with blue pool.
2692
+ # @!attribute [rw] green_instance_group_urls
2693
+ # @return [::Array<::String>]
2694
+ # The resource URLs of the [managed instance groups]
2695
+ # (/compute/docs/instance-groups/creating-groups-of-managed-instances)
2696
+ # associated with green pool.
2697
+ # @!attribute [rw] blue_pool_deletion_start_time
2698
+ # @return [::String]
2699
+ # Time to start deleting blue pool to complete blue-green upgrade,
2700
+ # in [RFC3339](https://www.ietf.org/rfc/rfc3339.txt) text format.
2701
+ # @!attribute [rw] green_pool_version
2702
+ # @return [::String]
2703
+ # Version of green pool.
2704
+ class BlueGreenInfo
2705
+ include ::Google::Protobuf::MessageExts
2706
+ extend ::Google::Protobuf::MessageExts::ClassMethods
2707
+
2708
+ # Phase represents the different stages blue-green upgrade is running in.
2709
+ module Phase
2710
+ # Unspecified phase.
2711
+ PHASE_UNSPECIFIED = 0
2712
+
2713
+ # blue-green upgrade has been initiated.
2714
+ UPDATE_STARTED = 1
2715
+
2716
+ # Start creating green pool nodes.
2717
+ CREATING_GREEN_POOL = 2
2718
+
2719
+ # Start cordoning blue pool nodes.
2720
+ CORDONING_BLUE_POOL = 3
2721
+
2722
+ # Start draining blue pool nodes.
2723
+ DRAINING_BLUE_POOL = 4
2724
+
2725
+ # Start soaking time after draining entire blue pool.
2726
+ NODE_POOL_SOAKING = 5
2727
+
2728
+ # Start deleting blue nodes.
2729
+ DELETING_BLUE_POOL = 6
2730
+
2731
+ # Rollback has been initiated.
2732
+ ROLLBACK_STARTED = 7
2733
+ end
2734
+ end
2735
+ end
2736
+
2187
2737
  # The current status of the node pool instance.
2188
2738
  module Status
2189
2739
  # Not set.
@@ -2297,6 +2847,10 @@ module Google
2297
2847
  end
2298
2848
 
2299
2849
  # Represents an arbitrary window of time.
2850
+ # @!attribute [rw] maintenance_exclusion_options
2851
+ # @return [::Google::Cloud::Container::V1::MaintenanceExclusionOptions]
2852
+ # MaintenanceExclusionOptions provides maintenance exclusion related
2853
+ # options.
2300
2854
  # @!attribute [rw] start_time
2301
2855
  # @return [::Google::Protobuf::Timestamp]
2302
2856
  # The time that the window first starts.
@@ -2309,6 +2863,33 @@ module Google
2309
2863
  extend ::Google::Protobuf::MessageExts::ClassMethods
2310
2864
  end
2311
2865
 
2866
+ # Represents the Maintenance exclusion option.
2867
+ # @!attribute [rw] scope
2868
+ # @return [::Google::Cloud::Container::V1::MaintenanceExclusionOptions::Scope]
2869
+ # Scope specifies the upgrade scope which upgrades are blocked by the
2870
+ # exclusion.
2871
+ class MaintenanceExclusionOptions
2872
+ include ::Google::Protobuf::MessageExts
2873
+ extend ::Google::Protobuf::MessageExts::ClassMethods
2874
+
2875
+ # Scope of exclusion.
2876
+ module Scope
2877
+ # NO_UPGRADES excludes all upgrades, including patch upgrades and minor
2878
+ # upgrades across control planes and nodes. This is the default exclusion
2879
+ # behavior.
2880
+ NO_UPGRADES = 0
2881
+
2882
+ # NO_MINOR_UPGRADES excludes all minor upgrades for the cluster, only
2883
+ # patches are allowed.
2884
+ NO_MINOR_UPGRADES = 1
2885
+
2886
+ # NO_MINOR_OR_NODE_UPGRADES excludes all minor upgrades for the cluster,
2887
+ # and also exclude all node pool upgrades. Only control
2888
+ # plane patches are allowed.
2889
+ NO_MINOR_OR_NODE_UPGRADES = 2
2890
+ end
2891
+ end
2892
+
2312
2893
  # Represents an arbitrary window of time that recurs.
2313
2894
  # @!attribute [rw] window
2314
2895
  # @return [::Google::Cloud::Container::V1::TimeWindow]
@@ -2374,7 +2955,7 @@ module Google
2374
2955
  # @!attribute [rw] project_id
2375
2956
  # @return [::String]
2376
2957
  # Deprecated. The Google Developers Console [project ID or project
2377
- # number](https://support.google.com/cloud/answer/6158840).
2958
+ # number](https://cloud.google.com/resource-manager/docs/creating-managing-projects).
2378
2959
  # This field has been deprecated and replaced by the name field.
2379
2960
  # @!attribute [rw] zone
2380
2961
  # @return [::String]
@@ -2403,12 +2984,11 @@ module Google
2403
2984
  extend ::Google::Protobuf::MessageExts::ClassMethods
2404
2985
  end
2405
2986
 
2406
- # SetNodePoolSizeRequest sets the size a node
2407
- # pool.
2987
+ # SetNodePoolSizeRequest sets the size of a node pool.
2408
2988
  # @!attribute [rw] project_id
2409
2989
  # @return [::String]
2410
2990
  # Deprecated. The Google Developers Console [project ID or project
2411
- # number](https://support.google.com/cloud/answer/6158840).
2991
+ # number](https://cloud.google.com/resource-manager/docs/creating-managing-projects).
2412
2992
  # This field has been deprecated and replaced by the name field.
2413
2993
  # @!attribute [rw] zone
2414
2994
  # @return [::String]
@@ -2437,13 +3017,25 @@ module Google
2437
3017
  extend ::Google::Protobuf::MessageExts::ClassMethods
2438
3018
  end
2439
3019
 
3020
+ # CompleteNodePoolUpgradeRequest sets the name of target node pool to complete
3021
+ # upgrade.
3022
+ # @!attribute [rw] name
3023
+ # @return [::String]
3024
+ # The name (project, location, cluster, node pool id) of the node pool to
3025
+ # complete upgrade.
3026
+ # Specified in the format 'projects/*/locations/*/clusters/*/nodePools/*'.
3027
+ class CompleteNodePoolUpgradeRequest
3028
+ include ::Google::Protobuf::MessageExts
3029
+ extend ::Google::Protobuf::MessageExts::ClassMethods
3030
+ end
3031
+
2440
3032
  # RollbackNodePoolUpgradeRequest rollbacks the previously Aborted or Failed
2441
3033
  # NodePool upgrade. This will be an no-op if the last upgrade successfully
2442
3034
  # completed.
2443
3035
  # @!attribute [rw] project_id
2444
3036
  # @return [::String]
2445
3037
  # Deprecated. The Google Developers Console [project ID or project
2446
- # number](https://support.google.com/cloud/answer/6158840).
3038
+ # number](https://cloud.google.com/resource-manager/docs/creating-managing-projects).
2447
3039
  # This field has been deprecated and replaced by the name field.
2448
3040
  # @!attribute [rw] zone
2449
3041
  # @return [::String]
@@ -2464,6 +3056,10 @@ module Google
2464
3056
  # The name (project, location, cluster, node pool id) of the node poll to
2465
3057
  # rollback upgrade.
2466
3058
  # Specified in the format `projects/*/locations/*/clusters/*/nodePools/*`.
3059
+ # @!attribute [rw] respect_pdb
3060
+ # @return [::Boolean]
3061
+ # Option for rollback to ignore the PodDisruptionBudget.
3062
+ # Default value is false.
2467
3063
  class RollbackNodePoolUpgradeRequest
2468
3064
  include ::Google::Protobuf::MessageExts
2469
3065
  extend ::Google::Protobuf::MessageExts::ClassMethods
@@ -2489,6 +3085,9 @@ module Google
2489
3085
  # @return [::Array<::Google::Cloud::Container::V1::ResourceLimit>]
2490
3086
  # Contains global constraints regarding minimum and maximum
2491
3087
  # amount of resources in the cluster.
3088
+ # @!attribute [rw] autoscaling_profile
3089
+ # @return [::Google::Cloud::Container::V1::ClusterAutoscaling::AutoscalingProfile]
3090
+ # Defines autoscaling behaviour.
2492
3091
  # @!attribute [rw] autoprovisioning_node_pool_defaults
2493
3092
  # @return [::Google::Cloud::Container::V1::AutoprovisioningNodePoolDefaults]
2494
3093
  # AutoprovisioningNodePoolDefaults contains defaults for a node pool
@@ -2501,6 +3100,18 @@ module Google
2501
3100
  class ClusterAutoscaling
2502
3101
  include ::Google::Protobuf::MessageExts
2503
3102
  extend ::Google::Protobuf::MessageExts::ClassMethods
3103
+
3104
+ # Defines possible options for autoscaling_profile field.
3105
+ module AutoscalingProfile
3106
+ # No change to autoscaling configuration.
3107
+ PROFILE_UNSPECIFIED = 0
3108
+
3109
+ # Prioritize optimizing utilization of resources.
3110
+ OPTIMIZE_UTILIZATION = 1
3111
+
3112
+ # Use default (balanced) autoscaling configuration.
3113
+ BALANCED = 2
3114
+ end
2504
3115
  end
2505
3116
 
2506
3117
  # AutoprovisioningNodePoolDefaults contains defaults for a node pool created
@@ -2519,13 +3130,15 @@ module Google
2519
3130
  # Specifies the node management options for NAP created node-pools.
2520
3131
  # @!attribute [rw] min_cpu_platform
2521
3132
  # @return [::String]
2522
- # Minimum CPU platform to be used for NAP created node pools.
3133
+ # Deprecated. Minimum CPU platform to be used for NAP created node pools.
2523
3134
  # The instance may be scheduled on the specified or newer CPU platform.
2524
3135
  # Applicable values are the friendly names of CPU platforms, such as
2525
3136
  # minCpuPlatform: Intel Haswell or
2526
3137
  # minCpuPlatform: Intel Sandy Bridge. For more
2527
3138
  # information, read [how to specify min CPU
2528
3139
  # platform](https://cloud.google.com/compute/docs/instances/specify-min-cpu-platform)
3140
+ # This field is deprecated, min_cpu_platform should be specified using
3141
+ # cloud.google.com/requested-min-cpu-platform label selector on the pod.
2529
3142
  # To unset the min cpu platform field pass "automatic"
2530
3143
  # as field value.
2531
3144
  # @!attribute [rw] disk_size_gb
@@ -2582,18 +3195,47 @@ module Google
2582
3195
  # Is autoscaling enabled for this node pool.
2583
3196
  # @!attribute [rw] min_node_count
2584
3197
  # @return [::Integer]
2585
- # Minimum number of nodes in the NodePool. Must be >= 1 and <=
2586
- # max_node_count.
3198
+ # Minimum number of nodes for one location in the NodePool. Must be >= 1 and
3199
+ # <= max_node_count.
2587
3200
  # @!attribute [rw] max_node_count
2588
3201
  # @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.
3202
+ # Maximum number of nodes for one location in the NodePool. Must be >=
3203
+ # min_node_count. There has to be enough quota to scale up the cluster.
2591
3204
  # @!attribute [rw] autoprovisioned
2592
3205
  # @return [::Boolean]
2593
3206
  # Can this node pool be deleted automatically.
3207
+ # @!attribute [rw] location_policy
3208
+ # @return [::Google::Cloud::Container::V1::NodePoolAutoscaling::LocationPolicy]
3209
+ # Location policy used when scaling up a nodepool.
3210
+ # @!attribute [rw] total_min_node_count
3211
+ # @return [::Integer]
3212
+ # Minimum number of nodes in the node pool. Must be greater than 1 less than
3213
+ # total_max_node_count.
3214
+ # The total_*_node_count fields are mutually exclusive with the *_node_count
3215
+ # fields.
3216
+ # @!attribute [rw] total_max_node_count
3217
+ # @return [::Integer]
3218
+ # Maximum number of nodes in the node pool. Must be greater than
3219
+ # total_min_node_count. There has to be enough quota to scale up the cluster.
3220
+ # The total_*_node_count fields are mutually exclusive with the *_node_count
3221
+ # fields.
2594
3222
  class NodePoolAutoscaling
2595
3223
  include ::Google::Protobuf::MessageExts
2596
3224
  extend ::Google::Protobuf::MessageExts::ClassMethods
3225
+
3226
+ # Location policy specifies how zones are picked when scaling up the
3227
+ # nodepool.
3228
+ module LocationPolicy
3229
+ # Not set.
3230
+ LOCATION_POLICY_UNSPECIFIED = 0
3231
+
3232
+ # BALANCED is a best effort policy that aims to balance the sizes of
3233
+ # different zones.
3234
+ BALANCED = 1
3235
+
3236
+ # ANY policy picks zones that have the highest capacity available.
3237
+ ANY = 2
3238
+ end
2597
3239
  end
2598
3240
 
2599
3241
  # SetLabelsRequest sets the Google Cloud Platform labels on a Google Container
@@ -2602,7 +3244,7 @@ module Google
2602
3244
  # @!attribute [rw] project_id
2603
3245
  # @return [::String]
2604
3246
  # Deprecated. The Google Developers Console [project ID or project
2605
- # number](https://developers.google.com/console/help/new/#projectnumber).
3247
+ # number](https://cloud.google.com/resource-manager/docs/creating-managing-projects).
2606
3248
  # This field has been deprecated and replaced by the name field.
2607
3249
  # @!attribute [rw] zone
2608
3250
  # @return [::String]
@@ -2627,7 +3269,7 @@ module Google
2627
3269
  # resource to get the latest fingerprint.
2628
3270
  # @!attribute [rw] name
2629
3271
  # @return [::String]
2630
- # The name (project, location, cluster id) of the cluster to set labels.
3272
+ # The name (project, location, cluster name) of the cluster to set labels.
2631
3273
  # Specified in the format `projects/*/locations/*/clusters/*`.
2632
3274
  class SetLabelsRequest
2633
3275
  include ::Google::Protobuf::MessageExts
@@ -2648,7 +3290,7 @@ module Google
2648
3290
  # @!attribute [rw] project_id
2649
3291
  # @return [::String]
2650
3292
  # Deprecated. The Google Developers Console [project ID or project
2651
- # number](https://support.google.com/cloud/answer/6158840).
3293
+ # number](https://cloud.google.com/resource-manager/docs/creating-managing-projects).
2652
3294
  # This field has been deprecated and replaced by the name field.
2653
3295
  # @!attribute [rw] zone
2654
3296
  # @return [::String]
@@ -2665,8 +3307,8 @@ module Google
2665
3307
  # Required. Whether ABAC authorization will be enabled in the cluster.
2666
3308
  # @!attribute [rw] name
2667
3309
  # @return [::String]
2668
- # The name (project, location, cluster id) of the cluster to set legacy abac.
2669
- # Specified in the format `projects/*/locations/*/clusters/*`.
3310
+ # The name (project, location, cluster name) of the cluster to set legacy
3311
+ # abac. Specified in the format `projects/*/locations/*/clusters/*`.
2670
3312
  class SetLegacyAbacRequest
2671
3313
  include ::Google::Protobuf::MessageExts
2672
3314
  extend ::Google::Protobuf::MessageExts::ClassMethods
@@ -2677,7 +3319,7 @@ module Google
2677
3319
  # @!attribute [rw] project_id
2678
3320
  # @return [::String]
2679
3321
  # Deprecated. The Google Developers Console [project ID or project
2680
- # number](https://developers.google.com/console/help/new/#projectnumber).
3322
+ # number](https://cloud.google.com/resource-manager/docs/creating-managing-projects).
2681
3323
  # This field has been deprecated and replaced by the name field.
2682
3324
  # @!attribute [rw] zone
2683
3325
  # @return [::String]
@@ -2691,7 +3333,7 @@ module Google
2691
3333
  # This field has been deprecated and replaced by the name field.
2692
3334
  # @!attribute [rw] name
2693
3335
  # @return [::String]
2694
- # The name (project, location, cluster id) of the cluster to start IP
3336
+ # The name (project, location, cluster name) of the cluster to start IP
2695
3337
  # rotation. Specified in the format `projects/*/locations/*/clusters/*`.
2696
3338
  # @!attribute [rw] rotate_credentials
2697
3339
  # @return [::Boolean]
@@ -2705,7 +3347,7 @@ module Google
2705
3347
  # @!attribute [rw] project_id
2706
3348
  # @return [::String]
2707
3349
  # Deprecated. The Google Developers Console [project ID or project
2708
- # number](https://developers.google.com/console/help/new/#projectnumber).
3350
+ # number](https://cloud.google.com/resource-manager/docs/creating-managing-projects).
2709
3351
  # This field has been deprecated and replaced by the name field.
2710
3352
  # @!attribute [rw] zone
2711
3353
  # @return [::String]
@@ -2719,7 +3361,7 @@ module Google
2719
3361
  # This field has been deprecated and replaced by the name field.
2720
3362
  # @!attribute [rw] name
2721
3363
  # @return [::String]
2722
- # The name (project, location, cluster id) of the cluster to complete IP
3364
+ # The name (project, location, cluster name) of the cluster to complete IP
2723
3365
  # rotation. Specified in the format `projects/*/locations/*/clusters/*`.
2724
3366
  class CompleteIPRotationRequest
2725
3367
  include ::Google::Protobuf::MessageExts
@@ -2734,11 +3376,41 @@ module Google
2734
3376
  # @return [::String]
2735
3377
  # The accelerator type resource name. List of supported accelerators
2736
3378
  # [here](https://cloud.google.com/compute/docs/gpus)
3379
+ # @!attribute [rw] gpu_partition_size
3380
+ # @return [::String]
3381
+ # Size of partitions to create on the GPU. Valid values are described in the
3382
+ # NVIDIA [mig user
3383
+ # guide](https://docs.nvidia.com/datacenter/tesla/mig-user-guide/#partitioning).
3384
+ # @!attribute [rw] gpu_sharing_config
3385
+ # @return [::Google::Cloud::Container::V1::GPUSharingConfig]
3386
+ # The configuration for GPU sharing options.
2737
3387
  class AcceleratorConfig
2738
3388
  include ::Google::Protobuf::MessageExts
2739
3389
  extend ::Google::Protobuf::MessageExts::ClassMethods
2740
3390
  end
2741
3391
 
3392
+ # GPUSharingConfig represents the GPU sharing configuration for Hardware
3393
+ # Accelerators.
3394
+ # @!attribute [rw] max_shared_clients_per_gpu
3395
+ # @return [::Integer]
3396
+ # The max number of containers that can share a physical GPU.
3397
+ # @!attribute [rw] gpu_sharing_strategy
3398
+ # @return [::Google::Cloud::Container::V1::GPUSharingConfig::GPUSharingStrategy]
3399
+ # The type of GPU sharing strategy to enable on the GPU node.
3400
+ class GPUSharingConfig
3401
+ include ::Google::Protobuf::MessageExts
3402
+ extend ::Google::Protobuf::MessageExts::ClassMethods
3403
+
3404
+ # The type of GPU sharing strategy currently provided.
3405
+ module GPUSharingStrategy
3406
+ # Default value.
3407
+ GPU_SHARING_STRATEGY_UNSPECIFIED = 0
3408
+
3409
+ # GPUs are time-shared between containers.
3410
+ TIME_SHARING = 1
3411
+ end
3412
+ end
3413
+
2742
3414
  # WorkloadMetadataConfig defines the metadata configuration to expose to
2743
3415
  # workloads on the node pool.
2744
3416
  # @!attribute [rw] mode
@@ -2771,7 +3443,7 @@ module Google
2771
3443
  # @!attribute [rw] project_id
2772
3444
  # @return [::String]
2773
3445
  # Deprecated. The Google Developers Console [project ID or project
2774
- # number](https://developers.google.com/console/help/new/#projectnumber).
3446
+ # number](https://cloud.google.com/resource-manager/docs/creating-managing-projects).
2775
3447
  # This field has been deprecated and replaced by the name field.
2776
3448
  # @!attribute [rw] zone
2777
3449
  # @return [::String]
@@ -2788,7 +3460,7 @@ module Google
2788
3460
  # Required. Configuration options for the NetworkPolicy feature.
2789
3461
  # @!attribute [rw] name
2790
3462
  # @return [::String]
2791
- # The name (project, location, cluster id) of the cluster to set networking
3463
+ # The name (project, location, cluster name) of the cluster to set networking
2792
3464
  # policy. Specified in the format `projects/*/locations/*/clusters/*`.
2793
3465
  class SetNetworkPolicyRequest
2794
3466
  include ::Google::Protobuf::MessageExts
@@ -2799,7 +3471,7 @@ module Google
2799
3471
  # @!attribute [rw] project_id
2800
3472
  # @return [::String]
2801
3473
  # Required. The Google Developers Console [project ID or project
2802
- # number](https://support.google.com/cloud/answer/6158840).
3474
+ # number](https://cloud.google.com/resource-manager/docs/creating-managing-projects).
2803
3475
  # @!attribute [rw] zone
2804
3476
  # @return [::String]
2805
3477
  # Required. The name of the Google Compute Engine
@@ -2814,8 +3486,8 @@ module Google
2814
3486
  # clears the existing maintenance policy.
2815
3487
  # @!attribute [rw] name
2816
3488
  # @return [::String]
2817
- # The name (project, location, cluster id) of the cluster to set maintenance
2818
- # policy.
3489
+ # The name (project, location, cluster name) of the cluster to set
3490
+ # maintenance policy.
2819
3491
  # Specified in the format `projects/*/locations/*/clusters/*`.
2820
3492
  class SetMaintenancePolicyRequest
2821
3493
  include ::Google::Protobuf::MessageExts
@@ -2827,9 +3499,13 @@ module Google
2827
3499
  # @!attribute [rw] code
2828
3500
  # @return [::Google::Cloud::Container::V1::StatusCondition::Code]
2829
3501
  # Machine-friendly representation of the condition
3502
+ # Deprecated. Use canonical_code instead.
2830
3503
  # @!attribute [rw] message
2831
3504
  # @return [::String]
2832
3505
  # Human-friendly representation of the condition
3506
+ # @!attribute [rw] canonical_code
3507
+ # @return [::Google::Rpc::Code]
3508
+ # Canonical code of the condition.
2833
3509
  class StatusCondition
2834
3510
  include ::Google::Protobuf::MessageExts
2835
3511
  extend ::Google::Protobuf::MessageExts::ClassMethods
@@ -2855,8 +3531,10 @@ module Google
2855
3531
 
2856
3532
  # Unable to perform an encrypt operation against the CloudKMS key used for
2857
3533
  # etcd level encryption.
2858
- # More codes TBA
2859
3534
  CLOUD_KMS_KEY_ERROR = 7
3535
+
3536
+ # Cluster CA is expiring soon.
3537
+ CA_EXPIRING = 9
2860
3538
  end
2861
3539
  end
2862
3540
 
@@ -2883,16 +3561,44 @@ module Google
2883
3561
  # will be disabled when default_snat_status is disabled. When disabled is set
2884
3562
  # to false, default IP masquerade rules will be applied to the nodes to
2885
3563
  # prevent sNAT on cluster internal traffic.
3564
+ # @!attribute [rw] enable_l4ilb_subsetting
3565
+ # @return [::Boolean]
3566
+ # Whether L4ILB Subsetting is enabled for this cluster.
3567
+ # @!attribute [rw] datapath_provider
3568
+ # @return [::Google::Cloud::Container::V1::DatapathProvider]
3569
+ # The desired datapath provider for this cluster. By default, uses the
3570
+ # IPTables-based kube-proxy implementation.
3571
+ # @!attribute [rw] private_ipv6_google_access
3572
+ # @return [::Google::Cloud::Container::V1::PrivateIPv6GoogleAccess]
3573
+ # The desired state of IPv6 connectivity to Google Services.
3574
+ # By default, no private IPv6 access to or from Google Services (all access
3575
+ # will be via IPv4)
3576
+ # @!attribute [rw] dns_config
3577
+ # @return [::Google::Cloud::Container::V1::DNSConfig]
3578
+ # DNSConfig contains clusterDNS config for this cluster.
3579
+ # @!attribute [rw] service_external_ips_config
3580
+ # @return [::Google::Cloud::Container::V1::ServiceExternalIPsConfig]
3581
+ # ServiceExternalIPsConfig specifies if services with externalIPs field are
3582
+ # blocked or not.
2886
3583
  class NetworkConfig
2887
3584
  include ::Google::Protobuf::MessageExts
2888
3585
  extend ::Google::Protobuf::MessageExts::ClassMethods
2889
3586
  end
2890
3587
 
3588
+ # Config to block services with externalIPs field.
3589
+ # @!attribute [rw] enabled
3590
+ # @return [::Boolean]
3591
+ # Whether Services with ExternalIPs field are allowed or not.
3592
+ class ServiceExternalIPsConfig
3593
+ include ::Google::Protobuf::MessageExts
3594
+ extend ::Google::Protobuf::MessageExts::ClassMethods
3595
+ end
3596
+
2891
3597
  # GetOpenIDConfigRequest gets the OIDC discovery document for the
2892
3598
  # cluster. See the OpenID Connect Discovery 1.0 specification for details.
2893
3599
  # @!attribute [rw] parent
2894
3600
  # @return [::String]
2895
- # The cluster (project, location, cluster id) to get the discovery document
3601
+ # The cluster (project, location, cluster name) to get the discovery document
2896
3602
  # for. Specified in the format `projects/*/locations/*/clusters/*`.
2897
3603
  class GetOpenIDConfigRequest
2898
3604
  include ::Google::Protobuf::MessageExts
@@ -2933,7 +3639,7 @@ module Google
2933
3639
  # Discovery 1.0 specification for details.
2934
3640
  # @!attribute [rw] parent
2935
3641
  # @return [::String]
2936
- # The cluster (project, location, cluster id) to get keys for. Specified in
3642
+ # The cluster (project, location, cluster name) to get keys for. Specified in
2937
3643
  # the format `projects/*/locations/*/clusters/*`.
2938
3644
  class GetJSONWebKeysRequest
2939
3645
  include ::Google::Protobuf::MessageExts
@@ -3030,6 +3736,52 @@ module Google
3030
3736
  extend ::Google::Protobuf::MessageExts::ClassMethods
3031
3737
  end
3032
3738
 
3739
+ # ILBSubsettingConfig contains the desired config of L4 Internal LoadBalancer
3740
+ # subsetting on this cluster.
3741
+ # @!attribute [rw] enabled
3742
+ # @return [::Boolean]
3743
+ # Enables l4 ILB subsetting for this cluster.
3744
+ class ILBSubsettingConfig
3745
+ include ::Google::Protobuf::MessageExts
3746
+ extend ::Google::Protobuf::MessageExts::ClassMethods
3747
+ end
3748
+
3749
+ # DNSConfig contains the desired set of options for configuring clusterDNS.
3750
+ # @!attribute [rw] cluster_dns
3751
+ # @return [::Google::Cloud::Container::V1::DNSConfig::Provider]
3752
+ # cluster_dns indicates which in-cluster DNS provider should be used.
3753
+ # @!attribute [rw] cluster_dns_scope
3754
+ # @return [::Google::Cloud::Container::V1::DNSConfig::DNSScope]
3755
+ # cluster_dns_scope indicates the scope of access to cluster DNS records.
3756
+ # @!attribute [rw] cluster_dns_domain
3757
+ # @return [::String]
3758
+ # cluster_dns_domain is the suffix used for all cluster service records.
3759
+ class DNSConfig
3760
+ include ::Google::Protobuf::MessageExts
3761
+ extend ::Google::Protobuf::MessageExts::ClassMethods
3762
+
3763
+ # Provider lists the various in-cluster DNS providers.
3764
+ module Provider
3765
+ # Default value
3766
+ PROVIDER_UNSPECIFIED = 0
3767
+
3768
+ # Use GKE default DNS provider(kube-dns) for DNS resolution.
3769
+ PLATFORM_DEFAULT = 1
3770
+
3771
+ # Use CloudDNS for DNS resolution.
3772
+ CLOUD_DNS = 2
3773
+ end
3774
+
3775
+ # DNSScope lists the various scopes of access to cluster DNS records.
3776
+ module DNSScope
3777
+ # Default value, will be inferred as cluster scope.
3778
+ DNS_SCOPE_UNSPECIFIED = 0
3779
+
3780
+ # DNS records are accessible from within the VPC.
3781
+ VPC_SCOPE = 2
3782
+ end
3783
+ end
3784
+
3033
3785
  # Constraints applied to pods.
3034
3786
  # @!attribute [rw] max_pods_per_node
3035
3787
  # @return [::Integer]
@@ -3049,6 +3801,33 @@ module Google
3049
3801
  extend ::Google::Protobuf::MessageExts::ClassMethods
3050
3802
  end
3051
3803
 
3804
+ # IdentityServiceConfig is configuration for Identity Service which allows
3805
+ # customers to use external identity providers with the K8S API
3806
+ # @!attribute [rw] enabled
3807
+ # @return [::Boolean]
3808
+ # Whether to enable the Identity Service component
3809
+ class IdentityServiceConfig
3810
+ include ::Google::Protobuf::MessageExts
3811
+ extend ::Google::Protobuf::MessageExts::ClassMethods
3812
+ end
3813
+
3814
+ # Configuration for issuance of mTLS keys and certificates to Kubernetes pods.
3815
+ # @!attribute [rw] enable_certificates
3816
+ # @return [::Google::Protobuf::BoolValue]
3817
+ # enable_certificates controls issuance of workload mTLS certificates.
3818
+ #
3819
+ # If set, the GKE Workload Identity Certificates controller and node agent
3820
+ # will be deployed in the cluster, which can then be configured by creating a
3821
+ # WorkloadCertificateConfig Custom Resource.
3822
+ #
3823
+ # Requires Workload Identity
3824
+ # ({::Google::Cloud::Container::V1::WorkloadIdentityConfig#workload_pool workload_pool}
3825
+ # must be non-empty).
3826
+ class MeshCertificates
3827
+ include ::Google::Protobuf::MessageExts
3828
+ extend ::Google::Protobuf::MessageExts::ClassMethods
3829
+ end
3830
+
3052
3831
  # Configuration of etcd encryption.
3053
3832
  # @!attribute [rw] state
3054
3833
  # @return [::Google::Cloud::Container::V1::DatabaseEncryption::State]
@@ -3248,6 +4027,320 @@ module Google
3248
4027
  include ::Google::Protobuf::MessageExts
3249
4028
  extend ::Google::Protobuf::MessageExts::ClassMethods
3250
4029
  end
4030
+
4031
+ # Configuration of gVNIC feature.
4032
+ # @!attribute [rw] enabled
4033
+ # @return [::Boolean]
4034
+ # Whether gVNIC features are enabled in the node pool.
4035
+ class VirtualNIC
4036
+ include ::Google::Protobuf::MessageExts
4037
+ extend ::Google::Protobuf::MessageExts::ClassMethods
4038
+ end
4039
+
4040
+ # NotificationConfig is the configuration of notifications.
4041
+ # @!attribute [rw] pubsub
4042
+ # @return [::Google::Cloud::Container::V1::NotificationConfig::PubSub]
4043
+ # Notification config for Pub/Sub.
4044
+ class NotificationConfig
4045
+ include ::Google::Protobuf::MessageExts
4046
+ extend ::Google::Protobuf::MessageExts::ClassMethods
4047
+
4048
+ # Pub/Sub specific notification config.
4049
+ # @!attribute [rw] enabled
4050
+ # @return [::Boolean]
4051
+ # Enable notifications for Pub/Sub.
4052
+ # @!attribute [rw] topic
4053
+ # @return [::String]
4054
+ # The desired Pub/Sub topic to which notifications will be
4055
+ # sent by GKE. Format is `projects/{project}/topics/{topic}`.
4056
+ # @!attribute [rw] filter
4057
+ # @return [::Google::Cloud::Container::V1::NotificationConfig::Filter]
4058
+ # Allows filtering to one or more specific event types. If no filter is
4059
+ # specified, or if a filter is specified with no event types, all event
4060
+ # types will be sent
4061
+ class PubSub
4062
+ include ::Google::Protobuf::MessageExts
4063
+ extend ::Google::Protobuf::MessageExts::ClassMethods
4064
+ end
4065
+
4066
+ # Allows filtering to one or more specific event types. If event types are
4067
+ # present, those and only those event types will be transmitted to the
4068
+ # cluster. Other types will be skipped. If no filter is specified, or no
4069
+ # event types are present, all event types will be sent
4070
+ # @!attribute [rw] event_type
4071
+ # @return [::Array<::Google::Cloud::Container::V1::NotificationConfig::EventType>]
4072
+ # Event types to allowlist.
4073
+ class Filter
4074
+ include ::Google::Protobuf::MessageExts
4075
+ extend ::Google::Protobuf::MessageExts::ClassMethods
4076
+ end
4077
+
4078
+ # Types of notifications currently supported. Can be used to filter what
4079
+ # notifications are sent.
4080
+ module EventType
4081
+ # Not set, will be ignored.
4082
+ EVENT_TYPE_UNSPECIFIED = 0
4083
+
4084
+ # Corresponds with UpgradeAvailableEvent.
4085
+ UPGRADE_AVAILABLE_EVENT = 1
4086
+
4087
+ # Corresponds with UpgradeEvent.
4088
+ UPGRADE_EVENT = 2
4089
+
4090
+ # Corresponds with SecurityBulletinEvent.
4091
+ SECURITY_BULLETIN_EVENT = 3
4092
+ end
4093
+ end
4094
+
4095
+ # ConfidentialNodes is configuration for the confidential nodes feature, which
4096
+ # makes nodes run on confidential VMs.
4097
+ # @!attribute [rw] enabled
4098
+ # @return [::Boolean]
4099
+ # Whether Confidential Nodes feature is enabled.
4100
+ class ConfidentialNodes
4101
+ include ::Google::Protobuf::MessageExts
4102
+ extend ::Google::Protobuf::MessageExts::ClassMethods
4103
+ end
4104
+
4105
+ # UpgradeEvent is a notification sent to customers by the cluster server when
4106
+ # a resource is upgrading.
4107
+ # @!attribute [rw] resource_type
4108
+ # @return [::Google::Cloud::Container::V1::UpgradeResourceType]
4109
+ # The resource type that is upgrading.
4110
+ # @!attribute [rw] operation
4111
+ # @return [::String]
4112
+ # The operation associated with this upgrade.
4113
+ # @!attribute [rw] operation_start_time
4114
+ # @return [::Google::Protobuf::Timestamp]
4115
+ # The time when the operation was started.
4116
+ # @!attribute [rw] current_version
4117
+ # @return [::String]
4118
+ # The current version before the upgrade.
4119
+ # @!attribute [rw] target_version
4120
+ # @return [::String]
4121
+ # The target version for the upgrade.
4122
+ # @!attribute [rw] resource
4123
+ # @return [::String]
4124
+ # Optional relative path to the resource. For example in node pool upgrades,
4125
+ # the relative path of the node pool.
4126
+ class UpgradeEvent
4127
+ include ::Google::Protobuf::MessageExts
4128
+ extend ::Google::Protobuf::MessageExts::ClassMethods
4129
+ end
4130
+
4131
+ # UpgradeAvailableEvent is a notification sent to customers when a new
4132
+ # available version is released.
4133
+ # @!attribute [rw] version
4134
+ # @return [::String]
4135
+ # The release version available for upgrade.
4136
+ # @!attribute [rw] resource_type
4137
+ # @return [::Google::Cloud::Container::V1::UpgradeResourceType]
4138
+ # The resource type of the release version.
4139
+ # @!attribute [rw] release_channel
4140
+ # @return [::Google::Cloud::Container::V1::ReleaseChannel]
4141
+ # The release channel of the version. If empty, it means a non-channel
4142
+ # release.
4143
+ # @!attribute [rw] resource
4144
+ # @return [::String]
4145
+ # Optional relative path to the resource. For example, the relative path of
4146
+ # the node pool.
4147
+ class UpgradeAvailableEvent
4148
+ include ::Google::Protobuf::MessageExts
4149
+ extend ::Google::Protobuf::MessageExts::ClassMethods
4150
+ end
4151
+
4152
+ # SecurityBulletinEvent is a notification sent to customers when a security
4153
+ # bulletin has been posted that they are vulnerable to.
4154
+ # @!attribute [rw] resource_type_affected
4155
+ # @return [::String]
4156
+ # The resource type (node/control plane) that has the vulnerability. Multiple
4157
+ # notifications (1 notification per resource type) will be sent for a
4158
+ # vulnerability that affects > 1 resource type.
4159
+ # @!attribute [rw] bulletin_id
4160
+ # @return [::String]
4161
+ # The ID of the bulletin corresponding to the vulnerability.
4162
+ # @!attribute [rw] cve_ids
4163
+ # @return [::Array<::String>]
4164
+ # The CVEs associated with this bulletin.
4165
+ # @!attribute [rw] severity
4166
+ # @return [::String]
4167
+ # The severity of this bulletin as it relates to GKE.
4168
+ # @!attribute [rw] bulletin_uri
4169
+ # @return [::String]
4170
+ # The URI link to the bulletin on the website for more information.
4171
+ # @!attribute [rw] brief_description
4172
+ # @return [::String]
4173
+ # A brief description of the bulletin. See the bulletin pointed to by the
4174
+ # bulletin_uri field for an expanded description.
4175
+ # @!attribute [rw] affected_supported_minors
4176
+ # @return [::Array<::String>]
4177
+ # The GKE minor versions affected by this vulnerability.
4178
+ # @!attribute [rw] patched_versions
4179
+ # @return [::Array<::String>]
4180
+ # The GKE versions where this vulnerability is patched.
4181
+ # @!attribute [rw] suggested_upgrade_target
4182
+ # @return [::String]
4183
+ # This represents a version selected from the patched_versions field that
4184
+ # the cluster receiving this notification should most likely want to upgrade
4185
+ # to based on its current version. Note that if this notification is being
4186
+ # received by a given cluster, it means that this version is currently
4187
+ # available as an upgrade target in that cluster's location.
4188
+ # @!attribute [rw] manual_steps_required
4189
+ # @return [::Boolean]
4190
+ # If this field is specified, it means there are manual steps that the user
4191
+ # must take to make their clusters safe.
4192
+ class SecurityBulletinEvent
4193
+ include ::Google::Protobuf::MessageExts
4194
+ extend ::Google::Protobuf::MessageExts::ClassMethods
4195
+ end
4196
+
4197
+ # Autopilot is the configuration for Autopilot settings on the cluster.
4198
+ # @!attribute [rw] enabled
4199
+ # @return [::Boolean]
4200
+ # Enable Autopilot
4201
+ class Autopilot
4202
+ include ::Google::Protobuf::MessageExts
4203
+ extend ::Google::Protobuf::MessageExts::ClassMethods
4204
+ end
4205
+
4206
+ # LoggingConfig is cluster logging configuration.
4207
+ # @!attribute [rw] component_config
4208
+ # @return [::Google::Cloud::Container::V1::LoggingComponentConfig]
4209
+ # Logging components configuration
4210
+ class LoggingConfig
4211
+ include ::Google::Protobuf::MessageExts
4212
+ extend ::Google::Protobuf::MessageExts::ClassMethods
4213
+ end
4214
+
4215
+ # LoggingComponentConfig is cluster logging component configuration.
4216
+ # @!attribute [rw] enable_components
4217
+ # @return [::Array<::Google::Cloud::Container::V1::LoggingComponentConfig::Component>]
4218
+ # Select components to collect logs. An empty set would disable all logging.
4219
+ class LoggingComponentConfig
4220
+ include ::Google::Protobuf::MessageExts
4221
+ extend ::Google::Protobuf::MessageExts::ClassMethods
4222
+
4223
+ # GKE components exposing logs
4224
+ module Component
4225
+ # Default value. This shouldn't be used.
4226
+ COMPONENT_UNSPECIFIED = 0
4227
+
4228
+ # system components
4229
+ SYSTEM_COMPONENTS = 1
4230
+
4231
+ # workloads
4232
+ WORKLOADS = 2
4233
+ end
4234
+ end
4235
+
4236
+ # MonitoringConfig is cluster monitoring configuration.
4237
+ # @!attribute [rw] component_config
4238
+ # @return [::Google::Cloud::Container::V1::MonitoringComponentConfig]
4239
+ # Monitoring components configuration
4240
+ # @!attribute [rw] managed_prometheus_config
4241
+ # @return [::Google::Cloud::Container::V1::ManagedPrometheusConfig]
4242
+ # Enable Google Cloud Managed Service for Prometheus
4243
+ # in the cluster.
4244
+ class MonitoringConfig
4245
+ include ::Google::Protobuf::MessageExts
4246
+ extend ::Google::Protobuf::MessageExts::ClassMethods
4247
+ end
4248
+
4249
+ # MonitoringComponentConfig is cluster monitoring component configuration.
4250
+ # @!attribute [rw] enable_components
4251
+ # @return [::Array<::Google::Cloud::Container::V1::MonitoringComponentConfig::Component>]
4252
+ # Select components to collect metrics. An empty set would disable all
4253
+ # monitoring.
4254
+ class MonitoringComponentConfig
4255
+ include ::Google::Protobuf::MessageExts
4256
+ extend ::Google::Protobuf::MessageExts::ClassMethods
4257
+
4258
+ # GKE components exposing metrics
4259
+ module Component
4260
+ # Default value. This shouldn't be used.
4261
+ COMPONENT_UNSPECIFIED = 0
4262
+
4263
+ # system components
4264
+ SYSTEM_COMPONENTS = 1
4265
+
4266
+ # kube-apiserver
4267
+ APISERVER = 3
4268
+
4269
+ # kube-scheduler
4270
+ SCHEDULER = 4
4271
+
4272
+ # kube-controller-manager
4273
+ CONTROLLER_MANAGER = 5
4274
+ end
4275
+ end
4276
+
4277
+ # ManagedPrometheusConfig defines the configuration for
4278
+ # Google Cloud Managed Service for Prometheus.
4279
+ # @!attribute [rw] enabled
4280
+ # @return [::Boolean]
4281
+ # Enable Managed Collection.
4282
+ class ManagedPrometheusConfig
4283
+ include ::Google::Protobuf::MessageExts
4284
+ extend ::Google::Protobuf::MessageExts::ClassMethods
4285
+ end
4286
+
4287
+ # PrivateIPv6GoogleAccess controls whether and how the pods can communicate
4288
+ # with Google Services through gRPC over IPv6.
4289
+ module PrivateIPv6GoogleAccess
4290
+ # Default value. Same as DISABLED
4291
+ PRIVATE_IPV6_GOOGLE_ACCESS_UNSPECIFIED = 0
4292
+
4293
+ # No private access to or from Google Services
4294
+ PRIVATE_IPV6_GOOGLE_ACCESS_DISABLED = 1
4295
+
4296
+ # Enables private IPv6 access to Google Services from GKE
4297
+ PRIVATE_IPV6_GOOGLE_ACCESS_TO_GOOGLE = 2
4298
+
4299
+ # Enables priate IPv6 access to and from Google Services
4300
+ PRIVATE_IPV6_GOOGLE_ACCESS_BIDIRECTIONAL = 3
4301
+ end
4302
+
4303
+ # UpgradeResourceType is the resource type that is upgrading. It is used
4304
+ # in upgrade notifications.
4305
+ module UpgradeResourceType
4306
+ # Default value. This shouldn't be used.
4307
+ UPGRADE_RESOURCE_TYPE_UNSPECIFIED = 0
4308
+
4309
+ # Master / control plane
4310
+ MASTER = 1
4311
+
4312
+ # Node pool
4313
+ NODE_POOL = 2
4314
+ end
4315
+
4316
+ # The datapath provider selects the implementation of the Kubernetes networking
4317
+ # model for service resolution and network policy enforcement.
4318
+ module DatapathProvider
4319
+ # Default value.
4320
+ DATAPATH_PROVIDER_UNSPECIFIED = 0
4321
+
4322
+ # Use the IPTables implementation based on kube-proxy.
4323
+ LEGACY_DATAPATH = 1
4324
+
4325
+ # Use the eBPF based GKE Dataplane V2 with additional features. See the [GKE
4326
+ # Dataplane V2
4327
+ # documentation](https://cloud.google.com/kubernetes-engine/docs/how-to/dataplane-v2)
4328
+ # for more.
4329
+ ADVANCED_DATAPATH = 2
4330
+ end
4331
+
4332
+ # Strategy used for node pool update.
4333
+ module NodePoolUpdateStrategy
4334
+ # Default value.
4335
+ NODE_POOL_UPDATE_STRATEGY_UNSPECIFIED = 0
4336
+
4337
+ # blue-green upgrade.
4338
+ BLUE_GREEN = 2
4339
+
4340
+ # SURGE is the traditional way of upgrade a node pool.
4341
+ # max_surge and max_unavailable determines the level of upgrade parallelism.
4342
+ SURGE = 3
4343
+ end
3251
4344
  end
3252
4345
  end
3253
4346
  end