google-cloud-container-v1 0.7.3 → 0.9.1

Sign up to get free protection for your applications and to get access to all the features.
@@ -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,
@@ -614,11 +870,31 @@ module Google
614
870
  # Configuration for Binary Authorization.
615
871
  # @!attribute [rw] enabled
616
872
  # @return [::Boolean]
617
- # Enable Binary Authorization for this cluster. If enabled, all container
618
- # images will be validated by Binary Authorization.
873
+ # This field is deprecated. Leave this unset and instead configure
874
+ # BinaryAuthorization using evaluation_mode. If evaluation_mode is set to
875
+ # anything other than EVALUATION_MODE_UNSPECIFIED, this field is ignored.
876
+ # @!attribute [rw] evaluation_mode
877
+ # @return [::Google::Cloud::Container::V1::BinaryAuthorization::EvaluationMode]
878
+ # Mode of operation for binauthz policy evaluation. Currently the only
879
+ # options are equivalent to enable/disable. If unspecified, defaults to
880
+ # DISABLED.
619
881
  class BinaryAuthorization
620
882
  include ::Google::Protobuf::MessageExts
621
883
  extend ::Google::Protobuf::MessageExts::ClassMethods
884
+
885
+ # Binary Authorization mode of operation.
886
+ module EvaluationMode
887
+ # Default value
888
+ EVALUATION_MODE_UNSPECIFIED = 0
889
+
890
+ # Disable BinaryAuthorization
891
+ DISABLED = 1
892
+
893
+ # Enforce Kubernetes admission requests with BinaryAuthorization using the
894
+ # project's singleton policy. This is equivalent to setting the
895
+ # enabled boolean to true.
896
+ PROJECT_SINGLETON_POLICY_ENFORCE = 2
897
+ end
622
898
  end
623
899
 
624
900
  # Configuration for controlling how IPs are allocated in the cluster.
@@ -922,6 +1198,20 @@ module Google
922
1198
  # @return [::Google::Cloud::Container::V1::WorkloadIdentityConfig]
923
1199
  # Configuration for the use of Kubernetes Service Accounts in GCP IAM
924
1200
  # policies.
1201
+ # @!attribute [rw] mesh_certificates
1202
+ # @return [::Google::Cloud::Container::V1::MeshCertificates]
1203
+ # Configuration for issuance of mTLS keys and certificates to Kubernetes
1204
+ # pods.
1205
+ # @!attribute [rw] notification_config
1206
+ # @return [::Google::Cloud::Container::V1::NotificationConfig]
1207
+ # Notification configuration of the cluster.
1208
+ # @!attribute [rw] confidential_nodes
1209
+ # @return [::Google::Cloud::Container::V1::ConfidentialNodes]
1210
+ # Configuration of Confidential Nodes.
1211
+ # All the nodes in the cluster will be Confidential VM once enabled.
1212
+ # @!attribute [rw] identity_service_config
1213
+ # @return [::Google::Cloud::Container::V1::IdentityServiceConfig]
1214
+ # Configuration for Identity Service component.
925
1215
  # @!attribute [rw] self_link
926
1216
  # @return [::String]
927
1217
  # [Output only] Server-defined URL for the resource.
@@ -1017,6 +1307,26 @@ module Google
1017
1307
  # @!attribute [rw] conditions
1018
1308
  # @return [::Array<::Google::Cloud::Container::V1::StatusCondition>]
1019
1309
  # Which conditions caused the current cluster state.
1310
+ # @!attribute [rw] autopilot
1311
+ # @return [::Google::Cloud::Container::V1::Autopilot]
1312
+ # Autopilot configuration for the cluster.
1313
+ # @!attribute [r] id
1314
+ # @return [::String]
1315
+ # Output only. Unique id for the cluster.
1316
+ # @!attribute [rw] node_pool_defaults
1317
+ # @return [::Google::Cloud::Container::V1::NodePoolDefaults]
1318
+ # Default NodePool settings for the entire cluster. These settings are
1319
+ # overridden if specified on the specific NodePool object.
1320
+ # @!attribute [rw] logging_config
1321
+ # @return [::Google::Cloud::Container::V1::LoggingConfig]
1322
+ # Logging configuration for the cluster.
1323
+ # @!attribute [rw] monitoring_config
1324
+ # @return [::Google::Cloud::Container::V1::MonitoringConfig]
1325
+ # Monitoring configuration for the cluster.
1326
+ # @!attribute [rw] node_pool_auto_config
1327
+ # @return [::Google::Cloud::Container::V1::NodePoolAutoConfig]
1328
+ # Node pool configs that apply to all auto-provisioned node pools
1329
+ # in autopilot clusters and node auto-provisioning enabled clusters.
1020
1330
  class Cluster
1021
1331
  include ::Google::Protobuf::MessageExts
1022
1332
  extend ::Google::Protobuf::MessageExts::ClassMethods
@@ -1060,6 +1370,37 @@ module Google
1060
1370
  end
1061
1371
  end
1062
1372
 
1373
+ # Node pool configs that apply to all auto-provisioned node pools
1374
+ # in autopilot clusters and node auto-provisioning enabled clusters.
1375
+ # @!attribute [rw] network_tags
1376
+ # @return [::Google::Cloud::Container::V1::NetworkTags]
1377
+ # The list of instance tags applied to all nodes. Tags are used to identify
1378
+ # valid sources or targets for network firewalls and are specified by
1379
+ # the client during cluster creation. Each tag within the list
1380
+ # must comply with RFC1035.
1381
+ class NodePoolAutoConfig
1382
+ include ::Google::Protobuf::MessageExts
1383
+ extend ::Google::Protobuf::MessageExts::ClassMethods
1384
+ end
1385
+
1386
+ # Subset of Nodepool message that has defaults.
1387
+ # @!attribute [rw] node_config_defaults
1388
+ # @return [::Google::Cloud::Container::V1::NodeConfigDefaults]
1389
+ # Subset of NodeConfig message that has defaults.
1390
+ class NodePoolDefaults
1391
+ include ::Google::Protobuf::MessageExts
1392
+ extend ::Google::Protobuf::MessageExts::ClassMethods
1393
+ end
1394
+
1395
+ # Subset of NodeConfig message that has defaults.
1396
+ # @!attribute [rw] gcfs_config
1397
+ # @return [::Google::Cloud::Container::V1::GcfsConfig]
1398
+ # GCFS (Google Container File System, also known as Riptide) options.
1399
+ class NodeConfigDefaults
1400
+ include ::Google::Protobuf::MessageExts
1401
+ extend ::Google::Protobuf::MessageExts::ClassMethods
1402
+ end
1403
+
1063
1404
  # ClusterUpdate describes an update to the cluster. Exactly one update can
1064
1405
  # be applied to a cluster with each request, so at most one field can be
1065
1406
  # provided.
@@ -1108,9 +1449,16 @@ module Google
1108
1449
  # @!attribute [rw] desired_workload_identity_config
1109
1450
  # @return [::Google::Cloud::Container::V1::WorkloadIdentityConfig]
1110
1451
  # Configuration for Workload Identity.
1452
+ # @!attribute [rw] desired_mesh_certificates
1453
+ # @return [::Google::Cloud::Container::V1::MeshCertificates]
1454
+ # Configuration for issuance of mTLS keys and certificates to Kubernetes
1455
+ # pods.
1111
1456
  # @!attribute [rw] desired_shielded_nodes
1112
1457
  # @return [::Google::Cloud::Container::V1::ShieldedNodes]
1113
1458
  # Configuration for Shielded Nodes.
1459
+ # @!attribute [rw] desired_dns_config
1460
+ # @return [::Google::Cloud::Container::V1::DNSConfig]
1461
+ # DNSConfig contains clusterDNS config for this cluster.
1114
1462
  # @!attribute [rw] desired_node_pool_autoscaling
1115
1463
  # @return [::Google::Cloud::Container::V1::NodePoolAutoscaling]
1116
1464
  # Autoscaler configuration for the node pool specified in
@@ -1167,9 +1515,34 @@ module Google
1167
1515
  # @!attribute [rw] desired_release_channel
1168
1516
  # @return [::Google::Cloud::Container::V1::ReleaseChannel]
1169
1517
  # The desired release channel configuration.
1518
+ # @!attribute [rw] desired_l4ilb_subsetting_config
1519
+ # @return [::Google::Cloud::Container::V1::ILBSubsettingConfig]
1520
+ # The desired L4 Internal Load Balancer Subsetting configuration.
1521
+ # @!attribute [rw] desired_datapath_provider
1522
+ # @return [::Google::Cloud::Container::V1::DatapathProvider]
1523
+ # The desired datapath provider for the cluster.
1524
+ # @!attribute [rw] desired_private_ipv6_google_access
1525
+ # @return [::Google::Cloud::Container::V1::PrivateIPv6GoogleAccess]
1526
+ # The desired state of IPv6 connectivity to Google Services.
1527
+ # @!attribute [rw] desired_notification_config
1528
+ # @return [::Google::Cloud::Container::V1::NotificationConfig]
1529
+ # The desired notification configuration.
1170
1530
  # @!attribute [rw] desired_authenticator_groups_config
1171
1531
  # @return [::Google::Cloud::Container::V1::AuthenticatorGroupsConfig]
1172
1532
  # The desired authenticator groups config for the cluster.
1533
+ # @!attribute [rw] desired_logging_config
1534
+ # @return [::Google::Cloud::Container::V1::LoggingConfig]
1535
+ # The desired logging configuration.
1536
+ # @!attribute [rw] desired_monitoring_config
1537
+ # @return [::Google::Cloud::Container::V1::MonitoringConfig]
1538
+ # The desired monitoring configuration.
1539
+ # @!attribute [rw] desired_identity_service_config
1540
+ # @return [::Google::Cloud::Container::V1::IdentityServiceConfig]
1541
+ # The desired Identity Service component configuration.
1542
+ # @!attribute [rw] desired_service_external_ips_config
1543
+ # @return [::Google::Cloud::Container::V1::ServiceExternalIPsConfig]
1544
+ # ServiceExternalIPsConfig specifies the config for the use of Services with
1545
+ # ExternalIPs field.
1173
1546
  # @!attribute [rw] desired_master_version
