From: Feng Pan Date: Mon, 6 Jun 2016 20:57:12 +0000 (-0400) Subject: Add API network support X-Git-Tag: colorado.1.0~187^2 X-Git-Url: https://gerrit.opnfv.org/gerrit/gitweb?a=commitdiff_plain;h=7726620121424d8f0959587d0a1baf1768e57c63;p=apex.git 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 --- 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):