kolla-ansible/tests/templates/globals-default.j2
Mark Goddard 99cd5ec10c Wait for mariadb to stop after shutdown
Stein only.

Currently the kolla-ansible-centos-source-upgrade-ceph job is failing on
the stable/stein branch.

The problem occurs with mariadb, when performing an upgrade to the Stein
release which has a new version of mariadb. It appears that when the
slave mariadb services are shut down, we do not wait for the container
to stop, so the service may not shut down cleanly. This prevents it from
starting up successfully.

This change waits for the container to stop after the shutdown command
has been executed. It also temporarily replaces the restart policy of
the container to prevent it from starting up again after the shutdown.

This is not required in other branches since the mariadb shutdown
workaround was only added in the stein branch for bug 1820325.

There is a second issue that is addressed here. The Stein release
switched from using xtrabackup to mariabackup for galera state syncing.
If we run both container versions at the same time on different hosts
then we can get an error such as the following:

sh: wsrep_sst_mariabackup: command not found

We therefore now stop the cluster and perform a recovery during an
upgrade, if we detect that xtrabackup is in use.

Finally, we now wait for the bootstrap host to report that it is in an
OPERATIONAL state. Without this we can see errors where the MariaDB
cluster is not ready when used by other services.

Change-Id: I513bcf31adaee8441d43c6b578ca06f66820e52b
Closes-Bug: #1834191
Related-Bug: #1820325
2019-07-04 14:02:39 +00:00

73 lines
2.4 KiB
Django/Jinja

---
kolla_base_distro: "{{ base_distro }}"
kolla_install_type: "{{ install_type }}"
network_interface: "{{ api_interface_name }}"
docker_restart_policy: "no"
# Use a random router id, otherwise it may result in the same router id
# in the CI gate.
keepalived_virtual_router_id: "{{ 250 | random(1) }}"
{% if enable_core_openstack | bool %}
kolla_internal_vip_address: "{{ api_interface_address if hostvars | length > 2 else '169.254.169.10' }}"
enable_haproxy: "{{ 'no' if hostvars | length > 2 else 'yes' }}"
# TODO(mgoddard): Remove this in the Train cycle when heat is enabled in the
# initial deployment.
enable_heat: "{{ not is_upgrade or previous_release != 'rocky' }}"
neutron_external_interface: "fake_interface"
openstack_logging_debug: "True"
openstack_service_workers: "1"
{% endif %}
{% if need_build_image and not is_previous_release %}
# NOTE(Jeffrey4l): use different a docker namespace name in case it pull image from hub.docker.io when deplying
docker_namespace: "lokolla"
docker_registry: "{{ api_interface_address }}:4000"
openstack_release: "{{ build_image_tag }}"
{% else %}
# use docker hub images
docker_namespace: "kolla"
{% if need_build_image and is_previous_release %}
# NOTE(mgoddard): Ensure that the insecure local registry is trusted, since it
# will be the source of images during the upgrade.
docker_custom_option: "--insecure-registry {{ api_interface_address }}:4000"
{% endif %}
{% if not is_previous_release %}
openstack_release: "{{ zuul.branch | basename }}"
{% else %}
openstack_release: "{{ previous_release }}"
{% endif %}
{% endif %}
{% if is_ceph %}
enable_ceph: "yes"
enable_cinder: "yes"
ceph_pool_pg_num: 8
ceph_pool_pgp_num: 8
# This is experimental feature, disable if gate fail.
# In multinode jobs without ceph rolling upgrade fails.
glance_enable_rolling_upgrade: "yes"
{% endif %}
{% if scenario == "cinder-lvm" %}
enable_cinder: "yes"
enable_cinder_backend_lvm: "yes"
glance_api_hosts: ["{{ inventory_hostname }}"]
{% endif %}
{% if scenario == "zun" %}
enable_zun: "yes"
enable_kuryr: "yes"
enable_etcd: "yes"
docker_custom_option: " -H unix:///var/run/docker.sock -H tcp://{{ api_interface_address }}:2375 --cluster-store=etcd://{{ api_interface_address }}:2379 --cluster-advertise={{ api_interface_address }}:2375"
{% endif %}
{% if scenario == "scenario_nfv" %}
glance_api_hosts: ["{{ inventory_hostname }}"]
enable_tacker: "yes"
enable_neutron_sfc: "yes"
enable_mistral: "yes"
enable_redis: "yes"
enable_barbican: "yes"
{% endif %}