1174
1547
  # @return [::String]
1175
1548
  # The Kubernetes version to change the master to.
@@ -1182,6 +1555,13 @@ module Google
1182
1555
  # - "1.X.Y": picks the highest valid gke.N patch in the 1.X.Y version
1183
1556
  # - "1.X.Y-gke.N": picks an explicit Kubernetes version
1184
1557
  # - "-": picks the default Kubernetes version
1558
+ # @!attribute [rw] desired_gcfs_config
1559
+ # @return [::Google::Cloud::Container::V1::GcfsConfig]
1560
+ # The desired GCFS config for the cluster
1561
+ # @!attribute [rw] desired_node_pool_auto_config_network_tags
1562
+ # @return [::Google::Cloud::Container::V1::NetworkTags]
1563
+ # The desired network tags that apply to all auto-provisioned node pools
1564
+ # in autopilot clusters and node auto-provisioning enabled clusters.
1185
1565
  class ClusterUpdate
1186
1566
  include ::Google::Protobuf::MessageExts
1187
1567
  extend ::Google::Protobuf::MessageExts::ClassMethods
@@ -1209,6 +1589,7 @@ module Google
1209
1589
  # @!attribute [r] status_message
1210
1590
  # @return [::String]
1211
1591
  # Output only. If an error has occurred, a textual description of the error.
1592
+ # Deprecated. Use the field error instead.
1212
1593
  # @!attribute [rw] self_link
1213
1594
  # @return [::String]
1214
1595
  # Server-defined URL for the resource.
@@ -1236,9 +1617,14 @@ module Google
1236
1617
  # @!attribute [rw] cluster_conditions
1237
1618
  # @return [::Array<::Google::Cloud::Container::V1::StatusCondition>]
1238
1619
  # Which conditions caused the current cluster state.
1620
+ # Deprecated. Use field error instead.
1239
1621
  # @!attribute [rw] nodepool_conditions
1240
1622
  # @return [::Array<::Google::Cloud::Container::V1::StatusCondition>]
1241
1623
  # Which conditions caused the current node pool state.
1624
+ # Deprecated. Use field error instead.
1625
+ # @!attribute [rw] error
1626
+ # @return [::Google::Rpc::Status]
1627
+ # The error result of the operation in case of failure.
1242
1628
  class Operation
1243
1629
  include ::Google::Protobuf::MessageExts
1244
1630
  extend ::Google::Protobuf::MessageExts::ClassMethods
@@ -1363,7 +1749,7 @@ module Google
1363
1749
  # @!attribute [rw] project_id
1364
1750
  # @return [::String]
1365
1751
  # Deprecated. The Google Developers Console [project ID or project
1366
- # number](https://support.google.com/cloud/answer/6158840).
1752
+ # number](https://cloud.google.com/resource-manager/docs/creating-managing-projects).
1367
1753
  # This field has been deprecated and replaced by the parent field.
1368
1754
  # @!attribute [rw] zone
1369
1755
  # @return [::String]
@@ -1388,7 +1774,7 @@ module Google
1388
1774
  # @!attribute [rw] project_id
1389
1775
  # @return [::String]
1390
1776
  # Deprecated. The Google Developers Console [project ID or project
1391
- # number](https://support.google.com/cloud/answer/6158840).
1777
+ # number](https://cloud.google.com/resource-manager/docs/creating-managing-projects).
1392
1778
  # This field has been deprecated and replaced by the name field.
1393
1779
  # @!attribute [rw] zone
1394
1780
  # @return [::String]
@@ -1413,7 +1799,7 @@ module Google
1413
1799
  # @!attribute [rw] project_id
1414
1800
  # @return [::String]
1415
1801
  # Deprecated. The Google Developers Console [project ID or project
1416
- # number](https://support.google.com/cloud/answer/6158840).
1802
+ # number](https://cloud.google.com/resource-manager/docs/creating-managing-projects).
1417
1803
  # This field has been deprecated and replaced by the name field.
1418
1804
  # @!attribute [rw] zone
1419
1805
  # @return [::String]
@@ -1441,7 +1827,7 @@ module Google
1441
1827
  # @!attribute [rw] project_id
1442
1828
  # @return [::String]
1443
1829
  # Deprecated. The Google Developers Console [project ID or project
1444
- # number](https://support.google.com/cloud/answer/6158840).
1830
+ # number](https://cloud.google.com/resource-manager/docs/creating-managing-projects).
1445
1831
  # This field has been deprecated and replaced by the name field.
1446
1832
  # @!attribute [rw] zone
1447
1833
  # @return [::String]
@@ -1491,6 +1877,40 @@ module Google
1491
1877
  # @!attribute [rw] upgrade_settings
1492
1878
  # @return [::Google::Cloud::Container::V1::NodePool::UpgradeSettings]
1493
1879
  # Upgrade settings control disruption and speed of the upgrade.
1880
+ # @!attribute [rw] tags
1881
+ # @return [::Google::Cloud::Container::V1::NetworkTags]
1882
+ # The desired network tags to be applied to all nodes in the node pool.
1883
+ # If this field is not present, the tags will not be changed. Otherwise,
1884
+ # the existing network tags will be *replaced* with the provided tags.
1885
+ # @!attribute [rw] taints
1886
+ # @return [::Google::Cloud::Container::V1::NodeTaints]
1887
+ # The desired node taints to be applied to all nodes in the node pool.
1888
+ # If this field is not present, the taints will not be changed. Otherwise,
1889
+ # the existing node taints will be *replaced* with the provided taints.
1890
+ # @!attribute [rw] labels
1891
+ # @return [::Google::Cloud::Container::V1::NodeLabels]
1892
+ # The desired node labels to be applied to all nodes in the node pool.
1893
+ # If this field is not present, the labels will not be changed. Otherwise,
1894
+ # the existing node labels will be *replaced* with the provided labels.
1895
+ # @!attribute [rw] linux_node_config
1896
+ # @return [::Google::Cloud::Container::V1::LinuxNodeConfig]
1897
+ # Parameters that can be configured on Linux nodes.
1898
+ # @!attribute [rw] kubelet_config
1899
+ # @return [::Google::Cloud::Container::V1::NodeKubeletConfig]
1900
+ # Node kubelet configs.
1901
+ # @!attribute [rw] node_network_config
1902
+ # @return [::Google::Cloud::Container::V1::NodeNetworkConfig]
1903
+ # Node network config.
1904
+ # @!attribute [rw] gcfs_config
1905
+ # @return [::Google::Cloud::Container::V1::GcfsConfig]
1906
+ # GCFS config.
1907
+ # @!attribute [rw] confidential_nodes
1908
+ # @return [::Google::Cloud::Container::V1::ConfidentialNodes]
1909
+ # Confidential nodes config.
1910
+ # All the nodes in the node pool will be Confidential VM once enabled.
1911
+ # @!attribute [rw] gvnic
1912
+ # @return [::Google::Cloud::Container::V1::VirtualNIC]
1913
+ # Enable or disable gvnic on the node pool.
1494
1914
  class UpdateNodePoolRequest
1495
1915
  include ::Google::Protobuf::MessageExts
1496
1916
  extend ::Google::Protobuf::MessageExts::ClassMethods
@@ -1500,7 +1920,7 @@ module Google
1500
1920
  # @!attribute [rw] project_id
1501
1921
  # @return [::String]
1502
1922
  # Deprecated. The Google Developers Console [project ID or project
1503
- # number](https://support.google.com/cloud/answer/6158840).
1923
+ # number](https://cloud.google.com/resource-manager/docs/creating-managing-projects).
1504
1924
  # This field has been deprecated and replaced by the name field.
1505
1925
  # @!attribute [rw] zone
1506
1926
  # @return [::String]
@@ -1533,7 +1953,7 @@ module Google
1533
1953
  # @!attribute [rw] project_id
1534
1954
  # @return [::String]
1535
1955
  # Deprecated. The Google Developers Console [project ID or project
1536
- # number](https://support.google.com/cloud/answer/6158840).
1956
+ # number](https://cloud.google.com/resource-manager/docs/creating-managing-projects).
1537
1957
  # This field has been deprecated and replaced by the name field.
1538
1958
  # @!attribute [rw] zone
1539
1959
  # @return [::String]
@@ -1571,7 +1991,7 @@ module Google
1571
1991
  # @!attribute [rw] project_id
1572
1992
  # @return [::String]
1573
1993
  # Deprecated. The Google Developers Console [project ID or project
1574
- # number](https://support.google.com/cloud/answer/6158840).
1994
+ # number](https://cloud.google.com/resource-manager/docs/creating-managing-projects).
1575
1995
  # This field has been deprecated and replaced by the name field.
1576
1996
  # @!attribute [rw] zone
1577
1997
  # @return [::String]
@@ -1609,7 +2029,7 @@ module Google
1609
2029
  # @!attribute [rw] project_id
1610
2030
  # @return [::String]
1611
2031
  # Deprecated. The Google Developers Console [project ID or project
1612
- # number](https://support.google.com/cloud/answer/6158840).
2032
+ # number](https://cloud.google.com/resource-manager/docs/creating-managing-projects).
1613
2033
  # This field has been deprecated and replaced by the name field.
1614
2034
  # @!attribute [rw] zone
1615
2035
  # @return [::String]
@@ -1638,7 +2058,7 @@ module Google
1638
2058
  # @!attribute [rw] project_id
1639
2059
  # @return [::String]
1640
2060
  # Deprecated. The Google Developers Console [project ID or project
1641
- # number](https://support.google.com/cloud/answer/6158840).
2061
+ # number](https://cloud.google.com/resource-manager/docs/creating-managing-projects).
1642
2062
  # This field has been deprecated and replaced by the name field.
1643
2063
  # @!attribute [rw] zone
1644
2064
  # @return [::String]
@@ -1672,7 +2092,7 @@ module Google
1672
2092
  # @!attribute [rw] project_id
1673
2093
  # @return [::String]
1674
2094
  # Deprecated. The Google Developers Console [project ID or project
