Env files for ODL deployments
authorJanki Chhatbar <jchhatba@redhat.com>
Mon, 23 Oct 2017 05:28:03 +0000 (10:58 +0530)
committerJanki Chhatbar <jchhatba@redhat.com>
Thu, 9 Nov 2017 08:00:14 +0000 (08:00 +0000)
This patch adds env files for SRIOV, OVS-DPDK, L2GW, BGPVPN
and SFC deployments with ODL.

These files contain configs not present in basic ODL deployment
env file. While deploying, these need to be used along the basic
deployment env file like

openstack overcloud deploy \
 -e environments/services-docker/neutron-opendaylight.yaml \
 -e environments/services-docker/neutron-opendaylight-dpdk.yaml

and

openstack overcloud deploy \
 -e environments/services-docker/neutron-opendaylight.yaml \
 -e environments/services-docker/neutron-opendaylight-sriov.yaml

and so forth for all other deployments.

Closes-Bug: 1722881

Change-Id: I2b70d3f4518e0c014cf37f7fecd92f69989f0860
(cherry picked from commit e0c89d6593dadd9bf6ba9fa6f618e7c44ec7aa2e)

environments/neutron-opendaylight-dpdk.yaml
environments/neutron-opendaylight-sriov.yaml
environments/services-docker/neutron-opendaylight-dpdk.yaml [new file with mode: 0644]
environments/services-docker/neutron-opendaylight-sriov.yaml [new file with mode: 0644]

index 0d59898..749b215 100644 (file)
@@ -1,17 +1,7 @@
 # A Heat environment that can be used to deploy OpenDaylight with L3 DVR and DPDK
-resource_registry:
-  OS::TripleO::Services::NeutronOvsAgent: OS::Heat::None
-  OS::TripleO::Services::ComputeNeutronOvsAgent: OS::Heat::None
-  OS::TripleO::Services::ComputeNeutronCorePlugin: OS::Heat::None
-  OS::TripleO::Services::OpenDaylightApi: ../puppet/services/opendaylight-api.yaml
-  OS::TripleO::Services::OpenDaylightOvs: ../puppet/services/opendaylight-ovs.yaml
-  OS::TripleO::Services::NeutronL3Agent: OS::Heat::None
+# This file is to be used with neutron-opendaylight.yaml
 
 parameter_defaults:
-  NeutronEnableForceMetadata: true
-  NeutronPluginExtensions: 'port_security'
-  NeutronMechanismDrivers: 'opendaylight_v2'
-  NeutronServicePlugins: 'odl-router_v2,trunk'
   NovaSchedulerDefaultFilters: "RamFilter,ComputeFilter,AvailabilityZoneFilter,ComputeCapabilitiesFilter,ImagePropertiesFilter,NUMATopologyFilter"
   OpenDaylightSNATMechanism: 'controller'
 
index 3a212ed..5292407 100644 (file)
@@ -1,19 +1,10 @@
 # A Heat environment that can be used to deploy OpenDaylight with SRIOV
 resource_registry:
-  OS::TripleO::Services::NeutronOvsAgent: OS::Heat::None
-  OS::TripleO::Services::ComputeNeutronOvsAgent: OS::Heat::None
   OS::TripleO::Services::ComputeNeutronCorePlugin: ../puppet/services/neutron-plugin-ml2.yaml
-  OS::TripleO::Services::NeutronCorePlugin: ../puppet/services/neutron-plugin-ml2-odl.yaml
-  OS::TripleO::Services::OpenDaylightApi: ../puppet/services/opendaylight-api.yaml
-  OS::TripleO::Services::OpenDaylightOvs: ../puppet/services/opendaylight-ovs.yaml
   OS::TripleO::Services::NeutronSriovAgent: ../puppet/services/neutron-sriov-agent.yaml
-  OS::TripleO::Services::NeutronL3Agent: OS::Heat::None
 
 parameter_defaults:
-  NeutronEnableForceMetadata: true
-  NeutronPluginExtensions: 'port_security'
   NeutronMechanismDrivers: ['sriovnicswitch','opendaylight_v2']
-  NeutronServicePlugins: 'odl-router_v2,trunk'
 
   # Add PciPassthroughFilter to the scheduler default filters
   #NovaSchedulerDefaultFilters: ['RetryFilter','AvailabilityZoneFilter','RamFilter','ComputeFilter','ComputeCapabilitiesFilter','ImagePropertiesFilter','ServerGroupAntiAffinityFilter','ServerGroupAffinityFilter','PciPassthroughFilter']
