From b745c76491032197884355227ad03389ca77dcb3 Mon Sep 17 00:00:00 2001 From: Dimitri Savineau Date: Thu, 10 Sep 2020 10:12:13 -0400 Subject: [PATCH] ceph-facts: only get fsid when monitor are present When running the rolling_update playbook with an inventory without monitor nodes defined (like external scenario) then we can't retrieve the cluster fsid from the running monitor. In this scenario we have to pass this information manually (group_vars or host_vars). Closes: https://bugzilla.redhat.com/show_bug.cgi?id=1877426 Signed-off-by: Dimitri Savineau (cherry picked from commit f63022dfec701dadc28359b1a4978f8a7ab00e03) --- infrastructure-playbooks/rolling_update.yml | 16 ++++++++++++---- roles/ceph-facts/tasks/facts.yml | 8 ++++++-- tox-external_clients.ini | 14 ++++++++++++++ 3 files changed, 32 insertions(+), 6 deletions(-) diff --git a/infrastructure-playbooks/rolling_update.yml b/infrastructure-playbooks/rolling_update.yml index 4dc9ee6c1..b401fbecf 100644 --- a/infrastructure-playbooks/rolling_update.yml +++ b/infrastructure-playbooks/rolling_update.yml @@ -858,25 +858,33 @@ command: "{{ container_binary }} exec ceph-mon-{{ hostvars[groups[mon_group_name][0]]['ansible_hostname'] }} ceph --cluster {{ cluster }} osd require-osd-release nautilus" delegate_to: "{{ groups[mon_group_name][0] }}" run_once: True - when: containerized_deployment | bool + when: + - containerized_deployment | bool + - groups.get(mon_group_name, []) | length > 0 - name: non container | disallow pre-nautilus OSDs and enable all new nautilus-only functionality command: "ceph --cluster {{ cluster }} osd require-osd-release nautilus" delegate_to: "{{ groups[mon_group_name][0] }}" run_once: True - when: not containerized_deployment | bool + when: + - not containerized_deployment | bool + - groups.get(mon_group_name, []) | length > 0 - name: container | enable msgr2 protocol command: "{{ container_binary }} exec ceph-mon-{{ hostvars[groups[mon_group_name][0]]['ansible_hostname'] }} ceph --cluster {{ cluster }} mon enable-msgr2" delegate_to: "{{ groups[mon_group_name][0] }}" run_once: True - when: containerized_deployment | bool + when: + - containerized_deployment | bool + - groups.get(mon_group_name, []) | length > 0 - name: non container | enable msgr2 protocol command: "ceph --cluster {{ cluster }} mon enable-msgr2" delegate_to: "{{ groups[mon_group_name][0] }}" run_once: True - when: not containerized_deployment | bool + when: + - not containerized_deployment | bool + - groups.get(mon_group_name, []) | length > 0 - import_role: name: ceph-handler diff --git a/roles/ceph-facts/tasks/facts.yml b/roles/ceph-facts/tasks/facts.yml index be40bc477..19fa21d8b 100644 --- a/roles/ceph-facts/tasks/facts.yml +++ b/roles/ceph-facts/tasks/facts.yml @@ -154,12 +154,16 @@ register: rolling_update_fsid delegate_to: "{{ mon_host | default(groups[mon_group_name][0]) }}" until: rolling_update_fsid is succeeded - when: rolling_update | bool + when: + - rolling_update | bool + - groups.get(mon_group_name, []) | length > 0 - name: set_fact fsid set_fact: fsid: "{{ (rolling_update_fsid.stdout | from_json).fsid }}" - when: rolling_update | bool + when: + - rolling_update | bool + - groups.get(mon_group_name, []) | length > 0 - name: set_fact ceph_current_status (convert to json) set_fact: diff --git a/tox-external_clients.ini b/tox-external_clients.ini index 3dd70b626..68511c923 100644 --- a/tox-external_clients.ini +++ b/tox-external_clients.ini @@ -63,4 +63,18 @@ commands= bash -c "CEPH_STABLE_RELEASE=nautilus py.test --reruns 5 --reruns-delay 1 -n 8 --durations=0 --sudo -v --connection=ansible --ansible-inventory={changedir}/inventory/external_clients-hosts --ssh-config={changedir}/vagrant_ssh_config {toxinidir}/tests/functional/tests/test_install.py::TestCephConf" + ansible-playbook -vv -i {changedir}/inventory/external_clients-hosts {toxinidir}/infrastructure-playbooks/rolling_update.yml --extra-vars "\ + ireallymeanit=yes \ + fetch_directory={env:FETCH_DIRECTORY:{changedir}/fetch} \ + fsid=40358a87-ab6e-4bdc-83db-1d909147861c \ + external_cluster_mon_ips=192.168.31.10,192.168.31.11,192.168.31.12 \ + generate_fsid=false \ + ceph_stable_release=nautilus \ + ceph_docker_registry_auth=True \ + ceph_docker_registry_username={env:DOCKER_HUB_USERNAME} \ + ceph_docker_registry_password={env:DOCKER_HUB_PASSWORD} \ + " + + bash -c "CEPH_STABLE_RELEASE=nautilus py.test --reruns 5 --reruns-delay 1 -n 8 --durations=0 --sudo -v --connection=ansible --ansible-inventory={changedir}/inventory/external_clients-hosts --ssh-config={changedir}/vagrant_ssh_config {toxinidir}/tests/functional/tests/test_install.py::TestCephConf" + vagrant destroy --force -- 2.39.5