Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Deprecate extensions/v1beta1 deployment #888

Merged
merged 1 commit into from
Jul 30, 2019
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 2 additions & 2 deletions examples/create_deployment.py
Original file line number Diff line number Diff line change
Expand Up @@ -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))

Expand Down
2 changes: 1 addition & 1 deletion examples/create_deployment_from_yaml.py
Original file line number Diff line number Diff line change
Expand Up @@ -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))

Expand Down
18 changes: 9 additions & 9 deletions examples/deployment_examples.py
Original file line number Diff line number Diff line change
Expand Up @@ -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)
Expand All @@ -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,
Expand All @@ -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__':
Expand Down
10 changes: 7 additions & 3 deletions examples/nginx-deployment.yaml
Original file line number Diff line number Diff line change
@@ -1,17 +1,21 @@
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:
app: nginx
spec:
containers:
- name: nginx
image: nginx:1.7.9
image: nginx:1.15.4
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Is there anything wrong with using latest so we don't have to keep bumping it in the future? Obviously not good practice but given it's an example I think it should be fine.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'm keeping it on pace with https://k8s.io/examples/controllers/nginx-deployment.yaml. Otherwise I don't have a good reason :/

ports:
- containerPort: 80

18 changes: 9 additions & 9 deletions examples/notebooks/create_deployment.ipynb
Original file line number Diff line number Diff line change
Expand Up @@ -47,7 +47,7 @@
"outputs": [],
"source": [
"config.load_kube_config()\n",
"extension = client.ExtensionsV1beta1Api()"
"apps_api = client.AppsV1beta1Api()"
]
},
{
Expand All @@ -70,7 +70,7 @@
},
"outputs": [],
"source": [
"deployment = client.ExtensionsV1beta1Deployment()"
"deployment = client.AppsV1beta1Deployment()"
]
},
{
Expand All @@ -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\")"
]
Expand All @@ -118,7 +118,7 @@
},
"outputs": [],
"source": [
"spec = client.ExtensionsV1beta1DeploymentSpec()\n",
"spec = client.AppsV1beta1DeploymentSpec()\n",
"spec.replicas = 3"
]
},
Expand Down Expand Up @@ -207,7 +207,7 @@
},
"outputs": [],
"source": [
"extension.create_namespaced_deployment(namespace=\"default\", body=deployment)"
"apps_api.create_namespaced_deployment(namespace=\"default\", body=deployment)"
]
},
{
Expand Down Expand Up @@ -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)"
]
},
{
Expand All @@ -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\""
]
Expand Down
6 changes: 3 additions & 3 deletions examples/notebooks/intro_notebook.ipynb
Original file line number Diff line number Diff line change
Expand Up @@ -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()"
]
},
{
Expand Down
37 changes: 12 additions & 25 deletions kubernetes/e2e_test/test_utils.py
Original file line number Diff line number Diff line change
Expand Up @@ -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.
Expand Down Expand Up @@ -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",
Expand Down Expand Up @@ -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)
Expand Down Expand Up @@ -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.
"""
Expand All @@ -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)
Expand All @@ -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)
Expand All @@ -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(
Expand Down
8 changes: 5 additions & 3 deletions kubernetes/e2e_test/test_yaml/dep-deployment.yaml
Original file line number Diff line number Diff line change
@@ -1,18 +1,20 @@
apiVersion: extensions/v1beta1
apiVersion: apps/v1
kind: Deployment
metadata:
name: nginx-deployment
namespace: dep
spec:
replicas: 3
selector:
matchLabels:
app: nginx
template:
metadata:
labels:
app: nginx
spec:
containers:
- name: nginx
image: nginx:1.7.9
image: nginx:1.15.4
ports:
- containerPort: 80

17 changes: 0 additions & 17 deletions kubernetes/e2e_test/test_yaml/extensions-deployment.yaml

This file was deleted.

7 changes: 5 additions & 2 deletions kubernetes/e2e_test/test_yaml/list.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -11,19 +11,22 @@ items:
port: 80
selector:
app: list-deployment-test
- apiVersion: extensions/v1beta1
- apiVersion: apps/v1
kind: Deployment
metadata:
name: list-deployment-test
labels:
app: list-deployment-test
spec:
replicas: 1
selector:
matchLabels:
app: list-deployment-test
template:
metadata:
labels:
app: list-deployment-test
spec:
containers:
- name: nginx
image: nginx
image: nginx:1.15.4
Loading