From cb4e875ae1e1ec2e6ddf8a6b37f42283697fd50c Mon Sep 17 00:00:00 2001 From: Sam Yaple Date: Wed, 30 Sep 2015 11:23:39 +0000 Subject: Common start.sh The majority of the start.sh code is identical. This removes that duplicate code while still maintaining the ability to call code in a specific container. The start.sh is moved into /usr/local/bin/kolla_start in the container The extend_start.sh script is called by the kolla_start script at the location /usr/local/bin/kolla_extend_start . It always exists because we create a noop kolla_extend_start in the base directory. We override it with extend_start.sh in a specific image should we need to. Of note, the neutron-agents container is exempt from this new structure due to it being a fat container. Additionally, we fix the inconsistent permissions throughout. 644 for repo files and the scripts are set to 755 via a Docker RUN command to ensure someones local perm change won't break upstream containers. Change-Id: I7da8d19965463ad30ee522a71183e3f092e0d6ad Closes-Bug: #1501295 --- docker/keystone/Dockerfile.j2 | 5 ++--- docker/keystone/extend_start.sh | 30 ++++++++++++++++++++++++++++++ docker/keystone/start.sh | 36 ------------------------------------ 3 files changed, 32 insertions(+), 39 deletions(-) create mode 100644 docker/keystone/extend_start.sh delete mode 100755 docker/keystone/start.sh (limited to 'docker/keystone') diff --git a/docker/keystone/Dockerfile.j2 b/docker/keystone/Dockerfile.j2 index 115f537a2..bbea133d4 100644 --- a/docker/keystone/Dockerfile.j2 +++ b/docker/keystone/Dockerfile.j2 @@ -50,8 +50,7 @@ RUN ln -s keystone-source/* keystone \ RUN chown -R keystone: /var/www/cgi-bin/keystone \ && chmod 755 /var/www/cgi-bin/keystone/* -COPY start.sh / - -CMD ["/start.sh"] +COPY extend_start.sh /usr/local/bin/kolla_extend_start +RUN chmod 755 /usr/local/bin/kolla_extend_start {{ include_footer }} diff --git a/docker/keystone/extend_start.sh b/docker/keystone/extend_start.sh new file mode 100644 index 000000000..9bd9d5370 --- /dev/null +++ b/docker/keystone/extend_start.sh @@ -0,0 +1,30 @@ +#!/bin/bash + +if [[ "${KOLLA_BASE_DISTRO}" == "ubuntu" || \ + "${KOLLA_BASE_DISTRO}" == "debian" ]]; then + # Loading Apache2 ENV variables + source /etc/apache2/envvars +fi + +# 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 + su -s /bin/sh -c "keystone-manage db_sync" keystone + # Start the api to set initial endpoint and users with the admin_token + $CMD + sleep 5 + + openstack service create --name keystone --description "OpenStack Identity" identity + openstack endpoint create --region "${REGION_NAME}" \ + --publicurl "${PUBLIC_URL}" \ + --internalurl "${INTERNAL_URL}" \ + --adminurl "${ADMIN_URL}" \ + identity + openstack project create --description "Admin Project" admin + openstack user create --password "${KEYSTONE_ADMIN_PASSWORD}" admin + openstack role create admin + openstack role add --project admin --user admin admin + exit 0 +fi + +ARGS="-DFOREGROUND" diff --git a/docker/keystone/start.sh b/docker/keystone/start.sh deleted file mode 100755 index 45c6391fc..000000000 --- a/docker/keystone/start.sh +++ /dev/null @@ -1,36 +0,0 @@ -#!/bin/bash -set -o errexit - -# Loading common functions -source /opt/kolla/kolla-common.sh - -if [[ "${KOLLA_BASE_DISTRO}" == "ubuntu" || \ - "${KOLLA_BASE_DISTRO}" == "debian" ]]; then - # Loading Apache2 ENV variables - source /etc/apache2/envvars -fi - -# 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 - su -s /bin/sh -c "keystone-manage db_sync" keystone - # Start the api to set initial endpoint and users with the admin_token - $CMD - sleep 5 - - openstack service create --name keystone --description "OpenStack Identity" identity - openstack endpoint create --region "${REGION_NAME}" \ - --publicurl "${PUBLIC_URL}" \ - --internalurl "${INTERNAL_URL}" \ - --adminurl "${ADMIN_URL}" \ - identity - openstack project create --description "Admin Project" admin - openstack user create --password "${KEYSTONE_ADMIN_PASSWORD}" admin - openstack role create admin - openstack role add --project admin --user admin admin - exit 0 -fi - -ARGS="-DFOREGROUND" -echo "Running command: ${CMD} ${ARGS}" -exec $CMD $ARGS -- cgit v1.2.3