diff --git a/examples/create_deployment.py b/examples/create_deployment.py index 0ce1e2fa1d..87f50eeaee 100644 --- a/examples/create_deployment.py +++ b/examples/create_deployment.py @@ -27,8 +27,8 @@ def main(): with open(path.join(path.dirname(__file__), "nginx-deployment.yaml")) as f: dep = yaml.safe_load(f) - k8s_beta = client.ExtensionsV1beta1Api() - resp = k8s_beta.create_namespaced_deployment( + k8s_apps_v1 = client.AppsV1Api() + resp = k8s_apps_v1.create_namespaced_deployment( body=dep, namespace="default") print("Deployment created. status='%s'" % str(resp.status)) diff --git a/examples/create_deployment_from_yaml.py b/examples/create_deployment_from_yaml.py index dcb7ac14d7..d66a2b6b8c 100644 --- a/examples/create_deployment_from_yaml.py +++ b/examples/create_deployment_from_yaml.py @@ -24,7 +24,7 @@ def main(): config.load_kube_config() k8s_client = client.ApiClient() utils.create_from_yaml(k8s_client, "nginx-deployment.yaml") - k8s_api = client.ExtensionsV1beta1Api(k8s_client) + k8s_api = client.AppsV1Api(k8s_client) deps = k8s_api.read_namespaced_deployment("nginx-deployment", "default") print("Deployment {0} created".format(deps.metadata.name)) diff --git a/examples/deployment_examples.py b/examples/deployment_examples.py index 29f55d34d3..5ec656fc7d 100644 --- a/examples/deployment_examples.py +++ b/examples/deployment_examples.py @@ -25,19 +25,19 @@ def create_deployment_object(): # Configureate Pod template container container = client.V1Container( name="nginx", - image="nginx:1.7.9", + image="nginx:1.15.4", ports=[client.V1ContainerPort(container_port=80)]) # Create and configurate a spec section template = client.V1PodTemplateSpec( metadata=client.V1ObjectMeta(labels={"app": "nginx"}), spec=client.V1PodSpec(containers=[container])) # Create the specification of deployment - spec = client.ExtensionsV1beta1DeploymentSpec( + spec = client.AppsV1beta1DeploymentSpec( replicas=3, template=template) # Instantiate the deployment object - deployment = client.ExtensionsV1beta1Deployment( - api_version="extensions/v1beta1", + deployment = client.AppsV1beta1Deployment( + api_version="apps/v1beta1", kind="Deployment", metadata=client.V1ObjectMeta(name=DEPLOYMENT_NAME), spec=spec) @@ -55,7 +55,7 @@ def create_deployment(api_instance, deployment): def update_deployment(api_instance, deployment): # Update container image - deployment.spec.template.spec.containers[0].image = "nginx:1.9.1" + deployment.spec.template.spec.containers[0].image = "nginx:1.16.0" # Update the deployment api_response = api_instance.patch_namespaced_deployment( name=DEPLOYMENT_NAME, @@ -80,16 +80,16 @@ def main(): # utility. If no argument provided, the config will be loaded from # default location. config.load_kube_config() - extensions_v1beta1 = client.ExtensionsV1beta1Api() + apps_v1beta1 = client.AppsV1beta1Api() # Create a deployment object with client-python API. The deployment we # created is same as the `nginx-deployment.yaml` in the /examples folder. deployment = create_deployment_object() - create_deployment(extensions_v1beta1, deployment) + create_deployment(apps_v1beta1, deployment) - update_deployment(extensions_v1beta1, deployment) + update_deployment(apps_v1beta1, deployment) - delete_deployment(extensions_v1beta1) + delete_deployment(apps_v1beta1) if __name__ == '__main__': diff --git a/examples/nginx-deployment.yaml b/examples/nginx-deployment.yaml index d05940d29b..5dd80da371 100644 --- a/examples/nginx-deployment.yaml +++ b/examples/nginx-deployment.yaml @@ -1,9 +1,14 @@ -apiVersion: extensions/v1beta1 +apiVersion: apps/v1 kind: Deployment metadata: name: nginx-deployment + labels: + app: nginx spec: replicas: 3 + selector: + matchLabels: + app: nginx template: metadata: labels: @@ -11,7 +16,6 @@ spec: spec: containers: - name: nginx - image: nginx:1.7.9 + image: nginx:1.15.4 ports: - containerPort: 80 - diff --git a/examples/notebooks/create_deployment.ipynb b/examples/notebooks/create_deployment.ipynb index 0fa6c05105..b4e1229dd7 100644 --- a/examples/notebooks/create_deployment.ipynb +++ b/examples/notebooks/create_deployment.ipynb @@ -47,7 +47,7 @@ "outputs": [], "source": [ "config.load_kube_config()\n", - "extension = client.ExtensionsV1beta1Api()" + "apps_api = client.AppsV1beta1Api()" ] }, { @@ -70,7 +70,7 @@ }, "outputs": [], "source": [ - "deployment = client.ExtensionsV1beta1Deployment()" + "deployment = client.AppsV1beta1Deployment()" ] }, { @@ -93,7 +93,7 @@ }, "outputs": [], "source": [ - "deployment.api_version = \"extensions/v1beta1\"\n", + "deployment.api_version = \"apps/v1beta1\"\n", "deployment.kind = \"Deployment\"\n", "deployment.metadata = client.V1ObjectMeta(name=\"nginx-deployment\")" ] @@ -118,7 +118,7 @@ }, "outputs": [], "source": [ - "spec = client.ExtensionsV1beta1DeploymentSpec()\n", + "spec = client.AppsV1beta1DeploymentSpec()\n", "spec.replicas = 3" ] }, @@ -207,7 +207,7 @@ }, "outputs": [], "source": [ - "extension.create_namespaced_deployment(namespace=\"default\", body=deployment)" + "apps_api.create_namespaced_deployment(namespace=\"default\", body=deployment)" ] }, { @@ -253,7 +253,7 @@ }, "outputs": [], "source": [ - "extension.replace_namespaced_deployment(name=\"nginx-deployment\", namespace=\"default\", body=deployment)" + "apps_api.replace_namespaced_deployment(name=\"nginx-deployment\", namespace=\"default\", body=deployment)" ] }, { @@ -277,10 +277,10 @@ }, "outputs": [], "source": [ - "rollback = client.ExtensionsV1beta1DeploymentRollback()\n", - "rollback.api_version = \"extensions/v1beta1\"\n", + "rollback = client.AppsV1beta1DeploymentRollback()\n", + "rollback.api_version = \"apps/v1beta1\"\n", "rollback.kind = \"DeploymentRollback\"\n", - "rollback.rollback_to = client.ExtensionsV1beta1RollbackConfig()\n", + "rollback.rollback_to = client.AppsV1beta1RollbackConfig()\n", "rollback.rollback_to.revision = 0\n", "rollback.name = \"nginx-deployment\"" ] diff --git a/examples/notebooks/intro_notebook.ipynb b/examples/notebooks/intro_notebook.ipynb index 53bf63185b..b4e3b8e8e9 100644 --- a/examples/notebooks/intro_notebook.ipynb +++ b/examples/notebooks/intro_notebook.ipynb @@ -89,9 +89,9 @@ }, "outputs": [], "source": [ - "api_instance = client.ExtensionsV1beta1Api()\n", - "dep = client.ExtensionsV1beta1Deployment()\n", - "spec = client.ExtensionsV1beta1DeploymentSpec()" + "api_instance = client.AppsV1beta1Api()\n", + "dep = client.AppsV1beta1Deployment()\n", + "spec = client.AppsV1beta1DeploymentSpec()" ] }, { diff --git a/kubernetes/e2e_test/test_utils.py b/kubernetes/e2e_test/test_utils.py index b5684a7986..edbc104f82 100644 --- a/kubernetes/e2e_test/test_utils.py +++ b/kubernetes/e2e_test/test_utils.py @@ -52,21 +52,6 @@ def test_create_apps_deployment_from_yaml(self): name="nginx-app", namespace="default", body={}) - def test_create_extensions_deployment_from_yaml(self): - """ - Should be able to create an extensions/v1beta1 deployment. - """ - k8s_client = client.api_client.ApiClient(configuration=self.config) - utils.create_from_yaml( - k8s_client, self.path_prefix + "extensions-deployment.yaml") - ext_api = client.ExtensionsV1beta1Api(k8s_client) - dep = ext_api.read_namespaced_deployment(name="nginx-deployment", - namespace="default") - self.assertIsNotNone(dep) - ext_api.delete_namespaced_deployment( - name="nginx-deployment", namespace="default", - body={}) - def test_create_pod_from_yaml(self): """ Should be able to create a pod. @@ -134,7 +119,7 @@ def test_create_deployment_non_default_namespace_from_yaml(self): utils.create_from_yaml( k8s_client, self.path_prefix + "dep-deployment.yaml") core_api = client.CoreV1Api(k8s_client) - ext_api = client.ExtensionsV1beta1Api(k8s_client) + ext_api = client.AppsV1Api(k8s_client) nmsp = core_api.read_namespace(name="dep") self.assertIsNotNone(nmsp) dep = ext_api.read_namespaced_deployment(name="nginx-deployment", @@ -186,7 +171,7 @@ def test_create_general_list_from_yaml(self): utils.create_from_yaml( k8s_client, self.path_prefix + "list.yaml") core_api = client.CoreV1Api(k8s_client) - ext_api = client.ExtensionsV1beta1Api(k8s_client) + ext_api = client.AppsV1Api(k8s_client) svc = core_api.read_namespaced_service(name="list-service-test", namespace="default") self.assertIsNotNone(svc) @@ -317,7 +302,7 @@ def test_create_from_multi_resource_yaml_with_conflict(self): def test_create_from_multi_resource_yaml_with_multi_conflicts(self): """ - Should create an extensions/v1beta1 deployment + Should create an apps/v1 deployment and fail to create the same deployment twice. Should raise an exception that contains two error messages. """ @@ -327,14 +312,14 @@ def test_create_from_multi_resource_yaml_with_multi_conflicts(self): k8s_client, self.path_prefix + "triple-nginx.yaml") exp_error = ('Error from server (Conflict): {"kind":"Status",' '"apiVersion":"v1","metadata":{},"status":"Failure",' - '"message":"deployments.extensions \\"triple-nginx\\" ' + '"message":"deployments.apps \\"triple-nginx\\" ' 'already exists","reason":"AlreadyExists",' - '"details":{"name":"triple-nginx","group":"extensions",' + '"details":{"name":"triple-nginx","group":"apps",' '"kind":"deployments"},"code":409}\n' ) exp_error += exp_error self.assertEqual(exp_error, str(cm.exception)) - ext_api = client.ExtensionsV1beta1Api(k8s_client) + ext_api = client.AppsV1Api(k8s_client) dep = ext_api.read_namespaced_deployment(name="triple-nginx", namespace="default") self.assertIsNotNone(dep) @@ -348,7 +333,8 @@ def test_create_namespaces_apps_deployment_from_yaml(self): """ k8s_client = client.api_client.ApiClient(configuration=self.config) utils.create_from_yaml( - k8s_client, self.path_prefix + "apps-deployment.yaml", namespace=self.test_namespace) + k8s_client, self.path_prefix + "apps-deployment.yaml", + namespace=self.test_namespace) app_api = client.AppsV1beta1Api(k8s_client) dep = app_api.read_namespaced_deployment(name="nginx-app", namespace=self.test_namespace) @@ -357,14 +343,15 @@ def test_create_namespaces_apps_deployment_from_yaml(self): name="nginx-app", namespace=self.test_namespace, body={}) - def test_create_from_list_in_multi_resource_yaml(self): + def test_create_from_list_in_multi_resource_yaml_namespaced(self): """ Should be able to create the items in the PodList and a deployment - specified in the multi-resource file + specified in the multi-resource file in a test namespace """ k8s_client = client.api_client.ApiClient(configuration=self.config) utils.create_from_yaml( - k8s_client, self.path_prefix + "multi-resource-with-list.yaml", namespace=self.test_namespace) + k8s_client, self.path_prefix + "multi-resource-with-list.yaml", + namespace=self.test_namespace) core_api = client.CoreV1Api(k8s_client) app_api = client.AppsV1beta1Api(k8s_client) pod_0 = core_api.read_namespaced_pod( diff --git a/kubernetes/e2e_test/test_yaml/dep-deployment.yaml b/kubernetes/e2e_test/test_yaml/dep-deployment.yaml index be9b281f20..57170d92a4 100644 --- a/kubernetes/e2e_test/test_yaml/dep-deployment.yaml +++ b/kubernetes/e2e_test/test_yaml/dep-deployment.yaml @@ -1,10 +1,13 @@ -apiVersion: extensions/v1beta1 +apiVersion: apps/v1 kind: Deployment metadata: name: nginx-deployment namespace: dep spec: replicas: 3 + selector: + matchLabels: + app: nginx template: metadata: labels: @@ -12,7 +15,6 @@ spec: spec: containers: - name: nginx - image: nginx:1.7.9 + image: nginx:1.15.4 ports: - containerPort: 80 - diff --git a/kubernetes/e2e_test/test_yaml/extensions-deployment.yaml b/kubernetes/e2e_test/test_yaml/extensions-deployment.yaml deleted file mode 100644 index d05940d29b..0000000000 --- a/kubernetes/e2e_test/test_yaml/extensions-deployment.yaml +++ /dev/null @@ -1,17 +0,0 @@ -apiVersion: extensions/v1beta1 -kind: Deployment -metadata: - name: nginx-deployment -spec: - replicas: 3 - template: - metadata: - labels: - app: nginx - spec: - containers: - - name: nginx - image: nginx:1.7.9 - ports: - - containerPort: 80 - diff --git a/kubernetes/e2e_test/test_yaml/list.yaml b/kubernetes/e2e_test/test_yaml/list.yaml index 3416ec429d..15aab9ad5c 100644 --- a/kubernetes/e2e_test/test_yaml/list.yaml +++ b/kubernetes/e2e_test/test_yaml/list.yaml @@ -11,7 +11,7 @@ items: port: 80 selector: app: list-deployment-test -- apiVersion: extensions/v1beta1 +- apiVersion: apps/v1 kind: Deployment metadata: name: list-deployment-test @@ -19,6 +19,9 @@ items: app: list-deployment-test spec: replicas: 1 + selector: + matchLabels: + app: list-deployment-test template: metadata: labels: @@ -26,4 +29,4 @@ items: spec: containers: - name: nginx - image: nginx \ No newline at end of file + image: nginx:1.15.4 \ No newline at end of file diff --git a/kubernetes/e2e_test/test_yaml/triple-nginx.yaml b/kubernetes/e2e_test/test_yaml/triple-nginx.yaml index 9a4fda66cf..a071c88b50 100644 --- a/kubernetes/e2e_test/test_yaml/triple-nginx.yaml +++ b/kubernetes/e2e_test/test_yaml/triple-nginx.yaml @@ -1,9 +1,12 @@ -apiVersion: extensions/v1beta1 +apiVersion: apps/v1 kind: Deployment metadata: name: triple-nginx spec: replicas: 3 + selector: + matchLabels: + app: nginx template: metadata: labels: @@ -11,16 +14,19 @@ spec: spec: containers: - name: nginx - image: nginx:1.7.9 + image: nginx:1.15.4 ports: - containerPort: 80 --- -apiVersion: extensions/v1beta1 +apiVersion: apps/v1 kind: Deployment metadata: name: triple-nginx spec: replicas: 3 + selector: + matchLabels: + app: nginx template: metadata: labels: @@ -28,16 +34,19 @@ spec: spec: containers: - name: nginx - image: nginx:1.7.9 + image: nginx:1.15.4 ports: - containerPort: 80 --- -apiVersion: extensions/v1beta1 +apiVersion: apps/v1 kind: Deployment metadata: name: triple-nginx spec: replicas: 3 + selector: + matchLabels: + app: nginx template: metadata: labels: @@ -45,6 +54,6 @@ spec: spec: containers: - name: nginx - image: nginx:1.7.9 + image: nginx:1.15.4 ports: - containerPort: 80 \ No newline at end of file