google-cloud-container 2.53.0__tar.gz → 2.54.0__tar.gz

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.
Files changed (56) hide show
  1. {google_cloud_container-2.53.0/google_cloud_container.egg-info → google_cloud_container-2.54.0}/PKG-INFO +1 -1
  2. {google_cloud_container-2.53.0 → google_cloud_container-2.54.0}/google/cloud/container/__init__.py +4 -0
  3. {google_cloud_container-2.53.0 → google_cloud_container-2.54.0}/google/cloud/container/gapic_version.py +1 -1
  4. {google_cloud_container-2.53.0 → google_cloud_container-2.54.0}/google/cloud/container_v1/__init__.py +4 -0
  5. {google_cloud_container-2.53.0/google/cloud/container_v1beta1 → google_cloud_container-2.54.0/google/cloud/container_v1}/gapic_version.py +1 -1
  6. {google_cloud_container-2.53.0 → google_cloud_container-2.54.0}/google/cloud/container_v1/services/cluster_manager/client.py +3 -37
  7. {google_cloud_container-2.53.0 → google_cloud_container-2.54.0}/google/cloud/container_v1/types/__init__.py +4 -0
  8. {google_cloud_container-2.53.0 → google_cloud_container-2.54.0}/google/cloud/container_v1/types/cluster_service.py +190 -10
  9. {google_cloud_container-2.53.0/google/cloud/container_v1 → google_cloud_container-2.54.0/google/cloud/container_v1beta1}/gapic_version.py +1 -1
  10. {google_cloud_container-2.53.0 → google_cloud_container-2.54.0}/google/cloud/container_v1beta1/services/cluster_manager/client.py +3 -37
  11. {google_cloud_container-2.53.0 → google_cloud_container-2.54.0/google_cloud_container.egg-info}/PKG-INFO +1 -1
  12. {google_cloud_container-2.53.0 → google_cloud_container-2.54.0}/tests/unit/gapic/container_v1/test_cluster_manager.py +0 -80
  13. {google_cloud_container-2.53.0 → google_cloud_container-2.54.0}/tests/unit/gapic/container_v1beta1/test_cluster_manager.py +0 -79
  14. {google_cloud_container-2.53.0 → google_cloud_container-2.54.0}/LICENSE +0 -0
  15. {google_cloud_container-2.53.0 → google_cloud_container-2.54.0}/MANIFEST.in +0 -0
  16. {google_cloud_container-2.53.0 → google_cloud_container-2.54.0}/README.rst +0 -0
  17. {google_cloud_container-2.53.0 → google_cloud_container-2.54.0}/google/cloud/container/py.typed +0 -0
  18. {google_cloud_container-2.53.0 → google_cloud_container-2.54.0}/google/cloud/container_v1/gapic_metadata.json +0 -0
  19. {google_cloud_container-2.53.0 → google_cloud_container-2.54.0}/google/cloud/container_v1/py.typed +0 -0
  20. {google_cloud_container-2.53.0 → google_cloud_container-2.54.0}/google/cloud/container_v1/services/__init__.py +0 -0
  21. {google_cloud_container-2.53.0 → google_cloud_container-2.54.0}/google/cloud/container_v1/services/cluster_manager/__init__.py +0 -0
  22. {google_cloud_container-2.53.0 → google_cloud_container-2.54.0}/google/cloud/container_v1/services/cluster_manager/async_client.py +0 -0
  23. {google_cloud_container-2.53.0 → google_cloud_container-2.54.0}/google/cloud/container_v1/services/cluster_manager/pagers.py +0 -0
  24. {google_cloud_container-2.53.0 → google_cloud_container-2.54.0}/google/cloud/container_v1/services/cluster_manager/transports/__init__.py +0 -0
  25. {google_cloud_container-2.53.0 → google_cloud_container-2.54.0}/google/cloud/container_v1/services/cluster_manager/transports/base.py +0 -0
  26. {google_cloud_container-2.53.0 → google_cloud_container-2.54.0}/google/cloud/container_v1/services/cluster_manager/transports/grpc.py +0 -0
  27. {google_cloud_container-2.53.0 → google_cloud_container-2.54.0}/google/cloud/container_v1/services/cluster_manager/transports/grpc_asyncio.py +0 -0
  28. {google_cloud_container-2.53.0 → google_cloud_container-2.54.0}/google/cloud/container_v1/services/cluster_manager/transports/rest.py +0 -0
  29. {google_cloud_container-2.53.0 → google_cloud_container-2.54.0}/google/cloud/container_v1/services/cluster_manager/transports/rest_base.py +0 -0
  30. {google_cloud_container-2.53.0 → google_cloud_container-2.54.0}/google/cloud/container_v1beta1/__init__.py +0 -0
  31. {google_cloud_container-2.53.0 → google_cloud_container-2.54.0}/google/cloud/container_v1beta1/gapic_metadata.json +0 -0
  32. {google_cloud_container-2.53.0 → google_cloud_container-2.54.0}/google/cloud/container_v1beta1/py.typed +0 -0
  33. {google_cloud_container-2.53.0 → google_cloud_container-2.54.0}/google/cloud/container_v1beta1/services/__init__.py +0 -0
  34. {google_cloud_container-2.53.0 → google_cloud_container-2.54.0}/google/cloud/container_v1beta1/services/cluster_manager/__init__.py +0 -0
  35. {google_cloud_container-2.53.0 → google_cloud_container-2.54.0}/google/cloud/container_v1beta1/services/cluster_manager/async_client.py +0 -0
  36. {google_cloud_container-2.53.0 → google_cloud_container-2.54.0}/google/cloud/container_v1beta1/services/cluster_manager/pagers.py +0 -0
  37. {google_cloud_container-2.53.0 → google_cloud_container-2.54.0}/google/cloud/container_v1beta1/services/cluster_manager/transports/__init__.py +0 -0
  38. {google_cloud_container-2.53.0 → google_cloud_container-2.54.0}/google/cloud/container_v1beta1/services/cluster_manager/transports/base.py +0 -0
  39. {google_cloud_container-2.53.0 → google_cloud_container-2.54.0}/google/cloud/container_v1beta1/services/cluster_manager/transports/grpc.py +0 -0
  40. {google_cloud_container-2.53.0 → google_cloud_container-2.54.0}/google/cloud/container_v1beta1/services/cluster_manager/transports/grpc_asyncio.py +0 -0
  41. {google_cloud_container-2.53.0 → google_cloud_container-2.54.0}/google/cloud/container_v1beta1/types/__init__.py +0 -0
  42. {google_cloud_container-2.53.0 → google_cloud_container-2.54.0}/google/cloud/container_v1beta1/types/cluster_service.py +0 -0
  43. {google_cloud_container-2.53.0 → google_cloud_container-2.54.0}/google_cloud_container.egg-info/SOURCES.txt +0 -0
  44. {google_cloud_container-2.53.0 → google_cloud_container-2.54.0}/google_cloud_container.egg-info/dependency_links.txt +0 -0
  45. {google_cloud_container-2.53.0 → google_cloud_container-2.54.0}/google_cloud_container.egg-info/not-zip-safe +0 -0
  46. {google_cloud_container-2.53.0 → google_cloud_container-2.54.0}/google_cloud_container.egg-info/requires.txt +0 -0
  47. {google_cloud_container-2.53.0 → google_cloud_container-2.54.0}/google_cloud_container.egg-info/top_level.txt +0 -0
  48. {google_cloud_container-2.53.0 → google_cloud_container-2.54.0}/setup.cfg +0 -0
  49. {google_cloud_container-2.53.0 → google_cloud_container-2.54.0}/setup.py +0 -0
  50. {google_cloud_container-2.53.0 → google_cloud_container-2.54.0}/tests/__init__.py +0 -0
  51. {google_cloud_container-2.53.0 → google_cloud_container-2.54.0}/tests/system/__init__.py +0 -0
  52. {google_cloud_container-2.53.0 → google_cloud_container-2.54.0}/tests/system/smoke_test.py +0 -0
  53. {google_cloud_container-2.53.0 → google_cloud_container-2.54.0}/tests/unit/__init__.py +0 -0
  54. {google_cloud_container-2.53.0 → google_cloud_container-2.54.0}/tests/unit/gapic/__init__.py +0 -0
  55. {google_cloud_container-2.53.0 → google_cloud_container-2.54.0}/tests/unit/gapic/container_v1/__init__.py +0 -0
  56. {google_cloud_container-2.53.0 → google_cloud_container-2.54.0}/tests/unit/gapic/container_v1beta1/__init__.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: google-cloud-container
