tripleo-incubator/scripts/setup-neutron
Robert Collins 920cb61a1d Setup nameservers in the default-net.
Its not useful to have no DNS. Long term we probably need to make
this configurable, but 8.8.8.8 is sane for many environments.

Change-Id: I732e6a1b93d7d8ab2f8f37646db38454e4088483
2014-04-04 23:44:58 +13:00

70 lines
2.3 KiB
Bash
Executable File

#!/bin/bash
#
# Setup neutron for a new cloud.
#
# Assumes an OpenStack rc file has been sourced already to provide credentials
# and endpoint information.
set -eu
set -o pipefail
# Future work:
# Make this take options
# or perhaps eliminate it and describe it as raw commands in incubator.
# Start of DHCP range
ALLOCATION_START=$1
# End of DHCP range
ALLOCATION_END=$2
# Network CIDR
NETWORK_CIDR=$3
# Where to route traffic
NETWORK_GATEWAY=$4
# Where the metadata service is - ideally nova-bm would manage this:
# https://bugs.launchpad.net/tripleo/+bug/1239481
METADATA_SERVER=$5
# If non-empty create a provider flat network with this name otherwise create a
# virtual network and setup a router etc.
PHYSICAL_NETWORK=${6:-""}
# Start of floating range
FLOATING_START=${7:-""}
# End of floating range
FLOATING_END=${8:-""}
# Floating CIDR
FLOATING_CIDR=${9:-""}
# Create command line parameters
if [ -n "$ALLOCATION_START" -a -n "$ALLOCATION_END" ] ; then
ALLOCATION_POOL="start=${ALLOCATION_START},end=${ALLOCATION_END}"
fi
# Find the admin tenant.
TENANT_ID=$(keystone tenant-list | grep ' admin ' | awk '{print $2}')
if [ -n "$PHYSICAL_NETWORK" ] ; then
# Underclouds
NET_NAME=$PHYSICAL_NETWORK
NET_EXTRA="--tenant_id $TENANT_ID --provider:network_type flat --provider:physical_network $PHYSICAL_NETWORK"
SUBNET_EXTRA="--tenant_id $TENANT_ID --host_routes type=dict list=true destination=169.254.169.254/32,nexthop=$METADATA_SERVER"
else
# Overclouds
NET_NAME="default-net"
NET_EXTRA="--shared"
SUBNET_EXTRA="--dns-nameservers list=true 8.8.8.8"
fi
NET_ID=$(neutron net-create $NET_NAME $NET_EXTRA | grep ' id ' | awk '{print $4}')
SUBNET_ID=$(neutron subnet-create --ip_version 4 ${ALLOCATION_POOL:+--allocation-pool $ALLOCATION_POOL} ${NETWORK_GATEWAY:+--gateway $NETWORK_GATEWAY} $NET_ID $NETWORK_CIDR $SUBNET_EXTRA | grep ' id ' | awk '{print $4}')
if [ -z "$PHYSICAL_NETWORK" ] ; then
neutron router-create default-router
neutron router-interface-add default-router $SUBNET_ID
fi
if [ -n "$FLOATING_START" -a -n "$FLOATING_END" -a -n "$FLOATING_CIDR" ] ; then
neutron net-create ext-net --router:external=True
SUBNET_ID=$(neutron subnet-create ext-net $FLOATING_CIDR --disable-dhcp \
--allocation-pool start=$FLOATING_START,end=$FLOATING_END)
neutron router-gateway-set default-router ext-net
fi