Add API network support 33/15233/1
authorFeng Pan <fpan@redhat.com>
Mon, 6 Jun 2016 20:57:12 +0000 (16:57 -0400)
committerFeng Pan <fpan@redhat.com>
Mon, 6 Jun 2016 20:57:12 +0000 (16:57 -0400)
- 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>
build/network-environment.yaml
ci/clean.sh
ci/deploy.sh
lib/python/apex/network_environment.py

index 2773300..874e011 100644 (file)
@@ -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
index b898fc9..a6073a7 100755 (executable)
@@ -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
index 4f123e1..1400b23 100755 (executable)
@@ -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
index e6f0135..4bab34c 100644 (file)
@@ -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):