3
- Version: 2.53.0
3
+ Version: 2.54.0
4
4
  Summary: Google Cloud Container API client library
5
5
  Home-page: https://github.com/googleapis/google-cloud-python/tree/main/packages/google-cloud-container
6
6
  Author: Google LLC
@@ -64,6 +64,7 @@ from google.cloud.container_v1.types.cluster_service import (
64
64
  DefaultSnatStatus,
65
65
  DeleteClusterRequest,
66
66
  DeleteNodePoolRequest,
67
+ DesiredEnterpriseConfig,
67
68
  DnsCacheConfig,
68
69
  DNSConfig,
69
70
  EnterpriseConfig,
@@ -193,6 +194,7 @@ from google.cloud.container_v1.types.cluster_service import (
193
194
  UpdateNodePoolRequest,
194
195
  UpgradeAvailableEvent,
195
196
  UpgradeEvent,
197
+ UpgradeInfoEvent,
196
198
  UpgradeResourceType,
197
199
  UsableSubnetwork,
198
200
  UsableSubnetworkSecondaryRange,
@@ -246,6 +248,7 @@ __all__ = (
246
248
  "DefaultSnatStatus",
247
249
  "DeleteClusterRequest",
248
250
  "DeleteNodePoolRequest",
251
+ "DesiredEnterpriseConfig",
249
252
  "DnsCacheConfig",
250
253
  "DNSConfig",
251
254
  "EnterpriseConfig",
@@ -370,6 +373,7 @@ __all__ = (
370
373
  "UpdateNodePoolRequest",
371
374
  "UpgradeAvailableEvent",
372
375
  "UpgradeEvent",
376
+ "UpgradeInfoEvent",
373
377
  "UsableSubnetwork",
374
378
  "UsableSubnetworkSecondaryRange",
375
379
  "UserManagedKeysConfig",
@@ -13,4 +13,4 @@
13
13
  # See the License for the specific language governing permissions and
14
14
  # limitations under the License.
15
15
  #
16
- __version__ = "2.53.0" # {x-release-please-version}
16
+ __version__ = "2.54.0" # {x-release-please-version}
@@ -59,6 +59,7 @@ from .types.cluster_service import (
59
59
  DefaultSnatStatus,
60
60
  DeleteClusterRequest,
61
61
  DeleteNodePoolRequest,
62
+ DesiredEnterpriseConfig,
62
63
  DnsCacheConfig,
63
64
  DNSConfig,
64
65
  EnterpriseConfig,
@@ -188,6 +189,7 @@ from .types.cluster_service import (
188
189
  UpdateNodePoolRequest,
189
190
  UpgradeAvailableEvent,
190
191
  UpgradeEvent,
192
+ UpgradeInfoEvent,
191
193
  UpgradeResourceType,
192
194
  UsableSubnetwork,
193
195
  UsableSubnetworkSecondaryRange,
@@ -243,6 +245,7 @@ __all__ = (
243
245
  "DefaultSnatStatus",
244
246
  "DeleteClusterRequest",
245
247
  "DeleteNodePoolRequest",
248
+ "DesiredEnterpriseConfig",
246
249
  "DnsCacheConfig",
247
250
  "EnterpriseConfig",
248
251
  "EphemeralStorageLocalSsdConfig",
@@ -371,6 +374,7 @@ __all__ = (
371
374
  "UpdateNodePoolRequest",
372
375
  "UpgradeAvailableEvent",
373
376
  "UpgradeEvent",
377
+ "UpgradeInfoEvent",
374
378
  "UpgradeResourceType",
375
379
  "UsableSubnetwork",
376
380
  "UsableSubnetworkSecondaryRange",
@@ -13,4 +13,4 @@
13
13
  # See the License for the specific language governing permissions and
14
14
  # limitations under the License.
15
15
  #
16
- __version__ = "2.53.0" # {x-release-please-version}
16
+ __version__ = "2.54.0" # {x-release-please-version}
@@ -506,36 +506,6 @@ class ClusterManagerClient(metaclass=ClusterManagerClientMeta):
506
506
  raise ValueError("Universe Domain cannot be an empty string.")
507
507
  return universe_domain
508
508
 
509
- @staticmethod
510
- def _compare_universes(
511
- client_universe: str, credentials: ga_credentials.Credentials
512
- ) -> bool:
513
- """Returns True iff the universe domains used by the client and credentials match.
514
-
515
- Args:
516
- client_universe (str): The universe domain configured via the client options.
517
- credentials (ga_credentials.Credentials): The credentials being used in the client.
518
-
519
- Returns:
520
- bool: True iff client_universe matches the universe in credentials.
521
-
522
- Raises:
523
- ValueError: when client_universe does not match the universe in credentials.
524
- """
525
-
526
- default_universe = ClusterManagerClient._DEFAULT_UNIVERSE
527
- credentials_universe = getattr(credentials, "universe_domain", default_universe)
528
-
529
- if client_universe != credentials_universe:
530
- raise ValueError(
531
- "The configured universe domain "
532
- f"({client_universe}) does not match the universe domain "
533
- f"found in the credentials ({credentials_universe}). "
534
- "If you haven't configured the universe domain explicitly, "
535
- f"`{default_universe}` is the default."
536
- )
537
- return True
538
-
539
509
  def _validate_universe_domain(self):
540
510
  """Validates client's and credentials' universe domains are consistent.
541
511
 
@@ -545,13 +515,9 @@ class ClusterManagerClient(metaclass=ClusterManagerClientMeta):
545
515
  Raises:
546
516
  ValueError: If the configured universe domain is not valid.
547
517
  """
548
- self._is_universe_domain_valid = (
549
- self._is_universe_domain_valid
550
- or ClusterManagerClient._compare_universes(
551
- self.universe_domain, self.transport._credentials
552
- )
553
- )
554
- return self._is_universe_domain_valid
518
+
519
+ # NOTE (b/349488459): universe validation is disabled until further notice.
520
+ return True
555
521
 
556
522
  @property
557
523
  def api_endpoint(self):
@@ -53,6 +53,7 @@ from .cluster_service import (
53
53
  DefaultSnatStatus,
54
54
  DeleteClusterRequest,
55
55
  DeleteNodePoolRequest,
56
+ DesiredEnterpriseConfig,
56
57
  DnsCacheConfig,
57
58
  DNSConfig,
58
59
  EnterpriseConfig,
@@ -182,6 +183,7 @@ from .cluster_service import (
182
183
  UpdateNodePoolRequest,
183
184
  UpgradeAvailableEvent,
184
185
  UpgradeEvent,
186
+ UpgradeInfoEvent,
185
187
  UpgradeResourceType,
186
188
  UsableSubnetwork,
187
189
  UsableSubnetworkSecondaryRange,
@@ -233,6 +235,7 @@ __all__ = (
233
235
  "DefaultSnatStatus",
234
236
  "DeleteClusterRequest",
235
237
  "DeleteNodePoolRequest",
238
+ "DesiredEnterpriseConfig",
236
239
  "DnsCacheConfig",
237
240
  "DNSConfig",
238
241
  "EnterpriseConfig",
@@ -357,6 +360,7 @@ __all__ = (
357
360
  "UpdateNodePoolRequest",
358
361
  "UpgradeAvailableEvent",
359
362
  "UpgradeEvent",
363
+ "UpgradeInfoEvent",
360
364
  "UsableSubnetwork",
361
365
  "UsableSubnetworkSecondaryRange",
362
366
  "UserManagedKeysConfig",
@@ -91,6 +91,7 @@ __protobuf__ = proto.module(
91
91
  "ClusterUpdate",
92
92
  "AdditionalPodRangesConfig",
93
93
  "RangeInfo",
94
+ "DesiredEnterpriseConfig",
94
95
  "Operation",
95
96
  "OperationProgress",
96
97
  "CreateClusterRequest",
@@ -182,6 +183,7 @@ __protobuf__ = proto.module(
182
183
  "NotificationConfig",
183
184
  "ConfidentialNodes",
184
185
  "UpgradeEvent",
186
+ "UpgradeInfoEvent",
185
187
  "UpgradeAvailableEvent",
186
188
  "SecurityBulletinEvent",
187
189
  "Autopilot",
@@ -359,7 +361,8 @@ class LinuxNodeConfig(proto.Message):
359
361
  net.core.netdev_max_backlog net.core.rmem_max
360
362
  net.core.wmem_default net.core.wmem_max net.core.optmem_max
361
363
  net.core.somaxconn net.ipv4.tcp_rmem net.ipv4.tcp_wmem
362
- net.ipv4.tcp_tw_reuse
364
+ net.ipv4.tcp_tw_reuse kernel.shmmni kernel.shmmax
365
+ kernel.shmall
363
366
  cgroup_mode (google.cloud.container_v1.types.LinuxNodeConfig.CgroupMode):
364
367
  cgroup_mode specifies the cgroup mode to be used on the
365
368
  node.
@@ -780,6 +783,11 @@ class NodeConfig(proto.Message):
780
783
  Secondary boot disk update strategy.
781
784
 
782
785
  This field is a member of `oneof`_ ``_secondary_boot_disk_update_strategy``.
786
+ local_ssd_encryption_mode (google.cloud.container_v1.types.NodeConfig.LocalSsdEncryptionMode):
787
+ Specifies which method should be used for
788
+ encrypting the Local SSDs attahced to the node.
789
+
790
+ This field is a member of `oneof`_ ``_local_ssd_encryption_mode``.
783
791
  effective_cgroup_mode (google.cloud.container_v1.types.NodeConfig.EffectiveCgroupMode):
784
792
  Output only. effective_cgroup_mode is the cgroup mode
785
793
  actually used by the node pool. It is determined by the
@@ -787,6 +795,29 @@ class NodeConfig(proto.Message):
787
795
  cgroup mode based on the cluster creation version.
788
796
  """
789
797
 
798
+ class LocalSsdEncryptionMode(proto.Enum):
799
+ r"""LocalSsdEncryptionMode specifies the method used for
800
+ encrypting the Local SSDs attached to the node.
801
+
802
+ Values:
803
+ LOCAL_SSD_ENCRYPTION_MODE_UNSPECIFIED (0):
804
+ The given node will be encrypted using keys
805
+ managed by Google infrastructure and the keys
806
+ will be deleted when the node is deleted.
807
+ STANDARD_ENCRYPTION (1):
808
+ The given node will be encrypted using keys
809
+ managed by Google infrastructure and the keys
810
+ will be deleted when the node is deleted.
811
+ EPHEMERAL_KEY_ENCRYPTION (2):
812
+ The given node will opt-in for using
813
+ ephemeral key for encryption of Local SSDs.
814
+ The Local SSDs will not be able to recover data
815
+ in case of node crash.
816
+ """
817
+ LOCAL_SSD_ENCRYPTION_MODE_UNSPECIFIED = 0
818
+ STANDARD_ENCRYPTION = 1
819
+ EPHEMERAL_KEY_ENCRYPTION = 2
820
+
790
821
  class EffectiveCgroupMode(proto.Enum):
791
822
  r"""Possible effective cgroup modes for the node.
792
823
 
@@ -995,6 +1026,12 @@ class NodeConfig(proto.Message):
995
1026
  message="SecondaryBootDiskUpdateStrategy",
996
1027
  )
997
1028
  )
1029
+ local_ssd_encryption_mode: LocalSsdEncryptionMode = proto.Field(
1030
+ proto.ENUM,
1031
+ number=54,
1032
+ optional=True,
1033
+ enum=LocalSsdEncryptionMode,
1034
+ )
998
1035
  effective_cgroup_mode: EffectiveCgroupMode = proto.Field(
999
1036
  proto.ENUM,
1000
1037
  number=55,
@@ -3750,6 +3787,9 @@ class NodePoolAutoConfig(proto.Message):
3750
3787
 
3751
3788
  Currently only ``insecure_kubelet_readonly_port_enabled``
3752
3789
  can be set here.
3790
+ linux_node_config (google.cloud.container_v1.types.LinuxNodeConfig):
3791
+ Output only. Configuration options for Linux
3792
+ nodes.
3753
3793
  """
3754
3794
 
3755
3795
  network_tags: "NetworkTags" = proto.Field(
@@ -3767,6 +3807,11 @@ class NodePoolAutoConfig(proto.Message):
3767
3807
  number=3,
3768
3808
  message="NodeKubeletConfig",
3769
3809
  )
3810
+ linux_node_config: "LinuxNodeConfig" = proto.Field(
3811
+ proto.MESSAGE,
3812
+ number=4,
3813
+ message="LinuxNodeConfig",
3814
+ )
3770
3815
 
3771
3816
 
3772
3817
  class NodePoolDefaults(proto.Message):
@@ -4119,6 +4164,15 @@ class ClusterUpdate(proto.Message):
4119
4164
  created.
4120
4165
 
4121
4166
  This field is a member of `oneof`_ ``_desired_rbac_binding_config``.
4167
+ desired_enterprise_config (google.cloud.container_v1.types.DesiredEnterpriseConfig):
4168
+ The desired enterprise configuration for the
4169
+ cluster.
4170
+ desired_node_pool_auto_config_linux_node_config (google.cloud.container_v1.types.LinuxNodeConfig):
4171
+ The desired Linux node config for all auto-provisioned node
4172
+ pools in autopilot clusters and node auto-provisioning
4173
+ enabled clusters.
4174
+
4175
+ Currently only ``cgroup_mode`` can be set here.
4122
4176
  """
4123
4177
 
4124
4178
  desired_node_version: str = proto.Field(
@@ -4431,6 +4485,16 @@ class ClusterUpdate(proto.Message):
4431
4485
  optional=True,
4432
4486
  message="RBACBindingConfig",
4433
4487
  )
4488
+ desired_enterprise_config: "DesiredEnterpriseConfig" = proto.Field(
4489
+ proto.MESSAGE,
4490
+ number=147,
4491
+ message="DesiredEnterpriseConfig",
4492
+ )
4493
+ desired_node_pool_auto_config_linux_node_config: "LinuxNodeConfig" = proto.Field(
4494
+ proto.MESSAGE,
4495
+ number=150,
4496
+ message="LinuxNodeConfig",
4497
+ )
4434
4498
 
4435
4499
 
4436
4500
  class AdditionalPodRangesConfig(proto.Message):
@@ -4478,6 +4542,22 @@ class RangeInfo(proto.Message):
4478
4542
  )
4479
4543
 
4480
4544
 
4545
+ class DesiredEnterpriseConfig(proto.Message):
4546
+ r"""DesiredEnterpriseConfig is a wrapper used for updating
4547
+ enterprise_config.
4548
+
4549
+ Attributes:
4550
+ desired_tier (google.cloud.container_v1.types.EnterpriseConfig.ClusterTier):
4551
+ desired_tier specifies the desired tier of the cluster.
4552
+ """
4553
+
4554
+ desired_tier: "EnterpriseConfig.ClusterTier" = proto.Field(
4555
+ proto.ENUM,
4556
+ number=1,
4557
+ enum="EnterpriseConfig.ClusterTier",
4558
+ )
4559
+
4560
+
4481
4561
  class Operation(proto.Message):
4482
4562
  r"""This operation resource represents operations that may have
4483
4563
  happened or are happening on the cluster. All fields are output
@@ -7624,10 +7704,11 @@ class NodePoolAutoscaling(proto.Message):
7624
7704
  enabled (bool):
7625
7705
  Is autoscaling enabled for this node pool.
7626
7706
  min_node_count (int):
7627
- Minimum number of nodes for one location in the NodePool.
7628
- Must be >= 1 and <= max_node_count.
7707
+ Minimum number of nodes for one location in the node pool.
7708
+ Must be greater than or equal to 0 and less than or equal to
7709
+ max_node_count.
7629
7710
  max_node_count (int):
7630
- Maximum number of nodes for one location in the NodePool.
7711
+ Maximum number of nodes for one location in the node pool.
7631
7712
  Must be >= min_node_count. There has to be enough quota to
7632
7713
  scale up the cluster.
7633
7714
  autoprovisioned (bool):
@@ -7637,14 +7718,14 @@ class NodePoolAutoscaling(proto.Message):
7637
7718
  nodepool.
7638
7719
  total_min_node_count (int):
7639
7720
  Minimum number of nodes in the node pool. Must be greater
7640
- than 1 less than total_max_node_count. The
7641
- total_*_node_count fields are mutually exclusive with the
7642
- \*_node_count fields.
7721
+ than or equal to 0 and less than or equal to
7722
+ total_max_node_count. The total_*_node_count fields are
7723
+ mutually exclusive with the \*_node_count fields.
7643
7724
  total_max_node_count (int):
7644
7725
  Maximum number of nodes in the node pool. Must be greater
7645
- than total_min_node_count. There has to be enough quota to
7646
- scale up the cluster. The total_*_node_count fields are
7647
- mutually exclusive with the \*_node_count fields.
7726
+ than or equal to total_min_node_count. There has to be
7727
+ enough quota to scale up the cluster. The total_*_node_count
7728
+ fields are mutually exclusive with the \*_node_count fields.
7648
7729
  """
7649
7730
 
7650
7731
  class LocationPolicy(proto.Enum):
@@ -9636,6 +9717,98 @@ class UpgradeEvent(proto.Message):
9636
9717
  )
9637
9718
 
9638
9719
 
9720
+ class UpgradeInfoEvent(proto.Message):
9721
+ r"""UpgradeInfoEvent is a notification sent to customers about
9722
+ the upgrade information of a resource.
9723
+
9724
+ Attributes:
9725
+ resource_type (google.cloud.container_v1.types.UpgradeResourceType):
9726
+ The resource type associated with the
9727
+ upgrade.
9728
+ operation (str):
9729
+ The operation associated with this upgrade.
9730
+ start_time (google.protobuf.timestamp_pb2.Timestamp):
9731
+ The time when the operation was started.
9732
+ end_time (google.protobuf.timestamp_pb2.Timestamp):
9733
+ The time when the operation ended.
9734
+ current_version (str):
9735
+ The current version before the upgrade.
9736
+ target_version (str):
9737
+ The target version for the upgrade.
9738
+ resource (str):
9739
+ Optional relative path to the resource. For
9740
+ example in node pool upgrades, the relative path
9741
+ of the node pool.
9742
+ state (google.cloud.container_v1.types.UpgradeInfoEvent.State):
9743
+ Output only. The state of the upgrade.
9744
+ description (str):
9745
+ A brief description of the event.
9746
+ """
9747
+
9748
+ class State(proto.Enum):
9749
+ r"""The state of the upgrade.
9750
+
9751
+ Values:
9752
+ STATE_UNSPECIFIED (0):
9753
+ STATE_UNSPECIFIED indicates the state is unspecified.
9754
+ STARTED (3):
9755
+ STARTED indicates the upgrade has started.
9756
+ SUCCEEDED (4):
9757
+ SUCCEEDED indicates the upgrade has completed
9758
+ successfully.
9759
+ FAILED (5):
9760
+ FAILED indicates the upgrade has failed.
9761
+ CANCELED (6):
9762
+ CANCELED indicates the upgrade has canceled.
9763
+ """
9764
+ STATE_UNSPECIFIED = 0
9765
+ STARTED = 3
9766
+ SUCCEEDED = 4
9767
+ FAILED = 5
9768
+ CANCELED = 6
9769
+
9770
+ resource_type: "UpgradeResourceType" = proto.Field(
9771
+ proto.ENUM,
9772
+ number=1,
9773
+ enum="UpgradeResourceType",
9774
+ )
9775
+ operation: str = proto.Field(
9776
+ proto.STRING,
9777
+ number=2,
9778
+ )
9779
+ start_time: timestamp_pb2.Timestamp = proto.Field(
9780
+ proto.MESSAGE,
9781
+ number=3,
9782
+ message=timestamp_pb2.Timestamp,
9783
+ )
9784
+ end_time: timestamp_pb2.Timestamp = proto.Field(
9785
+ proto.MESSAGE,
9786
+ number=4,
9787
+ message=timestamp_pb2.Timestamp,
9788
+ )
9789
+ current_version: str = proto.Field(
9790
+ proto.STRING,
9791
+ number=5,
9792
+ )
9793
+ target_version: str = proto.Field(
9794
+ proto.STRING,
9795
+ number=6,
9796
+ )
9797
+ resource: str = proto.Field(
9798
+ proto.STRING,
9799
+ number=7,
9800
+ )
9801
+ state: State = proto.Field(
9802
+ proto.ENUM,
9803
+ number=8,
9804
+ enum=State,
9805
+ )
9806
+ description: str = proto.Field(
9807
+ proto.STRING,
9808
+ number=11,
9809
+ )
9810
+
9811
+
9639
9812
  class UpgradeAvailableEvent(proto.Message):
9640
9813
  r"""UpgradeAvailableEvent is a notification sent to customers
9641
9814
  when a new available version is released.
@@ -10375,6 +10548,8 @@ class EnterpriseConfig(proto.Message):
10375
10548
  cluster_tier (google.cloud.container_v1.types.EnterpriseConfig.ClusterTier):
10376
10549
  Output only. cluster_tier indicates the effective tier of
10377
10550
  the cluster.
10551
+ desired_tier (google.cloud.container_v1.types.EnterpriseConfig.ClusterTier):
10552
+ desired_tier specifies the desired tier of the cluster.
10378
10553
  """
10379
10554
 
10380
10555
  class ClusterTier(proto.Enum):
@@ -10398,6 +10573,11 @@ class EnterpriseConfig(proto.Message):
10398
10573
  number=1,
10399
10574
  enum=ClusterTier,
10400
10575
  )
10576
+ desired_tier: ClusterTier = proto.Field(
10577
+ proto.ENUM,
10578
+ number=2,
10579
+ enum=ClusterTier,
10580
+ )
10401
10581
 
10402
10582
 
10403
10583
  class SecretManagerConfig(proto.Message):
@@ -13,4 +13,4 @@
13
13
  # See the License for the specific language governing permissions and
14
14
  # limitations under the License.
15
15
  #
16
- __version__ = "2.53.0" # {x-release-please-version}
16
+ __version__ = "2.54.0" # {x-release-please-version}
@@ -456,36 +456,6 @@ class ClusterManagerClient(metaclass=ClusterManagerClientMeta):
456
456
  raise ValueError("Universe Domain cannot be an empty string.")
457
457
  return universe_domain
458
458
 
459
- @staticmethod
460
- def _compare_universes(
461
- client_universe: str, credentials: ga_credentials.Credentials
462
- ) -> bool:
463
- """Returns True iff the universe domains used by the client and credentials match.
464
-
465
- Args:
466
- client_universe (str): The universe domain configured via the client options.
467
- credentials (ga_credentials.Credentials): The credentials being used in the client.
468
-
469
- Returns:
470
- bool: True iff client_universe matches the universe in credentials.
471
-
472
- Raises:
473
- ValueError: when client_universe does not match the universe in credentials.
474
- """
475
-
476
- default_universe = ClusterManagerClient._DEFAULT_UNIVERSE
477
- credentials_universe = getattr(credentials, "universe_domain", default_universe)
478
-
479
- if client_universe != credentials_universe:
480
- raise ValueError(
481
- "The configured universe domain "
482
- f"({client_universe}) does not match the universe domain "
483
- f"found in the credentials ({credentials_universe}). "
484
- "If you haven't configured the universe domain explicitly, "
485
- f"`{default_universe}` is the default."
486
- )
487
- return True
488
-
489
459
  def _validate_universe_domain(self):
490
460
  """Validates client's and credentials' universe domains are consistent.
491
461
 
@@ -495,13 +465,9 @@ class ClusterManagerClient(metaclass=ClusterManagerClientMeta):
495
465
  Raises:
496
466
  ValueError: If the configured universe domain is not valid.
497
467
  """
498
- self._is_universe_domain_valid = (
499
- self._is_universe_domain_valid
500
- or ClusterManagerClient._compare_universes(
501
- self.universe_domain, self.transport._credentials
502
- )
503
- )
504
- return self._is_universe_domain_valid
468
+
469
+ # NOTE (b/349488459): universe validation is disabled until further notice.
470
+ return True
505
471
 
506
472
  @property
507
473
  def api_endpoint(self):
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: google-cloud-container
3
- Version: 2.53.0
3
+ Version: 2.54.0
4
4
  Summary: Google Cloud Container API client library
5
5
  Home-page: https://github.com/googleapis/google-cloud-python/tree/main/packages/google-cloud-container
6
6
  Author: Google LLC
@@ -323,86 +323,6 @@ def test__get_universe_domain():
323
323
  assert str(excinfo.value) == "Universe Domain cannot be an empty string."
324
324
 
325
325
 
326
- @pytest.mark.parametrize(
327
- "client_class,transport_class,transport_name",
328
- [
329
- (ClusterManagerClient, transports.ClusterManagerGrpcTransport, "grpc"),
330
- (ClusterManagerClient, transports.ClusterManagerRestTransport, "rest"),
331
- ],
332
- )
333
- def test__validate_universe_domain(client_class, transport_class, transport_name):
334
- client = client_class(
335
- transport=transport_class(credentials=ga_credentials.AnonymousCredentials())
336
- )
337
- assert client._validate_universe_domain() == True
338
-
339
- # Test the case when universe is already validated.
340
- assert client._validate_universe_domain() == True
341
-
342
- if transport_name == "grpc":
343
- # Test the case where credentials are provided by the
344
- # `local_channel_credentials`. The default universes in both match.
345
- channel = grpc.secure_channel(
346
- "http://localhost/", grpc.local_channel_credentials()
347
- )
348
- client = client_class(transport=transport_class(channel=channel))
349
- assert client._validate_universe_domain() == True
350
-
351
- # Test the case where credentials do not exist: e.g. a transport is provided
352
- # with no credentials. Validation should still succeed because there is no
353
- # mismatch with non-existent credentials.
354
- channel = grpc.secure_channel(
355
- "http://localhost/", grpc.local_channel_credentials()
356
- )
357
- transport = transport_class(channel=channel)
358
- transport._credentials = None
359
- client = client_class(transport=transport)
360
- assert client._validate_universe_domain() == True
361
-
362
- # TODO: This is needed to cater for older versions of google-auth
363
- # Make this test unconditional once the minimum supported version of
364
- # google-auth becomes 2.23.0 or higher.
365
- google_auth_major, google_auth_minor = [
366
- int(part) for part in google.auth.__version__.split(".")[0:2]
367
- ]
368
- if google_auth_major > 2 or (google_auth_major == 2 and google_auth_minor >= 23):
369
- credentials = ga_credentials.AnonymousCredentials()
370
- credentials._universe_domain = "foo.com"
371
- # Test the case when there is a universe mismatch from the credentials.
372
- client = client_class(transport=transport_class(credentials=credentials))
373
- with pytest.raises(ValueError) as excinfo:
374
- client._validate_universe_domain()
375
- assert (
376
- str(excinfo.value)
377
- == "The configured universe domain (googleapis.com) does not match the universe domain found in the credentials (foo.com). If you haven't configured the universe domain explicitly, `googleapis.com` is the default."
378
- )
379
-
380
- # Test the case when there is a universe mismatch from the client.
381
- #
382
- # TODO: Make this test unconditional once the minimum supported version of
383
- # google-api-core becomes 2.15.0 or higher.
384
- api_core_major, api_core_minor = [
385
- int(part) for part in api_core_version.__version__.split(".")[0:2]
386
- ]
387
- if api_core_major > 2 or (api_core_major == 2 and api_core_minor >= 15):
388
- client = client_class(
389
- client_options={"universe_domain": "bar.com"},
390
- transport=transport_class(
391
- credentials=ga_credentials.AnonymousCredentials(),
392
- ),
393
- )
394
- with pytest.raises(ValueError) as excinfo:
395
- client._validate_universe_domain()
396
- assert (
397
- str(excinfo.value)
398
- == "The configured universe domain (bar.com) does not match the universe domain found in the credentials (googleapis.com). If you haven't configured the universe domain explicitly, `googleapis.com` is the default."
399
- )
400
-
401
- # Test that ValueError is raised if universe_domain is provided via client options and credentials is None
402
- with pytest.raises(ValueError):
403
- client._compare_universes("foo.bar", None)
404
-
405
-
406
326
  @pytest.mark.parametrize(
407
327
  "client_class,transport_name",
408
328
  [
@@ -318,85 +318,6 @@ def test__get_universe_domain():
318
318
  assert str(excinfo.value) == "Universe Domain cannot be an empty string."
319
319
 
320
320
 
321
- @pytest.mark.parametrize(
322
- "client_class,transport_class,transport_name",
323
- [
324
- (ClusterManagerClient, transports.ClusterManagerGrpcTransport, "grpc"),
325
- ],
326
- )
327
- def test__validate_universe_domain(client_class, transport_class, transport_name):
328
- client = client_class(
329
- transport=transport_class(credentials=ga_credentials.AnonymousCredentials())
330
- )
331
- assert client._validate_universe_domain() == True
332
-
333
- # Test the case when universe is already validated.
334
- assert client._validate_universe_domain() == True
335
-
336
- if transport_name == "grpc":
337
- # Test the case where credentials are provided by the
338
- # `local_channel_credentials`. The default universes in both match.
339
- channel = grpc.secure_channel(
340
- "http://localhost/", grpc.local_channel_credentials()
341
- )
342
- client = client_class(transport=transport_class(channel=channel))
343
- assert client._validate_universe_domain() == True
344
-
345
- # Test the case where credentials do not exist: e.g. a transport is provided
346
- # with no credentials. Validation should still succeed because there is no
347
- # mismatch with non-existent credentials.
348
- channel = grpc.secure_channel(
349
- "http://localhost/", grpc.local_channel_credentials()
350
- )
351
- transport = transport_class(channel=channel)
352
- transport._credentials = None
353
- client = client_class(transport=transport)
354
- assert client._validate_universe_domain() == True
355
-
356
- # TODO: This is needed to cater for older versions of google-auth
357
- # Make this test unconditional once the minimum supported version of
358
- # google-auth becomes 2.23.0 or higher.
359
- google_auth_major, google_auth_minor = [
360
- int(part) for part in google.auth.__version__.split(".")[0:2]
361
- ]
362
- if google_auth_major > 2 or (google_auth_major == 2 and google_auth_minor >= 23):
363
- credentials = ga_credentials.AnonymousCredentials()
364
- credentials._universe_domain = "foo.com"
365
- # Test the case when there is a universe mismatch from the credentials.
366
- client = client_class(transport=transport_class(credentials=credentials))
367
- with pytest.raises(ValueError) as excinfo:
368
- client._validate_universe_domain()
369
- assert (
370
- str(excinfo.value)
371
- == "The configured universe domain (googleapis.com) does not match the universe domain found in the credentials (foo.com). If you haven't configured the universe domain explicitly, `googleapis.com` is the default."
372
- )
373
-
374
- # Test the case when there is a universe mismatch from the client.
375
- #
376
- # TODO: Make this test unconditional once the minimum supported version of
377
- # google-api-core becomes 2.15.0 or higher.
378
- api_core_major, api_core_minor = [
379
- int(part) for part in api_core_version.__version__.split(".")[0:2]
380
- ]
381
- if api_core_major > 2 or (api_core_major == 2 and api_core_minor >= 15):
382
- client = client_class(
383
- client_options={"universe_domain": "bar.com"},
384
- transport=transport_class(
385
- credentials=ga_credentials.AnonymousCredentials(),
386
- ),
387
- )
388
- with pytest.raises(ValueError) as excinfo:
389
- client._validate_universe_domain()
390
- assert (
391
- str(excinfo.value)
392
- == "The configured universe domain (bar.com) does not match the universe domain found in the credentials (googleapis.com). If you haven't configured the universe domain explicitly, `googleapis.com` is the default."
393
- )
394
-
395
- # Test that ValueError is raised if universe_domain is provided via client options and credentials is None
396
- with pytest.raises(ValueError):
397
- client._compare_universes("foo.bar", None)
398
-
399
-
400
321
  @pytest.mark.parametrize(
401
322
  "client_class,transport_name",
402
323
  [