![Will Miller](/assets/img/avatar_default.png)
tenks-deploy.sh deploys a minimal virtualized baremetal test cluster locally. It also adds it to the overcloud-base CI job. To make the new CI job work, we need to configure the firewall on the test machine to allow the baremetal machines to communicate with the openstack services. Change-Id: I7487a2606cf0bac71c5c63db41b2b518a6f6398b Depends-On: https://review.openstack.org/#/c/615939 Depends-On: https://review.openstack.org/#/c/618003 Story: 2004297 Task: 27850
111 lines
4.5 KiB
YAML
111 lines
4.5 KiB
YAML
---
|
|
- hosts: primary
|
|
vars:
|
|
kayobe_src_dir: "{{ ansible_env.PWD ~ '/' ~ zuul.projects['git.openstack.org/openstack/kayobe'].src_dir }}"
|
|
kayobe_config_src_dir: "{{ ansible_env.PWD ~ '/' ~ zuul.projects['git.openstack.org/openstack/kayobe-config-dev'].src_dir }}"
|
|
previous_kayobe_src_dir: "{{ ansible_env.PWD ~ '/previous/kayobe' }}"
|
|
previous_kayobe_config_src_dir: "{{ ansible_env.PWD ~ '/previous/kayobe-config' }}"
|
|
logs_dir: "/tmp/logs"
|
|
tenks_src_dir: "{{ ansible_env.PWD ~ '/' ~ zuul.projects['git.openstack.org/openstack/tenks'].src_dir }}"
|
|
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.sh
|
|
# does not exist there.
|
|
cmd: dev/tenks-deploy.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.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: "{{ kayobe_src_dir }}"
|
|
|
|
# Upgrade Kayobe, and use it to perform an upgrade of the control plane.
|
|
|
|
- name: Ensure overcloud is upgraded
|
|
shell:
|
|
cmd: dev/overcloud-upgrade.sh > {{ logs_dir }}/ansible/overcloud-upgrade
|
|
chdir: "{{ kayobe_src_dir }}"
|
|
|
|
# FIXME(mgoddard): The nova-compute service does not seem to be correctly
|
|
# handling the SIGHUP after being upgraded, leading to "In shutdown, no new
|
|
# events can be scheduled" errors when booting an instance.
|
|
- name: Workaround for SIGHUP issue - restart nova-compute service
|
|
shell:
|
|
cmd: docker restart nova_compute
|
|
become: true
|
|
|
|
# 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 }}"
|