google-cloud-container-v1 0.7.3 → 0.9.1

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,
@@ -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