aboutsummaryrefslogtreecommitdiff
path: root/docker/nova
diff options
context:
space:
mode:
authorSam Yaple <sam@yaple.net>2015-08-28 12:16:53 +0000
committerSam Yaple <sam@yaple.net>2015-08-28 13:33:50 +0000
commitcbd42ca6e90cca2ff4b84f5e4e46224e6455e8b2 (patch)
tree2e4256b6b7b8339da11b1d17250378596e61605b /docker/nova
parent3b5380ade021c9884551f427441cbfc0122eb0f0 (diff)
downloadkolla-cbd42ca6e90cca2ff4b84f5e4e46224e6455e8b2.tar.gz
kolla-cbd42ca6e90cca2ff4b84f5e4e46224e6455e8b2.zip
Move docker_templates to docker dir
Updated build.py to reflect this change. Deprecate --template option and make it a noop. Change-Id: I7cd98d1ee684a4c64984a49597159868152683b2 Partially-Implements: blueprint remove-docker-dir
Diffstat (limited to 'docker/nova')
-rw-r--r--docker/nova/nova-api/Dockerfile.j218
-rwxr-xr-xdocker/nova/nova-api/config-external.sh10
-rwxr-xr-xdocker/nova/nova-api/start.sh20
-rw-r--r--docker/nova/nova-base/Dockerfile.j250
-rw-r--r--docker/nova/nova-compute/Dockerfile.j234
-rwxr-xr-xdocker/nova/nova-compute/config-external.sh10
-rwxr-xr-xdocker/nova/nova-compute/start.sh13
-rw-r--r--docker/nova/nova-conductor/Dockerfile.j219
-rwxr-xr-xdocker/nova/nova-conductor/config-external.sh10
-rwxr-xr-xdocker/nova/nova-conductor/start.sh13
-rw-r--r--docker/nova/nova-consoleauth/Dockerfile.j218
-rwxr-xr-xdocker/nova/nova-consoleauth/config-external.sh10
-rwxr-xr-xdocker/nova/nova-consoleauth/start.sh13
-rw-r--r--docker/nova/nova-libvirt/Dockerfile.j232
-rwxr-xr-xdocker/nova/nova-libvirt/config-external.sh10
-rwxr-xr-xdocker/nova/nova-libvirt/start.sh20
-rw-r--r--docker/nova/nova-network/Dockerfile.j228
-rwxr-xr-xdocker/nova/nova-network/config-external.sh10
-rwxr-xr-xdocker/nova/nova-network/start.sh13
-rw-r--r--docker/nova/nova-novncproxy/Dockerfile.j234
-rwxr-xr-xdocker/nova/nova-novncproxy/config-external.sh10
-rwxr-xr-xdocker/nova/nova-novncproxy/start.sh13
-rw-r--r--docker/nova/nova-scheduler/Dockerfile.j218
-rwxr-xr-xdocker/nova/nova-scheduler/config-external.sh10
-rwxr-xr-xdocker/nova/nova-scheduler/start.sh13
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