summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorFeng Pan <fpan@redhat.com>2016-06-06 16:57:12 -0400
committerFeng Pan <fpan@redhat.com>2016-06-06 16:57:12 -0400
commit7726620121424d8f0959587d0a1baf1768e57c63 (patch)
tree1870b13dfed37a18f6f685caba0fa467e411b026
parenteb3ee9abc0a1f4ae4835aefabe66c5de5f81cc42 (diff)
Add API network support
- Create additional NIC on virtual deployment if API network is enabled. - Include API network in clean - Change keystone admin api network to admin network. This should have no effect when api network is disabled, as today's behavior is to fall back to admin network anyway. However, when api network is defined, we need to be able to reach overcloud from undercloud through keystone admin api network. Change-Id: Ib0aea4a0daeed5878793530c10d8f8a1bbe5fd72 Signed-off-by: Feng Pan <fpan@redhat.com>
-rw-r--r--build/network-environment.yaml2
-rwxr-xr-xci/clean.sh2
-rwxr-xr-xci/deploy.sh4
-rw-r--r--lib/python/apex/network_environment.py25
4 files changed, 29 insertions, 4 deletions
diff --git a/build/network-environment.yaml b/build/network-environment.yaml
index 27733005..874e0112 100644
--- a/build/network-environment.yaml
+++ b/build/network-environment.yaml
@@ -65,7 +65,7 @@ parameters:
CinderIscsiNetwork: storage
GlanceApiNetwork: storage
GlanceRegistryNetwork: internal_api
- KeystoneAdminApiNetwork: internal_api
+ KeystoneAdminApiNetwork: ctlplane
KeystonePublicApiNetwork: internal_api
NeutronApiNetwork: internal_api
HeatApiNetwork: internal_api
diff --git a/ci/clean.sh b/ci/clean.sh
index b898fc9c..a6073a7b 100755
--- a/ci/clean.sh
+++ b/ci/clean.sh
@@ -25,7 +25,7 @@ fi
vm_index=4
ovs_bridges="br-admin br-private br-public br-storage"
-OPNFV_NETWORK_TYPES="admin_network private_network public_network storage_network"
+OPNFV_NETWORK_TYPES="admin_network private_network public_network storage_network api_network"
# Clean off instack/undercloud VM
for vm in instack undercloud; do
diff --git a/ci/deploy.sh b/ci/deploy.sh
index 4f123e10..1400b23e 100755
--- a/ci/deploy.sh
+++ b/ci/deploy.sh
@@ -291,7 +291,7 @@ function configure_deps {
virsh net-list --all | grep -E "default\s+active\s+yes" > /dev/null || virsh net-autostart --network default
if [[ -z "$virtual" || "$virtual" == "FALSE" ]]; then
- for network in ${OPNFV_NETWORK_TYPES}; do
+ for network in ${enabled_network_list}; do
echo "${blue}INFO: Creating Virsh Network: $network & OVS Bridge: ${NET_MAP[$network]}${reset}"
ovs-vsctl list-br | grep "^${NET_MAP[$network]}$" > /dev/null || ovs-vsctl add-br ${NET_MAP[$network]}
virsh net-list --all | grep $network > /dev/null || (cat > ${libvirt_dir}/apex-virsh-net.xml && virsh net-define ${libvirt_dir}/apex-virsh-net.xml) << EOF
@@ -523,7 +523,7 @@ EOF
for i in $(seq 0 $vm_index); do
if ! virsh list --all | grep baremetal${i} > /dev/null; then
define_vm baremetal${i} network 41 'admin_network' $vcpus $ramsize
- for n in private_network public_network storage_network; do
+ for n in private_network public_network storage_network api_network; do
if [[ $enabled_network_list =~ $n ]]; then
echo -n "$n "
virsh attach-interface --domain baremetal${i} --type network --source $n --model rtl8139 --config
diff --git a/lib/python/apex/network_environment.py b/lib/python/apex/network_environment.py
index e6f0135a..4bab34c9 100644
--- a/lib/python/apex/network_environment.py
+++ b/lib/python/apex/network_environment.py
@@ -20,6 +20,10 @@ STORAGE_RESOURCES = {'OS::TripleO::Network::Storage': None,
'OS::TripleO::Network::Ports::StorageVipPort': PORTS,
'OS::TripleO::Controller::Ports::StoragePort': PORTS,
'OS::TripleO::Compute::Ports::StoragePort': PORTS}
+API_RESOURCES = {'OS::TripleO::Network::InternalApi': None,
+ 'OS::TripleO::Network::Ports::InternalApiVipPort': PORTS,
+ 'OS::TripleO::Controller::Ports::InternalApiPort': PORTS,
+ 'OS::TripleO::Compute::Ports::InternalApiPort': PORTS}
class NetworkEnvironment:
@@ -117,6 +121,27 @@ class NetworkEnvironment:
if prefix is None:
prefix = ''
self.netenv_obj[reg][key] = tht_dir + prefix + postfix
+
+ if constants.API_NETWORK in enabled_networks:
+ api_range = net_settings[constants.API_NETWORK][
+ 'usable_ip_range'].split(',')
+ self.netenv_obj[param_def]['InternalApiAllocationPools'] = \
+ [{'start':
+ api_range[0],
+ 'end':
+ api_range[1]
+ }]
+ api_cidr = net_settings[constants.API_NETWORK]['cidr']
+ self.netenv_obj[param_def]['InternalApiNetCidr'] = str(api_cidr)
+ postfix = '/internal_api.yaml'
+ else:
+ postfix = '/noop.yaml'
+
+ for key, prefix in API_RESOURCES.items():
+ if prefix is None:
+ prefix = ''
+ self.netenv_obj[reg][key] = tht_dir + prefix + postfix
+
return self.netenv_obj
def get_netenv_settings(self):