diff --git a/paasta_tools/kubernetes_tools.py b/paasta_tools/kubernetes_tools.py index da4ab08ad5..fe2d1337f9 100644 --- a/paasta_tools/kubernetes_tools.py +++ b/paasta_tools/kubernetes_tools.py @@ -47,7 +47,7 @@ from kubernetes.client import models from kubernetes.client import V1Affinity from kubernetes.client import V1AWSElasticBlockStoreVolumeSource -from kubernetes.client import V1Beta1CustomResourceDefinition +from kubernetes.client import V1beta1CustomResourceDefinition from kubernetes.client import V1beta1PodDisruptionBudget from kubernetes.client import V1beta1PodDisruptionBudgetSpec from kubernetes.client import V1Capabilities @@ -65,12 +65,12 @@ from kubernetes.client import V1EnvVar from kubernetes.client import V1EnvVarSource from kubernetes.client import V1ExecAction +from kubernetes.client import V1Handler from kubernetes.client import V1HostPathVolumeSource from kubernetes.client import V1HTTPGetAction from kubernetes.client import V1KeyToPath from kubernetes.client import V1LabelSelector from kubernetes.client import V1Lifecycle -from kubernetes.client import V1LifecycleHandler from kubernetes.client import V1Namespace from kubernetes.client import V1Node from kubernetes.client import V1NodeAffinity @@ -1037,7 +1037,7 @@ def get_hacheck_sidecar_container( return V1Container( image=system_paasta_config.get_hacheck_sidecar_image_url(), lifecycle=V1Lifecycle( - pre_stop=V1LifecycleHandler( + pre_stop=V1Handler( _exec=V1ExecAction( command=[ "/bin/sh", @@ -1079,7 +1079,7 @@ def get_uwsgi_exporter_sidecar_container( env=self.get_kubernetes_environment() + [stats_port_env], ports=[V1ContainerPort(container_port=9117)], lifecycle=V1Lifecycle( - pre_stop=V1LifecycleHandler( + pre_stop=V1Handler( _exec=V1ExecAction( command=[ "/bin/sh", @@ -1389,20 +1389,20 @@ def get_readiness_probe( else: return self.get_liveness_probe(service_namespace_config) - def get_kubernetes_container_termination_action(self) -> V1LifecycleHandler: + def get_kubernetes_container_termination_action(self) -> V1Handler: command = self.config_dict.get("lifecycle", KubeLifecycleDict({})).get( "pre_stop_command", [] ) # default pre stop hook for the container if not command: - return V1LifecycleHandler( + return V1Handler( _exec=V1ExecAction( command=["/bin/sh", "-c", f"sleep {DEFAULT_PRESTOP_SLEEP_SECONDS}"] ) ) if isinstance(command, str): command = [command] - return V1LifecycleHandler(_exec=V1ExecAction(command=command)) + return V1Handler(_exec=V1ExecAction(command=command)) def get_pod_volumes( self, @@ -3813,7 +3813,7 @@ def mode_to_int(mode: Optional[Union[str, int]]) -> Optional[int]: def update_crds( kube_client: KubeClient, desired_crds: Collection[ - V1CustomResourceDefinition | V1Beta1CustomResourceDefinition + Union[V1CustomResourceDefinition, V1beta1CustomResourceDefinition] ], existing_crds: V1CustomResourceDefinitionList, ) -> bool: diff --git a/paasta_tools/setup_kubernetes_crd.py b/paasta_tools/setup_kubernetes_crd.py index a93797d3ee..738de424d3 100644 --- a/paasta_tools/setup_kubernetes_crd.py +++ b/paasta_tools/setup_kubernetes_crd.py @@ -27,7 +27,7 @@ from typing import Sequence import service_configuration_lib -from kubernetes.client import V1Beta1CustomResourceDefinition +from kubernetes.client import V1beta1CustomResourceDefinition from kubernetes.client import V1CustomResourceDefinition from paasta_tools.kubernetes_tools import KubeClient @@ -127,7 +127,7 @@ def setup_kube_crd( metadata["labels"]["yelp.com/paasta_service"] = service metadata["labels"][paasta_prefixed("service")] = service if isinstance(kube_client, KubeClientV1Beta1): - desired_crd = V1Beta1CustomResourceDefinition( + desired_crd = V1beta1CustomResourceDefinition( api_version=crd_config.get("apiVersion"), kind=crd_config.get("kind"), metadata=metadata, diff --git a/tests/test_kubernetes_tools.py b/tests/test_kubernetes_tools.py index 986de4cf69..39d4883ef6 100644 --- a/tests/test_kubernetes_tools.py +++ b/tests/test_kubernetes_tools.py @@ -24,12 +24,12 @@ from kubernetes.client import V1EnvVar from kubernetes.client import V1EnvVarSource from kubernetes.client import V1ExecAction +from kubernetes.client import V1Handler from kubernetes.client import V1HostPathVolumeSource from kubernetes.client import V1HTTPGetAction from kubernetes.client import V1KeyToPath from kubernetes.client import V1LabelSelector from kubernetes.client import V1Lifecycle -from kubernetes.client import V1LifecycleHandler from kubernetes.client import V1NodeAffinity from kubernetes.client import V1NodeSelector from kubernetes.client import V1NodeSelectorRequirement @@ -559,7 +559,7 @@ def test_get_sidecar_containers(self): ], image="some-docker-image", lifecycle=V1Lifecycle( - pre_stop=V1LifecycleHandler( + pre_stop=V1Handler( _exec=V1ExecAction( command=[ "/bin/sh", @@ -605,7 +605,7 @@ def test_get_sidecar_containers(self): ], image="some-docker-image", lifecycle=V1Lifecycle( - pre_stop=V1LifecycleHandler( + pre_stop=V1Handler( _exec=V1ExecAction( command=[ "/bin/sh", @@ -1005,7 +1005,7 @@ def test_get_kubernetes_containers(self, prometheus_port, expected_ports): resources=mock_get_resource_requirements.return_value, image=mock_get_docker_url.return_value, lifecycle=V1Lifecycle( - pre_stop=V1LifecycleHandler( + pre_stop=V1Handler( _exec=V1ExecAction(command=["/bin/sh", "-c", "sleep 30"]) ) ), @@ -1949,7 +1949,7 @@ def test_kubernetes_container_termination_action( self.deployment.config_dict["lifecycle"] = { "pre_stop_command": termination_action } - handler = V1LifecycleHandler(_exec=V1ExecAction(command=expected)) + handler = V1Handler(_exec=V1ExecAction(command=expected)) assert self.deployment.get_kubernetes_container_termination_action() == handler @pytest.mark.parametrize( @@ -3965,7 +3965,7 @@ def test_warning_big_bounce(): job_config.format_kubernetes_app().spec.template.metadata.labels[ "paasta.yelp.com/config_sha" ] - == "configd6531f39" + == "config5abf6b07" ), "If this fails, just change the constant in this test, but be aware that deploying this change will cause every service to bounce!" @@ -4011,7 +4011,7 @@ def test_warning_big_bounce_routable_pod(): job_config.format_kubernetes_app().spec.template.metadata.labels[ "paasta.yelp.com/config_sha" ] - == "configa5abd828" + == "config8ee1bd70" ), "If this fails, just change the constant in this test, but be aware that deploying this change will cause every smartstack-registered service to bounce!"