Rollback multiple times a daemonset using updateStrategy type: RollingUpdate and --to-revision=0 arg

Change-Id: I368ccd75b668457467400052c4307a085da76f0a
This commit is contained in:
Artem Grechanichenko 2016-10-26 11:44:57 +03:00
parent a1246475ff
commit a1f1304fba
1 changed files with 84 additions and 0 deletions

View File

@ -650,3 +650,87 @@ class TestDaemonsetsUpdates():
self.to_nginx_image_1_12),
timeout=2 * 60
)
@pytest.mark.revert_snapshot(ext.SNAPSHOT.k8s_deployed)
@pytest.mark.fail_snapshot
@pytest.mark.snapshot_needed
def test_daemonset_multirollout_rollingupdate_default(self, underlay,
k8scluster,
config,
show_step):
"""Rollback multiple times a daemonset using updateStrategy type:
RollingUpdate --to-revision=0
Scenario:
1. Deploy k8s using fuel-ccp-installer
2. Create a DaemonSet for nginx with image version 1_10 and
update strategy RollingUpdate
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 daemonset
is updated to 1_11
Wait for ~120 sec that the image version
in the nginx pods is changed to 1_11
8. Rollback the nginx daemonset:
kubectl rollout undo daemonset/nginx
9. Check that the image version in the nginx daemonset is
downgraded to 1_10
Wait for ~120 sec that the image version
in the nginx pods is downgraded to 1_10
10. Rollback the nginx daemonset:
kubectl rollout undo daemonset/nginx --to-revision=0
11. Check that the image version in the nginx daemonset
is updated to 1_11
Wait for ~120 sec that the image version
in the nginx pods is changed to 1_11
12. Rollback the nginx daemonset:
kubectl rollout undo daemonset/nginx --to-revision=0
13. Check that the image version in the nginx daemonset is
downgraded to 1_10
Wait for ~120 sec that the image version
in the nginx pods is downgraded to 1_10
Duration: 3000 seconds
"""
self.test_daemonset_rollout_rollingupdate(underlay, k8scluster,
config, show_step)
k8sclient = k8scluster.api
# STEP #10
show_step(10)
cmd = "kubectl rollout undo daemonset/nginx --to-revision=0"
underlay.check_call(cmd,
host=config.k8s.kube_host)
# STEP #11
show_step(11)
self.check_nginx_ds_image(k8sclient, self.to_nginx_image)
# Pods should have new image version
helpers.wait_pass(
lambda: self.check_nginx_pods_image(
k8sclient,
self.to_nginx_image),
timeout=2 * 60
)
# STEP #12
show_step(12)
cmd = "kubectl rollout undo daemonset/nginx --to-revision=0"
underlay.check_call(cmd,
host=config.k8s.kube_host)
# STEP #13
show_step(13)
self.check_nginx_ds_image(k8sclient, self.from_nginx_image)
# Pods should have new image version
helpers.wait_pass(
lambda: self.check_nginx_pods_image(
k8sclient,
self.from_nginx_image),
timeout=2 * 60
)