From 5acf4e708c68147ef20c67f8d4648e6027c1e20d Mon Sep 17 00:00:00 2001 From: Feng Pan Date: Fri, 13 Apr 2018 22:22:40 -0400 Subject: Fix nosdn fdio scenario - Update networking-vpp to use master branch - Update THT vpp ml2 environment file with correct parameters - Update external network creation command to use 'externa' as provider network name. - Remove vpp network settings file as it's not used apex-tripleo-heat-templates: Ia25db8456f1ad6beb96c7b9b5f318b166ef4576a apex-puppet-tripleo: I231054a433eb7e598a6e24f6eaea02d476e776de Change-Id: I4a1f68c75ae3b7d2a5b347d05abf0d025e8b116b Signed-off-by: Feng Pan --- .gitignore | 4 +- apex/deploy.py | 2 +- apex/overcloud/deploy.py | 18 +- apex/tests/test_apex_overcloud_deploy.py | 40 +++- build/rpm_specs/networking-vpp.spec | 2 +- build/rpm_specs/opnfv-apex-common.spec | 5 +- build/variables.sh | 7 +- config/network/network_settings.yaml | 6 + config/network/network_settings_vpp.yaml | 318 ------------------------------- 9 files changed, 66 insertions(+), 336 deletions(-) delete mode 100644 config/network/network_settings_vpp.yaml diff --git a/.gitignore b/.gitignore index f42d4c6e..2789a249 100644 --- a/.gitignore +++ b/.gitignore @@ -4,8 +4,8 @@ /docs_output/ /releng/ apex.egg-info/ -/apex/tests/playbooks/*.retry coverage.xml nosetests.xml -ci/*.log .* +*.log +*.retry diff --git a/apex/deploy.py b/apex/deploy.py index 4facadef..bc4d0789 100644 --- a/apex/deploy.py +++ b/apex/deploy.py @@ -515,7 +515,7 @@ def main(): 'UserKnownHostsFile=/dev/null -o ' \ 'LogLevel=error' deploy_vars['external_network_cmds'] = \ - oc_deploy.external_network_cmds(net_settings) + oc_deploy.external_network_cmds(net_settings, deploy_settings) # TODO(trozet): just parse all ds_opts as deploy vars one time deploy_vars['gluon'] = ds_opts['gluon'] deploy_vars['sdn'] = ds_opts['sdn_controller'] diff --git a/apex/overcloud/deploy.py b/apex/overcloud/deploy.py index eb7aefa1..9ebad177 100644 --- a/apex/overcloud/deploy.py +++ b/apex/overcloud/deploy.py @@ -555,8 +555,11 @@ def prep_env(ds, ns, inv, opnfv_env, net_env, tmp_dir): ns['domain_name'])) elif not ds_opts['sdn_controller'] and ds_opts['dataplane'] == 'fdio': if 'NeutronVPPAgentPhysnets' in line: - output_line = (" NeutronVPPAgentPhysnets: 'datacentre:{}'". - format(tenant_nic['Controller'])) + # VPP interface tap0 will be used for external network + # connectivity. + output_line = (" NeutronVPPAgentPhysnets: " + "'datacentre:{},external:tap0'" + .format(tenant_nic['Controller'])) elif ds_opts['sdn_controller'] == 'opendaylight' and ds_opts.get( 'dvr') is True: if 'OS::TripleO::Services::NeutronDhcpAgent' in line: @@ -760,12 +763,18 @@ def prep_sriov_env(ds, tmp_dir): print(line) -def external_network_cmds(ns): +def external_network_cmds(ns, ds): """ Generates external network openstack commands :param ns: network settings + :param ds: deploy settings :return: list of commands to configure external network """ + ds_opts = ds['deploy_options'] + external_physnet = 'datacentre' + if ds_opts['dataplane'] == 'fdio' and \ + ds_opts['sdn_controller'] != 'opendaylight': + external_physnet = 'external' if 'external' in ns.enabled_network_list: net_config = ns['networks']['external'][0] external = True @@ -786,7 +795,8 @@ def external_network_cmds(ns): 'compute']['vlan']) cmds.append("openstack network create external --project service " "--external --provider-network-type {} " - "--provider-physical-network datacentre".format(ext_type)) + "--provider-physical-network {}" + .format(ext_type, external_physnet)) # create subnet command cidr = net_config['cidr'] subnet_cmd = "openstack subnet create external-subnet --project " \ diff --git a/apex/tests/test_apex_overcloud_deploy.py b/apex/tests/test_apex_overcloud_deploy.py index 6898d36c..ae2e8f0b 100644 --- a/apex/tests/test_apex_overcloud_deploy.py +++ b/apex/tests/test_apex_overcloud_deploy.py @@ -404,7 +404,8 @@ class TestOvercloudDeploy(unittest.TestCase): # run test prep_env(ds, ns, inv, 'opnfv-env.yml', '/net-env.yml', '/tmp') output = out.getvalue().strip() - assert_in('NeutronVPPAgentPhysnets: \'datacentre:tenant_nic\'', + assert_in('NeutronVPPAgentPhysnets: ' + '\'datacentre:tenant_nic,external:tap0\'', output) assert_in('NeutronVPPAgentPhysnets', output) finally: @@ -562,6 +563,10 @@ class TestOvercloudDeploy(unittest.TestCase): assert_raises(ApexDeployException, prep_sriov_env, ds, '/tmp') def test_external_network_cmds(self): + ds = {'deploy_options': + {'sdn_controller': 'opendaylight', + 'dataplane': 'ovs'}} + cidr = MagicMock() cidr.version = 6 ns_dict = {'networks': @@ -573,13 +578,41 @@ class TestOvercloudDeploy(unittest.TestCase): ns = MagicMock() ns.enabled_network_list = ['external'] ns.__getitem__.side_effect = lambda i: ns_dict.get(i, MagicMock()) - cmds = ' '.join(external_network_cmds(ns)) + cmds = ' '.join(external_network_cmds(ns, ds)) assert_in('--external', cmds) assert_in('--allocation-pool start=0,end=1', cmds) assert_in('--gateway gw', cmds) assert_in('--network external', cmds) + assert_in('--provider-physical-network datacentre', cmds) + + def test_external_network_cmds_nosdn_fdio(self): + ds = {'deploy_options': + {'sdn_controller': False, + 'dataplane': 'fdio'}} + + cidr = MagicMock() + cidr.version = 6 + ns_dict = {'networks': + {'external': [{'floating_ip_range': (0, 1), + 'nic_mapping': + {'compute': {'vlan': 'native'}}, + 'gateway': 'gw', + 'cidr': cidr}]}} + ns = MagicMock() + ns.enabled_network_list = ['external'] + ns.__getitem__.side_effect = lambda i: ns_dict.get(i, MagicMock()) + cmds = ' '.join(external_network_cmds(ns, ds)) + assert_in('--external', cmds) + assert_in('--allocation-pool start=0,end=1', cmds) + assert_in('--gateway gw', cmds) + assert_in('--network external', cmds) + assert_in('--provider-physical-network external', cmds) def test_external_network_cmds_no_ext(self): + ds = {'deploy_options': + {'sdn_controller': 'opendaylight', + 'dataplane': 'ovs'}} + cidr = MagicMock() cidr.version = 6 ns_dict = {'apex': @@ -593,8 +626,7 @@ class TestOvercloudDeploy(unittest.TestCase): ns = MagicMock() ns.enabled_network_list = ['admin'] ns.__getitem__.side_effect = lambda i: ns_dict.get(i, MagicMock()) - external_network_cmds(ns) - cmds = ' '.join(external_network_cmds(ns)) + cmds = ' '.join(external_network_cmds(ns, ds)) assert_in('--external', cmds) assert_in('--allocation-pool start=0,end=1', cmds) assert_in('--network external', cmds) diff --git a/build/rpm_specs/networking-vpp.spec b/build/rpm_specs/networking-vpp.spec index 75466f94..4c84f206 100644 --- a/build/rpm_specs/networking-vpp.spec +++ b/build/rpm_specs/networking-vpp.spec @@ -2,7 +2,7 @@ Summary: OpenStack Networking for VPP Name: python-networking-vpp -Version: 18.01 +Version: 18.04 Release: %{release}%{?git}%{?dist} License: Apache 2.0 diff --git a/build/rpm_specs/opnfv-apex-common.spec b/build/rpm_specs/opnfv-apex-common.spec index 5d1a59b2..0d12e8d3 100644 --- a/build/rpm_specs/opnfv-apex-common.spec +++ b/build/rpm_specs/opnfv-apex-common.spec @@ -55,7 +55,6 @@ install docs/release/release-notes/release-notes.html %{buildroot}%{_docdir}/opn install config/deploy/deploy_settings.yaml %{buildroot}%{_docdir}/opnfv/deploy_settings.yaml.example install config/network/network_settings.yaml %{buildroot}%{_docdir}/opnfv/network_settings.yaml.example install config/network/network_settings_v6.yaml %{buildroot}%{_docdir}/opnfv/network_settings_v6.yaml.example -install config/network/network_settings_vpp.yaml %{buildroot}%{_docdir}/opnfv/network_settings_vpp.yaml.example install config/inventory/pod_example_settings.yaml %{buildroot}%{_docdir}/opnfv/inventory.yaml.example %files @@ -113,7 +112,6 @@ install config/inventory/pod_example_settings.yaml %{buildroot}%{_docdir}/opnfv/ %{_sysconfdir}/opnfv-apex/network_settings.yaml %{_sysconfdir}/opnfv-apex/network_settings_vlans.yaml %{_sysconfdir}/opnfv-apex/network_settings_v6.yaml -%{_sysconfdir}/opnfv-apex/network_settings_vpp.yaml %doc %{_docdir}/opnfv/LICENSE.rst %doc %{_docdir}/opnfv/installation-instructions.html %doc %{_docdir}/opnfv/release-notes.rst @@ -121,10 +119,11 @@ install config/inventory/pod_example_settings.yaml %{buildroot}%{_docdir}/opnfv/ %doc %{_docdir}/opnfv/deploy_settings.yaml.example %doc %{_docdir}/opnfv/network_settings.yaml.example %doc %{_docdir}/opnfv/network_settings_v6.yaml.example -%doc %{_docdir}/opnfv/network_settings_vpp.yaml.example %doc %{_docdir}/opnfv/inventory.yaml.example %changelog +* Tue Apr 17 2018 Feng Pan - 6.0-4 + Removes network_settings_vpp.yaml * Tue Apr 03 2018 Tim Rozet - 6.0-3 Adds fetch logs * Fri Mar 09 2018 Tim Rozet - 6.0-2 diff --git a/build/variables.sh b/build/variables.sh index 06570bbe..f944c592 100644 --- a/build/variables.sh +++ b/build/variables.sh @@ -44,10 +44,11 @@ kvmfornfv_kernel_rpm="kvmfornfv-4bfeded9-apex-kernel-4.4.50_rt62_centos.x86_64.r calipso_uri_base="https://git.opnfv.org/calipso/plain/app/install" calipso_script="calipso-installer.py" -netvpp_repo="https://github.com/openstack/networking-vpp" -netvpp_branch="18.01" +#netvpp_repo="https://github.com/openstack/networking-vpp" +netvpp_repo="https://github.com/fepan/networking-vpp" +netvpp_branch="test-fdio-fix" netvpp_commit=$(git ls-remote ${netvpp_repo} ${netvpp_branch} | awk '{print substr($1,1,7)}') -netvpp_pkg=python-networking-vpp-18.01-1.git${NETVPP_COMMIT}$(rpm -E %dist).noarch.rpm +netvpp_pkg=python-networking-vpp-18.04-1.git${NETVPP_COMMIT}$(rpm -E %dist).noarch.rpm gluon_rpm=gluon-0.0.1-1_20170302.noarch.rpm diff --git a/config/network/network_settings.yaml b/config/network/network_settings.yaml index c2d9bc90..a8ddca1a 100644 --- a/config/network/network_settings.yaml +++ b/config/network/network_settings.yaml @@ -181,6 +181,9 @@ networks: # Mapping for compute profile (nodes assigned as Compute nodes) compute: # Physical interface type (interface or bond) + # Note that this phys_type for external network will be changed + # to vpp_interface for odl_fdio scenarios and linux_bridge for + # nosdn_fdio scenarios. phys_type: ovs_bridge # VLAN tag to use with this NIC vlan: native @@ -190,6 +193,9 @@ networks: - eth2 # Mapping for controller profile (nodes assigned as Controller nodes) controller: + # Note that this phys_type for external network will be changed + # to vpp_interface for odl_fdio scenarios and linux_bridge for + # nosdn_fdio scenarios. phys_type: ovs_bridge vlan: native members: diff --git a/config/network/network_settings_vpp.yaml b/config/network/network_settings_vpp.yaml deleted file mode 100644 index a40158ea..00000000 --- a/config/network/network_settings_vpp.yaml +++ /dev/null @@ -1,318 +0,0 @@ ---- -# This configuration file defines Network Environment for a -# Baremetal Deployment of OPNFV. It contains default values -# for 5 following networks: -# -# - admin -# - tenant* -# - external* -# - storage* -# - api* -# *) optional networks -# -# Optional networks will be consolidated with the admin network -# if not explicitly configured. -# -# See short description of the networks in the comments below. -# -# "admin" is the short name for Control Plane Network. -# This network should be IPv4 even it is an IPv6 deployment -# IPv6 does not have PXE boot support. -# During OPNFV deployment it is used for node provisioning which will require -# PXE booting as well as running a DHCP server on this network. Be sure to -# disable any other DHCP/TFTP server on this network. -# -# "tenant" is the network used for tenant traffic. -# -# "external" is the network which should have internet or external -# connectivity. External OpenStack networks will be configured to egress this -# network. There can be multiple external networks, but only one assigned as -# "public" which OpenStack public API's will register. -# -# "storage" is the network for storage I/O. -# -# "api" is an optional network for splitting out OpenStack service API -# communication. This should be used for IPv6 deployments. - - -# Meta data for the network configuration -network-config-metadata: - title: LF-POD-1 Network config - version: 0.1 - created: Mon Dec 28 2015 - comment: None - -# DNS Settings -dns-domain: opnfvlf.org -dns-search: opnfvlf.org -dns_nameservers: - - 8.8.8.8 - - 8.8.4.4 -# NTP servers -ntp: - - 0.se.pool.ntp.org - - 1.se.pool.ntp.org -# Syslog server -syslog: - server: 10.128.1.24 - transport: 'tcp' - -# http(s) proxy settings added to /etc/environment of uc and oc nodes -# http_proxy: http://proxy.server:8080 -# https_proxy: https://proxy.server:8081 - -# Common network settings -networks: - # Admin configuration (pxe and jumpstart) - admin: - enabled: true - # Network settings for the Installer VM on admin network - installer_vm: - # Indicates if this VM will be bridged to an interface, or to a bond - nic_type: interface - # Interfaces to bridge for installer VM (use multiple values for bond) - members: - - em1 - # VLAN tag to use for this network on Installer VM, native means none - vlan: native - # IP to assign to Installer VM on this network - ip: 192.0.2.1 - # Usable ip range for the overcloud node IPs (including VIPs) - # Last IP is used for host bridge (i.e. br-admin). - # If empty entire range is usable. - # Cannot overlap with dhcp_range or introspection_range. - overcloud_ip_range: - - 192.0.2.51 - - 192.0.2.99 - # Gateway (only needed when public_network is disabled) - gateway: 192.0.2.1 - # Subnet in CIDR format 192.168.1.0/24 - cidr: 192.0.2.0/24 - # DHCP range for the admin network, automatically provisioned if empty - dhcp_range: - - 192.0.2.2 - - 192.0.2.50 - # Mapping of network configuration for Overcloud Nodes - nic_mapping: - # Mapping for compute profile (nodes assigned as Compute nodes) - compute: - # Physical interface type (interface or bond) - phys_type: interface - # Physical NIC members (Single value allowed for phys_type: interface) - members: - - eth0 - # Mapping for controller profile (nodes assigned as Controller nodes) - controller: - phys_type: interface - members: - - eth0 - - # Tenant network configuration - tenant: - enabled: true - # Subnet in CIDR format 192.168.1.0/24 - cidr: 11.0.0.0/24 - # Tenant network MTU - mtu: 1500 - # Tenant network Overlay segmentation ID range: - # VNI, VLAN-ID, etc. - overlay_id_range: 2,65535 - - # Tenant network segmentation type: - # vlan, vxlan, gre - segmentation_type: vxlan - # Mapping of network configuration for Overcloud Nodes - nic_mapping: - # Mapping for compute profile (nodes assigned as Compute nodes) - compute: - # Physical interface type (interface/bond) - phys_type: interface - # VLAN tag to use with this NIC - vlan: native - # Physical NIC members of this mapping - # Single value allowed for phys_type: interface - members: - # Note logical name like nic1 not valid for fdio deployment yet. - - eth1 - # Mapping for controller profile (nodes assigned as Controller nodes) - controller: - # Physical interface type (interface/bond) - phys_type: interface - vlan: native - # Note: logicial names like nic1 are not valid for fdio deployment yet. - members: - - eth1 - - # Can contain 1 or more external networks - external: - - public: - enabled: true - # Public network MTU - mtu: 1500 - # Network settings for the Installer VM on external network - # (note only valid on 'public' external network) - installer_vm: - # Indicates if this VM will be bridged to an interface, or to a bond - nic_type: interface - vlan: native - # Interfaces to bridge for installer VM (use multiple values for bond) - members: - - em1 - # IP to assign to Installer VM on this network - ip: 192.168.37.1 - cidr: 192.168.37.0/24 - gateway: 192.168.37.1 - # Range to allocate to floating IPs for the public network with Neutron - floating_ip_range: - - 192.168.37.200 - - 192.168.37.220 - # Usable ip range for the overcloud node IPs (including VIPs) - # Last IP will be used for host bridge (i.e. br-public). - # If empty entire range is usable. - # Cannot overlap with dhcp_range or introspection_range. - overcloud_ip_range: - - 192.168.37.10 - - 192.168.37.199 - # Mapping of network configuration for Overcloud Nodes - nic_mapping: - # Mapping for compute profile (nodes assigned as Compute nodes) - compute: - # Physical interface type (interface or bond) - phys_type: interface - # VLAN tag to use with this NIC - vlan: native - # Physical NIC members of this mapping - # Single value allowed for phys_type: interface - members: - - eth2 - # Mapping for controller profile (nodes assigned as Controller nodes) - controller: - phys_type: interface - vlan: native - members: - - eth2 - # External network to be created in OpenStack by Services tenant - external_overlay: - name: Public_internet - type: flat - gateway: 192.168.37.1 - # another external network - # This is an example and not yet supported - - private_cloud: - enabled: false - mtu: 1500 - # Network settings for the Installer VM on external network - # note only valid on 'public' external network - installer_vm: - # Indicates if this VM will be bridged to an interface, or to a bond - nic_type: interface - vlan: 101 - # Interfaces to bridge for installer VM (use multiple values for bond) - members: - - em1 - # IP to assign to Installer VM on this network - ip: 192.168.38.1 - cidr: 192.168.38.0/24 - gateway: 192.168.38.1 - # Range to allocate to floating IPs for the public network with Neutron - floating_ip_range: - - 192.168.38.200 - - 192.168.38.220 - # Usable IP range for overcloud nodes (including VIPs)i - # usually this is a shared subnet. - # Cannot overlap with dhcp_range or introspection_range. - overcloud_ip_range: - - 192.168.38.10 - - 192.168.38.199 - # Mapping of network configuration for Overcloud Nodes - nic_mapping: - # Mapping for compute profile (nodes assigned as Compute nodes) - compute: - # Physical interface type (interface or bond) - phys_type: interface - # VLAN tag to use with this NIC - vlan: 101 - # Physical NIC members of this mappingi - # Single value allowed for phys_type: interface - # Note: logical names like nic1 are not valid for fdio deployment yet. - members: - - eth3 - # Mapping for controller profile (nodes assigned as Controller nodes) - controller: - phys_type: interface - vlan: 101 - members: - - eth3 - # External network to be created in OpenStack by Services tenant - external_overlay: - name: private_cloud - type: vlan - segmentation_id: 101 - gateway: 192.168.38.1 - - # Storage network configuration - storage: - enabled: true - # Subnet in CIDR format - cidr: 12.0.0.0/24 - # Storage network MTU - mtu: 1500 - # Mapping of network configuration for Overcloud Nodes - nic_mapping: - # Mapping for compute profile (nodes assigned as Compute nodes) - compute: - # Physical interface type (interface or bond) - phys_type: interface - # VLAN tag to use with this NIC - vlan: native - # Physical NIC members of this mapping - # Single value allowed for phys_type: interface - members: - # Note logical names like nic1 not valid for fdio deployment yet. - - eth3 - # Mapping for controller profile (nodes assigned as Controller nodes) - controller: - phys_type: interface - vlan: native - members: - - eth3 - - api: - # API network configuration - enabled: false - # Subnet in CIDR format - cidr: fd00:fd00:fd00:4000::/64 - # VLAN tag to use for Overcloud hosts on this network - vlan: 13 - # Api network MTU - mtu: 1500 - # Mapping of network configuration for Overcloud Nodes - nic_mapping: - # Mapping for compute profile (nodes assigned as Compute nodes) - compute: - # Physical interface type (interface or bond) - phys_type: interface - # VLAN tag to use with this NIC - vlan: native - # Physical NIC members of this mapping - # Single value allowed for phys_type: interface - # Note logical names like nic1 not valid for fdio deployment yet. - members: - - eth4 - # Mapping for controller profile (nodes assigned as Controller nodes) - controller: - phys_type: interface - vlan: native - members: - - eth4 - -# Apex specific settings -apex: - networks: - admin: - # Range used for introspection phase (examining nodes). - # This cannot overlap with dhcp_range or overcloud_ip_range. - # for the overcloud default external network - introspection_range: - - 192.0.2.100 - - 192.0.2.120 -- cgit 1.2.3-korg