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/nova/nova-api/Dockerfile.j2 | 5 ++--- docker/nova/nova-api/extend_start.sh | 8 ++++++++ docker/nova/nova-api/start.sh | 14 -------------- docker/nova/nova-compute/Dockerfile.j2 | 7 ++----- docker/nova/nova-compute/start.sh | 7 ------- docker/nova/nova-conductor/Dockerfile.j2 | 7 +------ docker/nova/nova-conductor/start.sh | 7 ------- docker/nova/nova-consoleauth/Dockerfile.j2 | 4 ---- docker/nova/nova-consoleauth/start.sh | 7 ------- docker/nova/nova-libvirt/Dockerfile.j2 | 5 ++--- docker/nova/nova-libvirt/extend_start.sh | 9 +++++++++ docker/nova/nova-libvirt/start.sh | 15 --------------- docker/nova/nova-network/Dockerfile.j2 | 4 ---- docker/nova/nova-network/start.sh | 7 ------- docker/nova/nova-novncproxy/Dockerfile.j2 | 4 ---- docker/nova/nova-novncproxy/start.sh | 7 ------- docker/nova/nova-scheduler/Dockerfile.j2 | 4 ---- docker/nova/nova-scheduler/start.sh | 7 ------- 18 files changed, 24 insertions(+), 104 deletions(-) create mode 100644 docker/nova/nova-api/extend_start.sh delete mode 100755 docker/nova/nova-api/start.sh delete mode 100755 docker/nova/nova-compute/start.sh delete mode 100755 docker/nova/nova-conductor/start.sh delete mode 100755 docker/nova/nova-consoleauth/start.sh create mode 100644 docker/nova/nova-libvirt/extend_start.sh delete mode 100755 docker/nova/nova-libvirt/start.sh delete mode 100755 docker/nova/nova-network/start.sh delete mode 100755 docker/nova/nova-novncproxy/start.sh delete mode 100755 docker/nova/nova-scheduler/start.sh (limited to 'docker/nova') diff --git a/docker/nova/nova-api/Dockerfile.j2 b/docker/nova/nova-api/Dockerfile.j2 index e0d7a0db0..6ee313bd1 100644 --- a/docker/nova/nova-api/Dockerfile.j2 +++ b/docker/nova/nova-api/Dockerfile.j2 @@ -10,8 +10,7 @@ RUN yum -y install openstack-nova-api \ {% endif %} {% endif %} -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/nova/nova-api/extend_start.sh b/docker/nova/nova-api/extend_start.sh new file mode 100644 index 000000000..2aaad1e8b --- /dev/null +++ b/docker/nova/nova-api/extend_start.sh @@ -0,0 +1,8 @@ +#!/bin/bash + +# 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 "nova-manage db sync" nova + exit 0 +fi diff --git a/docker/nova/nova-api/start.sh b/docker/nova/nova-api/start.sh deleted file mode 100755 index 6461777ca..000000000 --- a/docker/nova/nova-api/start.sh +++ /dev/null @@ -1,14 +0,0 @@ -#!/bin/bash -set -o errexit - -# Loading common functions. -source /opt/kolla/kolla-common.sh - -# 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 "nova-manage db sync" nova - exit 0 -fi - -exec $CMD diff --git a/docker/nova/nova-compute/Dockerfile.j2 b/docker/nova/nova-compute/Dockerfile.j2 index 428219cec..e86440ed1 100644 --- a/docker/nova/nova-compute/Dockerfile.j2 +++ b/docker/nova/nova-compute/Dockerfile.j2 @@ -4,7 +4,8 @@ MAINTAINER Kolla Project (https://launchpad.net/kolla) {% if install_type == 'binary' %} {% if base_distro in ['centos', 'fedora', 'oraclelinux', 'rhel'] %} -RUN yum -y install openstack-nova-compute \ +RUN yum -y install \ + openstack-nova-compute \ openvswitch \ sysfsutils \ && yum clean all @@ -31,8 +32,4 @@ RUN apt-get install -y --no-install-recommends \ {% endif %} {% endif %} -COPY start.sh / - -CMD ["/start.sh"] - {{ include_footer }} diff --git a/docker/nova/nova-compute/start.sh b/docker/nova/nova-compute/start.sh deleted file mode 100755 index a083e7bac..000000000 --- a/docker/nova/nova-compute/start.sh +++ /dev/null @@ -1,7 +0,0 @@ -#!/bin/bash -set -o errexit - -# Loading common functions. -source /opt/kolla/kolla-common.sh - -exec $CMD diff --git a/docker/nova/nova-conductor/Dockerfile.j2 b/docker/nova/nova-conductor/Dockerfile.j2 index 8b75626cd..09cd50322 100644 --- a/docker/nova/nova-conductor/Dockerfile.j2 +++ b/docker/nova/nova-conductor/Dockerfile.j2 @@ -4,15 +4,10 @@ MAINTAINER Kolla Project (https://launchpad.net/kolla) {% if install_type == 'binary' %} {% if base_distro in ['centos', 'fedora', 'oraclelinux', 'rhel'] %} -RUN yum -y install \ - openstack-nova-conductor \ +RUN yum -y install openstack-nova-conductor \ && yum clean all {% endif %} {% endif %} -COPY start.sh / - -CMD ["/start.sh"] - {{ include_footer }} diff --git a/docker/nova/nova-conductor/start.sh b/docker/nova/nova-conductor/start.sh deleted file mode 100755 index a083e7bac..000000000 --- a/docker/nova/nova-conductor/start.sh +++ /dev/null @@ -1,7 +0,0 @@ -#!/bin/bash -set -o errexit - -# Loading common functions. -source /opt/kolla/kolla-common.sh - -exec $CMD diff --git a/docker/nova/nova-consoleauth/Dockerfile.j2 b/docker/nova/nova-consoleauth/Dockerfile.j2 index b6b0e3da8..b8619778c 100644 --- a/docker/nova/nova-consoleauth/Dockerfile.j2 +++ b/docker/nova/nova-consoleauth/Dockerfile.j2 @@ -10,8 +10,4 @@ RUN yum -y install openstack-nova-console \ {% endif %} {% endif %} -COPY start.sh / - -CMD ["/start.sh"] - {{ include_footer }} diff --git a/docker/nova/nova-consoleauth/start.sh b/docker/nova/nova-consoleauth/start.sh deleted file mode 100755 index a083e7bac..000000000 --- a/docker/nova/nova-consoleauth/start.sh +++ /dev/null @@ -1,7 +0,0 @@ -#!/bin/bash -set -o errexit - -# Loading common functions. -source /opt/kolla/kolla-common.sh - -exec $CMD diff --git a/docker/nova/nova-libvirt/Dockerfile.j2 b/docker/nova/nova-libvirt/Dockerfile.j2 index 28be92470..514c49d49 100644 --- a/docker/nova/nova-libvirt/Dockerfile.j2 +++ b/docker/nova/nova-libvirt/Dockerfile.j2 @@ -27,8 +27,7 @@ RUN apt-get install -y --no-install-recommends \ {% endif %} -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/nova/nova-libvirt/extend_start.sh b/docker/nova/nova-libvirt/extend_start.sh new file mode 100644 index 000000000..cdfe1f928 --- /dev/null +++ b/docker/nova/nova-libvirt/extend_start.sh @@ -0,0 +1,9 @@ +#!/bin/bash + +# TODO(SamYaple): Tweak libvirt.conf rather than change permissions. +# Fix permissions for libvirt +# Do not remove unless CentOS has been validated +if [[ -c /dev/kvm ]]; then + chmod 660 /dev/kvm + chown root:kvm /dev/kvm +fi diff --git a/docker/nova/nova-libvirt/start.sh b/docker/nova/nova-libvirt/start.sh deleted file mode 100755 index df3b0e5a9..000000000 --- a/docker/nova/nova-libvirt/start.sh +++ /dev/null @@ -1,15 +0,0 @@ -#!/bin/bash -set -o errexit - -# Loading common functions. -source /opt/kolla/kolla-common.sh - -# TODO(SamYaple): Tweak libvirt.conf rather than change permissions. -# Fix permissions for libvirt -# Do not remove unless CentOS has been validated -if [[ -c /dev/kvm ]]; then - chmod 660 /dev/kvm - chown root:kvm /dev/kvm -fi - -exec $CMD diff --git a/docker/nova/nova-network/Dockerfile.j2 b/docker/nova/nova-network/Dockerfile.j2 index 2ebba6830..c95dbb69f 100644 --- a/docker/nova/nova-network/Dockerfile.j2 +++ b/docker/nova/nova-network/Dockerfile.j2 @@ -20,8 +20,4 @@ RUN yum -y install initscripts \ {% endif %} {% endif %} -COPY start.sh / - -CMD ["/start.sh"] - {{ include_footer }} diff --git a/docker/nova/nova-network/start.sh b/docker/nova/nova-network/start.sh deleted file mode 100755 index a083e7bac..000000000 --- a/docker/nova/nova-network/start.sh +++ /dev/null @@ -1,7 +0,0 @@ -#!/bin/bash -set -o errexit - -# Loading common functions. -source /opt/kolla/kolla-common.sh - -exec $CMD diff --git a/docker/nova/nova-novncproxy/Dockerfile.j2 b/docker/nova/nova-novncproxy/Dockerfile.j2 index 3a1e69bc8..1ad38353b 100644 --- a/docker/nova/nova-novncproxy/Dockerfile.j2 +++ b/docker/nova/nova-novncproxy/Dockerfile.j2 @@ -17,8 +17,4 @@ RUN cd /usr/share && ln -s nova-novncproxy-source/* novnc {% endif %} -COPY start.sh / - -CMD ["/start.sh"] - {{ include_footer }} diff --git a/docker/nova/nova-novncproxy/start.sh b/docker/nova/nova-novncproxy/start.sh deleted file mode 100755 index a083e7bac..000000000 --- a/docker/nova/nova-novncproxy/start.sh +++ /dev/null @@ -1,7 +0,0 @@ -#!/bin/bash -set -o errexit - -# Loading common functions. -source /opt/kolla/kolla-common.sh - -exec $CMD diff --git a/docker/nova/nova-scheduler/Dockerfile.j2 b/docker/nova/nova-scheduler/Dockerfile.j2 index 887b0bf6b..63b8fdc5d 100644 --- a/docker/nova/nova-scheduler/Dockerfile.j2 +++ b/docker/nova/nova-scheduler/Dockerfile.j2 @@ -10,8 +10,4 @@ RUN yum -y install openstack-nova-scheduler \ {% endif %} {% endif %} -COPY start.sh / - -CMD ["/start.sh"] - {{ include_footer }} diff --git a/docker/nova/nova-scheduler/start.sh b/docker/nova/nova-scheduler/start.sh deleted file mode 100755 index a083e7bac..000000000 --- a/docker/nova/nova-scheduler/start.sh +++ /dev/null @@ -1,7 +0,0 @@ -#!/bin/bash -set -o errexit - -# Loading common functions. -source /opt/kolla/kolla-common.sh - -exec $CMD -- cgit v1.2.3