diff --git a/environments/services-docker/neutron-opendaylight-dpdk.yaml b/environments/services-docker/neutron-opendaylight-dpdk.yaml
new file mode 100644 (file)
index 0000000..dffafa9
--- /dev/null
@@ -0,0 +1,37 @@
+# A Heat environment that can be used to deploy OpenDaylight with L3 DVR and DPDK.
+# This file is to be used with neutron-opendaylight.yaml
+
+parameter_defaults:
+  NovaSchedulerDefaultFilters: "RamFilter,ComputeFilter,AvailabilityZoneFilter,ComputeCapabilitiesFilter,ImagePropertiesFilter,NUMATopologyFilter"
+  OpenDaylightSNATMechanism: 'controller'
+
+  ComputeOvsDpdkParameters:
+    OvsEnableDpdk: True
+
+    ## Host configuration Parameters
+    #TunedProfileName: "cpu-partitioning"
+    #IsolCpusList: ""               # Logical CPUs list to be isolated from the host process (applied via cpu-partitioning tuned).
+                                    # It is mandatory to provide isolated cpus for tuned to achive optimal performance.
+                                    # Example: "3-8,12-15,18"
+    #KernelArgs: ""                 # Space separated kernel args to configure hugepage and IOMMU.
+                                    # Deploying DPDK requires enabling hugepages for the overcloud compute nodes.
+                                    # It also requires enabling IOMMU when using the VFIO (vfio-pci) OvsDpdkDriverType.
+                                    # This should be done by configuring parameters via host-config-and-reboot.yaml environment file.
+
+    ## Attempting to deploy DPDK without appropriate values for the below parameters may lead to unstable deployments
+    ## due to CPU contention of DPDK PMD threads.
+    ## It is highly recommended to to enable isolcpus (via KernelArgs) on compute overcloud nodes and set the following parameters:
+    #OvsDpdkSocketMemory: ""       # Sets the amount of hugepage memory to assign per NUMA node.
+                                   # It is recommended to use the socket closest to the PCIe slot used for the
+                                   # desired DPDK NIC.  Format should be comma separated per socket string such as:
+                                   # "<socket 0 mem MB>,<socket 1 mem MB>", for example: "1024,0".
+    #OvsDpdkDriverType: "vfio-pci" # Ensure the Overcloud NIC to be used for DPDK supports this UIO/PMD driver.
+    #OvsPmdCoreList: ""            # List or range of CPU cores for PMD threads to be pinned to.  Note, NIC
+                                   # location to cores on socket, number of hyper-threaded logical cores, and
+                                   # desired number of PMD threads can all play a role in configuring this setting.
+                                   # These cores should be on the same socket where OvsDpdkSocketMemory is assigned.
+                                   # If using hyperthreading then specify both logical cores that would equal the
+                                   # physical core.  Also, specifying more than one core will trigger multiple PMD
+                                   # threads to be spawned, which may improve dataplane performance.
+    #NovaVcpuPinSet: ""            # Cores to pin Nova instances to.  For maximum performance, select cores
+                                   # on the same NUMA node(s) selected for previous settings.
\ No newline at end of file
diff --git a/environments/services-docker/neutron-opendaylight-sriov.yaml b/environments/services-docker/neutron-opendaylight-sriov.yaml
new file mode 100644 (file)
index 0000000..92bce16
--- /dev/null
@@ -0,0 +1,22 @@
+# A Heat environment that can be used to deploy OpenDaylight with SRIOV
+# This file is to be used with neutron-opendaylight.yaml
+
+resource_registry:
+  OS::TripleO::Services::ComputeNeutronCorePlugin: ../../docker/services/neutron-plugin-ml2.yaml
+  OS::TripleO::Services::NeutronSriovAgent: ../../docker/services/neutron-sriov-agent.yaml
+
+parameter_defaults:
+  NeutronMechanismDrivers: ['sriovnicswitch','opendaylight_v2']
+
+  # Add PciPassthroughFilter to the scheduler default filters
+  #NovaSchedulerDefaultFilters: ['RetryFilter','AvailabilityZoneFilter','RamFilter','ComputeFilter','ComputeCapabilitiesFilter','ImagePropertiesFilter','ServerGroupAntiAffinityFilter','ServerGroupAffinityFilter','PciPassthroughFilter']
+  #NovaSchedulerAvailableFilters: ["nova.scheduler.filters.all_filters","nova.scheduler.filters.pci_passthrough_filter.PciPassthroughFilter"]
+
+  #NeutronPhysicalDevMappings: "datacentre:ens20f2"
+
+  # Number of VFs that needs to be configured for a physical interface
+  #NeutronSriovNumVFs: "ens20f2:5"
+
+  #NovaPCIPassthrough:
+  #  - devname: "ens20f2"
+  #    physical_network: "datacentre"
\ No newline at end of file