--- - hosts: primary tasks: # Install the previous release of Kayobe, and use it to deploy a control # plane. - block: - name: Ensure kayobe is installed shell: cmd: dev/install.sh &> {{ logs_dir }}/ansible/install-pre-upgrade chdir: "{{ previous_kayobe_src_dir }}" - name: Configure the firewall # We run kayobe commands to determine variable values. So this must # be run after install. shell: cmd: dev/configure-firewall.sh # Does not exist in Rocky release, use script from later version. chdir: "{{ kayobe_src_dir }}" - name: Ensure overcloud is deployed shell: cmd: dev/overcloud-deploy.sh &> {{ logs_dir }}/ansible/overcloud-deploy-pre-upgrade chdir: "{{ previous_kayobe_src_dir }}" - name: Ensure test Tenks cluster is deployed shell: # Pass absolute source directory, since otherwise the `chdir` will # cause this to fail. Don't use previous_kayobe_source_dir as # tenks-deploy-compute.sh does not exist there. cmd: dev/tenks-deploy-compute.sh '{{ tenks_src_dir }}' &> {{ logs_dir }}/ansible/tenks-deploy chdir: "{{ kayobe_src_dir }}" environment: KAYOBE_CONFIG_SOURCE_PATH: "{{ previous_kayobe_config_src_dir }}" # Update the Kayobe configuration to the current release. - name: Ensure kolla config directory exists file: path: "{{ kayobe_config_src_dir }}/etc/kolla" state: directory - name: Copy across relevant kayobe-config files copy: src: "{{ previous_kayobe_config_src_dir }}/{{ item }}" dest: "{{ kayobe_config_src_dir }}/{{ item }}" remote_src: true with_items: - etc/kayobe/kolla/passwords.yml - etc/kolla/admin-openrc.sh - etc/kolla/public-openrc.sh # NOTE(mgoddard): Use the name zz-overrides.yml to ensure this takes # precedence over the standard config files. - name: Ensure kayobe-config override config file exists template: src: overrides.yml.j2 dest: "{{ kayobe_config_src_dir }}/etc/kayobe/zz-overrides.yml" # Perform a smoke test against the previous release. - block: - name: Perform testing of the VMs in the overcloud prior to upgrade shell: cmd: dev/overcloud-test-vm.sh &> {{ logs_dir }}/ansible/overcloud-test-vm-pre-upgrade chdir: "{{ previous_kayobe_src_dir }}" - name: Perform testing of the baremetal machines in the overcloud prior to upgrade shell: cmd: dev/overcloud-test-baremetal.sh &> {{ logs_dir }}/ansible/overcloud-test-bm-pre-upgrade chdir: "{{ previous_kayobe_src_dir }}" # Upgrade Kayobe, and use it to perform an upgrade of the control plane. - name: Ensure overcloud is upgraded shell: cmd: "{{ kayobe_src_dir }}/dev/overcloud-upgrade.sh &> {{ logs_dir }}/ansible/overcloud-upgrade" # Perform a smoke test against the upgraded current release. - name: Perform testing of VMs in the upgraded overcloud shell: cmd: dev/overcloud-test-vm.sh &> {{ logs_dir }}/ansible/overcloud-test-vm-post-upgrade chdir: "{{ kayobe_src_dir }}" - name: Perform testing of the baremetal machines in the upgraded overcloud shell: cmd: dev/overcloud-test-baremetal.sh &> {{ logs_dir }}/ansible/overcloud-test-bm-post-upgrade chdir: "{{ kayobe_src_dir }}" environment: KAYOBE_CONFIG_SOURCE_PATH: "{{ kayobe_config_src_dir }}" KAYOBE_SOURCE_PATH: "{{ kayobe_src_dir }}"