Rollout a daemonset using updateStrategy type: Noop

Change-Id: Ic95d5cbe511596aec25726264f63b81d735577d9
This commit is contained in:
Artem Grechanichenko 2016-10-24 17:44:04 +03:00
parent c60b9e3bb7
commit 21eed7f77f
1 changed files with 68 additions and 0 deletions

View File

@ -321,3 +321,71 @@ class TestDaemonsetsUpdates():
self.from_nginx_image),
timeout=2 * 60
)
@pytest.mark.revert_snapshot(ext.SNAPSHOT.k8s_deployed)
@pytest.mark.fail_snapshot
@pytest.mark.snapshot_needed
def test_daemonset_rollout_noop(self, underlay,
k8scluster, config, show_step):
"""Rollback a daemonset using updateStrategy type: Noop
Scenario:
1. Deploy k8s using fuel-ccp-installer
2. Create a DaemonSet for nginx with image version 1_10 and
update strategy Noop
3. Wait until nginx pods are created and become 'ready'
4. Check that the image version in the nginx pods is 1_10
Check that the image version in the nginx daemonset is 1_10
5. Change nginx image version to 1_11 using YAML
6. Wait for 10 seconds (needs to check that there were
no auto updates of the nginx pods)
7. Check that the image version in the nginx pods is still 1_10
Check that the image version in the nginx daemonset
is updated to 1_11
8. Kill all nginx pods that are belong to the nginx daemonset
9. Wait until nginx pods are created and become 'ready'
10. Check that the image version in the nginx pods
is updated to 1_11
11. Rollout the daemonset to a previous revision:
kubectl rollout undo daemonset/nginx
12. Check that the image version in the nginx pods is still 1_11
Check that the image version in the nginx daemonset
is changed to 1_10
13. Kill all nginx pods that are belong to the nginx daemonset
14. Wait until nginx pods are created and become 'ready'
15. Check that the image version in the nginx pods
is changed to 1_10
Duration: 3000 seconds
"""
self.test_daemonset_rollingupdate_noop(k8scluster, show_step)
k8sclient = k8scluster.api
# STEP #11
show_step(11)
cmd = "kubectl rollout undo daemonset/nginx"
underlay.check_call(cmd,
host=config.k8s.kube_host)
# STEP #12
show_step(12)
# Pods should still have the new image version
self.check_nginx_pods_image(k8sclient, self.to_nginx_image)
# DaemonSet should have the old image version
self.check_nginx_ds_image(k8sclient, self.from_nginx_image)
# STEP #13
show_step(13)
self.delete_nginx_pods(k8sclient)
# STEP #14
show_step(14)
self.wait_nginx_pods_ready(k8sclient)
# STEP #15
show_step(15)
# Pods should have the old image version
self.check_nginx_pods_image(k8sclient, self.from_nginx_image)