1675
- # number](https://support.google.com/cloud/answer/6158840).
2095
+ # number](https://cloud.google.com/resource-manager/docs/creating-managing-projects).
1676
2096
  # This field has been deprecated and replaced by the name field.
1677
2097
  # @!attribute [rw] zone
1678
2098
  # @return [::String]
@@ -1709,7 +2129,7 @@ module Google
1709
2129
  # @!attribute [rw] project_id
1710
2130
  # @return [::String]
1711
2131
  # Deprecated. The Google Developers Console [project ID or project
1712
- # number](https://support.google.com/cloud/answer/6158840).
2132
+ # number](https://cloud.google.com/resource-manager/docs/creating-managing-projects).
1713
2133
  # This field has been deprecated and replaced by the name field.
1714
2134
  # @!attribute [rw] zone
1715
2135
  # @return [::String]
@@ -1758,7 +2178,7 @@ module Google
1758
2178
  # @!attribute [rw] project_id
1759
2179
  # @return [::String]
1760
2180
  # Deprecated. The Google Developers Console [project ID or project
1761
- # number](https://support.google.com/cloud/answer/6158840).
2181
+ # number](https://cloud.google.com/resource-manager/docs/creating-managing-projects).
1762
2182
  # This field has been deprecated and replaced by the name field.
1763
2183
  # @!attribute [rw] zone
1764
2184
  # @return [::String]
@@ -1783,7 +2203,7 @@ module Google
1783
2203
  # @!attribute [rw] project_id
1784
2204
  # @return [::String]
1785
2205
  # Deprecated. The Google Developers Console [project ID or project
1786
- # number](https://support.google.com/cloud/answer/6158840).
2206
+ # number](https://cloud.google.com/resource-manager/docs/creating-managing-projects).
1787
2207
  # This field has been deprecated and replaced by the parent field.
1788
2208
  # @!attribute [rw] zone
1789
2209
  # @return [::String]
@@ -1819,7 +2239,7 @@ module Google
1819
2239
  # @!attribute [rw] project_id
1820
2240
  # @return [::String]
1821
2241
  # Deprecated. The Google Developers Console [project ID or project
1822
- # number](https://support.google.com/cloud/answer/6158840).
2242
+ # number](https://cloud.google.com/resource-manager/docs/creating-managing-projects).
1823
2243
  # This field has been deprecated and replaced by the name field.
1824
2244
  # @!attribute [rw] zone
1825
2245
  # @return [::String]
@@ -1844,7 +2264,7 @@ module Google
1844
2264
  # @!attribute [rw] project_id
1845
2265
  # @return [::String]
1846
2266
  # Deprecated. The Google Developers Console [project ID or project
1847
- # number](https://support.google.com/cloud/answer/6158840).
2267
+ # number](https://cloud.google.com/resource-manager/docs/creating-managing-projects).
1848
2268
  # This field has been deprecated and replaced by the parent field.
1849
2269
  # @!attribute [rw] zone
1850
2270
  # @return [::String]
@@ -1866,7 +2286,7 @@ module Google
1866
2286
  # @!attribute [rw] project_id
1867
2287
  # @return [::String]
1868
2288
  # Deprecated. The Google Developers Console [project ID or project
1869
- # number](https://support.google.com/cloud/answer/6158840).
2289
+ # number](https://cloud.google.com/resource-manager/docs/creating-managing-projects).
1870
2290
  # This field has been deprecated and replaced by the name field.
1871
2291
  # @!attribute [rw] zone
1872
2292
  # @return [::String]
@@ -1904,7 +2324,7 @@ module Google
1904
2324
  # @!attribute [rw] project_id
1905
2325
  # @return [::String]
1906
2326
  # Deprecated. The Google Developers Console [project ID or project
1907
- # number](https://support.google.com/cloud/answer/6158840).
2327
+ # number](https://cloud.google.com/resource-manager/docs/creating-managing-projects).
1908
2328
  # This field has been deprecated and replaced by the name field.
1909
2329
  # @!attribute [rw] zone
1910
2330
  # @return [::String]
@@ -1964,7 +2384,7 @@ module Google
1964
2384
  # @!attribute [rw] project_id
1965
2385
  # @return [::String]
1966
2386
  # Deprecated. The Google Developers Console [project ID or project
1967
- # number](https://developers.google.com/console/help/new/#projectnumber).
2387
+ # number](https://cloud.google.com/resource-manager/docs/creating-managing-projects).
1968
2388
  # This field has been deprecated and replaced by the parent field.
1969
2389
  # @!attribute [rw] zone
1970
2390
  # @return [::String]
@@ -1981,7 +2401,7 @@ module Google
1981
2401
  # Required. The node pool to create.
1982
2402
  # @!attribute [rw] parent
1983
2403
  # @return [::String]
1984
- # The parent (project, location, cluster id) where the node pool will be
2404
+ # The parent (project, location, cluster name) where the node pool will be
1985
2405
  # created. Specified in the format
1986
2406
  # `projects/*/locations/*/clusters/*`.
1987
2407
  class CreateNodePoolRequest
@@ -1993,7 +2413,7 @@ module Google
1993
2413
  # @!attribute [rw] project_id
1994
2414
  # @return [::String]
1995
2415
  # Deprecated. The Google Developers Console [project ID or project
1996
- # number](https://developers.google.com/console/help/new/#projectnumber).
2416
+ # number](https://cloud.google.com/resource-manager/docs/creating-managing-projects).
1997
2417
  # This field has been deprecated and replaced by the name field.
1998
2418
  # @!attribute [rw] zone
1999
2419
  # @return [::String]
@@ -2023,7 +2443,7 @@ module Google
2023
2443
  # @!attribute [rw] project_id
2024
2444
  # @return [::String]
2025
2445
  # Deprecated. The Google Developers Console [project ID or project
2026
- # number](https://developers.google.com/console/help/new/#projectnumber).
2446
+ # number](https://cloud.google.com/resource-manager/docs/creating-managing-projects).
2027
2447
  # This field has been deprecated and replaced by the parent field.
2028
2448
  # @!attribute [rw] zone
2029
2449
  # @return [::String]
@@ -2037,7 +2457,7 @@ module Google
2037
2457
  # This field has been deprecated and replaced by the parent field.
2038
2458
  # @!attribute [rw] parent
2039
2459
  # @return [::String]
2040
- # The parent (project, location, cluster id) where the node pools will be
2460
+ # The parent (project, location, cluster name) where the node pools will be
2041
2461
  # listed. Specified in the format `projects/*/locations/*/clusters/*`.
2042
2462
  class ListNodePoolsRequest
2043
2463
  include ::Google::Protobuf::MessageExts
@@ -2048,7 +2468,7 @@ module Google
2048
2468
  # @!attribute [rw] project_id
2049
2469
  # @return [::String]
2050
2470
  # Deprecated. The Google Developers Console [project ID or project
2051
- # number](https://developers.google.com/console/help/new/#projectnumber).
2471
+ # number](https://cloud.google.com/resource-manager/docs/creating-managing-projects).
2052
2472
  # This field has been deprecated and replaced by the name field.
2053
2473
  # @!attribute [rw] zone
2054
2474
  # @return [::String]
@@ -2074,6 +2494,35 @@ module Google
2074
2494
  extend ::Google::Protobuf::MessageExts::ClassMethods
2075
2495
  end
2076
2496
 
2497
+ # Settings for blue-green upgrade.
2498
+ # @!attribute [rw] standard_rollout_policy
2499
+ # @return [::Google::Cloud::Container::V1::BlueGreenSettings::StandardRolloutPolicy]
2500
+ # Standard policy for the blue-green upgrade.
2501
+ # @!attribute [rw] node_pool_soak_duration
2502
+ # @return [::Google::Protobuf::Duration]
2503
+ # Time needed after draining entire blue pool. After this period, blue pool
2504
+ # will be cleaned up.
2505
+ class BlueGreenSettings
2506
+ include ::Google::Protobuf::MessageExts
2507
+ extend ::Google::Protobuf::MessageExts::ClassMethods
2508
+
2509
+ # Standard rollout policy is the default policy for blue-green.
2510
+ # @!attribute [rw] batch_percentage
2511
+ # @return [::Float]
2512
+ # Percentage of the bool pool nodes to drain in a batch.
2513
+ # The range of this field should be (0.0, 1.0].
2514
+ # @!attribute [rw] batch_node_count
2515
+ # @return [::Integer]
2516
+ # Number of blue nodes to drain in a batch.
2517
+ # @!attribute [rw] batch_soak_duration
2518
+ # @return [::Google::Protobuf::Duration]
2519
+ # Soak time after each batch gets drained. Default to zero.
2520
+ class StandardRolloutPolicy
2521
+ include ::Google::Protobuf::MessageExts
2522
+ extend ::Google::Protobuf::MessageExts::ClassMethods
2523
+ end
2524
+ end
2525
+
2077
2526
  # NodePool contains the name and configuration for a cluster's node pool.
2078
2527
  # Node pools are a set of nodes (i.e. VM's), with a common configuration and
2079
2528
  # specification, under the control of the cluster master. They may have a set
@@ -2104,6 +2553,10 @@ module Google
2104
2553
  #
2105
2554
  # Warning: changing node pool locations will result in nodes being added
2106
2555
  # and/or removed.
2556
+ # @!attribute [rw] network_config
2557
+ # @return [::Google::Cloud::Container::V1::NodeNetworkConfig]
2558
+ # Networking configuration for this NodePool. If specified, it overrides the
2559
+ # cluster-level defaults.
2107
2560
  # @!attribute [rw] self_link
2108
2561
  # @return [::String]
2109
2562
  # [Output only] Server-defined URL for the resource.
@@ -2115,6 +2568,8 @@ module Google
2115
2568
  # [Output only] The resource URLs of the [managed instance
2116
2569
  # groups](https://cloud.google.com/compute/docs/instance-groups/creating-groups-of-managed-instances)
2117
2570
  # associated with this node pool.
2571
+ # During the node pool blue-green upgrade operation, the URLs contain both
2572
+ # blue and green resources.
2118
2573
  # @!attribute [rw] status
