From 7c8bc62adda39d9ea297adc559b42651e33288e8 Mon Sep 17 00:00:00 2001 From: Guillaume Abrioux Date: Fri, 29 Jul 2022 11:15:17 +0200 Subject: [PATCH] tests: isolate ansible collections When Ansible collections are installed, they should be isolated. Otherwise, they will be shared in any scheduled job. This might cause issues when running different branch versions for instance. This also replace `ANSIBLE_CALLBACK_WHITELIST` with `ANSIBLE_CALLBACK_ENABLED` as it's going to be deprecated in Ansible 2.15. Signed-off-by: Guillaume Abrioux (cherry picked from commit 50b7a12ad8a3c88794a532ab6db399407ff94f7d) --- tox-cephadm.ini | 4 +++- tox-docker2podman.ini | 4 +++- tox-external_clients.ini | 4 +++- tox-filestore_to_bluestore.ini | 4 +++- tox-podman.ini | 4 +++- tox-shrink_osd.ini | 7 +++++-- tox-subset_update.ini | 4 +++- tox-update.ini | 9 ++++++--- tox.ini | 5 +++-- 9 files changed, 32 insertions(+), 13 deletions(-) diff --git a/tox-cephadm.ini b/tox-cephadm.ini index a58a14f3f..e44448fa1 100644 --- a/tox-cephadm.ini +++ b/tox-cephadm.ini @@ -13,8 +13,9 @@ passenv=* sitepackages=True setenv= ANSIBLE_SSH_ARGS = -F {changedir}/vagrant_ssh_config -o ControlMaster=auto -o ControlPersist=600s -o PreferredAuthentications=publickey + ANSIBLE_COLLECTIONS_PATH = {envdir} ANSIBLE_CONFIG = {toxinidir}/ansible.cfg - ANSIBLE_CALLBACK_WHITELIST = profile_tasks + ANSIBLE_CALLBACK_ENABLED = profile_tasks ANSIBLE_KEEP_REMOTE_FILES = 1 ANSIBLE_CACHE_PLUGIN = memory ANSIBLE_GATHERING = implicit @@ -27,6 +28,7 @@ deps= -r{toxinidir}/tests/requirements.txt changedir= {toxinidir}/tests/functional/cephadm commands= + ansible-galaxy collection install -r {toxinidir}/requirements.yml -v -p {envdir}/ansible_collections bash {toxinidir}/tests/scripts/vagrant_up.sh --no-provision {posargs:--provider=virtualbox} bash {toxinidir}/tests/scripts/generate_ssh_config.sh {changedir} diff --git a/tox-docker2podman.ini b/tox-docker2podman.ini index b5a6ff5b8..33beb5508 100644 --- a/tox-docker2podman.ini +++ b/tox-docker2podman.ini @@ -13,8 +13,9 @@ passenv=* sitepackages=True setenv= ANSIBLE_SSH_ARGS = -F {changedir}/vagrant_ssh_config -o ControlMaster=auto -o ControlPersist=600s -o PreferredAuthentications=publickey + ANSIBLE_COLLECTIONS_PATH = {envdir} ANSIBLE_CONFIG = {toxinidir}/ansible.cfg - ANSIBLE_CALLBACK_WHITELIST = profile_tasks + ANSIBLE_CALLBACK_ENABLED = profile_tasks ANSIBLE_KEEP_REMOTE_FILES = 1 ANSIBLE_CACHE_PLUGIN = memory ANSIBLE_GATHERING = implicit @@ -27,6 +28,7 @@ deps= -r{toxinidir}/tests/requirements.txt changedir= {toxinidir}/tests/functional/docker2podman commands= + ansible-galaxy collection install -r {toxinidir}/requirements.yml -v -p {envdir}/ansible_collections bash {toxinidir}/tests/scripts/vagrant_up.sh --no-provision {posargs:--provider=virtualbox} bash {toxinidir}/tests/scripts/generate_ssh_config.sh {changedir} diff --git a/tox-external_clients.ini b/tox-external_clients.ini index a7cad11d7..5db9ac71f 100644 --- a/tox-external_clients.ini +++ b/tox-external_clients.ini @@ -12,8 +12,9 @@ whitelist_externals = passenv=* setenv= ANSIBLE_SSH_ARGS = -F {changedir}/vagrant_ssh_config -o ControlMaster=auto -o ControlPersist=600s -o PreferredAuthentications=publickey + ANSIBLE_COLLECTIONS_PATH = {envdir} ANSIBLE_CONFIG = {toxinidir}/ansible.cfg - ANSIBLE_CALLBACK_WHITELIST = profile_tasks + ANSIBLE_CALLBACK_ENABLED = profile_tasks ANSIBLE_CACHE_PLUGIN = memory ANSIBLE_GATHERING = implicit # only available for ansible >= 2.5 @@ -30,6 +31,7 @@ setenv= deps= -r{toxinidir}/tests/requirements.txt changedir={toxinidir}/tests/functional/external_clients{env:CONTAINER_DIR:} commands= + ansible-galaxy collection install -r {toxinidir}/requirements.yml -v -p {envdir}/ansible_collections bash {toxinidir}/tests/scripts/vagrant_up.sh --no-provision {posargs:--provider=virtualbox} bash {toxinidir}/tests/scripts/generate_ssh_config.sh {changedir} diff --git a/tox-filestore_to_bluestore.ini b/tox-filestore_to_bluestore.ini index cb9cf3b44..dfa3e070a 100644 --- a/tox-filestore_to_bluestore.ini +++ b/tox-filestore_to_bluestore.ini @@ -12,8 +12,9 @@ whitelist_externals = passenv=* setenv= ANSIBLE_SSH_ARGS = -F {changedir}/vagrant_ssh_config -o ControlMaster=auto -o ControlPersist=600s -o PreferredAuthentications=publickey + ANSIBLE_COLLECTIONS_PATH = {envdir} ANSIBLE_CONFIG = {toxinidir}/ansible.cfg - ANSIBLE_CALLBACK_WHITELIST = profile_tasks + ANSIBLE_CALLBACK_ENABLED = profile_tasks ANSIBLE_CACHE_PLUGIN = memory ANSIBLE_GATHERING = implicit # only available for ansible >= 2.5 @@ -35,6 +36,7 @@ setenv= deps= -r{toxinidir}/tests/requirements.txt changedir={toxinidir}/tests/functional/filestore-to-bluestore{env:CONTAINER_DIR:} commands= + ansible-galaxy collection install -r {toxinidir}/requirements.yml -v -p {envdir}/ansible_collections bash {toxinidir}/tests/scripts/vagrant_up.sh --no-provision {posargs:--provider=virtualbox} bash {toxinidir}/tests/scripts/generate_ssh_config.sh {changedir} diff --git a/tox-podman.ini b/tox-podman.ini index 1c9307a3e..ce0020b26 100644 --- a/tox-podman.ini +++ b/tox-podman.ini @@ -13,8 +13,9 @@ passenv=* sitepackages=True setenv= ANSIBLE_SSH_ARGS = -F {changedir}/vagrant_ssh_config -o ControlMaster=auto -o ControlPersist=600s -o PreferredAuthentications=publickey + ANSIBLE_COLLECTIONS_PATH = {envdir} ANSIBLE_CONFIG = {toxinidir}/ansible.cfg - ANSIBLE_CALLBACK_WHITELIST = profile_tasks + ANSIBLE_CALLBACK_ENABLED = profile_tasks ANSIBLE_KEEP_REMOTE_FILES = 1 ANSIBLE_CACHE_PLUGIN = memory ANSIBLE_GATHERING = implicit @@ -31,6 +32,7 @@ deps= -r{toxinidir}/tests/requirements.txt changedir= {toxinidir}/tests/functional/podman commands= + ansible-galaxy collection install -r {toxinidir}/requirements.yml -v -p {envdir}/ansible_collections bash {toxinidir}/tests/scripts/vagrant_up.sh --no-provision {posargs:--provider=virtualbox} bash {toxinidir}/tests/scripts/generate_ssh_config.sh {changedir} diff --git a/tox-shrink_osd.ini b/tox-shrink_osd.ini index fe548d79c..2c55f6ce7 100644 --- a/tox-shrink_osd.ini +++ b/tox-shrink_osd.ini @@ -52,8 +52,9 @@ passenv=* sitepackages=False setenv= ANSIBLE_SSH_ARGS = -F {changedir}/vagrant_ssh_config -o ControlMaster=auto -o ControlPersist=600s -o PreferredAuthentications=publickey + ANSIBLE_COLLECTIONS_PATH = {envdir} ANSIBLE_CONFIG = {toxinidir}/ansible.cfg - ANSIBLE_CALLBACK_WHITELIST = profile_tasks + ANSIBLE_CALLBACK_ENABLED = profile_tasks ANSIBLE_KEEP_REMOTE_FILES = 1 ANSIBLE_CACHE_PLUGIN = memory ANSIBLE_GATHERING = implicit @@ -80,6 +81,8 @@ changedir= commands= + ansible-galaxy collection install -r {toxinidir}/requirements.yml -v -p {envdir}/ansible_collections + bash {toxinidir}/tests/scripts/vagrant_up.sh --no-provision {posargs:--provider=virtualbox} bash {toxinidir}/tests/scripts/generate_ssh_config.sh {changedir} @@ -114,4 +117,4 @@ commands= # retest to ensure OSDs are well redeployed py.test --reruns 5 --reruns-delay 1 -n 8 --durations=0 --sudo -v --connection=ansible --ansible-inventory={changedir}/{env:INVENTORY} --ssh-config={changedir}/vagrant_ssh_config {toxinidir}/tests/functional/tests - vagrant destroy --force \ No newline at end of file + vagrant destroy --force diff --git a/tox-subset_update.ini b/tox-subset_update.ini index 4e1c06cc9..b2e81575e 100644 --- a/tox-subset_update.ini +++ b/tox-subset_update.ini @@ -12,8 +12,9 @@ whitelist_externals = passenv=* setenv= ANSIBLE_SSH_ARGS = -F {changedir}/vagrant_ssh_config -o ControlMaster=auto -o ControlPersist=600s -o PreferredAuthentications=publickey + ANSIBLE_COLLECTIONS_PATH = {envdir} ANSIBLE_CONFIG = {toxinidir}/ansible.cfg - ANSIBLE_CALLBACK_WHITELIST = profile_tasks + ANSIBLE_CALLBACK_ENABLED = profile_tasks ANSIBLE_CACHE_PLUGIN = memory ANSIBLE_GATHERING = implicit # only available for ansible >= 2.5 @@ -33,6 +34,7 @@ setenv= deps= -r{toxinidir}/tests/requirements.txt changedir={toxinidir}/tests/functional/subset_update{env:CONTAINER_DIR:} commands= + ansible-galaxy collection install -r {toxinidir}/requirements.yml -v -p {envdir}/ansible_collections bash {toxinidir}/tests/scripts/vagrant_up.sh --no-provision {posargs:--provider=virtualbox} bash {toxinidir}/tests/scripts/generate_ssh_config.sh {changedir} diff --git a/tox-update.ini b/tox-update.ini index 94ca977fd..5cc7aefdd 100644 --- a/tox-update.ini +++ b/tox-update.ini @@ -9,11 +9,13 @@ whitelist_externals = bash git pip + rm passenv=* setenv= ANSIBLE_SSH_ARGS = -F {changedir}/vagrant_ssh_config -o ControlMaster=auto -o ControlPersist=600s -o PreferredAuthentications=publickey + ANSIBLE_COLLECTIONS_PATH = {envdir} ANSIBLE_CONFIG = {toxinidir}/ansible.cfg - ANSIBLE_CALLBACK_WHITELIST = profile_tasks + ANSIBLE_CALLBACK_ENABLED = profile_tasks ANSIBLE_CACHE_PLUGIN = memory ANSIBLE_GATHERING = implicit # only available for ansible >= 2.5 @@ -38,7 +40,7 @@ commands= # use the stable-6.0 branch to deploy an octopus cluster git clone -b stable-6.0 --single-branch https://github.com/ceph/ceph-ansible.git {envdir}/tmp/ceph-ansible pip install -r {envdir}/tmp/ceph-ansible/tests/requirements.txt - ansible-galaxy install -r {envdir}/tmp/ceph-ansible/requirements.yml -v + ansible-galaxy collection install -r {envdir}/tmp/ceph-ansible/requirements.yml -v -p {envdir}/ansible_collections bash -c 'ANSIBLE_CONFIG={envdir}/tmp/ceph-ansible/ansible.cfg ansible-playbook -vv -i {envdir}/tmp/ceph-ansible/tests/functional/all_daemons{env:CONTAINER_DIR:}/hosts {envdir}/tmp/ceph-ansible/tests/functional/setup.yml' @@ -71,8 +73,9 @@ commands= "' pip uninstall -y ansible + rm -rf {envdir}/ansible_collections + ansible-galaxy collection install -r {toxinidir}/requirements.yml -v -p {envdir}/ansible_collections pip install -r {toxinidir}/tests/requirements.txt - ansible-galaxy install -r {toxinidir}/requirements.yml -v -f ansible-playbook -vv -i {changedir}/{env:INVENTORY} {toxinidir}/infrastructure-playbooks/rolling_update.yml --extra-vars "\ ireallymeanit=yes \ ceph_docker_registry_auth=True \ diff --git a/tox.ini b/tox.ini index 70d91e71a..7843f44ca 100644 --- a/tox.ini +++ b/tox.ini @@ -270,10 +270,11 @@ sitepackages=False setenv= ANSIBLE_SSH_ARGS = -F {changedir}/vagrant_ssh_config -o ControlMaster=auto -o ControlPersist=600s -o PreferredAuthentications=publickey ANSIBLE_CONFIG = {toxinidir}/ansible.cfg - ANSIBLE_CALLBACK_WHITELIST = profile_tasks + ANSIBLE_CALLBACKS_ENABLED = profile_tasks ANSIBLE_KEEP_REMOTE_FILES = 1 ANSIBLE_CACHE_PLUGIN = memory ANSIBLE_GATHERING = implicit + ANSIBLE_COLLECTIONS_PATH = {envdir} # only available for ansible >= 2.5 ANSIBLE_STDOUT_CALLBACK = yaml non_container: DEV_SETUP = True @@ -326,7 +327,7 @@ changedir= cephadm_adopt: {toxinidir}/tests/functional/all_daemons{env:CONTAINER_DIR:} commands= - ansible-galaxy install -r {toxinidir}/requirements.yml -v + ansible-galaxy collection install -r {toxinidir}/requirements.yml -v -p {envdir}/ansible_collections rhcs: ansible-playbook -vv -i "localhost," -c local {toxinidir}/tests/functional/rhcs_setup.yml --extra-vars "change_dir={changedir}" --tags "vagrant_setup" bash {toxinidir}/tests/scripts/vagrant_up.sh --no-provision {posargs:--provider=virtualbox}