summaryrefslogtreecommitdiffstats
path: root/build
diff options
context:
space:
mode:
authorTim Rozet <trozet@redhat.com>2017-03-17 18:08:26 +0000
committerGerrit Code Review <gerrit@opnfv.org>2017-03-17 18:08:26 +0000
commitcdeac78e8253804bbb486d8fc24fefbec928d796 (patch)
tree4b71b0edd9c6b7d46a832747df67d2b6cf936700 /build
parentc6ba57aa15f96e4a147b09bf796b67d0357a096b (diff)
parentde51c2a06ee38af47ef5005821804f4e6f4997f4 (diff)
Merge "Add networking-vpp ML2 support"
Diffstat (limited to 'build')
-rw-r--r--build/opnfv-environment.yaml3
-rwxr-xr-xbuild/overcloud-full.sh2
-rw-r--r--build/patches/puppet-neutron-vpp-ml2.patch244
-rw-r--r--build/rpm_specs/opnfv-apex-common.spec4
4 files changed, 253 insertions, 0 deletions
diff --git a/build/opnfv-environment.yaml b/build/opnfv-environment.yaml
index ff8d501d..8b58b359 100644
--- a/build/opnfv-environment.yaml
+++ b/build/opnfv-environment.yaml
@@ -9,6 +9,7 @@ parameter_defaults:
NeutronEnableForceMetadata: true
NeutronEnableDHCPMetadata: true
NeutronEnableIsolatedMetadata: true
+ #NeutronVPPAgentPhysnets: 'datacentre:GigabitEthernet2/2/0'
#NovaSchedulerDefaultFilters: "RamFilter,ComputeFilter,AvailabilityZoneFilter,ComputeCapabilitiesFilter,ImagePropertiesFilter,NUMATopologyFilter"
# Kernel arguments, this value will be set to kernel arguments specified for compute nodes in deploy setting file.
#ComputeKernelArgs: "intel_iommu=on iommu=pt default_hugepagesz=2MB hugepagesz=2MB hugepages=2048"
@@ -109,6 +110,7 @@ parameter_defaults:
- OS::TripleO::Services::Tacker
- OS::TripleO::Services::NeutronHoneycombAgent
- OS::TripleO::Services::Congress
+ - OS::TripleO::Services::NeutronVppAgent
ComputeServices:
- OS::TripleO::Services::CACerts
- OS::TripleO::Services::CephClient
@@ -133,3 +135,4 @@ parameter_defaults:
- OS::TripleO::Services::FluentdClient
- OS::TripleO::Services::VipHosts
- OS::TripleO::Services::NeutronHoneycombAgent
+ - OS::TripleO::Services::NeutronVppAgent
diff --git a/build/overcloud-full.sh b/build/overcloud-full.sh
index a3033025..59544d7b 100755
--- a/build/overcloud-full.sh
+++ b/build/overcloud-full.sh
@@ -150,6 +150,8 @@ LIBGUESTFS_BACKEND=direct virt-customize \
--upload ${BUILD_ROOT}/patches/puppet-neutron-add-odl-settings.patch:/usr/share/openstack-puppet/modules/neutron/ \
--run-command "cd /usr/share/openstack-puppet/modules/neutron && patch -p1 < puppet-neutron-add-odl-settings.patch" \
--upload ${CACHE_DIR}/$kvmfornfv_kernel_rpm:/root/ \
+ --upload ${BUILD_ROOT}/patches/puppet-neutron-vpp-ml2.patch:/usr/share/openstack-puppet/modules/neutron/ \
+ --run-command "cd /usr/share/openstack-puppet/modules/neutron && patch -p1 < puppet-neutron-vpp-ml2.patch" \
-a overcloud-full_build.qcow2
mv -f overcloud-full_build.qcow2 overcloud-full.qcow2
diff --git a/build/patches/puppet-neutron-vpp-ml2.patch b/build/patches/puppet-neutron-vpp-ml2.patch
new file mode 100644
index 00000000..5e1313f8
--- /dev/null
+++ b/build/patches/puppet-neutron-vpp-ml2.patch
@@ -0,0 +1,244 @@
+From 72afc22fbba73fdb474bd6e5c1c47ab31219a9b9 Mon Sep 17 00:00:00 2001
+From: Feng Pan <fpan@redhat.com>
+Date: Tue, 28 Feb 2017 18:07:53 -0500
+Subject: [PATCH] Add support for networking-vpp ML2 driver
+
+Change-Id: Ib45681b1e414001c42070a32e8f81778b4e9f15f
+---
+ .../provider/neutron_agent_vpp/ini_settings.rb | 15 ++++
+ lib/puppet/type/neutron_agent_vpp.rb | 28 +++++++
+ manifests/agents/ml2/vpp.pp | 91 ++++++++++++++++++++++
+ manifests/deps.pp | 1 +
+ manifests/params.pp | 3 +
+ manifests/plugins/ml2/vpp.pp | 38 +++++++++
+ 6 files changed, 176 insertions(+)
+ create mode 100644 lib/puppet/provider/neutron_agent_vpp/ini_settings.rb
+ create mode 100644 lib/puppet/type/neutron_agent_vpp.rb
+ create mode 100644 manifests/agents/ml2/vpp.pp
+ create mode 100644 manifests/plugins/ml2/vpp.pp
+
+diff --git a/lib/puppet/provider/neutron_agent_vpp/ini_settings.rb b/lib/puppet/provider/neutron_agent_vpp/ini_settings.rb
+new file mode 100644
+index 0000000..d8da7ab
+--- /dev/null
++++ b/lib/puppet/provider/neutron_agent_vpp/ini_settings.rb
+@@ -0,0 +1,15 @@
++Puppet::Type.type(:neutron_agent_vpp).provide(
++ :ini_setting,
++ :parent => Puppet::Type.type(:openstack_config).provider(:ini_setting)
++) do
++
++ def self.file_path
++ '/etc/neutron/plugins/ml2/vpp_agent.ini'
++ end
++
++ # added for backwards compatibility with older versions of inifile
++ def file_path
++ self.class.file_path
++ end
++
++end
+diff --git a/lib/puppet/type/neutron_agent_vpp.rb b/lib/puppet/type/neutron_agent_vpp.rb
+new file mode 100644
+index 0000000..0718db8
+--- /dev/null
++++ b/lib/puppet/type/neutron_agent_vpp.rb
+@@ -0,0 +1,28 @@
++Puppet::Type.newtype(:neutron_agent_vpp) do
++
++ ensurable
++
++ newparam(:name, :namevar => true) do
++ desc 'Section/setting name to manage from vpp agent config.'
++ newvalues(/\S+\/\S+/)
++ end
++
++ newproperty(:value) do
++ desc 'The value of the setting to be defined.'
++ munge do |value|
++ value = value.to_s.strip
++ value.capitalize! if value =~ /^(true|false)$/i
++ value
++ end
++ end
++
++ newparam(:ensure_absent_val) do
++ desc 'A value that is specified as the value property will behave as if ensure => absent was specified'
++ defaultto('<SERVICE DEFAULT>')
++ end
++
++ autorequire(:package) do
++ 'neutron-vpp-agent'
++ end
++
++end
+diff --git a/manifests/agents/ml2/vpp.pp b/manifests/agents/ml2/vpp.pp
+new file mode 100644
+index 0000000..faae279
+--- /dev/null
++++ b/manifests/agents/ml2/vpp.pp
+@@ -0,0 +1,91 @@
++# == Class: neutron::agents::ml2::vpp
++#
++# Configure networking-vpp Neutron agent for ML2 plugin.
++#
++# === Parameters
++#
++# [*package_ensure*]
++# (optional) Package ensure state.
++# Defaults to 'present'.
++#
++# [*enabled*]
++# (required) Whether or not to enable the agent.
++# Defaults to true.
++#
++# [*manage_service*]
++# (optional) Whether to start/stop the service
++# Defaults to true
++#
++# [*physnets*]
++# (optional) Comma-separated list of <physical_network>:<physical_interface>
++# tuples mapping physical network names to agent's node-specific physical
++# network interfaces. Defaults to $::os_service_default.
++#
++# [*etcd_host*]
++# (optional) etcd server host name/ip
++# Defaults to $::os_service_default.
++#
++# [*etcd_port*]
++# (optional) etcd server listening port.
++# Defaults to $::os_service_default.
++#
++# [*etcd_user*]
++# (optional) User name for etcd authentication
++# Defaults to $::os_service_default.
++#
++# [*etcd_pass*]
++# (optional) Password for etcd authentication
++# Defaults to $::os_service_default.
++#
++# [*purge_config*]
++# (optional) Whether to set only the specified config options
++# in the vpp config.
++# Defaults to false.
++#
++class neutron::agents::ml2::vpp (
++ $package_ensure = 'present',
++ $enabled = true,
++ $manage_service = true,
++ $physnets = $::os_service_default,
++ $etcd_host = $::os_service_default,
++ $etcd_port = $::os_service_default,
++ $etcd_user = $::os_service_default,
++ $etcd_pass = $::os_service_default,
++ $purge_config = false,
++) {
++ include ::neutron::deps
++ include ::neutron::params
++
++ resources { 'neutron_agent_vpp':
++ purge => $purge_config,
++ }
++
++ neutron_agent_vpp {
++ 'ml2_vpp/physnets': value => $physnets;
++ 'ml2_vpp/etcd_host': value => $etcd_host;
++ 'ml2_vpp/etcd_port': value => $etcd_port;
++ 'ml2_vpp/etcd_user': value => $etcd_user;
++ 'ml2_vpp/etcd_pass': value => $etcd_pass;
++ }
++
++ package { 'neutron-vpp-agent':
++ ensure => $package_ensure,
++ name => $::neutron::params::vpp_plugin_package,
++ tag => ['openstack', 'neutron-package'],
++ }
++
++ if $manage_service {
++ if $enabled {
++ $service_ensure = 'running'
++ } else {
++ $service_ensure = 'stopped'
++ }
++ }
++
++ service { 'neutron-vpp-agent-service':
++ ensure => $service_ensure,
++ name => $::neutron::params::vpp_agent_service,
++ enable => $enabled,
++ tag => ['neutron-service'],
++ }
++}
+diff --git a/manifests/deps.pp b/manifests/deps.pp
+index 94b6f78..835e906 100644
+--- a/manifests/deps.pp
++++ b/manifests/deps.pp
+@@ -35,6 +35,7 @@ class neutron::deps {
+ # All other inifile providers need to be processed in the config block
+ Anchor['neutron::config::begin'] -> Neutron_agent_linuxbridge<||> ~> Anchor['neutron::config::end']
+ Anchor['neutron::config::begin'] -> Neutron_agent_ovs<||> ~> Anchor['neutron::config::end']
++ Anchor['neutron::config::begin'] -> Neutron_agent_vpp<||> ~> Anchor['neutron::config::end']
+ Anchor['neutron::config::begin'] -> Neutron_api_config<||> ~> Anchor['neutron::config::end']
+ Anchor['neutron::config::begin'] -> Neutron_api_paste_ini<||> ~> Anchor['neutron::config::end']
+ Anchor['neutron::config::begin'] -> Neutron_config<||> ~> Anchor['neutron::config::end']
+diff --git a/manifests/params.pp b/manifests/params.pp
+index 05ef627..02b9be1 100644
+--- a/manifests/params.pp
++++ b/manifests/params.pp
+@@ -86,6 +86,9 @@ class neutron::params {
+
+ $kernel_headers = "linux-headers-${::kernelrelease}"
+
++ $vpp_plugin_package = 'python-networking-vpp'
++ $vpp_agent_service = 'neutron-vpp-agent'
++
+ } elsif($::osfamily == 'Debian') {
+
+ $nobody_user_group = 'nogroup'
+diff --git a/manifests/plugins/ml2/vpp.pp b/manifests/plugins/ml2/vpp.pp
+new file mode 100644
+index 0000000..837a614
+--- /dev/null
++++ b/manifests/plugins/ml2/vpp.pp
+@@ -0,0 +1,38 @@
++#
++# Install the networking-vpp ML2 mechanism driver and generate config file
++# from parameters in the other classes.
++#
++# === Parameters
++#
++# [*etcd_host*]
++# (optional) etcd server host name or IP.
++# Defaults to $::os_service_default
++#
++# [*etcd_port*]
++# (optional) etcd server listening port.
++# Defaults to $::os_service_default.
++#
++# [*etcd_user*]
++# (optional) User name for etcd authentication
++# Defaults to $::os_service_default.
++#
++# [*etcd_pass*]
++# (optional) Password for etcd authentication
++# Defaults to $::os_service_default.
++#
++class neutron::plugins::ml2::vpp (
++ $etcd_host = $::os_service_default,
++ $etcd_port = $::os_service_default,
++ $etcd_user = $::os_service_default,
++ $etcd_pass = $::os_service_default,
++) {
++ include ::neutron::deps
++ require ::neutron::plugins::ml2
++
++ neutron_plugin_ml2 {
++ 'ml2_vpp/etcd_host': value => $etcd_host;
++ 'ml2_vpp/etcd_port': value => $etcd_port;
++ 'ml2_vpp/etcd_user': value => $etcd_user;
++ 'ml2_vpp/etcd_pass': value => $etcd_pass;
++ }
++}
+--
+2.9.3
+
diff --git a/build/rpm_specs/opnfv-apex-common.spec b/build/rpm_specs/opnfv-apex-common.spec
index 4cea7d20..6a03be04 100644
--- a/build/rpm_specs/opnfv-apex-common.spec
+++ b/build/rpm_specs/opnfv-apex-common.spec
@@ -39,6 +39,7 @@ install build/bash_completion_apex %{buildroot}%{_sysconfdir}/bash_completion.d/
mkdir -p %{buildroot}%{_sysconfdir}/opnfv-apex/
install config/deploy/os-nosdn-nofeature-noha.yaml %{buildroot}%{_sysconfdir}/opnfv-apex/os-nosdn-nofeature-noha.yaml
install config/deploy/os-nosdn-fdio-noha.yaml %{buildroot}%{_sysconfdir}/opnfv-apex/os-nosdn-fdio-noha.yaml
+install config/deploy/os-nosdn-fdio-ha.yaml %{buildroot}%{_sysconfdir}/opnfv-apex/os-nosdn-fdio-ha.yaml
install config/deploy/os-nosdn-ovs-noha.yaml %{buildroot}%{_sysconfdir}/opnfv-apex/os-nosdn-ovs-noha.yaml
install config/deploy/os-nosdn-nofeature-ha.yaml %{buildroot}%{_sysconfdir}/opnfv-apex/os-nosdn-nofeature-ha.yaml
install config/deploy/os-nosdn-performance-ha.yaml %{buildroot}%{_sysconfdir}/opnfv-apex/os-nosdn-performance-ha.yaml
@@ -121,6 +122,7 @@ install config/inventory/pod_example_settings.yaml %{buildroot}%{_docdir}/opnfv/
%{_sysconfdir}/bash_completion.d/apex
%{_sysconfdir}/opnfv-apex/os-nosdn-nofeature-noha.yaml
%{_sysconfdir}/opnfv-apex/os-nosdn-fdio-noha.yaml
+%{_sysconfdir}/opnfv-apex/os-nosdn-fdio-ha.yaml
%{_sysconfdir}/opnfv-apex/os-nosdn-ovs-noha.yaml
%{_sysconfdir}/opnfv-apex/os-nosdn-nofeature-ha.yaml
%{_sysconfdir}/opnfv-apex/os-nosdn-performance-ha.yaml
@@ -155,6 +157,8 @@ install config/inventory/pod_example_settings.yaml %{buildroot}%{_docdir}/opnfv/
%doc %{_docdir}/opnfv/inventory.yaml.example
%changelog
+* Mon Mar 12 2017 Feng Pan <fpan@redhat.com> - 4.0-7
+- Add os-nosdn-fdio-ha.yaml
* Fri Mar 10 2017 Feng Pan <fpan@redhat.com> - 4.0-6
- Add os-odl_l3-fdio-noha.yaml and os-odl_l3-fdio-ha.yaml
* Wed Mar 08 2017 Dan Radez <dradez@redhat.com> - 4.0-5