2119
2574
  # @return [::Google::Cloud::Container::V1::NodePool::Status]
2120
2575
  # [Output only] The status of the nodes in this pool instance.
@@ -2143,6 +2598,10 @@ module Google
2143
2598
  # @!attribute [rw] upgrade_settings
2144
2599
  # @return [::Google::Cloud::Container::V1::NodePool::UpgradeSettings]
2145
2600
  # Upgrade settings control disruption and speed of the upgrade.
2601
+ # @!attribute [r] update_info
2602
+ # @return [::Google::Cloud::Container::V1::NodePool::UpdateInfo]
2603
+ # Output only. [Output only] Update info contains relevant information during a node
2604
+ # pool update.
2146
2605
  class NodePool
2147
2606
  include ::Google::Protobuf::MessageExts
2148
2607
  extend ::Google::Protobuf::MessageExts::ClassMethods
@@ -2170,6 +2629,29 @@ module Google
2170
2629
  # simultaneously. It creates 2 additional (upgraded) nodes, then it brings
2171
2630
  # down 3 old (not yet upgraded) nodes at the same time. This ensures that
2172
2631
  # there are always at least 4 nodes available.
2632
+ #
2633
+ # These upgrade settings configure the upgrade strategy for the node pool.
2634
+ # Use strategy to switch between the strategies applied to the node pool.
2635
+ #
2636
+ # If the strategy is ROLLING, use max_surge and max_unavailable to control
2637
+ # the level of parallelism and the level of disruption caused by upgrade.
2638
+ # 1. maxSurge controls the number of additional nodes that can be added to
2639
+ # the node pool temporarily for the time of the upgrade to increase the
2640
+ # number of available nodes.
2641
+ # 2. maxUnavailable controls the number of nodes that can be simultaneously
2642
+ # unavailable.
2643
+ # 3. (maxUnavailable + maxSurge) determines the level of parallelism (how
2644
+ # many nodes are being upgraded at the same time).
2645
+ #
2646
+ # If the strategy is BLUE_GREEN, use blue_green_settings to configure the
2647
+ # blue-green upgrade related settings.
2648
+ # 1. standard_rollout_policy is the default policy. The policy is used to
2649
+ # control the way blue pool gets drained. The draining is executed in the
2650
+ # batch mode. The batch size could be specified as either percentage of the
2651
+ # node pool size or the number of nodes. batch_soak_duration is the soak
2652
+ # time after each batch gets drained.
2653
+ # 2. node_pool_soak_duration is the soak time after all blue nodes are
2654
+ # drained. After this period, the blue pool nodes will be deleted.
2173
2655
  # @!attribute [rw] max_surge
2174
2656
  # @return [::Integer]
2175
2657
  # The maximum number of nodes that can be created beyond the current size
@@ -2179,11 +2661,80 @@ module Google
2179
2661
  # The maximum number of nodes that can be simultaneously unavailable during
2180
2662
  # the upgrade process. A node is considered available if its status is
2181
2663
  # Ready.
2664
+ # @!attribute [rw] strategy
2665
+ # @return [::Google::Cloud::Container::V1::NodePoolUpdateStrategy]
2666
+ # Update strategy of the node pool.
2667
+ # @!attribute [rw] blue_green_settings
2668
+ # @return [::Google::Cloud::Container::V1::BlueGreenSettings]
2669
+ # Settings for blue-green upgrade strategy.
2182
2670
  class UpgradeSettings
2183
2671
  include ::Google::Protobuf::MessageExts
2184
2672
  extend ::Google::Protobuf::MessageExts::ClassMethods
2185
2673
  end
2186
2674
 
2675
+ # UpdateInfo contains resource (instance groups, etc), status and other
2676
+ # intermediate information relevant to a node pool upgrade.
2677
+ # @!attribute [rw] blue_green_info
2678
+ # @return [::Google::Cloud::Container::V1::NodePool::UpdateInfo::BlueGreenInfo]
2679
+ # Information of a blue-green upgrade.
2680
+ class UpdateInfo
2681
+ include ::Google::Protobuf::MessageExts
2682
+ extend ::Google::Protobuf::MessageExts::ClassMethods
2683
+
2684
+ # Information relevant to blue-green upgrade.
2685
+ # @!attribute [rw] phase
2686
+ # @return [::Google::Cloud::Container::V1::NodePool::UpdateInfo::BlueGreenInfo::Phase]
2687
+ # Current blue-green upgrade phase.
2688
+ # @!attribute [rw] blue_instance_group_urls
2689
+ # @return [::Array<::String>]
2690
+ # The resource URLs of the [managed instance groups]
2691
+ # (/compute/docs/instance-groups/creating-groups-of-managed-instances)
2692
+ # associated with blue pool.
2693
+ # @!attribute [rw] green_instance_group_urls
2694
+ # @return [::Array<::String>]
2695
+ # The resource URLs of the [managed instance groups]
2696
+ # (/compute/docs/instance-groups/creating-groups-of-managed-instances)
2697
+ # associated with green pool.
2698
+ # @!attribute [rw] blue_pool_deletion_start_time
2699
+ # @return [::String]
2700
+ # Time to start deleting blue pool to complete blue-green upgrade,
2701
+ # in [RFC3339](https://www.ietf.org/rfc/rfc3339.txt) text format.
2702
+ # @!attribute [rw] green_pool_version
2703
+ # @return [::String]
2704
+ # Version of green pool.
2705
+ class BlueGreenInfo
2706
+ include ::Google::Protobuf::MessageExts
2707
+ extend ::Google::Protobuf::MessageExts::ClassMethods
2708
+
2709
+ # Phase represents the different stages blue-green upgrade is running in.
2710
+ module Phase
2711
+ # Unspecified phase.
2712
+ PHASE_UNSPECIFIED = 0
2713
+
2714
+ # blue-green upgrade has been initiated.
2715
+ UPDATE_STARTED = 1
2716
+
2717
+ # Start creating green pool nodes.
2718
+ CREATING_GREEN_POOL = 2
2719
+
2720
+ # Start cordoning blue pool nodes.
2721
+ CORDONING_BLUE_POOL = 3
2722
+
2723
+ # Start draining blue pool nodes.
2724
+ DRAINING_BLUE_POOL = 4
2725
+
2726
+ # Start soaking time after draining entire blue pool.
2727
+ NODE_POOL_SOAKING = 5
2728
+
2729
+ # Start deleting blue nodes.
2730
+ DELETING_BLUE_POOL = 6
2731
+
2732
+ # Rollback has been initiated.
2733
+ ROLLBACK_STARTED = 7
2734
+ end
2735
+ end
2736
+ end
2737
+
2187
2738
  # The current status of the node pool instance.
2188
2739
  module Status
2189
2740
  # Not set.
@@ -2297,6 +2848,10 @@ module Google
2297
2848
  end
2298
2849
 
2299
2850
  # Represents an arbitrary window of time.
2851
+ # @!attribute [rw] maintenance_exclusion_options
2852
+ # @return [::Google::Cloud::Container::V1::MaintenanceExclusionOptions]
2853
+ # MaintenanceExclusionOptions provides maintenance exclusion related
2854
+ # options.
2300
2855
  # @!attribute [rw] start_time
2301
2856
  # @return [::Google::Protobuf::Timestamp]
2302
2857
  # The time that the window first starts.
@@ -2309,6 +2864,33 @@ module Google
2309
2864
  extend ::Google::Protobuf::MessageExts::ClassMethods
2310
2865
  end
2311
2866
 
2867
+ # Represents the Maintenance exclusion option.
2868
+ # @!attribute [rw] scope
2869
+ # @return [::Google::Cloud::Container::V1::MaintenanceExclusionOptions::Scope]
2870
+ # Scope specifies the upgrade scope which upgrades are blocked by the
2871
+ # exclusion.
2872
+ class MaintenanceExclusionOptions
2873
+ include ::Google::Protobuf::MessageExts
2874
+ extend ::Google::Protobuf::MessageExts::ClassMethods
2875
+
2876
+ # Scope of exclusion.
2877
+ module Scope
2878
+ # NO_UPGRADES excludes all upgrades, including patch upgrades and minor
2879
+ # upgrades across control planes and nodes. This is the default exclusion
2880
+ # behavior.
2881
+ NO_UPGRADES = 0
2882
+
2883
+ # NO_MINOR_UPGRADES excludes all minor upgrades for the cluster, only
2884
+ # patches are allowed.
2885
+ NO_MINOR_UPGRADES = 1
2886
+
2887
+ # NO_MINOR_OR_NODE_UPGRADES excludes all minor upgrades for the cluster,
2888
+ # and also exclude all node pool upgrades. Only control
2889
+ # plane patches are allowed.
2890
+ NO_MINOR_OR_NODE_UPGRADES = 2
2891
+ end
2892
+ end
2893
+
2312
2894
  # Represents an arbitrary window of time that recurs.
2313
2895
  # @!attribute [rw] window
2314
2896
  # @return [::Google::Cloud::Container::V1::TimeWindow]
@@ -2374,7 +2956,7 @@ module Google
2374
2956
  # @!attribute [rw] project_id
2375
2957
  # @return [::String]
2376
2958
  # Deprecated. The Google Developers Console [project ID or project
2377
- # number](https://support.google.com/cloud/answer/6158840).
2959
+ # number](https://cloud.google.com/resource-manager/docs/creating-managing-projects).
2378
2960
  # This field has been deprecated and replaced by the name field.
2379
2961
  # @!attribute [rw] zone
2380
2962
  # @return [::String]
@@ -2403,12 +2985,11 @@ module Google
2403
2985
  extend ::Google::Protobuf::MessageExts::ClassMethods
2404
2986
  end
2405
2987
 
2406
- # SetNodePoolSizeRequest sets the size a node
2407
- # pool.
2988
+ # SetNodePoolSizeRequest sets the size of a node pool.
2408
2989
  # @!attribute [rw] project_id
2409
2990
  # @return [::String]
2410
2991
  # Deprecated. The Google Developers Console [project ID or project
2411
- # number](https://support.google.com/cloud/answer/6158840).
2992
+ # number](https://cloud.google.com/resource-manager/docs/creating-managing-projects).
2412
2993
  # This field has been deprecated and replaced by the name field.
