diff options
| author | Sam Yaple <sam@yaple.net> | 2015-05-13 06:46:24 -0500 |
|---|---|---|
| committer | Sam Yaple <sam@yaple.net> | 2015-05-15 01:32:22 -0500 |
| commit | 13062e23e86b5d86020949754540460cb5b0b4fe (patch) | |
| tree | e0b3c8411418949a3d8df221da7c8cb2831b6d5d /docker/centos/binary/nova-compute | |
| parent | 354ba01c8f5c7e1695cbea3bfc07aee5b75e76d9 (diff) | |
| download | kolla-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')
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 |
