github.com/SUSE/skuba@v1.4.17/ci/infra/testrunner/tests/test_upgrade_apply_user_lock.py (about) 1 import pytest 2 3 from tests.utils import PREVIOUS_VERSION, node_is_ready, node_is_upgraded, wait 4 5 6 @pytest.mark.disruptive 7 def test_upgrade_apply_user_lock(provision, platform, kubectl, skuba): 8 """ 9 Starting from an outdated cluster, check what node upgrade apply reports. 10 """ 11 12 # lock kured 13 kubectl_cmd = ( 14 "-n kube-system annotate ds kured weave.works/kured-node-lock=" 15 "'{\"nodeID\":\"manual\"}'") 16 kubectl.run_kubectl(kubectl_cmd) 17 18 for role in ("master", "worker"): 19 num_nodes = platform.get_num_nodes(role) 20 for n in range(0, num_nodes): 21 # disable skuba-update.timer 22 platform.ssh_run(role, n, "sudo systemctl disable --now skuba-update.timer") 23 assert node_is_ready(platform, kubectl, role, n) 24 result = skuba.node_upgrade("apply", role, n) 25 assert result.find("successfully upgraded") != -1 26 assert node_is_upgraded(kubectl, platform, role, n) 27 ssh_cmd = "sudo systemctl is-enabled skuba-update.timer || :" 28 assert platform.ssh_run(role, n, ssh_cmd).find("disabled") != -1 29 30 kubectl_cmd = (r"-n kube-system get ds/kured -o jsonpath=" 31 r"'{.metadata.annotations.weave\.works/kured-node-lock}'") 32 result = wait(kubectl.run_kubectl, 33 kubectl_cmd, 34 wait_backoff=30, 35 wait_retries=3, 36 wait_allow=(RuntimeError)) 37 assert result.find("manual") != -1