2413
2994
  # @!attribute [rw] zone
2414
2995
  # @return [::String]
@@ -2437,13 +3018,25 @@ module Google
2437
3018
  extend ::Google::Protobuf::MessageExts::ClassMethods
2438
3019
  end
2439
3020
 
3021
+ # CompleteNodePoolUpgradeRequest sets the name of target node pool to complete
3022
+ # upgrade.
3023
+ # @!attribute [rw] name
3024
+ # @return [::String]
3025
+ # The name (project, location, cluster, node pool id) of the node pool to
3026
+ # complete upgrade.
3027
+ # Specified in the format `projects/*/locations/*/clusters/*/nodePools/*`.
3028
+ class CompleteNodePoolUpgradeRequest
3029
+ include ::Google::Protobuf::MessageExts
3030
+ extend ::Google::Protobuf::MessageExts::ClassMethods
3031
+ end
3032
+
2440
3033
  # RollbackNodePoolUpgradeRequest rollbacks the previously Aborted or Failed
2441
3034
  # NodePool upgrade. This will be an no-op if the last upgrade successfully
2442
3035
  # completed.
2443
3036
  # @!attribute [rw] project_id
2444
3037
  # @return [::String]
2445
3038
  # Deprecated. The Google Developers Console [project ID or project
2446
- # number](https://support.google.com/cloud/answer/6158840).
3039
+ # number](https://cloud.google.com/resource-manager/docs/creating-managing-projects).
2447
3040
  # This field has been deprecated and replaced by the name field.
2448
3041
  # @!attribute [rw] zone
2449
3042
  # @return [::String]
@@ -2464,6 +3057,10 @@ module Google
2464
3057
  # The name (project, location, cluster, node pool id) of the node poll to
2465
3058
  # rollback upgrade.
2466
3059
  # Specified in the format `projects/*/locations/*/clusters/*/nodePools/*`.
3060
+ # @!attribute [rw] respect_pdb
3061
+ # @return [::Boolean]
3062
+ # Option for rollback to ignore the PodDisruptionBudget.
3063
+ # Default value is false.
2467
3064
  class RollbackNodePoolUpgradeRequest
2468
3065
  include ::Google::Protobuf::MessageExts
2469
3066
  extend ::Google::Protobuf::MessageExts::ClassMethods
@@ -2489,6 +3086,9 @@ module Google
2489
3086
  # @return [::Array<::Google::Cloud::Container::V1::ResourceLimit>]
2490
3087
  # Contains global constraints regarding minimum and maximum
2491
3088
  # amount of resources in the cluster.
3089
+ # @!attribute [rw] autoscaling_profile
3090
+ # @return [::Google::Cloud::Container::V1::ClusterAutoscaling::AutoscalingProfile]
3091
+ # Defines autoscaling behaviour.
2492
3092
  # @!attribute [rw] autoprovisioning_node_pool_defaults
2493
3093
  # @return [::Google::Cloud::Container::V1::AutoprovisioningNodePoolDefaults]
2494
3094
  # AutoprovisioningNodePoolDefaults contains defaults for a node pool
@@ -2501,6 +3101,18 @@ module Google
2501
3101
  class ClusterAutoscaling
2502
3102
  include ::Google::Protobuf::MessageExts
2503
3103
  extend ::Google::Protobuf::MessageExts::ClassMethods
3104
+
3105
+ # Defines possible options for autoscaling_profile field.
3106
+ module AutoscalingProfile
3107
+ # No change to autoscaling configuration.
3108
+ PROFILE_UNSPECIFIED = 0
3109
+
3110
+ # Prioritize optimizing utilization of resources.
3111
+ OPTIMIZE_UTILIZATION = 1
3112
+
3113
+ # Use default (balanced) autoscaling configuration.
3114
+ BALANCED = 2
3115
+ end
2504
3116
  end
2505
3117
 
2506
3118
  # AutoprovisioningNodePoolDefaults contains defaults for a node pool created
@@ -2519,13 +3131,16 @@ module Google
2519
3131
  # Specifies the node management options for NAP created node-pools.
2520
3132
  # @!attribute [rw] min_cpu_platform
2521
3133
  # @return [::String]
2522
- # Minimum CPU platform to be used for NAP created node pools.
3134
+ # Deprecated. Minimum CPU platform to be used for NAP created node pools.
2523
3135
  # The instance may be scheduled on the specified or newer CPU platform.
2524
3136
  # Applicable values are the friendly names of CPU platforms, such as
2525
3137
  # minCpuPlatform: Intel Haswell or
2526
3138
  # minCpuPlatform: Intel Sandy Bridge. For more
2527
3139
  # information, read [how to specify min CPU
2528
3140
  # platform](https://cloud.google.com/compute/docs/instances/specify-min-cpu-platform)
3141
+ # This field is deprecated, min_cpu_platform should be specified using
3142
+ # https://cloud.google.com/requested-min-cpu-platform label selector on the
3143
+ # pod.
2529
3144
  # To unset the min cpu platform field pass "automatic"
2530
3145
  # as field value.
2531
3146
  # @!attribute [rw] disk_size_gb
@@ -2582,18 +3197,47 @@ module Google
2582
3197
  # Is autoscaling enabled for this node pool.
2583
3198
  # @!attribute [rw] min_node_count
2584
3199
  # @return [::Integer]
2585
- # Minimum number of nodes in the NodePool. Must be >= 1 and <=
2586
- # max_node_count.
3200
+ # Minimum number of nodes for one location in the NodePool. Must be >= 1 and
3201
+ # <= max_node_count.
2587
3202
  # @!attribute [rw] max_node_count
2588
3203
  # @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.
3204
+ # Maximum number of nodes for one location in the NodePool. Must be >=
3205
+ # min_node_count. There has to be enough quota to scale up the cluster.
2591
3206
  # @!attribute [rw] autoprovisioned
2592
3207
  # @return [::Boolean]
2593
3208
  # Can this node pool be deleted automatically.
3209
+ # @!attribute [rw] location_policy
3210
+ # @return [::Google::Cloud::Container::V1::NodePoolAutoscaling::LocationPolicy]
3211
+ # Location policy used when scaling up a nodepool.
3212
+ # @!attribute [rw] total_min_node_count
3213
+ # @return [::Integer]
3214
+ # Minimum number of nodes in the node pool. Must be greater than 1 less than
3215
+ # total_max_node_count.
3216
+ # The total_*_node_count fields are mutually exclusive with the *_node_count
3217
+ # fields.
3218
+ # @!attribute [rw] total_max_node_count
3219
+ # @return [::Integer]
3220
+ # Maximum number of nodes in the node pool. Must be greater than
3221
+ # total_min_node_count. There has to be enough quota to scale up the cluster.
3222
+ # The total_*_node_count fields are mutually exclusive with the *_node_count
3223
+ # fields.
2594
3224
  class NodePoolAutoscaling
2595
3225
  include ::Google::Protobuf::MessageExts
2596
3226
  extend ::Google::Protobuf::MessageExts::ClassMethods
3227
+
3228
+ # Location policy specifies how zones are picked when scaling up the
3229
+ # nodepool.
3230
+ module LocationPolicy
3231
+ # Not set.
3232
+ LOCATION_POLICY_UNSPECIFIED = 0
3233
+
3234
+ # BALANCED is a best effort policy that aims to balance the sizes of
3235
+ # different zones.
3236
+ BALANCED = 1
3237
+
3238
+ # ANY policy picks zones that have the highest capacity available.
3239
+ ANY = 2
3240
+ end
2597
3241
  end
2598
3242
 
2599
3243
  # SetLabelsRequest sets the Google Cloud Platform labels on a Google Container
@@ -2602,7 +3246,7 @@ module Google
2602
3246
  # @!attribute [rw] project_id
2603
3247
  # @return [::String]
2604
3248
  # Deprecated. The Google Developers Console [project ID or project
2605
- # number](https://developers.google.com/console/help/new/#projectnumber).
3249
+ # number](https://cloud.google.com/resource-manager/docs/creating-managing-projects).
2606
3250
  # This field has been deprecated and replaced by the name field.
2607
3251
  # @!attribute [rw] zone
2608
3252
  # @return [::String]
@@ -2627,7 +3271,7 @@ module Google
2627
3271
  # resource to get the latest fingerprint.
2628
3272
  # @!attribute [rw] name
2629
3273
  # @return [::String]
2630
- # The name (project, location, cluster id) of the cluster to set labels.
3274
+ # The name (project, location, cluster name) of the cluster to set labels.
2631
3275
  # Specified in the format `projects/*/locations/*/clusters/*`.
2632
3276
  class SetLabelsRequest
2633
3277
  include ::Google::Protobuf::MessageExts
@@ -2648,7 +3292,7 @@ module Google
2648
3292
  # @!attribute [rw] project_id
2649
3293
  # @return [::String]
2650
3294
  # Deprecated. The Google Developers Console [project ID or project
2651
- # number](https://support.google.com/cloud/answer/6158840).
3295
+ # number](https://cloud.google.com/resource-manager/docs/creating-managing-projects).
2652
3296
  # This field has been deprecated and replaced by the name field.
2653
3297
  # @!attribute [rw] zone
2654
3298
  # @return [::String]
@@ -2665,8 +3309,8 @@ module Google
2665
3309
  # Required. Whether ABAC authorization will be enabled in the cluster.
2666
3310
  # @!attribute [rw] name
2667
3311
  # @return [::String]
2668
- # The name (project, location, cluster id) of the cluster to set legacy abac.
2669
- # Specified in the format `projects/*/locations/*/clusters/*`.
3312
+ # The name (project, location, cluster name) of the cluster to set legacy
3313
+ # abac. Specified in the format `projects/*/locations/*/clusters/*`.
2670
3314
  class SetLegacyAbacRequest
2671
3315
  include ::Google::Protobuf::MessageExts
2672
3316
  extend ::Google::Protobuf::MessageExts::ClassMethods
@@ -2677,7 +3321,7 @@ module Google
2677
3321
  # @!attribute [rw] project_id
