diff options
Diffstat (limited to 'docker/nova')
25 files changed, 449 insertions, 0 deletions
diff --git a/docker/nova/nova-api/Dockerfile.j2 b/docker/nova/nova-api/Dockerfile.j2 new file mode 100644 index 000000000..b906d1937 --- /dev/null +++ b/docker/nova/nova-api/Dockerfile.j2 @@ -0,0 +1,18 @@ +FROM {{ namespace }}/{{ base_distro }}-{{ install_type }}-nova-base:{{ tag }} +MAINTAINER Kolla Project (https://launchpad.net/kolla) + +{% if install_type == 'binary' %} + {% if base_distro in ['fedora', 'centos', 'oraclelinux'] %} + +RUN yum -y install openstack-nova-api \ + && yum clean all + + {% endif %} +{% endif %} + +COPY start.sh / +COPY config-external.sh /opt/kolla/ + +CMD ["/start.sh"] + +{{ include_footer }} diff --git a/docker/nova/nova-api/config-external.sh b/docker/nova/nova-api/config-external.sh new file mode 100755 index 000000000..d0859893d --- /dev/null +++ b/docker/nova/nova-api/config-external.sh @@ -0,0 +1,10 @@ +#!/bin/bash +SOURCE="/opt/kolla/nova-api/nova.conf" +TARGET="/etc/nova/nova.conf" +OWNER="nova" + +if [[ -f "$SOURCE" ]]; then + cp $SOURCE $TARGET + chown ${OWNER}: $TARGET + chmod 0644 $TARGET +fi diff --git a/docker/nova/nova-api/start.sh b/docker/nova/nova-api/start.sh new file mode 100755 index 000000000..ad25ba65c --- /dev/null +++ b/docker/nova/nova-api/start.sh @@ -0,0 +1,20 @@ +#!/bin/bash +set -o errexit + +CMD="/usr/bin/nova-api" +ARGS="" + +# Loading common functions. +source /opt/kolla/kolla-common.sh + +# Execute config strategy +set_configs + +# 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 $ARGS diff --git a/docker/nova/nova-base/Dockerfile.j2 b/docker/nova/nova-base/Dockerfile.j2 new file mode 100644 index 000000000..b46a446d4 --- /dev/null +++ b/docker/nova/nova-base/Dockerfile.j2 @@ -0,0 +1,50 @@ +FROM {{ namespace }}/{{ base_distro }}-{{ install_type }}-base:{{ tag }} +MAINTAINER Kolla Project (https://launchpad.net/kolla) + +{% if install_type == 'binary' %} + {% if base_distro in ['fedora', 'centos', 'oraclelinux'] %} + +RUN yum -y install \ + openstack-nova-common \ + python-keystoneclient \ + python-cinderclient \ + python-nova \ + bridge-utils \ + && yum clean all + + {% elif base_distro in ['ubuntu', 'debian'] %} + +RUN echo '{{ install_type }} not yet available for {{ base_distro }}' \ + && /bin/false + + {% endif %} +{% elif install_type == 'source' %} + {% if base_distro in ['fedora', 'centos', 'oraclelinux'] %} + +RUN yum -y install \ + bridge-utils \ + && yum clean all + + {% elif base_distro in ['ubuntu', 'debian'] %} + +RUN apt-get install -y --no-install-recommends \ + iptables \ + ebtables \ + dnsmasq \ + bridge-utils \ + python-libvirt \ + openssh-client \ + openvswitch-switch \ + && apt-get clean + + {% endif %} + +ADD nova.tar / +RUN ln -s /nova-* nova \ + && useradd --user-group nova \ + && pip --no-cache-dir install /nova \ + && mkdir -p /etc/nova /var/log/nova /home/nova \ + && cp -r /nova/etc/nova/* /etc/nova/ \ + && chown -R nova: /etc/nova /var/log/nova /home/nova + +{% endif %} diff --git a/docker/nova/nova-compute/Dockerfile.j2 b/docker/nova/nova-compute/Dockerfile.j2 new file mode 100644 index 000000000..a8a719023 --- /dev/null +++ b/docker/nova/nova-compute/Dockerfile.j2 @@ -0,0 +1,34 @@ +FROM {{ namespace }}/{{ base_distro }}-{{ install_type }}-nova-base:{{ tag }} +MAINTAINER Kolla Project (https://launchpad.net/kolla) + +{% if install_type == 'binary' %} + {% if base_distro in ['fedora', 'centos', 'oraclelinux'] %} + +RUN yum -y install openstack-nova-compute \ + openvswitch \ + sysfsutils \ + && yum clean all + + {% endif %} +{% elif install_type == 'source' %} + {% if base_distro in ['fedora', 'centos', 'oraclelinux'] %} + +RUN yum -y install \ + sysfsutils \ + libvirt-python \ + && yum clean all + + {% elif base_distro in ['ubuntu', 'debian'] %} + +RUN apt-get install -y --no-install-recommends qemu-utils \ + && apt-get clean + + {% endif %} +{% endif %} + +COPY start.sh / +COPY config-external.sh /opt/kolla/ + +CMD ["/start.sh"] + +{{ include_footer }} diff --git a/docker/nova/nova-compute/config-external.sh b/docker/nova/nova-compute/config-external.sh new file mode 100755 index 000000000..e844bf50c --- /dev/null +++ b/docker/nova/nova-compute/config-external.sh @@ -0,0 +1,10 @@ +#!/bin/bash +SOURCE="/opt/kolla/nova-compute/nova.conf" +TARGET="/etc/nova/nova.conf" +OWNER="nova" + +if [[ -f "$SOURCE" ]]; then + cp $SOURCE $TARGET + chown ${OWNER}: $TARGET + chmod 0644 $TARGET +fi diff --git a/docker/nova/nova-compute/start.sh b/docker/nova/nova-compute/start.sh new file mode 100755 index 000000000..48e77542b --- /dev/null +++ b/docker/nova/nova-compute/start.sh @@ -0,0 +1,13 @@ +#!/bin/bash +set -o errexit + +CMD="/usr/bin/nova-compute" +ARGS="" + +# Loading common functions. +source /opt/kolla/kolla-common.sh + +# Execute config strategy +set_configs + +exec $CMD $ARGS diff --git a/docker/nova/nova-conductor/Dockerfile.j2 b/docker/nova/nova-conductor/Dockerfile.j2 new file mode 100644 index 000000000..0f42df5c9 --- /dev/null +++ b/docker/nova/nova-conductor/Dockerfile.j2 @@ -0,0 +1,19 @@ +FROM {{ namespace }}/{{ base_distro }}-{{ install_type }}-nova-base:{{ tag }} +MAINTAINER Kolla Project (https://launchpad.net/kolla) + +{% if install_type == 'binary' %} + {% if base_distro in ['fedora', 'centos', 'oraclelinux'] %} + +RUN yum -y install \ + openstack-nova-conductor \ + && yum clean all + + {% endif %} +{% endif %} + +COPY start.sh / +COPY config-external.sh /opt/kolla/ + +CMD ["/start.sh"] + +{{ include_footer }} diff --git a/docker/nova/nova-conductor/config-external.sh b/docker/nova/nova-conductor/config-external.sh new file mode 100755 index 000000000..ea3b123ec --- /dev/null +++ b/docker/nova/nova-conductor/config-external.sh @@ -0,0 +1,10 @@ +#!/bin/bash +SOURCE="/opt/kolla/nova-conductor/nova.conf" +TARGET="/etc/nova/nova.conf" +OWNER="nova" + +if [[ -f "$SOURCE" ]]; then + cp $SOURCE $TARGET + chown ${OWNER}: $TARGET + chmod 0644 $TARGET +fi diff --git a/docker/nova/nova-conductor/start.sh b/docker/nova/nova-conductor/start.sh new file mode 100755 index 000000000..1fe7d0586 --- /dev/null +++ b/docker/nova/nova-conductor/start.sh @@ -0,0 +1,13 @@ +#!/bin/bash +set -o errexit + +CMD="/usr/bin/nova-conductor" +ARGS="" + +# Loading common functions. +source /opt/kolla/kolla-common.sh + +# Execute config strategy +set_configs + +exec $CMD $ARGS diff --git a/docker/nova/nova-consoleauth/Dockerfile.j2 b/docker/nova/nova-consoleauth/Dockerfile.j2 new file mode 100644 index 000000000..1c8d9ea12 --- /dev/null +++ b/docker/nova/nova-consoleauth/Dockerfile.j2 @@ -0,0 +1,18 @@ +FROM {{ namespace }}/{{ base_distro }}-{{ install_type }}-nova-base:{{ tag }} +MAINTAINER Kolla Project (https://launchpad.net/kolla) + +{% if install_type == 'binary' %} + {% if base_distro in ['fedora', 'centos', 'oraclelinux'] %} + +RUN yum -y install openstack-nova-console \ + && yum clean all + + {% endif %} +{% endif %} + +COPY start.sh / +COPY config-external.sh /opt/kolla/ + +CMD ["/start.sh"] + +{{ include_footer }} diff --git a/docker/nova/nova-consoleauth/config-external.sh b/docker/nova/nova-consoleauth/config-external.sh new file mode 100755 index 000000000..1da10d83f --- /dev/null +++ b/docker/nova/nova-consoleauth/config-external.sh @@ -0,0 +1,10 @@ +#!/bin/bash +SOURCE="/opt/kolla/nova-consoleauth/nova.conf" +TARGET="/etc/nova/nova.conf" +OWNER="nova" + +if [[ -f "$SOURCE" ]]; then + cp $SOURCE $TARGET + chown ${OWNER}: $TARGET + chmod 0644 $TARGET +fi diff --git a/docker/nova/nova-consoleauth/start.sh b/docker/nova/nova-consoleauth/start.sh new file mode 100755 index 000000000..1abccde19 --- /dev/null +++ b/docker/nova/nova-consoleauth/start.sh @@ -0,0 +1,13 @@ +#!/bin/bash +set -o errexit + +CMD="/usr/bin/nova-consoleauth" +ARGS="" + +# Loading common functions. +source /opt/kolla/kolla-common.sh + +# Execute config strategy +set_configs + +exec $CMD $ARGS diff --git a/docker/nova/nova-libvirt/Dockerfile.j2 b/docker/nova/nova-libvirt/Dockerfile.j2 new file mode 100644 index 000000000..5ff525426 --- /dev/null +++ b/docker/nova/nova-libvirt/Dockerfile.j2 @@ -0,0 +1,32 @@ +FROM {{ namespace }}/{{ base_distro }}-{{ install_type }}-nova-base:{{ tag }} +MAINTAINER Kolla Project (https://launchpad.net/kolla) + +{% if base_distro in ['fedora', 'centos', 'oraclelinux'] %} + +RUN yum -y install \ + libvirt-daemon \ + libguestfs \ + qemu-system-x86 \ + libvirt-daemon-driver-nwfilter \ + libvirt-daemon-config-nwfilter \ + libvirt-daemon-driver-lxc \ + && yum clean all + +{% elif base_distro in ['ubuntu', 'debian'] %} + +RUN apt-get install -y --no-install-recommends \ + libvirt-bin \ + dmidecode \ + pm-utils \ + qemu \ + ebtables \ + && apt-get clean + +{% endif %} + +COPY start.sh / +COPY config-external.sh /opt/kolla/ + +CMD ["/start.sh"] + +{{ include_footer }} diff --git a/docker/nova/nova-libvirt/config-external.sh b/docker/nova/nova-libvirt/config-external.sh new file mode 100755 index 000000000..acc1c5473 --- /dev/null +++ b/docker/nova/nova-libvirt/config-external.sh @@ -0,0 +1,10 @@ +#!/bin/bash +SOURCE="/opt/kolla/libvirt/libvirtd.conf" +TARGET="/etc/libvirt/libvirtd.conf" +OWNER="libvirt" + +if [[ -f "$SOURCE" ]]; then + cp $SOURCE $TARGET + chown ${OWNER}: $TARGET + chmod 0644 $TARGET +fi diff --git a/docker/nova/nova-libvirt/start.sh b/docker/nova/nova-libvirt/start.sh new file mode 100755 index 000000000..ae0de867b --- /dev/null +++ b/docker/nova/nova-libvirt/start.sh @@ -0,0 +1,20 @@ +#!/bin/bash +set -o errexit + +CMD="/usr/sbin/libvirtd" +ARGS="" + +# Loading common functions. +source /opt/kolla/kolla-common.sh + +# Execute config strategy +set_configs + +# TODO(SamYaple): Tweak libvirt.conf rather than change permissions. +# Fix permissions for libvirt +if [[ -c /dev/kvm ]]; then + chmod 660 /dev/kvm + chown root:kvm /dev/kvm +fi + +exec $CMD $ARGS diff --git a/docker/nova/nova-network/Dockerfile.j2 b/docker/nova/nova-network/Dockerfile.j2 new file mode 100644 index 000000000..60ea394aa --- /dev/null +++ b/docker/nova/nova-network/Dockerfile.j2 @@ -0,0 +1,28 @@ +FROM {{ namespace }}/{{ base_distro }}-{{ install_type }}-nova-base:{{ tag }} +MAINTAINER Kolla Project (https://launchpad.net/kolla) + +{% if install_type == 'binary' %} + {% if base_distro in ['fedora', 'centos', 'oraclelinux'] %} + +RUN yum -y install \ + openstack-nova-network \ + bridge-utils \ + initscripts \ + && yum clean all + + {% endif %} +{% elif install_type == 'source' %} + {% if base_distro in ['fedora', 'centos', 'oraclelinux'] %} + +RUN yum -y install initscripts \ + && yum clean all + + {% endif %} +{% endif %} + +COPY start.sh / +COPY config-external.sh /opt/kolla/ + +CMD ["/start.sh"] + +{{ include_footer }} diff --git a/docker/nova/nova-network/config-external.sh b/docker/nova/nova-network/config-external.sh new file mode 100755 index 000000000..7c1d6bb37 --- /dev/null +++ b/docker/nova/nova-network/config-external.sh @@ -0,0 +1,10 @@ +#!/bin/bash +SOURCE="/opt/kolla/nova-network/nova.conf" +TARGET="/etc/nova/nova.conf" +OWNER="nova" + +if [[ -f "$SOURCE" ]]; then + cp $SOURCE $TARGET + chown ${OWNER}: $TARGET + chmod 0644 $TARGET +fi diff --git a/docker/nova/nova-network/start.sh b/docker/nova/nova-network/start.sh new file mode 100755 index 000000000..88f941b33 --- /dev/null +++ b/docker/nova/nova-network/start.sh @@ -0,0 +1,13 @@ +#!/bin/bash +set -o errexit + +CMD="/usr/bin/nova-network" +ARGS="" + +# Loading common functions. +source /opt/kolla/kolla-common.sh + +# Execute config strategy +set_configs + +exec $CMD $ARGS diff --git a/docker/nova/nova-novncproxy/Dockerfile.j2 b/docker/nova/nova-novncproxy/Dockerfile.j2 new file mode 100644 index 000000000..b798e00a6 --- /dev/null +++ b/docker/nova/nova-novncproxy/Dockerfile.j2 @@ -0,0 +1,34 @@ +FROM {{ namespace }}/{{ base_distro }}-{{ install_type }}-nova-base:{{ tag }} +MAINTAINER Kolla Project (https://launchpad.net/kolla) + +{% if install_type == 'binary' %} + {% if base_distro in ['fedora', 'centos', 'oraclelinux'] %} + +RUN yum -y install \ + novnc \ + openstack-nova-novncproxy \ + && yum clean all + + {% endif %} +{% elif install_type == 'source' %} + {% if base_distro in ['fedora', 'centos', 'oraclelinux'] %} + +RUN yum -y install \ + https://rdoproject.org/repos/openstack-kilo/rdo-release-kilo.rpm \ + novnc \ + && yum clean all + + {% elif base_distro in ['ubuntu', 'debian'] %} + +ADD novnc.tar / +RUN ln -s /kanaka-noVNC-* /usr/share/novnc + + {% endif %} +{% endif %} + +COPY start.sh / +COPY config-external.sh /opt/kolla/ + +CMD ["/start.sh"] + +{{ include_footer }} diff --git a/docker/nova/nova-novncproxy/config-external.sh b/docker/nova/nova-novncproxy/config-external.sh new file mode 100755 index 000000000..fdc33a5bd --- /dev/null +++ b/docker/nova/nova-novncproxy/config-external.sh @@ -0,0 +1,10 @@ +#!/bin/bash +SOURCE="/opt/kolla/nova-novncproxy/nova.conf" +TARGET="/etc/nova/nova.conf" +OWNER="nova" + +if [[ -f "$SOURCE" ]]; then + cp $SOURCE $TARGET + chown ${OWNER}: $TARGET + chmod 0644 $TARGET +fi diff --git a/docker/nova/nova-novncproxy/start.sh b/docker/nova/nova-novncproxy/start.sh new file mode 100755 index 000000000..6e59d1253 --- /dev/null +++ b/docker/nova/nova-novncproxy/start.sh @@ -0,0 +1,13 @@ +#!/bin/bash +set -o errexit + +CMD="/usr/bin/nova-novncproxy" +ARGS="" + +# Loading common functions. +source /opt/kolla/kolla-common.sh + +# Execute config strategy +set_configs + +exec $CMD $ARGS diff --git a/docker/nova/nova-scheduler/Dockerfile.j2 b/docker/nova/nova-scheduler/Dockerfile.j2 new file mode 100644 index 000000000..5dd0fd507 --- /dev/null +++ b/docker/nova/nova-scheduler/Dockerfile.j2 @@ -0,0 +1,18 @@ +FROM {{ namespace }}/{{ base_distro }}-{{ install_type }}-nova-base:{{ tag }} +MAINTAINER Kolla Project (https://launchpad.net/kolla) + +{% if install_type == 'binary' %} + {% if base_distro in ['fedora', 'centos', 'oraclelinux'] %} + +RUN yum -y install openstack-nova-scheduler \ + && yum clean all + + {% endif %} +{% endif %} + +COPY start.sh / +COPY config-external.sh /opt/kolla/ + +CMD ["/start.sh"] + +{{ include_footer }} diff --git a/docker/nova/nova-scheduler/config-external.sh b/docker/nova/nova-scheduler/config-external.sh new file mode 100755 index 000000000..3df0f9b7b --- /dev/null +++ b/docker/nova/nova-scheduler/config-external.sh @@ -0,0 +1,10 @@ +#!/bin/bash +SOURCE="/opt/kolla/nova-scheduler/nova.conf" +TARGET="/etc/nova/nova.conf" +OWNER="nova" + +if [[ -f "$SOURCE" ]]; then + cp $SOURCE $TARGET + chown ${OWNER}: $TARGET + chmod 0644 $TARGET +fi diff --git a/docker/nova/nova-scheduler/start.sh b/docker/nova/nova-scheduler/start.sh new file mode 100755 index 000000000..d9b3e14eb --- /dev/null +++ b/docker/nova/nova-scheduler/start.sh @@ -0,0 +1,13 @@ +#!/bin/bash +set -o errexit + +CMD="/usr/bin/nova-scheduler" +ARGS="" + +# Loading common functions. +source /opt/kolla/kolla-common.sh + +# Execute config strategy +set_configs + +exec $CMD $ARGS |
