summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--build/nics-compute.yaml.jinja219
-rw-r--r--ci/PR_revision.log1
-rwxr-xr-xci/deploy.sh14
-rwxr-xr-xlib/python/apex-python-utils.py12
-rw-r--r--lib/python/apex/network_settings.py5
5 files changed, 46 insertions, 5 deletions
diff --git a/build/nics-compute.yaml.jinja2 b/build/nics-compute.yaml.jinja2
index 3a73bbd8..1bc2b50a 100644
--- a/build/nics-compute.yaml.jinja2
+++ b/build/nics-compute.yaml.jinja2
@@ -105,6 +105,24 @@ resources:
next_hop: {get_param: ControlPlaneDefaultRoute}
{%- set nic_index = 2 %}
{%- if 'private_network' in enabled_networks %}
+ {%- if ovs_dpdk_bridge == 'br-phy' %}
+ -
+ type: interface
+ name: nic{{ nic_index }}{% set nic_index = nic_index + 1 %}
+ use_dhcp: false
+
+ -
+ type: ovs_bridge
+ name: {{ ovs_dpdk_bridge }}
+ use_dhcp: false
+ addresses:
+ -
+ ip_netmask: {get_param: TenantIpSubnet}
+ -
+ type: ovs_bridge
+ name: br-tun
+ use_dhcp: false
+ {%- else %}
-
type: interface
name: nic{{ nic_index }}{% set nic_index = nic_index + 1 %}
@@ -113,6 +131,7 @@ resources:
-
ip_netmask: {get_param: TenantIpSubnet}
{%- endif %}
+ {%- endif %}
{%- if external_net_type == "interface" %}
-
type: interface
diff --git a/ci/PR_revision.log b/ci/PR_revision.log
index ea30648a..2dcbe81c 100644
--- a/ci/PR_revision.log
+++ b/ci/PR_revision.log
@@ -8,3 +8,4 @@
23,Fix odl env files
25,Force metadata on all scenarios
26,Fixes ODL ML2 IP
+30,Adds OVS DPDK config
diff --git a/ci/deploy.sh b/ci/deploy.sh
index 5bf7c92e..50090490 100755
--- a/ci/deploy.sh
+++ b/ci/deploy.sh
@@ -659,12 +659,18 @@ function configure_undercloud {
ext_net_type=br-ex
fi
+ if [ "${deploy_options_array['dataplane']}" == 'ovs_dpdk' ]; then
+ ovs_dpdk_bridge='br-phy'
+ else
+ ovs_dpdk_bridge=''
+ fi
+
if ! controller_nic_template=$(python3.4 -B $LIB/python/apex-python-utils.py nic-template -t $CONFIG/nics-controller.yaml.jinja2 -n "$enabled_network_list" -e $ext_net_type -af $ip_addr_family); then
echo -e "${red}ERROR: Failed to generate controller NIC heat template ${reset}"
exit 1
fi
- if ! compute_nic_template=$(python3.4 -B $LIB/python/apex-python-utils.py nic-template -t $CONFIG/nics-compute.yaml.jinja2 -n "$enabled_network_list" -e $ext_net_type -af $ip_addr_family); then
+ if ! compute_nic_template=$(python3.4 -B $LIB/python/apex-python-utils.py nic-template -t $CONFIG/nics-compute.yaml.jinja2 -n "$enabled_network_list" -e $ext_net_type -af $ip_addr_family -d "$ovs_dpdk_bridge"); then
echo -e "${red}ERROR: Failed to generate compute NIC heat template ${reset}"
exit 1
fi
@@ -986,7 +992,11 @@ openstack flavor set --property "cpu_arch"="x86_64" --property "capabilities:boo
openstack flavor set --property "cpu_arch"="x86_64" --property "capabilities:boot_option"="local" --property "capabilities:profile"="control" control
openstack flavor set --property "cpu_arch"="x86_64" --property "capabilities:boot_option"="local" --property "capabilities:profile"="compute" compute
echo "Configuring nameserver on ctlplane network"
-neutron subnet-update \$(neutron subnet-list | grep -v id | grep -v \\\\-\\\\- | awk {'print \$2'}) --dns-nameserver 8.8.8.8
+dns_server_ext=''
+for dns_server in ${dns_servers}; do
+ dns_server_ext="\${dns_server_ext} --dns-nameserver \${dns_server}"
+done
+neutron subnet-update \$(neutron subnet-list | grep -Ev "id|tenant|external|storage" | grep -v \\\\-\\\\- | awk {'print \$2'}) \${dns_server_ext}
echo "Executing overcloud deployment, this should run for an extended period without output."
sleep 60 #wait for Hypervisor stats to check-in to nova
# save deploy command so it can be used for debugging
diff --git a/lib/python/apex-python-utils.py b/lib/python/apex-python-utils.py
index 6c76cb13..c9dcaa55 100755
--- a/lib/python/apex-python-utils.py
+++ b/lib/python/apex-python-utils.py
@@ -79,14 +79,17 @@ def build_nic_template(args):
interface or br-ex, defines the external network configuration
- address_family: string
4 or 6, respective to ipv4 or ipv6
+ - ovs_dpdk_bridge: string
+ bridge name to use as ovs_dpdk
"""
- dir, template = args.template.rsplit('/', 1)
+ template_dir, template = args.template.rsplit('/', 1)
- env = Environment(loader=FileSystemLoader(dir))
+ env = Environment(loader=FileSystemLoader(template_dir))
template = env.get_template(template)
print(template.render(enabled_networks=args.enabled_networks,
external_net_type=args.ext_net_type,
- external_net_af=args.address_family))
+ external_net_af=args.address_family,
+ ovs_dpdk_bridge=args.ovs_dpdk_bridge))
def parse_args():
@@ -135,6 +138,9 @@ def parse_args():
help='External network type')
nic_template.add_argument('-af', '--address-family', type=int, default=4,
dest='address_family', help='IP address family')
+ nic_template.add_argument('-d', '--ovs-dpdk-bridge',
+ default=None, dest='ovs_dpdk_bridge',
+ help='OVS DPDK Bridge Name')
nic_template.set_defaults(func=build_nic_template)
deploy_settings = subparsers.add_parser('parse-deploy-settings',
diff --git a/lib/python/apex/network_settings.py b/lib/python/apex/network_settings.py
index 1ddf4620..9df8a1de 100644
--- a/lib/python/apex/network_settings.py
+++ b/lib/python/apex/network_settings.py
@@ -223,6 +223,11 @@ class NetworkSettings:
bash_str += "enabled_network_list='{}'\n" \
.format(' '.join(self.enabled_network_list))
bash_str += "ip_addr_family={}\n".format(self.get_ip_addr_family())
+ dns_list = ""
+ for dns_server in self.settings_obj['dns_servers']:
+ dns_list = dns_list + "{} ".format(dns_server)
+ dns_list = dns_list.strip()
+ bash_str += "dns_servers=\'{}\'\n".format(dns_list)
if path:
with open(path, 'w') as file:
file.write(bash_str)