2678
3322
  # @return [::String]
2679
3323
  # Deprecated. The Google Developers Console [project ID or project
2680
- # number](https://developers.google.com/console/help/new/#projectnumber).
3324
+ # number](https://cloud.google.com/resource-manager/docs/creating-managing-projects).
2681
3325
  # This field has been deprecated and replaced by the name field.
2682
3326
  # @!attribute [rw] zone
2683
3327
  # @return [::String]
@@ -2691,7 +3335,7 @@ module Google
2691
3335
  # This field has been deprecated and replaced by the name field.
2692
3336
  # @!attribute [rw] name
2693
3337
  # @return [::String]
2694
- # The name (project, location, cluster id) of the cluster to start IP
3338
+ # The name (project, location, cluster name) of the cluster to start IP
2695
3339
  # rotation. Specified in the format `projects/*/locations/*/clusters/*`.
2696
3340
  # @!attribute [rw] rotate_credentials
2697
3341
  # @return [::Boolean]
@@ -2705,7 +3349,7 @@ module Google
2705
3349
  # @!attribute [rw] project_id
2706
3350
  # @return [::String]
2707
3351
  # Deprecated. The Google Developers Console [project ID or project
2708
- # number](https://developers.google.com/console/help/new/#projectnumber).
3352
+ # number](https://cloud.google.com/resource-manager/docs/creating-managing-projects).
2709
3353
  # This field has been deprecated and replaced by the name field.
2710
3354
  # @!attribute [rw] zone
2711
3355
  # @return [::String]
@@ -2719,7 +3363,7 @@ module Google
2719
3363
  # This field has been deprecated and replaced by the name field.
2720
3364
  # @!attribute [rw] name
2721
3365
  # @return [::String]
2722
- # The name (project, location, cluster id) of the cluster to complete IP
3366
+ # The name (project, location, cluster name) of the cluster to complete IP
2723
3367
  # rotation. Specified in the format `projects/*/locations/*/clusters/*`.
2724
3368
  class CompleteIPRotationRequest
2725
3369
  include ::Google::Protobuf::MessageExts
@@ -2734,11 +3378,41 @@ module Google
2734
3378
  # @return [::String]
2735
3379
  # The accelerator type resource name. List of supported accelerators
2736
3380
  # [here](https://cloud.google.com/compute/docs/gpus)
3381
+ # @!attribute [rw] gpu_partition_size
3382
+ # @return [::String]
3383
+ # Size of partitions to create on the GPU. Valid values are described in the
3384
+ # NVIDIA [mig user
3385
+ # guide](https://docs.nvidia.com/datacenter/tesla/mig-user-guide/#partitioning).
3386
+ # @!attribute [rw] gpu_sharing_config
3387
+ # @return [::Google::Cloud::Container::V1::GPUSharingConfig]
3388
+ # The configuration for GPU sharing options.
2737
3389
  class AcceleratorConfig
2738
3390
  include ::Google::Protobuf::MessageExts
2739
3391
  extend ::Google::Protobuf::MessageExts::ClassMethods
2740
3392
  end
2741
3393
 
3394
+ # GPUSharingConfig represents the GPU sharing configuration for Hardware
3395
+ # Accelerators.
3396
+ # @!attribute [rw] max_shared_clients_per_gpu
3397
+ # @return [::Integer]
3398
+ # The max number of containers that can share a physical GPU.
3399
+ # @!attribute [rw] gpu_sharing_strategy
3400
+ # @return [::Google::Cloud::Container::V1::GPUSharingConfig::GPUSharingStrategy]
3401
+ # The type of GPU sharing strategy to enable on the GPU node.
3402
+ class GPUSharingConfig
3403
+ include ::Google::Protobuf::MessageExts
3404
+ extend ::Google::Protobuf::MessageExts::ClassMethods
3405
+
3406
+ # The type of GPU sharing strategy currently provided.
3407
+ module GPUSharingStrategy
3408
+ # Default value.
3409
+ GPU_SHARING_STRATEGY_UNSPECIFIED = 0
3410
+
3411
+ # GPUs are time-shared between containers.
3412
+ TIME_SHARING = 1
3413
+ end
3414
+ end
3415
+
2742
3416
  # WorkloadMetadataConfig defines the metadata configuration to expose to
2743
3417
  # workloads on the node pool.
2744
3418
  # @!attribute [rw] mode
@@ -2771,7 +3445,7 @@ module Google
2771
3445
  # @!attribute [rw] project_id
2772
3446
  # @return [::String]
2773
3447
  # Deprecated. The Google Developers Console [project ID or project
2774
- # number](https://developers.google.com/console/help/new/#projectnumber).
3448
+ # number](https://cloud.google.com/resource-manager/docs/creating-managing-projects).
2775
3449
  # This field has been deprecated and replaced by the name field.
2776
3450
  # @!attribute [rw] zone
2777
3451
  # @return [::String]
@@ -2788,7 +3462,7 @@ module Google
2788
3462
  # Required. Configuration options for the NetworkPolicy feature.
2789
3463
  # @!attribute [rw] name
2790
3464
  # @return [::String]
2791
- # The name (project, location, cluster id) of the cluster to set networking
3465
+ # The name (project, location, cluster name) of the cluster to set networking
2792
3466
  # policy. Specified in the format `projects/*/locations/*/clusters/*`.
2793
3467
  class SetNetworkPolicyRequest
2794
3468
  include ::Google::Protobuf::MessageExts
@@ -2799,7 +3473,7 @@ module Google
2799
3473
  # @!attribute [rw] project_id
2800
3474
  # @return [::String]
2801
3475
  # Required. The Google Developers Console [project ID or project
2802
- # number](https://support.google.com/cloud/answer/6158840).
3476
+ # number](https://cloud.google.com/resource-manager/docs/creating-managing-projects).
2803
3477
  # @!attribute [rw] zone
2804
3478
  # @return [::String]
2805
3479
  # Required. The name of the Google Compute Engine
@@ -2814,8 +3488,8 @@ module Google
2814
3488
  # clears the existing maintenance policy.
2815
3489
  # @!attribute [rw] name
2816
3490
  # @return [::String]
2817
- # The name (project, location, cluster id) of the cluster to set maintenance
2818
- # policy.
3491
+ # The name (project, location, cluster name) of the cluster to set
3492
+ # maintenance policy.
2819
3493
  # Specified in the format `projects/*/locations/*/clusters/*`.
2820
3494
  class SetMaintenancePolicyRequest
2821
3495
  include ::Google::Protobuf::MessageExts
@@ -2827,9 +3501,13 @@ module Google
2827
3501
  # @!attribute [rw] code
2828
3502
  # @return [::Google::Cloud::Container::V1::StatusCondition::Code]
2829
3503
  # Machine-friendly representation of the condition
3504
+ # Deprecated. Use canonical_code instead.
2830
3505
  # @!attribute [rw] message
2831
3506
  # @return [::String]
2832
3507
  # Human-friendly representation of the condition
3508
+ # @!attribute [rw] canonical_code
3509
+ # @return [::Google::Rpc::Code]
3510
+ # Canonical code of the condition.
2833
3511
  class StatusCondition
2834
3512
  include ::Google::Protobuf::MessageExts
2835
3513
  extend ::Google::Protobuf::MessageExts::ClassMethods
@@ -2855,8 +3533,10 @@ module Google
2855
3533
 
2856
3534
  # Unable to perform an encrypt operation against the CloudKMS key used for
2857
3535
  # etcd level encryption.
2858
- # More codes TBA
2859
3536
  CLOUD_KMS_KEY_ERROR = 7
3537
+
3538
+ # Cluster CA is expiring soon.
3539
+ CA_EXPIRING = 9
2860
3540
  end
2861
3541
  end
2862
3542
 
@@ -2883,16 +3563,44 @@ module Google
2883
3563
  # will be disabled when default_snat_status is disabled. When disabled is set
2884
3564
  # to false, default IP masquerade rules will be applied to the nodes to
2885
3565
  # prevent sNAT on cluster internal traffic.
3566
+ # @!attribute [rw] enable_l4ilb_subsetting
3567
+ # @return [::Boolean]
3568
+ # Whether L4ILB Subsetting is enabled for this cluster.
3569
+ # @!attribute [rw] datapath_provider
3570
+ # @return [::Google::Cloud::Container::V1::DatapathProvider]
3571
+ # The desired datapath provider for this cluster. By default, uses the
3572
+ # IPTables-based kube-proxy implementation.
3573
+ # @!attribute [rw] private_ipv6_google_access
3574
+ # @return [::Google::Cloud::Container::V1::PrivateIPv6GoogleAccess]
3575
+ # The desired state of IPv6 connectivity to Google Services.
3576
+ # By default, no private IPv6 access to or from Google Services (all access
3577
+ # will be via IPv4)
3578
+ # @!attribute [rw] dns_config
3579
+ # @return [::Google::Cloud::Container::V1::DNSConfig]
3580
+ # DNSConfig contains clusterDNS config for this cluster.
3581
+ # @!attribute [rw] service_external_ips_config
3582
+ # @return [::Google::Cloud::Container::V1::ServiceExternalIPsConfig]
3583
+ # ServiceExternalIPsConfig specifies if services with externalIPs field are
3584
+ # blocked or not.
2886
3585
  class NetworkConfig
2887
3586
  include ::Google::Protobuf::MessageExts
2888
3587
  extend ::Google::Protobuf::MessageExts::ClassMethods
2889
3588
  end
2890
3589
 
3590
+ # Config to block services with externalIPs field.
3591
+ # @!attribute [rw] enabled
3592
+ # @return [::Boolean]
3593
+ # Whether Services with ExternalIPs field are allowed or not.
3594
+ class ServiceExternalIPsConfig
3595
+ include ::Google::Protobuf::MessageExts
3596
+ extend ::Google::Protobuf::MessageExts::ClassMethods
3597
+ end
3598
+
2891
3599
  # GetOpenIDConfigRequest gets the OIDC discovery document for the
2892
3600
  # cluster. See the OpenID Connect Discovery 1.0 specification for details.
2893
3601
  # @!attribute [rw] parent
