From 7726620121424d8f0959587d0a1baf1768e57c63 Mon Sep 17 00:00:00 2001 From: Feng Pan Date: Mon, 6 Jun 2016 16:57:12 -0400 Subject: 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 --- build/network-environment.yaml | 2 +- ci/clean.sh | 2 +- ci/deploy.sh | 4 ++-- lib/python/apex/network_environment.py | 25 +++++++++++++++++++++++++ 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): -- cgit 1.2.3-korg