From 9ea28c43bc0fcd1290cb5bb691ade560208a26aa Mon Sep 17 00:00:00 2001 From: Florian Ruynat <16313165+floryut@users.noreply.github.com> Date: Mon, 5 Jul 2021 10:21:07 +0200 Subject: [PATCH 1/2] Fix ansible detection for python3 and ubuntu --- .gitlab-ci/packet.yml | 88 +++++++++++++++++----------------- tests/scripts/testcases_run.sh | 28 ++++++----- 2 files changed, 61 insertions(+), 55 deletions(-) diff --git a/.gitlab-ci/packet.yml b/.gitlab-ci/packet.yml index 5d938761831..2b2e93355cd 100644 --- a/.gitlab-ci/packet.yml +++ b/.gitlab-ci/packet.yml @@ -92,7 +92,7 @@ packet_debian10-containerd: MITOGEN_ENABLE: "true" packet_centos7-calico-ha-once-localhost: - stage: deploy-part2 + stage: deploy-part1 extends: .packet_pr when: on_success variables: @@ -102,100 +102,100 @@ packet_centos7-calico-ha-once-localhost: - docker:19.03.9-dind packet_centos8-kube-ovn: - stage: deploy-part2 - extends: .packet_periodic + stage: deploy-part1 + extends: .packet_pr when: on_success packet_centos8-calico: - stage: deploy-part2 + stage: deploy-part1 extends: .packet_pr when: on_success packet_fedora34-weave: - stage: deploy-part2 + stage: deploy-part1 extends: .packet_pr when: on_success packet_opensuse-canal: - stage: deploy-part2 - extends: .packet_periodic + stage: deploy-part1 + extends: .packet_pr when: on_success packet_ubuntu18-ovn4nfv: - stage: deploy-part2 - extends: .packet_periodic + stage: deploy-part1 + extends: .packet_pr when: on_success # ### MANUAL JOBS packet_ubuntu16-weave-sep: - stage: deploy-part2 + stage: deploy-part1 extends: .packet_pr - when: manual + when: on_success packet_ubuntu18-cilium-sep: - stage: deploy-special + stage: deploy-part1 extends: .packet_pr - when: manual + when: on_success packet_ubuntu18-flannel-containerd-ha: - stage: deploy-part2 + stage: deploy-part1 extends: .packet_pr - when: manual + when: on_success packet_ubuntu18-flannel-containerd-ha-once: - stage: deploy-part2 + stage: deploy-part1 extends: .packet_pr - when: manual + when: on_success packet_debian9-macvlan: - stage: deploy-part2 + stage: deploy-part1 extends: .packet_pr - when: manual + when: on_success packet_centos7-calico-ha: - stage: deploy-part2 + stage: deploy-part1 extends: .packet_pr - when: manual + when: on_success packet_centos7-kube-router: - stage: deploy-part2 + stage: deploy-part1 extends: .packet_pr - when: manual + when: on_success packet_centos7-multus-calico: - stage: deploy-part2 + stage: deploy-part1 extends: .packet_pr - when: manual + when: on_success packet_oracle7-canal-ha: - stage: deploy-part2 + stage: deploy-part1 extends: .packet_pr - when: manual + when: on_success packet_fedora33-calico: - stage: deploy-part2 - extends: .packet_periodic + stage: deploy-part1 + extends: .packet_pr when: on_success variables: MITOGEN_ENABLE: "true" packet_amazon-linux-2-aio: - stage: deploy-part2 + stage: deploy-part1 extends: .packet_pr - when: manual + when: on_success packet_fedora34-kube-ovn-containerd: - stage: deploy-part2 - extends: .packet_periodic + stage: deploy-part1 + extends: .packet_pr when: on_success # ### PR JOBS PART3 # Long jobs (45min+) packet_centos7-weave-upgrade-ha: - stage: deploy-part3 - extends: .packet_periodic + stage: deploy-part1 + extends: .packet_pr when: on_success variables: UPGRADE_TEST: basic @@ -203,14 +203,14 @@ packet_centos7-weave-upgrade-ha: # Calico HA Wireguard packet_ubuntu20-calico-ha-wireguard: - stage: deploy-part2 + stage: unit-tests extends: .packet_pr - when: manual + when: on_success variables: MITOGEN_ENABLE: "true" packet_debian9-calico-upgrade: - stage: deploy-part3 + stage: deploy-part1 extends: .packet_pr when: on_success variables: @@ -218,24 +218,24 @@ packet_debian9-calico-upgrade: MITOGEN_ENABLE: "false" packet_debian9-calico-upgrade-once: - stage: deploy-part3 - extends: .packet_periodic + stage: deploy-part1 + extends: .packet_pr when: on_success variables: UPGRADE_TEST: graceful MITOGEN_ENABLE: "false" packet_ubuntu18-calico-ha-recover: - stage: deploy-part3 - extends: .packet_periodic + stage: deploy-part1 + extends: .packet_pr when: on_success variables: RECOVER_CONTROL_PLANE_TEST: "true" RECOVER_CONTROL_PLANE_TEST_GROUPS: "etcd[2:],kube_control_plane[1:]" packet_ubuntu18-calico-ha-recover-noquorum: - stage: deploy-part3 - extends: .packet_periodic + stage: deploy-part1 + extends: .packet_pr when: on_success variables: RECOVER_CONTROL_PLANE_TEST: "true" diff --git a/tests/scripts/testcases_run.sh b/tests/scripts/testcases_run.sh index 5c27747cef5..55cf7c3c75a 100755 --- a/tests/scripts/testcases_run.sh +++ b/tests/scripts/testcases_run.sh @@ -2,6 +2,7 @@ set -euxo pipefail echo "CI_JOB_NAME is $CI_JOB_NAME" +CI_TEST_ADDITIONAL_VARS="" if [[ "$CI_JOB_NAME" =~ "upgrade" ]]; then if [ "${UPGRADE_TEST}" == "false" ]; then @@ -38,6 +39,11 @@ if [[ "$CI_JOB_NAME" =~ "opensuse" ]]; then ansible all -m raw -a 'zypper --gpg-auto-import-keys refresh' fi +if [[ "$CI_JOB_NAME" =~ "ubuntu" ]]; then + # We need to tell ansible that ubuntu hosts are python3 only + CI_TEST_ADDITIONAL_VARS="-e ansible_python_interpreter=/usr/bin/python3" +fi + # Check out latest tag if testing upgrade test "${UPGRADE_TEST}" != "false" && git fetch --all && git checkout "$KUBESPRAY_VERSION" # Checkout the CI vars file so it is available @@ -70,44 +76,44 @@ fi # Tests Cases ## Test Master API -ansible-playbook --limit "all:!fake_hosts" -e @${CI_TEST_VARS} tests/testcases/010_check-apiserver.yml $ANSIBLE_LOG_LEVEL +ansible-playbook --limit "all:!fake_hosts" -e @${CI_TEST_VARS} ${CI_TEST_ADDITIONAL_VARS} tests/testcases/010_check-apiserver.yml $ANSIBLE_LOG_LEVEL ## Test that all nodes are Ready -ansible-playbook --limit "all:!fake_hosts" -e @${CI_TEST_VARS} tests/testcases/015_check-nodes-ready.yml $ANSIBLE_LOG_LEVEL +ansible-playbook --limit "all:!fake_hosts" -e @${CI_TEST_VARS} ${CI_TEST_ADDITIONAL_VARS} tests/testcases/015_check-nodes-ready.yml $ANSIBLE_LOG_LEVEL ## Test that all pods are Running -ansible-playbook --limit "all:!fake_hosts" -e @${CI_TEST_VARS} tests/testcases/020_check-pods-running.yml $ANSIBLE_LOG_LEVEL +ansible-playbook --limit "all:!fake_hosts" -e @${CI_TEST_VARS} ${CI_TEST_ADDITIONAL_VARS} tests/testcases/020_check-pods-running.yml $ANSIBLE_LOG_LEVEL ## Test pod creation and ping between them -ansible-playbook --limit "all:!fake_hosts" -e @${CI_TEST_VARS} tests/testcases/030_check-network.yml $ANSIBLE_LOG_LEVEL +ansible-playbook --limit "all:!fake_hosts" -e @${CI_TEST_VARS} ${CI_TEST_ADDITIONAL_VARS} tests/testcases/030_check-network.yml $ANSIBLE_LOG_LEVEL ## Advanced DNS checks -ansible-playbook --limit "all:!fake_hosts" -e @${CI_TEST_VARS} tests/testcases/040_check-network-adv.yml $ANSIBLE_LOG_LEVEL +ansible-playbook --limit "all:!fake_hosts" -e @${CI_TEST_VARS} ${CI_TEST_ADDITIONAL_VARS} tests/testcases/040_check-network-adv.yml $ANSIBLE_LOG_LEVEL ## Kubernetes conformance tests -ansible-playbook -i ${ANSIBLE_INVENTORY} -e @${CI_TEST_VARS} --limit "all:!fake_hosts" tests/testcases/100_check-k8s-conformance.yml $ANSIBLE_LOG_LEVEL +ansible-playbook -i ${ANSIBLE_INVENTORY} -e @${CI_TEST_VARS} ${CI_TEST_ADDITIONAL_VARS} --limit "all:!fake_hosts" tests/testcases/100_check-k8s-conformance.yml $ANSIBLE_LOG_LEVEL ## Idempotency checks 1/5 (repeat deployment) if [ "${IDEMPOT_CHECK}" = "true" ]; then - ansible-playbook ${ANSIBLE_LOG_LEVEL} -e @${CI_TEST_REGISTRY_MIRROR} -e @${CI_TEST_VARS} -e local_release_dir=${PWD}/downloads --limit "all:!fake_hosts" cluster.yml + ansible-playbook ${ANSIBLE_LOG_LEVEL} -e @${CI_TEST_REGISTRY_MIRROR} ${CI_TEST_ADDITIONAL_VARS} -e @${CI_TEST_VARS} -e local_release_dir=${PWD}/downloads --limit "all:!fake_hosts" cluster.yml fi ## Idempotency checks 2/5 (Advanced DNS checks) if [ "${IDEMPOT_CHECK}" = "true" ]; then - ansible-playbook ${ANSIBLE_LOG_LEVEL} -e @${CI_TEST_VARS} --limit "all:!fake_hosts" tests/testcases/040_check-network-adv.yml + ansible-playbook ${ANSIBLE_LOG_LEVEL} -e @${CI_TEST_VARS} ${CI_TEST_ADDITIONAL_VARS} --limit "all:!fake_hosts" tests/testcases/040_check-network-adv.yml fi ## Idempotency checks 3/5 (reset deployment) if [ "${IDEMPOT_CHECK}" = "true" -a "${RESET_CHECK}" = "true" ]; then - ansible-playbook ${ANSIBLE_LOG_LEVEL} -e @${CI_TEST_REGISTRY_MIRROR} -e @${CI_TEST_VARS} -e reset_confirmation=yes --limit "all:!fake_hosts" reset.yml + ansible-playbook ${ANSIBLE_LOG_LEVEL} -e @${CI_TEST_REGISTRY_MIRROR} -e @${CI_TEST_VARS} ${CI_TEST_ADDITIONAL_VARS} -e reset_confirmation=yes --limit "all:!fake_hosts" reset.yml fi ## Idempotency checks 4/5 (redeploy after reset) if [ "${IDEMPOT_CHECK}" = "true" -a "${RESET_CHECK}" = "true" ]; then - ansible-playbook ${ANSIBLE_LOG_LEVEL} -e @${CI_TEST_REGISTRY_MIRROR} -e @${CI_TEST_VARS} -e local_release_dir=${PWD}/downloads --limit "all:!fake_hosts" cluster.yml + ansible-playbook ${ANSIBLE_LOG_LEVEL} -e @${CI_TEST_REGISTRY_MIRROR} -e @${CI_TEST_VARS} ${CI_TEST_ADDITIONAL_VARS} -e local_release_dir=${PWD}/downloads --limit "all:!fake_hosts" cluster.yml fi ## Idempotency checks 5/5 (Advanced DNS checks) if [ "${IDEMPOT_CHECK}" = "true" -a "${RESET_CHECK}" = "true" ]; then - ansible-playbook --limit "all:!fake_hosts" tests/testcases/040_check-network-adv.yml $ANSIBLE_LOG_LEVEL + ansible-playbook ${ANSIBLE_LOG_LEVEL} -e @${CI_TEST_REGISTRY_MIRROR} -e @${CI_TEST_VARS} ${CI_TEST_ADDITIONAL_VARS} --limit "all:!fake_hosts" tests/testcases/040_check-network-adv.yml fi From e465a11f3a26fed3584f488333d56f034852b6b6 Mon Sep 17 00:00:00 2001 From: Florian Ruynat <16313165+floryut@users.noreply.github.com> Date: Mon, 5 Jul 2021 16:24:50 +0200 Subject: [PATCH 2/2] Fix oracle missing centos-extras repo for containerd/docker dependencies --- .gitlab-ci/packet.yml | 88 +++++++++---------- roles/bootstrap-os/tasks/bootstrap-centos.yml | 18 +++- 2 files changed, 61 insertions(+), 45 deletions(-) diff --git a/.gitlab-ci/packet.yml b/.gitlab-ci/packet.yml index 2b2e93355cd..5d938761831 100644 --- a/.gitlab-ci/packet.yml +++ b/.gitlab-ci/packet.yml @@ -92,7 +92,7 @@ packet_debian10-containerd: MITOGEN_ENABLE: "true" packet_centos7-calico-ha-once-localhost: - stage: deploy-part1 + stage: deploy-part2 extends: .packet_pr when: on_success variables: @@ -102,100 +102,100 @@ packet_centos7-calico-ha-once-localhost: - docker:19.03.9-dind packet_centos8-kube-ovn: - stage: deploy-part1 - extends: .packet_pr + stage: deploy-part2 + extends: .packet_periodic when: on_success packet_centos8-calico: - stage: deploy-part1 + stage: deploy-part2 extends: .packet_pr when: on_success packet_fedora34-weave: - stage: deploy-part1 + stage: deploy-part2 extends: .packet_pr when: on_success packet_opensuse-canal: - stage: deploy-part1 - extends: .packet_pr + stage: deploy-part2 + extends: .packet_periodic when: on_success packet_ubuntu18-ovn4nfv: - stage: deploy-part1 - extends: .packet_pr + stage: deploy-part2 + extends: .packet_periodic when: on_success # ### MANUAL JOBS packet_ubuntu16-weave-sep: - stage: deploy-part1 + stage: deploy-part2 extends: .packet_pr - when: on_success + when: manual packet_ubuntu18-cilium-sep: - stage: deploy-part1 + stage: deploy-special extends: .packet_pr - when: on_success + when: manual packet_ubuntu18-flannel-containerd-ha: - stage: deploy-part1 + stage: deploy-part2 extends: .packet_pr - when: on_success + when: manual packet_ubuntu18-flannel-containerd-ha-once: - stage: deploy-part1 + stage: deploy-part2 extends: .packet_pr - when: on_success + when: manual packet_debian9-macvlan: - stage: deploy-part1 + stage: deploy-part2 extends: .packet_pr - when: on_success + when: manual packet_centos7-calico-ha: - stage: deploy-part1 + stage: deploy-part2 extends: .packet_pr - when: on_success + when: manual packet_centos7-kube-router: - stage: deploy-part1 + stage: deploy-part2 extends: .packet_pr - when: on_success + when: manual packet_centos7-multus-calico: - stage: deploy-part1 + stage: deploy-part2 extends: .packet_pr - when: on_success + when: manual packet_oracle7-canal-ha: - stage: deploy-part1 + stage: deploy-part2 extends: .packet_pr - when: on_success + when: manual packet_fedora33-calico: - stage: deploy-part1 - extends: .packet_pr + stage: deploy-part2 + extends: .packet_periodic when: on_success variables: MITOGEN_ENABLE: "true" packet_amazon-linux-2-aio: - stage: deploy-part1 + stage: deploy-part2 extends: .packet_pr - when: on_success + when: manual packet_fedora34-kube-ovn-containerd: - stage: deploy-part1 - extends: .packet_pr + stage: deploy-part2 + extends: .packet_periodic when: on_success # ### PR JOBS PART3 # Long jobs (45min+) packet_centos7-weave-upgrade-ha: - stage: deploy-part1 - extends: .packet_pr + stage: deploy-part3 + extends: .packet_periodic when: on_success variables: UPGRADE_TEST: basic @@ -203,14 +203,14 @@ packet_centos7-weave-upgrade-ha: # Calico HA Wireguard packet_ubuntu20-calico-ha-wireguard: - stage: unit-tests + stage: deploy-part2 extends: .packet_pr - when: on_success + when: manual variables: MITOGEN_ENABLE: "true" packet_debian9-calico-upgrade: - stage: deploy-part1 + stage: deploy-part3 extends: .packet_pr when: on_success variables: @@ -218,24 +218,24 @@ packet_debian9-calico-upgrade: MITOGEN_ENABLE: "false" packet_debian9-calico-upgrade-once: - stage: deploy-part1 - extends: .packet_pr + stage: deploy-part3 + extends: .packet_periodic when: on_success variables: UPGRADE_TEST: graceful MITOGEN_ENABLE: "false" packet_ubuntu18-calico-ha-recover: - stage: deploy-part1 - extends: .packet_pr + stage: deploy-part3 + extends: .packet_periodic when: on_success variables: RECOVER_CONTROL_PLANE_TEST: "true" RECOVER_CONTROL_PLANE_TEST_GROUPS: "etcd[2:],kube_control_plane[1:]" packet_ubuntu18-calico-ha-recover-noquorum: - stage: deploy-part1 - extends: .packet_pr + stage: deploy-part3 + extends: .packet_periodic when: on_success variables: RECOVER_CONTROL_PLANE_TEST: "true" diff --git a/roles/bootstrap-os/tasks/bootstrap-centos.yml b/roles/bootstrap-os/tasks/bootstrap-centos.yml index 721c431a4cb..f6a57b9d25f 100644 --- a/roles/bootstrap-os/tasks/bootstrap-centos.yml +++ b/roles/bootstrap-os/tasks/bootstrap-centos.yml @@ -59,7 +59,23 @@ with_items: - { option: "name", value: "ol{{ ansible_distribution_major_version }}_addons" } - { option: "enabled", value: "1" } - - { option: "baseurl", value: "http://yum.oracle.com/repo/OracleLinux/OL{{ ansible_distribution_major_version }}/addons/x86_64/" } + - { option: "baseurl", value: "http://yum.oracle.com/repo/OracleLinux/OL{{ ansible_distribution_major_version }}/addons/$basearch/" } + when: + - use_oracle_public_repo|default(true) + - '''ID="ol"'' in os_release.stdout_lines' + - (ansible_distribution_version | float) >= 7.6 + +- name: Enable Centos extra repo + ini_file: + dest: "/etc/yum.repos.d/centos-extras.repo" + section: "extras" + option: "{{ item.option }}" + value: "{{ item.value }}" + with_items: + - { option: "name", value: "CentOS-{{ ansible_distribution_major_version }} - Extras" } + - { option: "enabled", value: "1" } + - { option: "gpgcheck", value: "0" } + - { option: "baseurl", value: "http://mirror.centos.org/centos/{{ ansible_distribution_major_version }}/extras/$basearch/" } when: - use_oracle_public_repo|default(true) - '''ID="ol"'' in os_release.stdout_lines'