CI: Add mariadb test

Tests the following operations for MariaDB:

* Stop
* Recovery

Backup and restore will be added in a separate change.

Depends-On: https://review.opendev.org/693329
Change-Id: I836d91554715cce0e82c1bbebb7430c457418b2d
This commit is contained in:
Mark Goddard 2019-04-25 11:18:35 +01:00
parent 56f355136a
commit ed996ef90d
7 changed files with 108 additions and 2 deletions

View File

@ -23,6 +23,12 @@ function deploy {
tools/kolla-ansible -i ${RAW_INVENTORY} -vvv post-deploy &> /tmp/logs/ansible/post-deploy
tools/kolla-ansible -i ${RAW_INVENTORY} -vvv check &> /tmp/logs/ansible/check-deploy
if [[ ${ACTION} != "mariadb" ]]; then
init_runonce
fi
}
function init_runonce {
. /etc/kolla/admin-openrc.sh
. ~/openstackclient-venv/bin/activate

View File

@ -113,7 +113,7 @@
# nova-compute.conf
- src: "tests/templates/nova-compute-overrides.j2"
dest: /etc/kolla/config/nova/nova-compute.conf
when: "{{ scenario != 'bifrost' }}"
when: "{{ scenario not in ['bifrost', 'mariadb'] }}"
# ceph.conf
- src: "tests/templates/ceph-overrides.j2"
dest: /etc/kolla/config/ceph.conf
@ -218,7 +218,7 @@
chdir: "{{ kolla_ansible_src_dir }}"
environment:
ACTION: "{{ scenario }}"
when: scenario not in ['ironic', 'scenario_nfv']
when: scenario not in ['ironic', 'mariadb', 'scenario_nfv']
- name: Run test-zun.sh script
shell:
@ -248,6 +248,13 @@
chdir: "{{ kolla_ansible_src_dir }}"
when: scenario == "masakari"
- name: Run test-mariadb.sh script
script:
cmd: test-mariadb.sh
executable: /bin/bash
chdir: "{{ kolla_ansible_src_dir }}"
when: scenario == "mariadb"
- name: Run reconfigure.sh script
script:
cmd: reconfigure.sh

View File

@ -103,3 +103,12 @@ enable_masakari: "yes"
{% if scenario == "cells" %}
enable_cells: "yes"
{% endif %}
{% if scenario == "mariadb" %}
enable_chrony: "no"
enable_fluentd: "no"
enable_mariadb: "yes"
enable_memcached: "no"
enable_openstack_core: "no"
enable_rabbitmq: "no"
{% endif %}

50
tests/test-mariadb.sh Executable file
View File

@ -0,0 +1,50 @@
#!/bin/bash
set -o xtrace
set -o errexit
set -o nounset
set -o pipefail
# Enable unbuffered output for Ansible in Jenkins.
export PYTHONUNBUFFERED=1
function mariadb_stop {
echo "Stopping the database cluster"
tools/kolla-ansible -i ${RAW_INVENTORY} -vvv stop --yes-i-really-really-mean-it --tags mariadb --skip-tags common
if [[ $(sudo docker ps -q | grep mariadb | wc -l) -ne 0 ]]; then
echo "Failed to stop MariaDB cluster"
return 1
fi
}
function mariadb_recovery {
# Recover the database cluster.
echo "Recovering the database cluster"
tools/kolla-ansible -i ${RAW_INVENTORY} -vvv mariadb_recovery --tags mariadb --skip-tags common
}
function test_recovery {
# Stop all nodes in the cluster, then recover.
mariadb_stop
mariadb_recovery
}
function test_mariadb_logged {
RAW_INVENTORY=/etc/kolla/inventory
test_recovery
}
function test_mariadb {
echo "Testing MariaDB"
test_mariadb_logged > /tmp/logs/ansible/test-mariadb 2>&1
result=$?
if [[ $result != 0 ]]; then
echo "Testing MariaDB failed. See ansible/test-mariadb for details"
else
echo "Successfully tested MariaDB. See ansible/test-mariadb for details"
fi
return $result
}
test_mariadb

View File

@ -53,6 +53,10 @@ function setup_config {
GATE_IMAGES+=",masakari"
fi
if [[ $ACTION == "mariadb" ]]; then
GATE_IMAGES="cron,haproxy,keepalived,kolla-toolbox,mariadb"
fi
cat <<EOF | sudo tee /etc/kolla/kolla-build.conf
[DEFAULT]
namespace = lokolla

View File

@ -108,6 +108,26 @@
install_type: source
scenario: cinder-lvm
- job:
name: kolla-ansible-centos-source-mariadb
parent: kolla-ansible-base
nodeset: kolla-ansible-centos-multi
voting: false
vars:
base_distro: centos
install_type: source
scenario: mariadb
- job:
name: kolla-ansible-ubuntu-source-mariadb
parent: kolla-ansible-base
nodeset: kolla-ansible-bionic-multi
voting: false
vars:
base_distro: ubuntu
install_type: source
scenario: mariadb
- job:
name: kolla-ansible-centos-source-upgrade
parent: kolla-ansible-upgrade-base

View File

@ -48,6 +48,14 @@
- kolla-ansible-centos-binary
- kolla-ansible-ubuntu-binary
- kolla-ansible-centos-source-cells
- kolla-ansible-centos-source-mariadb:
files:
- ^ansible/roles/mariadb/
- ^tests/test-mariadb.sh
- kolla-ansible-ubuntu-source-mariadb:
files:
- ^ansible/roles/mariadb/
- ^tests/test-mariadb.sh
gate:
queue: kolla
jobs:
@ -72,3 +80,5 @@
- kolla-ansible-ubuntu-source-upgrade
- kolla-ansible-centos-source-upgrade-ceph
- kolla-ansible-ubuntu-source-upgrade-ceph
- kolla-ansible-centos-source-mariadb
- kolla-ansible-ubuntu-source-mariadb