From b087f058c96be252aa32842f208f766295a2b5ca Mon Sep 17 00:00:00 2001 From: Doug Szumski Date: Fri, 26 Jul 2019 12:20:50 +0000 Subject: [PATCH] Support DB bootstrap from Nova Conductor container Currently the Nova API container does all the database bootstrapping for Nova. In a deployment with more than one active cell, it makes more sense for the conductors to bootstrap their own databases, rather than have the Nova API container do it. This change adds support for that. Until the support is actually used, we leave Nova API as-is. Partially Implements: blueprint support-nova-cells Change-Id: Id3a78b6838a3aae04f5dd5bd6ec928359297cfd3 --- docker/nova/nova-api/extend_start.sh | 4 ++++ docker/nova/nova-conductor/Dockerfile.j2 | 3 +++ docker/nova/nova-conductor/extend_start.sh | 17 +++++++++++++++++ 3 files changed, 24 insertions(+) create mode 100644 docker/nova/nova-conductor/extend_start.sh diff --git a/docker/nova/nova-api/extend_start.sh b/docker/nova/nova-api/extend_start.sh index 3d958253e0..815b622556 100644 --- a/docker/nova/nova-api/extend_start.sh +++ b/docker/nova/nova-api/extend_start.sh @@ -1,5 +1,9 @@ #!/bin/bash +# TODO(dszumski): When Nova Conductor in Kolla Ansible supports triggering DB +# operations, we should review this script and remove any duplicate +# operations. This is probably anything that isn't to do with the API. + # Bootstrap and exit if KOLLA_BOOTSTRAP variable is set. This catches all cases # of the KOLLA_BOOTSTRAP variable being set, including empty. if [[ "${!KOLLA_BOOTSTRAP[@]}" ]]; then diff --git a/docker/nova/nova-conductor/Dockerfile.j2 b/docker/nova/nova-conductor/Dockerfile.j2 index 3f0dd9d76e..01cb2f4b8b 100644 --- a/docker/nova/nova-conductor/Dockerfile.j2 +++ b/docker/nova/nova-conductor/Dockerfile.j2 @@ -24,6 +24,9 @@ LABEL maintainer="{{ maintainer }}" name="{{ image_name }}" build-date="{{ build {% endif %} +COPY extend_start.sh /usr/local/bin/kolla_nova_extend_start +RUN chmod 755 /usr/local/bin/kolla_nova_extend_start + {% block nova_conductor_footer %}{% endblock %} {% block footer %}{% endblock %} diff --git a/docker/nova/nova-conductor/extend_start.sh b/docker/nova/nova-conductor/extend_start.sh new file mode 100644 index 0000000000..04cf1411ac --- /dev/null +++ b/docker/nova/nova-conductor/extend_start.sh @@ -0,0 +1,17 @@ +#!/bin/bash + +if [[ "${!KOLLA_BOOTSTRAP[@]}" ]]; then + nova-manage db sync + nova-manage db online_data_migrations + exit 0 +fi + +if [[ "${!KOLLA_UPGRADE[@]}" ]]; then + nova-manage db sync + exit 0 +fi + +if [[ "${!KOLLA_OSM[@]}" ]]; then + nova-manage db online_data_migrations + exit 0 +fi