aboutsummaryrefslogtreecommitdiff
path: root/docker
diff options
context:
space:
mode:
authorDaneyon Hansen <danehans@cisco.com>2015-03-26 19:47:56 +0000
committerDaneyon Hansen <danehans@cisco.com>2015-04-10 03:11:23 +0000
commit2f2bb366e0aa856803c0d21a7a541802d814d180 (patch)
tree90a14023c95940161feb5032b15336e0695695d4 /docker
parent0b671ad58d31dc3c3704a35a9ef0c17af0834e72 (diff)
downloadkolla-2f2bb366e0aa856803c0d21a7a541802d814d180.tar.gz
kolla-2f2bb366e0aa856803c0d21a7a541802d814d180.zip
Adds neutron-server to neutron container-set
Adds neutron-server components of the neutron container set. Partially Implements: blueprint compute-operation-neutron Change-Id: I63525ae85f4ead4e010cdb9b6bc8059bb9d252e7
Diffstat (limited to 'docker')
-rw-r--r--docker/neutron/neutron-base/Dockerfile1
-rw-r--r--docker/neutron/neutron-base/config-neutron.sh82
-rw-r--r--docker/neutron/neutron-server/Dockerfile4
-rwxr-xr-xdocker/neutron/neutron-server/start.sh49
-rwxr-xr-xdocker/nova-base/config-nova.sh9
5 files changed, 91 insertions, 54 deletions
diff --git a/docker/neutron/neutron-base/Dockerfile b/docker/neutron/neutron-base/Dockerfile
index d4f89f3ae..22922a04c 100644
--- a/docker/neutron/neutron-base/Dockerfile
+++ b/docker/neutron/neutron-base/Dockerfile
@@ -5,4 +5,3 @@ 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/config-neutron.sh b/docker/neutron/neutron-base/config-neutron.sh
index 6cbbc74ac..a079364a2 100644
--- a/docker/neutron/neutron-base/config-neutron.sh
+++ b/docker/neutron/neutron-base/config-neutron.sh
@@ -4,28 +4,33 @@ set -e
. /opt/kolla/kolla-common.sh
-: ${ADMIN_TENANT_NAME:=admin}
+# Database
: ${NEUTRON_DB_NAME:=neutron}
: ${NEUTRON_DB_USER:=neutron}
+: ${NEUTRON_DB_PASSWORD:=password}
+# Keystone
+: ${ADMIN_TENANT_NAME:=admin}
: ${NEUTRON_KEYSTONE_USER:=neutron}
+: ${NEUTRON_KEYSTONE_PASSWORD:=password}
: ${KEYSTONE_AUTH_PROTOCOL:=http}
+: ${KEYSTONE_ADMIN_SERVICE_HOST:=127.0.0.1}
+: ${KEYSTONE_PUBLIC_SERVICE_HOST:=127.0.0.1}
+: ${KEYSTONE_ADMIN_SERVICE_PORT:=35357}
+: ${KEYSTONE_PUBLIC_SERVICE_PORT:=5000}
+: ${KEYSTONE_REGION:=RegionOne}
+# RabbitMQ
: ${RABBIT_HOST:=$RABBITMQ_SERVICE_HOST}
: ${RABBIT_USER:=guest}
: ${RABBIT_PASSWORD:=guest}
+# Logging
: ${VERBOSE_LOGGING:=true}
: ${DEBUG_LOGGING:=false}
+# Networking
+: ${NEUTRON_FLAT_NETWORK_NAME:=physnet1}
check_required_vars NEUTRON_KEYSTONE_PASSWORD NEUTRON_LOG_DIR \
- KEYSTONE_PUBLIC_SERVICE_HOST RABBITMQ_SERVICE_HOST
-
-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
+ KEYSTONE_PUBLIC_SERVICE_HOST RABBITMQ_SERVICE_HOST \
+ NEUTRON_API_PASTE_CONFIG
core_cfg=/etc/neutron/neutron.conf
ml2_cfg=/etc/neutron/plugins/ml2/ml2_conf.ini
@@ -44,6 +49,12 @@ crudini --set $core_cfg \
debug \
"${DEBUG_LOGGING}"
+# Paste config
+crudini --set $core_cfg \
+ DEFAULT \
+ api_paste_config \
+ "${NEUTRON_API_PASTE_CONFIG}"
+
# Rabbit
crudini --set $core_cfg \
DEFAULT \
@@ -58,6 +69,12 @@ crudini --set $core_cfg \
rabbit_password \
"${RABBIT_PASSWORD}"
+# Locking
+crudini --set $core_cfg \
+ DEFAULT \
+ lock_path \
+ "/var/lock/neutron"
+
# Keystone
crudini --set $core_cfg \
DEFAULT \
@@ -65,20 +82,12 @@ crudini --set $core_cfg \
"keystone"
crudini --set $core_cfg \
keystone_authtoken \
- auth_protocol \
- "${KEYSTONE_AUTH_PROTOCOL}"
-crudini --set $core_cfg \
- keystone_authtoken \
- auth_host \
- "${KEYSTONE_ADMIN_SERVICE_HOST}"
+ auth_uri \
+ "${KEYSTONE_AUTH_PROTOCOL}://${KEYSTONE_PUBLIC_SERVICE_HOST}:${KEYSTONE_PUBLIC_SERVICE_PORT}/v2.0"
crudini --set $core_cfg \
keystone_authtoken \
- auth_port \
- "${KEYSTONE_ADMIN_SERVICE_PORT}"
-crudini --set $core_cfg \
- keystone_authtoken \
- auth_uri \
- "${KEYSTONE_AUTH_PROTOCOL}://${KEYSTONE_PUBLIC_SERVICE_HOST}:5000/"
+ identity_uri \
+ "${KEYSTONE_AUTH_PROTOCOL}://${KEYSTONE_ADMIN_SERVICE_HOST}:${KEYSTONE_ADMIN_SERVICE_PORT}"
crudini --set $core_cfg \
keystone_authtoken \
admin_tenant_name \
@@ -96,15 +105,19 @@ crudini --set $core_cfg \
crudini --set $core_cfg \
DEFAULT \
core_plugin \
- "ml2"
+ "neutron.plugins.ml2.plugin.Ml2Plugin"
crudini --set $core_cfg \
DEFAULT \
service_plugins \
- "router"
+ "neutron.services.l3_router.l3_router_plugin.L3RouterPlugin,neutron.services.firewall.fwaas_plugin.FirewallPlugin"
crudini --set $core_cfg \
DEFAULT \
allow_overlapping_ips \
- "False"
+ "True"
+crudini --set $core_cfg \
+ DEFAULT \
+ network_device_mtu \
+ "1450"
# Configure ml2_conf.ini
crudini --set $ml2_cfg \
@@ -114,12 +127,16 @@ crudini --set $ml2_cfg \
crudini --set $ml2_cfg \
ml2 \
tenant_network_types \
- "vxlan"
+ "vxlan,flat"
crudini --set $ml2_cfg \
ml2 \
mechanism_drivers \
"linuxbridge,l2population"
crudini --set $ml2_cfg \
+ ml2_type_flat \
+ flat_networks \
+ ${NEUTRON_FLAT_NETWORK_NAME}
+crudini --set $ml2_cfg \
ml2_type_vxlan \
vxlan_group \
""
@@ -157,5 +174,16 @@ crudini --set $ml2_cfg \
"True"
crudini --set $ml2_cfg \
securitygroup \
+ enable_ipset \
+ "True"
+crudini --set $ml2_cfg \
+ securitygroup \
firewall_driver \
"neutron.agent.linux.iptables_firewall.IptablesFirewallDriver"
+
+cat > /openrc <<EOF
+export OS_AUTH_URL="http://${KEYSTONE_PUBLIC_SERVICE_HOST}:${KEYSTONE_PUBLIC_SERVICE_PORT}/v2.0"
+export OS_USERNAME="${NEUTRON_KEYSTONE_USER}"
+export OS_PASSWORD="${NEUTRON_KEYSTONE_PASSWORD}"
+export OS_TENANT_NAME="${ADMIN_TENANT_NAME}"
+EOF
diff --git a/docker/neutron/neutron-server/Dockerfile b/docker/neutron/neutron-server/Dockerfile
index a9d4eef4d..edd6ea559 100644
--- a/docker/neutron/neutron-server/Dockerfile
+++ b/docker/neutron/neutron-server/Dockerfile
@@ -4,11 +4,9 @@ MAINTAINER Kolla Project (https://launchpad.net/kolla)
#Install required packages
RUN yum install -y openstack-neutron \
python-neutronclient \
- mariadb \
+ which \
&& yum clean all
-VOLUME /var/lib/neutron
-
ADD ./start.sh /start.sh
ADD ./check.sh /check.sh
diff --git a/docker/neutron/neutron-server/start.sh b/docker/neutron/neutron-server/start.sh
index f6c64f2a2..377738b69 100755
--- a/docker/neutron/neutron-server/start.sh
+++ b/docker/neutron/neutron-server/start.sh
@@ -2,15 +2,16 @@
set -e
-. /opt/kolla/kolla-common.sh
. /opt/kolla/config-neutron.sh
check_required_vars KEYSTONE_ADMIN_TOKEN KEYSTONE_ADMIN_SERVICE_HOST \
KEYSTONE_AUTH_PROTOCOL NOVA_API_SERVICE_HOST \
- NOVA_ADMIN_PASSWORD NEUTRON_DB_NAME NEUTRON_DB_USER \
+ NOVA_KEYSTONE_USER NOVA_KEYSTONE_PASSWORD \
+ NEUTRON_DB_NAME NEUTRON_DB_USER NEUTRON_DB_PASSWORD \
NEUTRON_KEYSTONE_USER NEUTRON_KEYSTONE_PASSWORD \
ADMIN_TENANT_NAME NEUTRON_SERVER_SERVICE_HOST \
PUBLIC_IP NEUTRON_DB_PASSWORD NEUTRON_SERVER_LOG_FILE
+
fail_unless_os_service_running keystone
fail_unless_db
@@ -22,7 +23,7 @@ GRANT ALL PRIVILEGES ON ${NEUTRON_DB_NAME}.* TO
EOF
export SERVICE_TOKEN="${KEYSTONE_ADMIN_TOKEN}"
-export SERVICE_ENDPOINT="${KEYSTONE_AUTH_PROTOCOL}://${KEYSTONE_ADMIN_SERVICE_HOST}:35357/v2.0"
+export SERVICE_ENDPOINT="${KEYSTONE_AUTH_PROTOCOL}://${KEYSTONE_ADMIN_SERVICE_HOST}:${KEYSTONE_ADMIN_SERVICE_PORT}/v2.0"
# Configure Keystone Service Catalog
crux user-create -n "${NEUTRON_KEYSTONE_USER}" \
@@ -31,9 +32,12 @@ crux user-create -n "${NEUTRON_KEYSTONE_USER}" \
-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"
+ -I "${KEYSTONE_AUTH_PROTOCOL}://${NEUTRON_SERVER_SERVICE_HOST}:${NEUTRON_SERVER_SERVICE_PORT}" \
+ -P "${KEYSTONE_AUTH_PROTOCOL}://${NEUTRON_SERVER_SERVICE_HOST}:${NEUTRON_SERVER_SERVICE_PORT}" \
+ -A "${KEYSTONE_AUTH_PROTOCOL}://${NEUTRON_SERVER_SERVICE_HOST}:${NEUTRON_SERVER_SERVICE_PORT}"
+
+core_cfg=/etc/neutron/neutron.conf
+ml2_cfg=/etc/neutron/plugins/ml2/ml2_conf.ini
# Logging
crudini --set /etc/neutron/neutron.conf \
@@ -42,45 +46,44 @@ crudini --set /etc/neutron/neutron.conf \
"${NEUTRON_SERVER_LOG_FILE}"
# Database
-crudini --set /etc/neutron/neutron.conf \
+crudini --set $core_cfg \
database \
connection \
"mysql://${NEUTRON_DB_USER}:${NEUTRON_DB_PASSWORD}@${MARIADB_SERVICE_HOST}/${NEUTRON_DB_NAME}"
-
# Nova
-crudini --set /etc/neutron/neutron.conf \
+crudini --set $core_cfg \
DEFAULT \
notify_nova_on_port_status_changes \
"True"
-crudini --set /etc/neutron/neutron.conf \
+crudini --set $core_cfg \
DEFAULT \
notify_nova_on_port_data_changes \
"True"
-crudini --set /etc/neutron/neutron.conf \
+crudini --set $core_cfg \
DEFAULT \
nova_url \
- "http://${NOVA_API_SERVICE_HOST}:8774/v2"
-crudini --set /etc/neutron/neutron.conf \
+ "http://${NOVA_API_SERVICE_HOST}:${NOVA_API_SERVICE_PORT}/v2"
+crudini --set $core_cfg \
DEFAULT \
nova_admin_auth_url \
- "http://${KEYSTONE_ADMIN_SERVICE_HOST}:35357/v2.0"
-crudini --set /etc/neutron/neutron.conf \
+ "${KEYSTONE_AUTH_PROTOCOL}://${KEYSTONE_ADMIN_SERVICE_HOST}:${KEYSTONE_ADMIN_SERVICE_PORT}/v2.0"
+crudini --set $core_cfg \
DEFAULT \
nova_region_name \
- "RegionOne"
-crudini --set /etc/neutron/neutron.conf \
+ "${KEYSTONE_REGION}"
+crudini --set $core_cfg \
DEFAULT \
nova_admin_username \
- "nova"
-crudini --set /etc/neutron/neutron.conf \
+ "${NOVA_KEYSTONE_USER}"
+crudini --set $core_cfg \
DEFAULT \
nova_admin_tenant_id \
"$(keystone tenant-list | grep $ADMIN_TENANT_NAME | awk '{print $2;}')"
-crudini --set /etc/neutron/neutron.conf \
+crudini --set $core_cfg \
DEFAULT \
nova_admin_password \
- "${NOVA_ADMIN_PASSWORD}"
+ "${NOVA_KEYSTONE_PASSWORD}"
-/usr/bin/ln -s /etc/neutron/plugins/ml2/ml2_conf.ini /etc/neutron/plugin.ini
+su -s /bin/sh -c "neutron-db-manage --config-file /etc/neutron/neutron.conf --config-file /etc/neutron/plugins/ml2/ml2_conf.ini upgrade juno" neutron
-exec /usr/bin/neutron-server
+exec /usr/bin/neutron-server --config-file /etc/neutron/neutron.conf --config-file /etc/neutron/plugins/ml2/ml2_conf.ini
diff --git a/docker/nova-base/config-nova.sh b/docker/nova-base/config-nova.sh
index 6350ed695..0b1dc39d3 100755
--- a/docker/nova-base/config-nova.sh
+++ b/docker/nova-base/config-nova.sh
@@ -14,6 +14,7 @@
: ${PUBLIC_NETWORK:=eth0}
: ${ENABLED_APIS:=ec2,osapi_compute,metadata}
: ${METADATA_HOST:=$PUBLIC_IP}
+: ${NEUTRON_SHARED_SECRET:=sharedsecret}
check_required_vars KEYSTONE_ADMIN_TOKEN NOVA_DB_PASSWORD \
RABBITMQ_SERVICE_HOST GLANCE_API_SERVICE_HOST \
@@ -89,7 +90,15 @@ elif [ "${NETWORK_MANAGER}" == "neutron" ] ; then
crudini --set $cfg DEFAULT neutron_default_tenant_id default
crudini --set $cfg DEFAULT network_api_class nova.network.neutronv2.api.API
crudini --set $cfg DEFAULT security_group_api neutron
+ crudini --set $cfg DEFAULT linuxnet_interface_driver nova.network.linux_net.NeutronLinuxBridgeInterfaceDriver
+ crudini --set $cfg DEFAULT libvirt_vif_driver nova.virt.libvirt.vif.LibvirtGenericVIFDriver
crudini --set $cfg DEFAULT firewall_driver nova.virt.firewall.NoopFirewallDriver
+ crudini --set $cfg neutron url http://${NEUTRON_SERVER_SERVICE_HOST}:${NEUTRON_SERVER_SERVICE_PORT}
+ crudini --set $cfg neutron auth_strategy keystone
+ crudini --set $cfg neutron admin_auth_url ${KEYSTONE_AUTH_PROTOCOL}://${KEYSTONE_ADMIN_SERVICE_HOST}:${KEYSTONE_ADMIN_SERVICE_PORT}/v2.0
+ crudini --set $cfg neutron admin_tenant_name ${ADMIN_TENANT_NAME}
+ crudini --set $cfg neutron admin_username ${NEUTRON_KEYSTONE_USER}
+ crudini --set $cfg neutron admin_password ${NEUTRON_KEYSTONE_PASSWORD}
else
echo "Incorrect NETWORK_MANAGER ${NETWORK_MANAGER}. Supported options are nova and neutron."
exit 1