diff options
-rw-r--r-- | build/nics-compute.yaml.jinja2 | 19 | ||||
-rw-r--r-- | ci/PR_revision.log | 1 | ||||
-rwxr-xr-x | ci/deploy.sh | 14 | ||||
-rwxr-xr-x | lib/python/apex-python-utils.py | 12 | ||||
-rw-r--r-- | lib/python/apex/network_settings.py | 5 |
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) |