Merge "Test upgrades in CI"
This commit is contained in:
commit
60ecee2b25
@ -104,6 +104,19 @@ function install_venv {
|
|||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function upgrade_venv {
|
||||||
|
echo "Upgrading kayobe virtual environment in ${KAYOBE_VENV_PATH}"
|
||||||
|
virtualenv "${KAYOBE_VENV_PATH}"
|
||||||
|
# NOTE: Virtualenv's activate and deactivate scripts reference an
|
||||||
|
# unbound variable.
|
||||||
|
set +u
|
||||||
|
source "${KAYOBE_VENV_PATH}/bin/activate"
|
||||||
|
pip install -U pip
|
||||||
|
pip install -U "${KAYOBE_SOURCE_PATH}"
|
||||||
|
deactivate
|
||||||
|
set -u
|
||||||
|
}
|
||||||
|
|
||||||
# Deployment
|
# Deployment
|
||||||
|
|
||||||
function is_deploy_image_built_locally {
|
function is_deploy_image_built_locally {
|
||||||
@ -183,7 +196,18 @@ function overcloud_deploy {
|
|||||||
environment_setup
|
environment_setup
|
||||||
|
|
||||||
echo "Bootstrapping the Ansible control host"
|
echo "Bootstrapping the Ansible control host"
|
||||||
run_kayobe control host bootstrap
|
for i in $(seq 1 3); do
|
||||||
|
if run_kayobe control host bootstrap; then
|
||||||
|
chb_success=1
|
||||||
|
break
|
||||||
|
fi
|
||||||
|
echo "Control host bootstrap failed - likely Ansible Galaxy flakiness. Retrying"
|
||||||
|
done
|
||||||
|
if [[ -z ${chb_success+x} ]]; then
|
||||||
|
echo "Failed to bootstrap control host"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
echo "Bootstrapped control host after $i attempts"
|
||||||
|
|
||||||
echo "Configuring the controller host"
|
echo "Configuring the controller host"
|
||||||
run_kayobe overcloud host configure
|
run_kayobe overcloud host configure
|
||||||
@ -216,6 +240,61 @@ function overcloud_deploy {
|
|||||||
echo "Control plane deployment complete"
|
echo "Control plane deployment complete"
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function overcloud_upgrade {
|
||||||
|
# Upgrade a kayobe control plane.
|
||||||
|
echo "Upgrading a kayobe development environment. This consists of a "
|
||||||
|
echo "single node OpenStack control plane."
|
||||||
|
|
||||||
|
echo "Upgrading Kayobe"
|
||||||
|
upgrade_venv
|
||||||
|
|
||||||
|
environment_setup
|
||||||
|
|
||||||
|
echo "Upgrading the Ansible control host"
|
||||||
|
for i in $(seq 1 3); do
|
||||||
|
if run_kayobe control host upgrade; then
|
||||||
|
chu_success=1
|
||||||
|
break
|
||||||
|
fi
|
||||||
|
echo "Control host upgrade failed - likely Ansible Galaxy flakiness. Retrying"
|
||||||
|
done
|
||||||
|
if [[ -z ${chu_success+x} ]]; then
|
||||||
|
echo "Failed to upgrade control host"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
echo "Upgraded control host after $i attempts"
|
||||||
|
|
||||||
|
echo "Upgrading the controller host"
|
||||||
|
run_kayobe overcloud host upgrade
|
||||||
|
|
||||||
|
if is_deploy_image_built_locally; then
|
||||||
|
echo "Building overcloud deployment images"
|
||||||
|
run_kayobe overcloud deployment image build --force-rebuild
|
||||||
|
else
|
||||||
|
echo "Not building overcloud deployment images"
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [[ ${KAYOBE_OVERCLOUD_CONTAINER_IMAGE_BUILD} = 1 ]]; then
|
||||||
|
echo "Building overcloud container images"
|
||||||
|
run_kayobe overcloud container image build
|
||||||
|
else
|
||||||
|
echo "Pulling overcloud container images"
|
||||||
|
run_kayobe overcloud container image pull
|
||||||
|
fi
|
||||||
|
|
||||||
|
echo "Saving overcloud service configuration"
|
||||||
|
if ! run_kayobe overcloud service configuration save; then
|
||||||
|
# NOTE(mgoddard): This fails in CI due to a memory error while copying
|
||||||
|
# the IPA deployment images.
|
||||||
|
echo "FIXME: Saving service configuration failed. Ignoring for now"
|
||||||
|
fi
|
||||||
|
|
||||||
|
echo "Deploying containerised overcloud services"
|
||||||
|
run_kayobe overcloud service upgrade
|
||||||
|
|
||||||
|
echo "Control plane upgrade complete"
|
||||||
|
}
|
||||||
|
|
||||||
function overcloud_test {
|
function overcloud_test {
|
||||||
# Perform a simple smoke test against the cloud.
|
# Perform a simple smoke test against the cloud.
|
||||||
echo "Performing a simple smoke test"
|
echo "Performing a simple smoke test"
|
||||||
@ -224,9 +303,13 @@ function overcloud_test {
|
|||||||
|
|
||||||
pip install python-openstackclient
|
pip install python-openstackclient
|
||||||
|
|
||||||
echo "Running kolla-ansible init-runonce"
|
|
||||||
source "${KOLLA_CONFIG_PATH:-/etc/kolla}/admin-openrc.sh"
|
source "${KOLLA_CONFIG_PATH:-/etc/kolla}/admin-openrc.sh"
|
||||||
|
if ! openstack image show cirros >/dev/null 2>&1; then
|
||||||
|
echo "Running kolla-ansible init-runonce"
|
||||||
${KOLLA_VENV_PATH:-$HOME/kolla-venv}/share/kolla-ansible/init-runonce
|
${KOLLA_VENV_PATH:-$HOME/kolla-venv}/share/kolla-ansible/init-runonce
|
||||||
|
else
|
||||||
|
echo "Not running kolla-ansible init-runonce - resources exist"
|
||||||
|
fi
|
||||||
|
|
||||||
echo "Creating a VM"
|
echo "Creating a VM"
|
||||||
openstack server create --wait --image cirros --flavor m1.tiny --key-name mykey --network demo-net demo1
|
openstack server create --wait --image cirros --flavor m1.tiny --key-name mykey --network demo-net demo1
|
||||||
|
20
dev/overcloud-upgrade.sh
Executable file
20
dev/overcloud-upgrade.sh
Executable file
@ -0,0 +1,20 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
set -eu
|
||||||
|
set -o pipefail
|
||||||
|
|
||||||
|
# Simple script to upgrade a development environment for an OpenStack
|
||||||
|
# controller in a Vagrant VM using kayobe. This should be executed from within
|
||||||
|
# the VM.
|
||||||
|
|
||||||
|
PARENT="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
||||||
|
|
||||||
|
source "${PARENT}/functions"
|
||||||
|
|
||||||
|
|
||||||
|
function main {
|
||||||
|
config_init
|
||||||
|
overcloud_upgrade
|
||||||
|
}
|
||||||
|
|
||||||
|
main
|
@ -93,6 +93,18 @@ plane::
|
|||||||
|
|
||||||
Upon successful completion of this script, the control plane will be active.
|
Upon successful completion of this script, the control plane will be active.
|
||||||
|
|
||||||
|
The control plane can be tested by running the ``dev/overcloud-test.sh``
|
||||||
|
script. This will run the ``init-runonce`` setup script provided by Kolla
|
||||||
|
Ansible that registers images, networks, flavors etc. It will then deploy a
|
||||||
|
virtual server instance, and delete it once it becomes active::
|
||||||
|
|
||||||
|
./dev/overcloud-test.sh
|
||||||
|
|
||||||
|
It is possible to test an upgrade by running the ``dev/overcloud-upgrade.sh``
|
||||||
|
script::
|
||||||
|
|
||||||
|
./dev/overcloud-upgrade.sh
|
||||||
|
|
||||||
Seed Hypervisor
|
Seed Hypervisor
|
||||||
===============
|
===============
|
||||||
|
|
||||||
|
@ -10,28 +10,9 @@
|
|||||||
- role: kayobe-diagnostics
|
- role: kayobe-diagnostics
|
||||||
kayobe_diagnostics_phase: "pre"
|
kayobe_diagnostics_phase: "pre"
|
||||||
kayobe_diagnostics_log_dir: "{{ logs_dir }}"
|
kayobe_diagnostics_log_dir: "{{ logs_dir }}"
|
||||||
|
|
||||||
|
- role: kayobe-ci-prep
|
||||||
tasks:
|
tasks:
|
||||||
- name: Install dbus for debian system
|
|
||||||
apt:
|
|
||||||
name: dbus
|
|
||||||
when:
|
|
||||||
- ansible_os_family == 'Debian'
|
|
||||||
become: true
|
|
||||||
|
|
||||||
- block:
|
|
||||||
# NOTE(mgoddard): The CentOS image used in CI has epel-release installed,
|
|
||||||
# but the configure-mirrors role used by Zuul disables epel. Since we
|
|
||||||
# install epel-release and expect epel to be enabled, enable it here.
|
|
||||||
- name: Ensure yum-utils is installed
|
|
||||||
yum:
|
|
||||||
name: yum-utils
|
|
||||||
state: installed
|
|
||||||
|
|
||||||
- name: Enable the EPEL yum repository
|
|
||||||
command: yum-config-manager --enable epel
|
|
||||||
when: ansible_os_family == 'RedHat'
|
|
||||||
become: true
|
|
||||||
|
|
||||||
# NOTE(mgoddard): Copying upper constraints to somewhere accessible by both
|
# NOTE(mgoddard): Copying upper constraints to somewhere accessible by both
|
||||||
# the zuul and stack users.
|
# the zuul and stack users.
|
||||||
- name: Ensure upper-contraints.txt exists
|
- name: Ensure upper-contraints.txt exists
|
||||||
|
10
playbooks/kayobe-overcloud-upgrade-base/globals.yml.j2
Normal file
10
playbooks/kayobe-overcloud-upgrade-base/globals.yml.j2
Normal file
@ -0,0 +1,10 @@
|
|||||||
|
---
|
||||||
|
# The Queens kayobe configuration uses the fernet token provider. To avoid
|
||||||
|
# issues during upgrade, set the provider to fernet in the Pike deployment
|
||||||
|
# also.
|
||||||
|
keystone_token_provider: 'fernet'
|
||||||
|
|
||||||
|
# Most development environments will use nested virtualisation, and we can't
|
||||||
|
# guarantee that nested KVM support is available. Use QEMU as a lowest common
|
||||||
|
# denominator.
|
||||||
|
nova_compute_virt_type: qemu
|
16
playbooks/kayobe-overcloud-upgrade-base/overrides.yml.j2
Normal file
16
playbooks/kayobe-overcloud-upgrade-base/overrides.yml.j2
Normal file
@ -0,0 +1,16 @@
|
|||||||
|
---
|
||||||
|
# NOTE(mgoddard): Don't reboot after disabling SELinux during CI testing, as
|
||||||
|
# Ansible is run directly on the controller.
|
||||||
|
disable_selinux_do_reboot: false
|
||||||
|
|
||||||
|
{% if not previous_release | default(false) %}
|
||||||
|
kolla_source_url: "{{ ansible_env.PWD ~ '/' ~ zuul.projects['git.openstack.org/openstack/kolla'].src_dir }}"
|
||||||
|
kolla_source_version: "{{ zuul.projects['git.openstack.org/openstack/kolla'].checkout }}"
|
||||||
|
kolla_ansible_source_url: "{{ ansible_env.PWD ~ '/' ~ zuul.projects['git.openstack.org/openstack/kolla-ansible'].src_dir }}"
|
||||||
|
kolla_ansible_source_version: "{{ zuul.projects['git.openstack.org/openstack/kolla-ansible'].checkout }}"
|
||||||
|
kolla_upper_constraints_file: "/tmp/upper-constraints.txt"
|
||||||
|
{% endif %}
|
||||||
|
|
||||||
|
# Use the CI infra's PyPI mirror.
|
||||||
|
pip_local_mirror: true
|
||||||
|
pip_index_url: "http://{{ zuul_site_mirror_fqdn }}/pypi/simple"
|
8
playbooks/kayobe-overcloud-upgrade-base/post.yml
Normal file
8
playbooks/kayobe-overcloud-upgrade-base/post.yml
Normal file
@ -0,0 +1,8 @@
|
|||||||
|
---
|
||||||
|
- hosts: all
|
||||||
|
roles:
|
||||||
|
- role: kayobe-diagnostics
|
||||||
|
kayobe_diagnostics_phase: "post"
|
||||||
|
kayobe_diagnostics_log_dir: "/tmp/logs"
|
||||||
|
kayobe_diagnostics_config_dir: "{{ ansible_env.PWD ~ '/' ~ zuul.projects['git.openstack.org/openstack/kayobe-config-dev'].src_dir }}"
|
||||||
|
kayobe_diagnostics_executor_log_dir: "{{ zuul.executor.log_root }}/{{ inventory_hostname }}"
|
69
playbooks/kayobe-overcloud-upgrade-base/pre.yml
Normal file
69
playbooks/kayobe-overcloud-upgrade-base/pre.yml
Normal file
@ -0,0 +1,69 @@
|
|||||||
|
---
|
||||||
|
- hosts: primary
|
||||||
|
vars:
|
||||||
|
logs_dir: "/tmp/logs"
|
||||||
|
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' }}"
|
||||||
|
roles:
|
||||||
|
- role: kayobe-diagnostics
|
||||||
|
kayobe_diagnostics_phase: "pre"
|
||||||
|
kayobe_diagnostics_log_dir: "{{ logs_dir }}"
|
||||||
|
|
||||||
|
- role: kayobe-ci-prep
|
||||||
|
tasks:
|
||||||
|
# NOTE(mgoddard): Copying upper constraints to somewhere accessible by both
|
||||||
|
# the zuul and stack users.
|
||||||
|
- name: Ensure upper-contraints.txt exists
|
||||||
|
copy:
|
||||||
|
src: "{{ zuul.projects['git.openstack.org/openstack/requirements'].src_dir ~ '/upper-constraints.txt' }}"
|
||||||
|
dest: "/tmp"
|
||||||
|
mode: 0644
|
||||||
|
remote_src: true
|
||||||
|
|
||||||
|
- name: Ensure previous kayobe directory exists
|
||||||
|
file:
|
||||||
|
path: "{{ previous_kayobe_src_dir }}"
|
||||||
|
state: directory
|
||||||
|
|
||||||
|
- name: Ensure previous kayobe repository is cloned
|
||||||
|
git:
|
||||||
|
repo: https://git.openstack.org/openstack/kayobe
|
||||||
|
dest: "{{ previous_kayobe_src_dir }}"
|
||||||
|
version: "stable/{{ previous_release | lower }}"
|
||||||
|
|
||||||
|
- name: Ensure previous kayobe-config directory exists
|
||||||
|
file:
|
||||||
|
path: "{{ previous_kayobe_config_src_dir }}"
|
||||||
|
state: directory
|
||||||
|
|
||||||
|
- name: Ensure kayobe-config repository is cloned
|
||||||
|
git:
|
||||||
|
repo: https://git.openstack.org/openstack/kayobe-config-dev
|
||||||
|
dest: "{{ previous_kayobe_config_src_dir }}"
|
||||||
|
version: "stable/{{ previous_release | lower }}"
|
||||||
|
|
||||||
|
# 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: "{{ previous_kayobe_config_src_dir }}/etc/kayobe/zz-overrides.yml"
|
||||||
|
vars:
|
||||||
|
previous_release: true
|
||||||
|
|
||||||
|
- name: Ensure kayobe-config globals.yml config file exists
|
||||||
|
template:
|
||||||
|
src: globals.yml.j2
|
||||||
|
dest: "{{ previous_kayobe_config_src_dir }}/etc/kayobe/kolla/globals.yml"
|
||||||
|
|
||||||
|
# NOTE(mgoddard): The kayobe dev config by default expects a bridge -
|
||||||
|
# breth1 - to exist with an IP address of 192.168.33.3.
|
||||||
|
- name: Ensure all-in-one network bridge interface exists
|
||||||
|
command: "{{ item }}"
|
||||||
|
become: true
|
||||||
|
with_items:
|
||||||
|
- "ip l add breth1 type bridge"
|
||||||
|
- "ip l set breth1 up"
|
||||||
|
- "ip a add 192.168.33.3/24 dev breth1"
|
83
playbooks/kayobe-overcloud-upgrade-base/run.yml
Normal file
83
playbooks/kayobe-overcloud-upgrade-base/run.yml
Normal file
@ -0,0 +1,83 @@
|
|||||||
|
---
|
||||||
|
- 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"
|
||||||
|
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: Ensure overcloud is deployed
|
||||||
|
shell:
|
||||||
|
cmd: dev/overcloud-deploy.sh > {{ logs_dir }}/ansible/overcloud-deploy-pre-upgrade
|
||||||
|
chdir: "{{ previous_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 overcloud prior to upgrade
|
||||||
|
shell:
|
||||||
|
cmd: dev/overcloud-test.sh > {{ logs_dir }}/ansible/overcloud-test-pre-upgrade
|
||||||
|
# NOTE(mgoddard): Currently need to use the new kayobe repo for
|
||||||
|
# testing, since the overcloud-test.sh script is not available in Pike.
|
||||||
|
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 the upgraded overcloud
|
||||||
|
shell:
|
||||||
|
cmd: dev/overcloud-test.sh > {{ logs_dir }}/ansible/overcloud-test-post-upgrade
|
||||||
|
chdir: "{{ kayobe_src_dir }}"
|
||||||
|
environment:
|
||||||
|
KAYOBE_CONFIG_SOURCE_PATH: "{{ kayobe_config_src_dir }}"
|
@ -10,28 +10,9 @@
|
|||||||
- role: kayobe-diagnostics
|
- role: kayobe-diagnostics
|
||||||
kayobe_diagnostics_phase: "pre"
|
kayobe_diagnostics_phase: "pre"
|
||||||
kayobe_diagnostics_log_dir: "{{ logs_dir }}"
|
kayobe_diagnostics_log_dir: "{{ logs_dir }}"
|
||||||
|
|
||||||
|
- role: kayobe-ci-prep
|
||||||
tasks:
|
tasks:
|
||||||
- name: Install dbus for debian system
|
|
||||||
apt:
|
|
||||||
name: dbus
|
|
||||||
when:
|
|
||||||
- ansible_os_family == 'Debian'
|
|
||||||
become: true
|
|
||||||
|
|
||||||
- block:
|
|
||||||
# NOTE(mgoddard): The CentOS image used in CI has epel-release installed,
|
|
||||||
# but the configure-mirrors role used by Zuul disables epel. Since we
|
|
||||||
# install epel-release and expect epel to be enabled, enable it here.
|
|
||||||
- name: Ensure yum-utils is installed
|
|
||||||
yum:
|
|
||||||
name: yum-utils
|
|
||||||
state: installed
|
|
||||||
|
|
||||||
- name: Enable the EPEL yum repository
|
|
||||||
command: yum-config-manager --enable epel
|
|
||||||
when: ansible_os_family == 'RedHat'
|
|
||||||
become: true
|
|
||||||
|
|
||||||
# NOTE(mgoddard): Copying upper constraints to somewhere accessible by both
|
# NOTE(mgoddard): Copying upper constraints to somewhere accessible by both
|
||||||
# the zuul and stack users.
|
# the zuul and stack users.
|
||||||
- name: Ensure upper-contraints.txt exists
|
- name: Ensure upper-contraints.txt exists
|
||||||
|
21
roles/kayobe-ci-prep/tasks/main.yml
Normal file
21
roles/kayobe-ci-prep/tasks/main.yml
Normal file
@ -0,0 +1,21 @@
|
|||||||
|
---
|
||||||
|
- name: Install dbus for debian system
|
||||||
|
apt:
|
||||||
|
name: dbus
|
||||||
|
when:
|
||||||
|
- ansible_os_family == 'Debian'
|
||||||
|
become: true
|
||||||
|
|
||||||
|
- block:
|
||||||
|
# NOTE(mgoddard): The CentOS image used in CI has epel-release installed,
|
||||||
|
# but the configure-mirrors role used by Zuul disables epel. Since we
|
||||||
|
# install epel-release and expect epel to be enabled, enable it here.
|
||||||
|
- name: Ensure yum-utils is installed
|
||||||
|
yum:
|
||||||
|
name: yum-utils
|
||||||
|
state: installed
|
||||||
|
|
||||||
|
- name: Enable the EPEL yum repository
|
||||||
|
command: yum-config-manager --enable epel
|
||||||
|
when: ansible_os_family == 'RedHat'
|
||||||
|
become: true
|
@ -34,6 +34,7 @@ copy_logs() {
|
|||||||
|
|
||||||
df -h > ${LOG_DIR}/system_logs/df.txt
|
df -h > ${LOG_DIR}/system_logs/df.txt
|
||||||
free > ${LOG_DIR}/system_logs/free.txt
|
free > ${LOG_DIR}/system_logs/free.txt
|
||||||
|
cat /etc/hosts > ${LOG_DIR}/system_logs/hosts.txt
|
||||||
parted -l > ${LOG_DIR}/system_logs/parted-l.txt
|
parted -l > ${LOG_DIR}/system_logs/parted-l.txt
|
||||||
mount > ${LOG_DIR}/system_logs/mount.txt
|
mount > ${LOG_DIR}/system_logs/mount.txt
|
||||||
env > ${LOG_DIR}/system_logs/env.txt
|
env > ${LOG_DIR}/system_logs/env.txt
|
||||||
|
@ -77,6 +77,44 @@
|
|||||||
parent: kayobe-overcloud-base
|
parent: kayobe-overcloud-base
|
||||||
nodeset: kayobe-centos
|
nodeset: kayobe-centos
|
||||||
|
|
||||||
|
- job:
|
||||||
|
name: kayobe-overcloud-upgrade-base
|
||||||
|
description: |
|
||||||
|
Base job for testing overcloud upgrades.
|
||||||
|
|
||||||
|
Configures the primary VM as an overcloud controller using the previous
|
||||||
|
OpenStack release, and upgrades it to the current release.
|
||||||
|
pre-run: playbooks/kayobe-overcloud-upgrade-base/pre.yml
|
||||||
|
run: playbooks/kayobe-overcloud-upgrade-base/run.yml
|
||||||
|
post-run: playbooks/kayobe-overcloud-upgrade-base/post.yml
|
||||||
|
attempts: 1
|
||||||
|
timeout: 7200
|
||||||
|
required-projects:
|
||||||
|
# Include kayobe to ensure other projects can use this job.
|
||||||
|
- name: openstack/kayobe
|
||||||
|
- name: openstack/kayobe-config-dev
|
||||||
|
- name: openstack/kolla
|
||||||
|
override-checkout: stable/queens
|
||||||
|
- name: openstack/kolla-ansible
|
||||||
|
override-checkout: stable/queens
|
||||||
|
- name: openstack/requirements
|
||||||
|
override-checkout: stable/queens
|
||||||
|
vars:
|
||||||
|
# Name of the release to upgrade from.
|
||||||
|
previous_release: pike
|
||||||
|
irrelevant-files:
|
||||||
|
- ^.*\.rst$
|
||||||
|
- ^doc/.*
|
||||||
|
- ^releasenotes/.*
|
||||||
|
- ^setup.cfg$
|
||||||
|
- ^tools/.*$
|
||||||
|
- ^tox.ini$
|
||||||
|
|
||||||
|
- job:
|
||||||
|
name: kayobe-overcloud-upgrade-centos
|
||||||
|
parent: kayobe-overcloud-upgrade-base
|
||||||
|
nodeset: kayobe-centos
|
||||||
|
|
||||||
- job:
|
- job:
|
||||||
name: kayobe-seed-base
|
name: kayobe-seed-base
|
||||||
description: |
|
description: |
|
||||||
|
@ -15,6 +15,7 @@
|
|||||||
- kayobe-tox-ansible
|
- kayobe-tox-ansible
|
||||||
- kayobe-tox-molecule
|
- kayobe-tox-molecule
|
||||||
- kayobe-overcloud-centos
|
- kayobe-overcloud-centos
|
||||||
|
- kayobe-overcloud-upgrade-centos
|
||||||
- kayobe-seed-centos
|
- kayobe-seed-centos
|
||||||
|
|
||||||
gate:
|
gate:
|
||||||
@ -25,4 +26,5 @@
|
|||||||
- kayobe-tox-ansible
|
- kayobe-tox-ansible
|
||||||
- kayobe-tox-molecule
|
- kayobe-tox-molecule
|
||||||
- kayobe-overcloud-centos
|
- kayobe-overcloud-centos
|
||||||
|
- kayobe-overcloud-upgrade-centos
|
||||||
- kayobe-seed-centos
|
- kayobe-seed-centos
|
||||||
|
Loading…
Reference in New Issue
Block a user