2894
3602
  # @return [::String]
2895
- # The cluster (project, location, cluster id) to get the discovery document
3603
+ # The cluster (project, location, cluster name) to get the discovery document
2896
3604
  # for. Specified in the format `projects/*/locations/*/clusters/*`.
2897
3605
  class GetOpenIDConfigRequest
2898
3606
  include ::Google::Protobuf::MessageExts
@@ -2933,7 +3641,7 @@ module Google
2933
3641
  # Discovery 1.0 specification for details.
2934
3642
  # @!attribute [rw] parent
2935
3643
  # @return [::String]
2936
- # The cluster (project, location, cluster id) to get keys for. Specified in
3644
+ # The cluster (project, location, cluster name) to get keys for. Specified in
2937
3645
  # the format `projects/*/locations/*/clusters/*`.
2938
3646
  class GetJSONWebKeysRequest
2939
3647
  include ::Google::Protobuf::MessageExts
@@ -3030,6 +3738,52 @@ module Google
3030
3738
  extend ::Google::Protobuf::MessageExts::ClassMethods
3031
3739
  end
3032
3740
 
3741
+ # ILBSubsettingConfig contains the desired config of L4 Internal LoadBalancer
3742
+ # subsetting on this cluster.
3743
+ # @!attribute [rw] enabled
3744
+ # @return [::Boolean]
3745
+ # Enables l4 ILB subsetting for this cluster.
3746
+ class ILBSubsettingConfig
3747
+ include ::Google::Protobuf::MessageExts
3748
+ extend ::Google::Protobuf::MessageExts::ClassMethods
3749
+ end
3750
+
3751
+ # DNSConfig contains the desired set of options for configuring clusterDNS.
3752
+ # @!attribute [rw] cluster_dns
3753
+ # @return [::Google::Cloud::Container::V1::DNSConfig::Provider]
3754
+ # cluster_dns indicates which in-cluster DNS provider should be used.
3755
+ # @!attribute [rw] cluster_dns_scope
3756
+ # @return [::Google::Cloud::Container::V1::DNSConfig::DNSScope]
3757
+ # cluster_dns_scope indicates the scope of access to cluster DNS records.
3758
+ # @!attribute [rw] cluster_dns_domain
3759
+ # @return [::String]
3760
+ # cluster_dns_domain is the suffix used for all cluster service records.
3761
+ class DNSConfig
3762
+ include ::Google::Protobuf::MessageExts
3763
+ extend ::Google::Protobuf::MessageExts::ClassMethods
3764
+
3765
+ # Provider lists the various in-cluster DNS providers.
3766
+ module Provider
3767
+ # Default value
3768
+ PROVIDER_UNSPECIFIED = 0
3769
+
3770
+ # Use GKE default DNS provider(kube-dns) for DNS resolution.
3771
+ PLATFORM_DEFAULT = 1
3772
+
3773
+ # Use CloudDNS for DNS resolution.
3774
+ CLOUD_DNS = 2
3775
+ end
3776
+
3777
+ # DNSScope lists the various scopes of access to cluster DNS records.
3778
+ module DNSScope
3779
+ # Default value, will be inferred as cluster scope.
3780
+ DNS_SCOPE_UNSPECIFIED = 0
3781
+
3782
+ # DNS records are accessible from within the VPC.
3783
+ VPC_SCOPE = 2
3784
+ end
3785
+ end
3786
+
3033
3787
  # Constraints applied to pods.
3034
3788
  # @!attribute [rw] max_pods_per_node
3035
3789
  # @return [::Integer]
@@ -3049,6 +3803,33 @@ module Google
3049
3803
  extend ::Google::Protobuf::MessageExts::ClassMethods
3050
3804
  end
3051
3805
 
3806
+ # IdentityServiceConfig is configuration for Identity Service which allows
3807
+ # customers to use external identity providers with the K8S API
3808
+ # @!attribute [rw] enabled
3809
+ # @return [::Boolean]
3810
+ # Whether to enable the Identity Service component
3811
+ class IdentityServiceConfig
3812
+ include ::Google::Protobuf::MessageExts
3813
+ extend ::Google::Protobuf::MessageExts::ClassMethods
3814
+ end
3815
+
3816
+ # Configuration for issuance of mTLS keys and certificates to Kubernetes pods.
3817
+ # @!attribute [rw] enable_certificates
3818
+ # @return [::Google::Protobuf::BoolValue]
3819
+ # enable_certificates controls issuance of workload mTLS certificates.
3820
+ #
3821
+ # If set, the GKE Workload Identity Certificates controller and node agent
3822
+ # will be deployed in the cluster, which can then be configured by creating a
3823
+ # WorkloadCertificateConfig Custom Resource.
3824
+ #
3825
+ # Requires Workload Identity
3826
+ # ({::Google::Cloud::Container::V1::WorkloadIdentityConfig#workload_pool workload_pool}
3827
+ # must be non-empty).
3828
+ class MeshCertificates
3829
+ include ::Google::Protobuf::MessageExts
3830
+ extend ::Google::Protobuf::MessageExts::ClassMethods
3831
+ end
3832
+
3052
3833
  # Configuration of etcd encryption.
3053
3834
  # @!attribute [rw] state
3054
3835
  # @return [::Google::Cloud::Container::V1::DatabaseEncryption::State]
@@ -3248,6 +4029,320 @@ module Google
3248
4029
  include ::Google::Protobuf::MessageExts
3249
4030
  extend ::Google::Protobuf::MessageExts::ClassMethods
3250
4031
  end
