diff options
| author | Jenkins <jenkins@review.openstack.org> | 2014-10-17 19:35:46 +0000 |
|---|---|---|
| committer | Gerrit Code Review <review@openstack.org> | 2014-10-17 19:35:46 +0000 |
| commit | ad615338cc141105253f772315a5905a86c91a42 (patch) | |
| tree | 79e1e9c672fe7398ab31b9e4303ed6055780b722 /docker | |
| parent | 505a00a19748b6d753dcf4ebca87850989a4063b (diff) | |
| parent | de313681f94a75b3dbcb078fa023495e2c04617f (diff) | |
| download | kolla-ad615338cc141105253f772315a5905a86c91a42.tar.gz kolla-ad615338cc141105253f772315a5905a86c91a42.zip | |
Merge "Adds Neutron Server Support"
Diffstat (limited to 'docker')
| -rw-r--r-- | docker/neutron/neutron-base/Dockerfile | 8 | ||||
| l--------- | docker/neutron/neutron-base/build | 1 | ||||
| -rw-r--r-- | docker/neutron/neutron-base/config-neutron.sh | 87 | ||||
| -rw-r--r-- | docker/neutron/neutron-server/Dockerfile | 17 | ||||
| l--------- | docker/neutron/neutron-server/build | 1 | ||||
| -rwxr-xr-x | docker/neutron/neutron-server/check.sh | 17 | ||||
| -rwxr-xr-x | docker/neutron/neutron-server/start.sh | 104 |
7 files changed, 235 insertions, 0 deletions
diff --git a/docker/neutron/neutron-base/Dockerfile b/docker/neutron/neutron-base/Dockerfile new file mode 100644 index 000000000..ab8890326 --- /dev/null +++ b/docker/neutron/neutron-base/Dockerfile @@ -0,0 +1,8 @@ +FROM kollaglue/fedora-rdo-base +MAINTAINER Daneyon Hansen <danehans@cisco.com> + +RUN yum -y install openstack-neutron-ml2 ; yum clean all + +RUN mkdir -p /opt/kolla +COPY config-neutron.sh /opt/kolla/config-neutron.sh + diff --git a/docker/neutron/neutron-base/build b/docker/neutron/neutron-base/build new file mode 120000 index 000000000..43944faa0 --- /dev/null +++ b/docker/neutron/neutron-base/build @@ -0,0 +1 @@ +../../../tools/build-docker-image
\ No newline at end of file diff --git a/docker/neutron/neutron-base/config-neutron.sh b/docker/neutron/neutron-base/config-neutron.sh new file mode 100644 index 000000000..1b60709af --- /dev/null +++ b/docker/neutron/neutron-base/config-neutron.sh @@ -0,0 +1,87 @@ +#!/bin/sh + +set -e + +. /opt/kolla/kolla-common.sh + +: ${ADMIN_TENANT_NAME:=admin} +: ${NEUTRON_DB_NAME:=neutron} +: ${NEUTRON_DB_USER:=neutron} +: ${NEUTRON_KEYSTONE_USER:=neutron} +: ${KEYSTONE_AUTH_PROTOCOL:=http} +: ${RABBIT_HOST:=$RABBITMQ_SERVICE_HOST} +: ${RABBIT_USER:=guest} +: ${RABBIT_PASSWORD:=guest} + +check_required_vars NEUTRON_KEYSTONE_PASSWORD +dump_vars + +cat > /openrc <<EOF +export OS_AUTH_URL="http://${KEYSTONE_PUBLIC_SERVICE_HOST}:5000/v2.0" +export OS_USERNAME="${NEUTRON_KEYSTONE_USER}" +export OS_PASSWORD="${NEUTRON_KEYSTONE_PASSWORD}" +export OS_TENANT_NAME="${ADMIN_TENANT_NAME}" +EOF + +# Rabbit +crudini --set /etc/neutron/neutron.conf \ + DEFAULT \ + rabbit_host \ + "${RABBIT_HOST}" +crudini --set /etc/neutron/neutron.conf \ + DEFAULT \ + rabbit_userid \ + "${RABBIT_USER}" +crudini --set /etc/neutron/neutron.conf \ + DEFAULT \ + rabbit_password \ + "${RABBIT_PASSWORD}" + +# Keystone +crudini --set /etc/neutron/neutron.conf \ + DEFAULT \ + auth_strategy \ + "keystone" +crudini --set /etc/neutron/neutron.conf \ + keystone_authtoken \ + auth_protocol \ + "${KEYSTONE_AUTH_PROTOCOL}" +crudini --set /etc/neutron/neutron.conf \ + keystone_authtoken \ + auth_host \ + "${KEYSTONE_ADMIN_SERVICE_HOST}" +crudini --set /etc/neutron/neutron.conf \ + keystone_authtoken \ + auth_port \ + "${KEYSTONE_ADMIN_SERVICE_PORT}" +crudini --set /etc/neutron/neutron.conf \ + keystone_authtoken \ + auth_uri \ + "${KEYSTONE_AUTH_PROTOCOL}://${KEYSTONE_PUBLIC_SERVICE_HOST}:5000/" +crudini --set /etc/neutron/neutron.conf \ + keystone_authtoken \ + admin_tenant_name \ + "${ADMIN_TENANT_NAME}" +crudini --set /etc/neutron/neutron.conf \ + keystone_authtoken \ + admin_user \ + "${NEUTRON_KEYSTONE_USER}" +crudini --set /etc/neutron/neutron.conf \ + keystone_authtoken \ + admin_password \ + "${NEUTRON_KEYSTONE_PASSWORD}" + +# ML2 +crudini --set /etc/neutron/neutron.conf \ + DEFAULT \ + core_plugin \ + "ml2" +crudini --set /etc/neutron/neutron.conf \ + DEFAULT \ + service_plugins \ + "router" +crudini --set /etc/neutron/neutron.conf \ + DEFAULT \ + allow_overlapping_ips \ + "True" + diff --git a/docker/neutron/neutron-server/Dockerfile b/docker/neutron/neutron-server/Dockerfile new file mode 100644 index 000000000..5004c2347 --- /dev/null +++ b/docker/neutron/neutron-server/Dockerfile @@ -0,0 +1,17 @@ +FROM kollaglue/fedora-rdo-neutron-base +MAINTAINER Daneyon Hansen <danehans@cisco.com> + +#Install required packages +RUN yum install -y openstack-neutron \ + python-neutronclient \ + mariadb \ + ; yum clean all + +VOLUME /var/lib/neutron + +EXPOSE 9696 + +ADD ./start.sh /start.sh +ADD ./check.sh /check.sh + +CMD ["/start.sh"] diff --git a/docker/neutron/neutron-server/build b/docker/neutron/neutron-server/build new file mode 120000 index 000000000..43944faa0 --- /dev/null +++ b/docker/neutron/neutron-server/build @@ -0,0 +1 @@ +../../../tools/build-docker-image
\ No newline at end of file diff --git a/docker/neutron/neutron-server/check.sh b/docker/neutron/neutron-server/check.sh new file mode 100755 index 000000000..2a44cda91 --- /dev/null +++ b/docker/neutron/neutron-server/check.sh @@ -0,0 +1,17 @@ +#!/bin/sh + +RES=0 + +. /openrc +if ! keystone token-get > /dev/null; then + echo "ERROR: keystone token-get failed" >&2 + RES=1 +else + if ! neutron ext-list > /dev/null; then + echo "ERROR: neutron ext-list failed" >&2 + RES=1 + fi +fi + +exit $RES + diff --git a/docker/neutron/neutron-server/start.sh b/docker/neutron/neutron-server/start.sh new file mode 100755 index 000000000..92ab935c5 --- /dev/null +++ b/docker/neutron/neutron-server/start.sh @@ -0,0 +1,104 @@ +#!/bin/bash + +set -e + +. /opt/kolla/kolla-common.sh +. /opt/kolla/config-neutron.sh + +check_required_vars KEYSTONE_ADMIN_TOKEN KEYSTONE_ADMIN_SERVICE_HOST \ + NEUTRON_KEYSTONE_USER NEUTRON_KEYSTONE_PASSWORD \ + ADMIN_TENANT_NAME NEUTRON_SERVER_SERVICE_HOST \ + PUBLIC_IP +check_for_keystone +check_for_db + +mysql -h ${MARIADB_SERVICE_HOST} -u root -p${DB_ROOT_PASSWORD} mysql <<EOF +CREATE DATABASE IF NOT EXISTS ${NEUTRON_DB_NAME} DEFAULT CHARACTER SET utf8; +GRANT ALL PRIVILEGES ON ${NEUTRON_DB_NAME}.* TO + '${NEUTRON_DB_USER}'@'%' IDENTIFIED BY '${NEUTRON_DB_PASSWORD}' + +EOF + +export SERVICE_TOKEN="${KEYSTONE_ADMIN_TOKEN}" +export SERVICE_ENDPOINT="${KEYSTONE_AUTH_PROTOCOL}://${KEYSTONE_ADMIN_SERVICE_HOST}:35357/v2.0" + +# Configure Keystone Service Catalog +crux user-create -n "${NEUTRON_KEYSTONE_USER}" \ + -p "${NEUTRON_KEYSTONE_PASSWORD}" \ + -t "${ADMIN_TENANT_NAME}" \ + -r admin + +crux endpoint-create -n neutron -t network \ + -I "${KEYSTONE_AUTH_PROTOCOL}://${NEUTRON_SERVER_SERVICE_HOST}:9696" \ + -P "${KEYSTONE_AUTH_PROTOCOL}://${PUBLIC_IP}:9696" \ + -A "${KEYSTONE_AUTH_PROTOCOL}://${NEUTRON_SERVER_SERVICE_HOST}:9696" + +# Database +crudini --set /etc/neutron/neutron.conf \ + database \ + connection \ + "mysql://${NEUTRON_DB_USER}:${NEUTRON_DB_PASSWORD}@${MARIADB_SERVICE_HOST}/${NEUTRON_DB_NAME}" + +# Nova +crudini --set /etc/neutron/neutron.conf \ + DEFAULT \ + notify_nova_on_port_status_changes \ + "True" +crudini --set /etc/neutron/neutron.conf \ + DEFAULT \ + notify_nova_on_port_data_changes \ + "True" +crudini --set /etc/neutron/neutron.conf \ + DEFAULT \ + nova_url \ + "http://${NOVA_API_SERVICE_HOST}:8774/v2" +crudini --set /etc/neutron/neutron.conf \ + DEFAULT \ + nova_admin_auth_url \ + "http://${KEYSTONE_ADMIN_SERVICE_HOST}:35357/v2.0" +crudini --set /etc/neutron/neutron.conf \ + DEFAULT \ + nova_region_name \ + "RegionOne" +crudini --set /etc/neutron/neutron.conf \ + DEFAULT \ + nova_admin_username \ + "nova" +crudini --set /etc/neutron/neutron.conf \ + DEFAULT \ + nova_admin_tenant_id \ + "$(keystone tenant-list | grep $ADMIN_TENANT_NAME | awk '{print $2;}')" +crudini --set /etc/neutron/neutron.conf \ + DEFAULT \ + nova_admin_password \ + "${NOVA_ADMIN_PASSWORD}" + +# Configure ml2_conf.ini +crudini --set /etc/neutron/plugins/ml2/ml2_conf.ini \ + ml2 \ + type_drivers \ + "gre" +crudini --set /etc/neutron/plugins/ml2/ml2_conf.ini \ + ml2 \ + tenant_network_types \ + "gre" +crudini --set /etc/neutron/plugins/ml2/ml2_conf.ini \ + ml2 \ + mechanism_drivers \ + "openvswitch" +crudini --set /etc/neutron/plugins/ml2/ml2_conf.ini \ + ml2_type_gre \ + tunnel_id_ranges \ + "1:1000" +crudini --set /etc/neutron/plugins/ml2/ml2_conf.ini \ + securitygroup \ + firewall_driver \ + "neutron.agent.linux.iptables_firewall.OVSHybridIptablesFirewallDriver" +crudini --set /etc/neutron/plugins/ml2/ml2_conf.ini \ + securitygroup \ + enable_security_group \ + "True" + +/usr/bin/ln -s /etc/neutron/plugins/ml2/ml2_conf.ini /etc/neutron/plugin.ini + +exec /usr/bin/neutron-server |
