summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorFeng Pan <fpan@redhat.com>2018-04-13 22:22:40 -0400
committerTim Rozet <trozet@redhat.com>2018-04-19 04:16:11 +0000
commitd98ecbac0bfbe4157efea5a00836a541ac681b7c (patch)
tree996bed129d46aa32ec1d0945849da760fdf95793
parente5caea32820466d5870f11ba72255b8f77591a62 (diff)
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 <fpan@redhat.com> (cherry picked from commit 5acf4e708c68147ef20c67f8d4648e6027c1e20d)
-rw-r--r--.gitignore4
-rw-r--r--apex/deploy.py2
-rw-r--r--apex/overcloud/deploy.py18
-rw-r--r--apex/tests/test_apex_overcloud_deploy.py40
-rw-r--r--build/rpm_specs/networking-vpp.spec2
-rw-r--r--build/rpm_specs/opnfv-apex-common.spec5
-rw-r--r--build/variables.sh7
-rw-r--r--config/network/network_settings.yaml6
-rw-r--r--config/network/network_settings_vpp.yaml318
9 files changed, 66 insertions, 336 deletions
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 <fpan@redhat.com> - 6.0-4
+ Removes network_settings_vpp.yaml
* Tue Apr 03 2018 Tim Rozet <trozet@redhat.com> - 6.0-3
Adds fetch logs
* Fri Mar 09 2018 Tim Rozet <trozet@redhat.com> - 6.0-2
diff --git a/build/variables.sh b/build/variables.sh
index c6bddc02..1c118442 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