4032
+
4033
+ # Configuration of gVNIC feature.
4034
+ # @!attribute [rw] enabled
4035
+ # @return [::Boolean]
4036
+ # Whether gVNIC features are enabled in the node pool.
4037
+ class VirtualNIC
4038
+ include ::Google::Protobuf::MessageExts
4039
+ extend ::Google::Protobuf::MessageExts::ClassMethods
4040
+ end
4041
+
4042
+ # NotificationConfig is the configuration of notifications.
4043
+ # @!attribute [rw] pubsub
4044
+ # @return [::Google::Cloud::Container::V1::NotificationConfig::PubSub]
4045
+ # Notification config for Pub/Sub.
4046
+ class NotificationConfig
4047
+ include ::Google::Protobuf::MessageExts
4048
+ extend ::Google::Protobuf::MessageExts::ClassMethods
4049
+
4050
+ # Pub/Sub specific notification config.
4051
+ # @!attribute [rw] enabled
4052
+ # @return [::Boolean]
4053
+ # Enable notifications for Pub/Sub.
4054
+ # @!attribute [rw] topic
4055
+ # @return [::String]
4056
+ # The desired Pub/Sub topic to which notifications will be
4057
+ # sent by GKE. Format is `projects/{project}/topics/{topic}`.
4058
+ # @!attribute [rw] filter
4059
+ # @return [::Google::Cloud::Container::V1::NotificationConfig::Filter]
4060
+ # Allows filtering to one or more specific event types. If no filter is
4061
+ # specified, or if a filter is specified with no event types, all event
4062
+ # types will be sent
4063
+ class PubSub
4064
+ include ::Google::Protobuf::MessageExts
4065
+ extend ::Google::Protobuf::MessageExts::ClassMethods
4066
+ end
4067
+
4068
+ # Allows filtering to one or more specific event types. If event types are
4069
+ # present, those and only those event types will be transmitted to the
4070
+ # cluster. Other types will be skipped. If no filter is specified, or no
4071
+ # event types are present, all event types will be sent
4072
+ # @!attribute [rw] event_type
4073
+ # @return [::Array<::Google::Cloud::Container::V1::NotificationConfig::EventType>]
4074
+ # Event types to allowlist.
4075
+ class Filter
4076
+ include ::Google::Protobuf::MessageExts
4077
+ extend ::Google::Protobuf::MessageExts::ClassMethods
4078
+ end
4079
+
4080
+ # Types of notifications currently supported. Can be used to filter what
4081
+ # notifications are sent.
4082
+ module EventType
4083
+ # Not set, will be ignored.
4084
+ EVENT_TYPE_UNSPECIFIED = 0
4085
+
4086
+ # Corresponds with UpgradeAvailableEvent.
4087
+ UPGRADE_AVAILABLE_EVENT = 1
4088
+
4089
+ # Corresponds with UpgradeEvent.
4090
+ UPGRADE_EVENT = 2
4091
+
4092
+ # Corresponds with SecurityBulletinEvent.
4093
+ SECURITY_BULLETIN_EVENT = 3
4094
+ end
4095
+ end
4096
+
4097
+ # ConfidentialNodes is configuration for the confidential nodes feature, which
4098
+ # makes nodes run on confidential VMs.
4099
+ # @!attribute [rw] enabled
4100
+ # @return [::Boolean]
4101
+ # Whether Confidential Nodes feature is enabled.
4102
+ class ConfidentialNodes
4103
+ include ::Google::Protobuf::MessageExts
4104
+ extend ::Google::Protobuf::MessageExts::ClassMethods
4105
+ end
4106
+
4107
+ # UpgradeEvent is a notification sent to customers by the cluster server when
4108
+ # a resource is upgrading.
4109
+ # @!attribute [rw] resource_type
4110
+ # @return [::Google::Cloud::Container::V1::UpgradeResourceType]
4111
+ # The resource type that is upgrading.
4112
+ # @!attribute [rw] operation
4113
+ # @return [::String]
4114
+ # The operation associated with this upgrade.
4115
+ # @!attribute [rw] operation_start_time
4116
+ # @return [::Google::Protobuf::Timestamp]
4117
+ # The time when the operation was started.
4118
+ # @!attribute [rw] current_version
4119
+ # @return [::String]
4120
+ # The current version before the upgrade.
4121
+ # @!attribute [rw] target_version
4122
+ # @return [::String]
4123
+ # The target version for the upgrade.
4124
+ # @!attribute [rw] resource
4125
+ # @return [::String]
4126
+ # Optional relative path to the resource. For example in node pool upgrades,
4127
+ # the relative path of the node pool.
4128
+ class UpgradeEvent
4129
+ include ::Google::Protobuf::MessageExts
4130
+ extend ::Google::Protobuf::MessageExts::ClassMethods
4131
+ end
4132
+
4133
+ # UpgradeAvailableEvent is a notification sent to customers when a new
4134
+ # available version is released.
4135
+ # @!attribute [rw] version
4136
+ # @return [::String]
4137
+ # The release version available for upgrade.
4138
+ # @!attribute [rw] resource_type
4139
+ # @return [::Google::Cloud::Container::V1::UpgradeResourceType]
4140
+ # The resource type of the release version.
4141
+ # @!attribute [rw] release_channel
4142
+ # @return [::Google::Cloud::Container::V1::ReleaseChannel]
4143
+ # The release channel of the version. If empty, it means a non-channel
4144
+ # release.
4145
+ # @!attribute [rw] resource
4146
+ # @return [::String]
4147
+ # Optional relative path to the resource. For example, the relative path of
4148
+ # the node pool.
4149
+ class UpgradeAvailableEvent
4150
+ include ::Google::Protobuf::MessageExts
4151
+ extend ::Google::Protobuf::MessageExts::ClassMethods
4152
+ end
4153
+
4154
+ # SecurityBulletinEvent is a notification sent to customers when a security
4155
+ # bulletin has been posted that they are vulnerable to.
4156
+ # @!attribute [rw] resource_type_affected
4157
+ # @return [::String]
4158
+ # The resource type (node/control plane) that has the vulnerability. Multiple
4159
+ # notifications (1 notification per resource type) will be sent for a
4160
+ # vulnerability that affects > 1 resource type.
4161
+ # @!attribute [rw] bulletin_id
4162
+ # @return [::String]
4163
+ # The ID of the bulletin corresponding to the vulnerability.
4164
+ # @!attribute [rw] cve_ids
4165
+ # @return [::Array<::String>]
4166
+ # The CVEs associated with this bulletin.
4167
+ # @!attribute [rw] severity
4168
+ # @return [::String]
4169
+ # The severity of this bulletin as it relates to GKE.
4170
+ # @!attribute [rw] bulletin_uri
4171
+ # @return [::String]
4172
+ # The URI link to the bulletin on the website for more information.
4173
+ # @!attribute [rw] brief_description
4174
+ # @return [::String]
4175
+ # A brief description of the bulletin. See the bulletin pointed to by the
4176
+ # bulletin_uri field for an expanded description.
4177
+ # @!attribute [rw] affected_supported_minors
4178
+ # @return [::Array<::String>]
4179
+ # The GKE minor versions affected by this vulnerability.
4180
+ # @!attribute [rw] patched_versions
4181
+ # @return [::Array<::String>]
4182
+ # The GKE versions where this vulnerability is patched.
4183
+ # @!attribute [rw] suggested_upgrade_target
4184
+ # @return [::String]
4185
+ # This represents a version selected from the patched_versions field that
4186
+ # the cluster receiving this notification should most likely want to upgrade
4187
+ # to based on its current version. Note that if this notification is being
4188
+ # received by a given cluster, it means that this version is currently
4189
+ # available as an upgrade target in that cluster's location.
4190
+ # @!attribute [rw] manual_steps_required
4191
+ # @return [::Boolean]
4192
+ # If this field is specified, it means there are manual steps that the user
4193
+ # must take to make their clusters safe.
4194
+ class SecurityBulletinEvent
4195
+ include ::Google::Protobuf::MessageExts
4196
+ extend ::Google::Protobuf::MessageExts::ClassMethods
4197
+ end
4198
+
4199
+ # Autopilot is the configuration for Autopilot settings on the cluster.
4200
+ # @!attribute [rw] enabled
4201
+ # @return [::Boolean]
4202
+ # Enable Autopilot
4203
+ class Autopilot
4204
+ include ::Google::Protobuf::MessageExts
4205
+ extend ::Google::Protobuf::MessageExts::ClassMethods
4206
+ end
4207
+
4208
+ # LoggingConfig is cluster logging configuration.
4209
+ # @!attribute [rw] component_config
4210
+ # @return [::Google::Cloud::Container::V1::LoggingComponentConfig]
4211
+ # Logging components configuration
4212
+ class LoggingConfig
4213
+ include ::Google::Protobuf::MessageExts
4214
+ extend ::Google::Protobuf::MessageExts::ClassMethods
4215
+ end
4216
+
4217
+ # LoggingComponentConfig is cluster logging component configuration.
4218
+ # @!attribute [rw] enable_components
4219
+ # @return [::Array<::Google::Cloud::Container::V1::LoggingComponentConfig::Component>]
4220
+ # Select components to collect logs. An empty set would disable all logging.
4221
+ class LoggingComponentConfig
4222
+ include ::Google::Protobuf::MessageExts
4223
+ extend ::Google::Protobuf::MessageExts::ClassMethods
4224
+
4225
+ # GKE components exposing logs
4226
+ module Component
4227
+ # Default value. This shouldn't be used.
4228
+ COMPONENT_UNSPECIFIED = 0
4229
+
4230
+ # system components
4231
+ SYSTEM_COMPONENTS = 1
4232
+
4233
+ # workloads
4234
+ WORKLOADS = 2
4235
+ end
4236
+ end
4237
+
4238
+ # MonitoringConfig is cluster monitoring configuration.
4239
+ # @!attribute [rw] component_config
4240
+ # @return [::Google::Cloud::Container::V1::MonitoringComponentConfig]
4241
+ # Monitoring components configuration
4242
+ # @!attribute [rw] managed_prometheus_config
4243
+ # @return [::Google::Cloud::Container::V1::ManagedPrometheusConfig]
4244
+ # Enable Google Cloud Managed Service for Prometheus
4245
+ # in the cluster.
4246
+ class MonitoringConfig
4247
+ include ::Google::Protobuf::MessageExts
4248
+ extend ::Google::Protobuf::MessageExts::ClassMethods
4249
+ end
4250
+
4251
+ # MonitoringComponentConfig is cluster monitoring component configuration.
4252
+ # @!attribute [rw] enable_components
4253
+ # @return [::Array<::Google::Cloud::Container::V1::MonitoringComponentConfig::Component>]
4254
+ # Select components to collect metrics. An empty set would disable all
4255
+ # monitoring.
4256
+ class MonitoringComponentConfig
4257
+ include ::Google::Protobuf::MessageExts
4258
+ extend ::Google::Protobuf::MessageExts::ClassMethods
4259
+
4260
+ # GKE components exposing metrics
4261
+ module Component
4262
+ # Default value. This shouldn't be used.
4263
+ COMPONENT_UNSPECIFIED = 0
4264
+
4265
+ # system components
4266
+ SYSTEM_COMPONENTS = 1
4267
+
4268
+ # kube-apiserver
4269
+ APISERVER = 3
4270
+
4271
+ # kube-scheduler
4272
+ SCHEDULER = 4
4273
+
4274
+ # kube-controller-manager
4275
+ CONTROLLER_MANAGER = 5
4276
+ end
4277
+ end
4278
+
4279
+ # ManagedPrometheusConfig defines the configuration for
4280
+ # Google Cloud Managed Service for Prometheus.
4281
+ # @!attribute [rw] enabled
4282
+ # @return [::Boolean]
4283
+ # Enable Managed Collection.
4284
+ class ManagedPrometheusConfig
4285
+ include ::Google::Protobuf::MessageExts
4286
+ extend ::Google::Protobuf::MessageExts::ClassMethods
4287
+ end
4288
+
4289
+ # PrivateIPv6GoogleAccess controls whether and how the pods can communicate
4290
+ # with Google Services through gRPC over IPv6.
4291
+ module PrivateIPv6GoogleAccess
4292
+ # Default value. Same as DISABLED
4293
+ PRIVATE_IPV6_GOOGLE_ACCESS_UNSPECIFIED = 0
4294
+
4295
+ # No private access to or from Google Services
4296
+ PRIVATE_IPV6_GOOGLE_ACCESS_DISABLED = 1
4297
+
4298
+ # Enables private IPv6 access to Google Services from GKE
4299
+ PRIVATE_IPV6_GOOGLE_ACCESS_TO_GOOGLE = 2
4300
+
4301
+ # Enables priate IPv6 access to and from Google Services
4302
+ PRIVATE_IPV6_GOOGLE_ACCESS_BIDIRECTIONAL = 3
4303
+ end
4304
+
4305
+ # UpgradeResourceType is the resource type that is upgrading. It is used
4306
+ # in upgrade notifications.
4307
+ module UpgradeResourceType
4308
+ # Default value. This shouldn't be used.
4309
+ UPGRADE_RESOURCE_TYPE_UNSPECIFIED = 0
4310
+
4311
+ # Master / control plane
4312
+ MASTER = 1
4313
+
4314
+ # Node pool
4315
+ NODE_POOL = 2
4316
+ end
4317
+
4318
+ # The datapath provider selects the implementation of the Kubernetes networking
4319
+ # model for service resolution and network policy enforcement.
4320
+ module DatapathProvider
4321
+ # Default value.
4322
+ DATAPATH_PROVIDER_UNSPECIFIED = 0
4323
+
4324
+ # Use the IPTables implementation based on kube-proxy.
4325
+ LEGACY_DATAPATH = 1
4326
+
4327
+ # Use the eBPF based GKE Dataplane V2 with additional features. See the [GKE
4328
+ # Dataplane V2
4329
+ # documentation](https://cloud.google.com/kubernetes-engine/docs/how-to/dataplane-v2)
4330
+ # for more.
4331
+ ADVANCED_DATAPATH = 2
4332
+ end
4333
+
4334
+ # Strategy used for node pool update.
4335
+ module NodePoolUpdateStrategy
4336
+ # Default value.
4337
+ NODE_POOL_UPDATE_STRATEGY_UNSPECIFIED = 0
4338
+
4339
+ # blue-green upgrade.
4340
+ BLUE_GREEN = 2
4341
+
4342
+ # SURGE is the traditional way of upgrade a node pool.
4343
+ # max_surge and max_unavailable determines the level of upgrade parallelism.
4344
+ SURGE = 3
4345
+ end
3251
4346
  end
3252
4347
  end
3253
4348
  end