aboutsummaryrefslogtreecommitdiff
path: root/docker/centos/binary/nova-compute
diff options
context:
space:
mode:
authorSam Yaple <sam@yaple.net>2015-05-13 06:46:24 -0500
committerSam Yaple <sam@yaple.net>2015-05-15 01:32:22 -0500
commit13062e23e86b5d86020949754540460cb5b0b4fe (patch)
treee0b3c8411418949a3d8df221da7c8cb2831b6d5d /docker/centos/binary/nova-compute
parent354ba01c8f5c7e1695cbea3bfc07aee5b75e76d9 (diff)
downloadkolla-13062e23e86b5d86020949754540460cb5b0b4fe.tar.gz
kolla-13062e23e86b5d86020949754540460cb5b0b4fe.zip
Restructure builds to allow more flexibility
As a restructure, nothing is changed from the original behaviour and naming despite the file structure changing. The symlinks to build had to be updated generating lots of "deleted" and "new_file". The new structure is: docker/${base_distro}/${type}/${container} base_distro == centos, ubuntu, fedora, etc type == source, binary, rdo type rdo is a symlink to binary for backwards compatibility Two new flags are added to the build-all script to support the ability to support different base distros and a flag to support binary or source containers. There are several added folders that are empty to hold the directory structure for future containers of these types. To use a prefix other than centos-rdo- you can set PREFIX in the toplevel directory .buildconf file Change-Id: Ifc7bac0d827470f506c8b5c004a833da9ce13b90
Diffstat (limited to 'docker/centos/binary/nova-compute')
-rw-r--r--docker/centos/binary/nova-compute/nova-compute-data/Dockerfile10
l---------docker/centos/binary/nova-compute/nova-compute-data/build1
-rw-r--r--docker/centos/binary/nova-compute/nova-compute/Dockerfile13
l---------docker/centos/binary/nova-compute/nova-compute/build1
-rwxr-xr-xdocker/centos/binary/nova-compute/nova-compute/config-nova-compute.sh29
-rwxr-xr-xdocker/centos/binary/nova-compute/nova-compute/start.sh10
-rw-r--r--docker/centos/binary/nova-compute/nova-libvirt/Dockerfile16
l---------docker/centos/binary/nova-compute/nova-libvirt/build1
-rwxr-xr-xdocker/centos/binary/nova-compute/nova-libvirt/start.sh22
-rw-r--r--docker/centos/binary/nova-compute/nova-network/Dockerfile10
l---------docker/centos/binary/nova-compute/nova-network/build1
-rwxr-xr-xdocker/centos/binary/nova-compute/nova-network/config-nova-network.sh30
-rwxr-xr-xdocker/centos/binary/nova-compute/nova-network/start.sh8
13 files changed, 152 insertions, 0 deletions
diff --git a/docker/centos/binary/nova-compute/nova-compute-data/Dockerfile b/docker/centos/binary/nova-compute/nova-compute-data/Dockerfile
new file mode 100644
index 000000000..0af407095
--- /dev/null
+++ b/docker/centos/binary/nova-compute/nova-compute-data/Dockerfile
@@ -0,0 +1,10 @@
+FROM %%KOLLA_NAMESPACE%%/%%KOLLA_PREFIX%%base:%%KOLLA_TAG%%
+MAINTAINER Kolla Project (https://launchpad.net/kolla)
+
+VOLUME [ "/var/lib/nova" ]
+VOLUME [ "/var/lib/libvirt" ]
+VOLUME [ "/etc/libvirt/qemu" ]
+
+# Command needed to start the data container.
+# Note: data containers do not need to be persistent.
+CMD ["/bin/true"]
diff --git a/docker/centos/binary/nova-compute/nova-compute-data/build b/docker/centos/binary/nova-compute/nova-compute-data/build
new file mode 120000
index 000000000..ec1913803
--- /dev/null
+++ b/docker/centos/binary/nova-compute/nova-compute-data/build
@@ -0,0 +1 @@
+../../../../../tools/build-docker-image \ No newline at end of file
diff --git a/docker/centos/binary/nova-compute/nova-compute/Dockerfile b/docker/centos/binary/nova-compute/nova-compute/Dockerfile
new file mode 100644
index 000000000..d23b86e5f
--- /dev/null
+++ b/docker/centos/binary/nova-compute/nova-compute/Dockerfile
@@ -0,0 +1,13 @@
+FROM %%KOLLA_NAMESPACE%%/%%KOLLA_PREFIX%%nova-base:%%KOLLA_TAG%%
+MAINTAINER Kolla Project (https://launchpad.net/kolla)
+
+RUN yum -y install openstack-nova-compute \
+ sysfsutils && yum clean all
+
+ADD config-nova-compute.sh /opt/kolla/config-nova-compute.sh
+
+ADD ./start.sh /start.sh
+
+VOLUME [ "/sys/fs/cgroup" ]
+
+CMD ["/start.sh"]
diff --git a/docker/centos/binary/nova-compute/nova-compute/build b/docker/centos/binary/nova-compute/nova-compute/build
new file mode 120000
index 000000000..ec1913803
--- /dev/null
+++ b/docker/centos/binary/nova-compute/nova-compute/build
@@ -0,0 +1 @@
+../../../../../tools/build-docker-image \ No newline at end of file
diff --git a/docker/centos/binary/nova-compute/nova-compute/config-nova-compute.sh b/docker/centos/binary/nova-compute/nova-compute/config-nova-compute.sh
new file mode 100755
index 000000000..81a2e3fe3
--- /dev/null
+++ b/docker/centos/binary/nova-compute/nova-compute/config-nova-compute.sh
@@ -0,0 +1,29 @@
+#!/bin/bash
+
+. /opt/kolla/kolla-common.sh
+. /opt/kolla/config-nova.sh
+
+cfg=/etc/nova/nova.conf
+
+check_required_vars NOVA_VNCSERVER_PROXYCLIENT_ADDRESS NOVA_NOVNC_PROXY_PORT \
+ NOVA_NOVNC_BASE_ADDRESS
+
+# Configures novnc to listen on all interfaces and instructs nova-compute to
+# announce PROXYCLIENT_IP to the nova-vncproxy. Clients like Horizon will
+# connect with this address.
+# As such, NOVA_VNCSERVER_PROXYCLIENT_ADDRESS is unique per compute node.
+crudini --set $cfg DEFAULT vnc_enabled "True"
+crudini --set $cfg DEFAULT vncserver_listen "0.0.0.0"
+crudini --set $cfg DEFAULT vncserver_proxyclient_address "${NOVA_VNCSERVER_PROXYCLIENT_ADDRESS}"
+crudini --set $cfg DEFAULT novncproxy_base_url "http://${NOVA_NOVNC_BASE_ADDRESS}:${NOVA_NOVNC_PROXY_PORT}/vnc_auto.html"
+
+# configure logging
+crudini --set $cfg DEFAULT log_file "${NOVA_COMPUTE_LOG_FILE}"
+
+# set qmeu emulation if no hardware acceleration found
+if [[ `egrep -c '(vmx|svm)' /proc/cpuinfo` == 0 ]]
+then
+ crudini --set $cfg libvirt virt_type qemu
+fi
+
+mkdir -p /var/lib/nova/instances
diff --git a/docker/centos/binary/nova-compute/nova-compute/start.sh b/docker/centos/binary/nova-compute/nova-compute/start.sh
new file mode 100755
index 000000000..ce3d0c0c3
--- /dev/null
+++ b/docker/centos/binary/nova-compute/nova-compute/start.sh
@@ -0,0 +1,10 @@
+#!/bin/bash
+
+set -e
+
+. /opt/kolla/config-nova-compute.sh
+
+sleep 6
+
+echo "Starting nova-compute."
+exec /usr/bin/nova-compute --config-file /etc/nova/nova.conf
diff --git a/docker/centos/binary/nova-compute/nova-libvirt/Dockerfile b/docker/centos/binary/nova-compute/nova-libvirt/Dockerfile
new file mode 100644
index 000000000..980940615
--- /dev/null
+++ b/docker/centos/binary/nova-compute/nova-libvirt/Dockerfile
@@ -0,0 +1,16 @@
+FROM %%KOLLA_NAMESPACE%%/%%KOLLA_PREFIX%%base:%%KOLLA_TAG%%
+MAINTAINER Kolla Project (https://launchpad.net/kolla)
+
+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
+
+VOLUME [ "/sys/fs/cgroup" ]
+
+ADD ./start.sh /start.sh
+
+CMD ["/start.sh"]
diff --git a/docker/centos/binary/nova-compute/nova-libvirt/build b/docker/centos/binary/nova-compute/nova-libvirt/build
new file mode 120000
index 000000000..ec1913803
--- /dev/null
+++ b/docker/centos/binary/nova-compute/nova-libvirt/build
@@ -0,0 +1 @@
+../../../../../tools/build-docker-image \ No newline at end of file
diff --git a/docker/centos/binary/nova-compute/nova-libvirt/start.sh b/docker/centos/binary/nova-compute/nova-libvirt/start.sh
new file mode 100755
index 000000000..47a09399b
--- /dev/null
+++ b/docker/centos/binary/nova-compute/nova-libvirt/start.sh
@@ -0,0 +1,22 @@
+#!/bin/bash
+
+if [[ $(cat /proc/cpuinfo | grep vmx) ]]; then
+ modprobe kvm_intel
+elif [[ $(cat /proc/cpuinfo | grep svm) ]]; then
+ modprobe kvm_amd
+else
+ echo "WARNING: Your hardware does not support hardware virtualization -" \
+ "using qemu software virtualization instead"
+fi
+
+modprobe ip6_tables ip_tables ebtable_nat
+
+# If libvirt is not installed on the host permissions need to be set
+# If running in qemu, we don't need to set anything as /dev/kvm won't exist
+if [[ -c /dev/kvm ]]; then
+ chmod 660 /dev/kvm
+ chown root:kvm /dev/kvm
+fi
+
+echo "Starting libvirtd."
+exec /usr/sbin/libvirtd
diff --git a/docker/centos/binary/nova-compute/nova-network/Dockerfile b/docker/centos/binary/nova-compute/nova-network/Dockerfile
new file mode 100644
index 000000000..2434dbdf0
--- /dev/null
+++ b/docker/centos/binary/nova-compute/nova-network/Dockerfile
@@ -0,0 +1,10 @@
+FROM %%KOLLA_NAMESPACE%%/%%KOLLA_PREFIX%%nova-base:%%KOLLA_TAG%%
+MAINTAINER Kolla Project (https://launchpad.net/kolla)
+
+RUN yum -y install openstack-nova-network \
+ bridge-utils initscripts && yum clean all
+
+ADD config-nova-network.sh /opt/kolla/config-nova-network.sh
+ADD ./start.sh /start.sh
+
+CMD ["/start.sh"]
diff --git a/docker/centos/binary/nova-compute/nova-network/build b/docker/centos/binary/nova-compute/nova-network/build
new file mode 120000
index 000000000..ec1913803
--- /dev/null
+++ b/docker/centos/binary/nova-compute/nova-network/build
@@ -0,0 +1 @@
+../../../../../tools/build-docker-image \ No newline at end of file
diff --git a/docker/centos/binary/nova-compute/nova-network/config-nova-network.sh b/docker/centos/binary/nova-compute/nova-network/config-nova-network.sh
new file mode 100755
index 000000000..6976d3a20
--- /dev/null
+++ b/docker/centos/binary/nova-compute/nova-network/config-nova-network.sh
@@ -0,0 +1,30 @@
+#!/bin/bash
+
+. /opt/kolla/config-nova.sh
+
+cfg=/etc/nova/nova.conf
+
+# configure logging
+crudini --set $cfg DEFAULT log_file "${NOVA_NETWORK_LOG_FILE}"
+
+# Configure eth1 as a physcial interface for nova flat network
+cat > /etc/sysconfig/network-scripts/ifcfg-$FLAT_INTERFACE <<EOF
+DEVICE="$FLAT_INTERFACE"
+BOOTPROTO="none"
+ONBOOT="yes"
+TYPE="Ethernet"
+EOF
+
+/usr/sbin/ifup $FLAT_INTERFACE
+
+cfg=/etc/nova/nova.conf
+
+crudini --set $cfg DEFAULT network_manager nova.network.manager.FlatDHCPManager
+crudini --set $cfg DEFAULT firewall_driver nova.virt.libvirt.firewall.IptablesFirewallDriver
+crudini --set $cfg DEFAULT network_size 254
+crudini --set $cfg DEFAULT allow_same_net_traffic False
+crudini --set $cfg DEFAULT multi_host True
+crudini --set $cfg DEFAULT send_arp_for_ha True
+crudini --set $cfg DEFAULT share_dhcp_address True
+crudini --set $cfg DEFAULT force_dhcp_release True
+crudini --set $cfg DEFAULT flat_network_bridge br100
diff --git a/docker/centos/binary/nova-compute/nova-network/start.sh b/docker/centos/binary/nova-compute/nova-network/start.sh
new file mode 100755
index 000000000..92381b720
--- /dev/null
+++ b/docker/centos/binary/nova-compute/nova-network/start.sh
@@ -0,0 +1,8 @@
+#!/bin/bash
+
+set -e
+
+. /opt/kolla/config-nova-network.sh
+
+# Start nova-network
+exec /usr/bin/nova-network --config-file /etc/nova/nova.conf