aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJanki Chhatbar <jchhatba@redhat.com>2017-10-23 10:58:03 +0530
committerJanki Chhatbar <jchhatba@redhat.com>2017-11-09 08:00:14 +0000
commitc95a8a5d1006571f1b6a1e43ac2400fa81237216 (patch)
tree58ed6c76d267c80737189715f7eef9cf5b7c9c43
parent697ffad70d35ffeab939819a5b06d3ee0c1b1d67 (diff)
Env files for ODL deployments
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)
-rw-r--r--environments/neutron-opendaylight-dpdk.yaml12
-rw-r--r--environments/neutron-opendaylight-sriov.yaml9
-rw-r--r--environments/services-docker/neutron-opendaylight-dpdk.yaml37
-rw-r--r--environments/services-docker/neutron-opendaylight-sriov.yaml22
4 files changed, 60 insertions, 20 deletions
diff --git a/environments/neutron-opendaylight-dpdk.yaml b/environments/neutron-opendaylight-dpdk.yaml
index 0d59898..749b215 100644
--- a/environments/neutron-opendaylight-dpdk.yaml
+++ b/environments/neutron-opendaylight-dpdk.yaml
@@ -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'
diff --git a/environments/neutron-opendaylight-sriov.yaml b/environments/neutron-opendaylight-sriov.yaml
index 3a212ed..5292407 100644
--- a/environments/neutron-opendaylight-sriov.yaml
+++ b/environments/neutron-opendaylight-sriov.yaml
@@ -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
index 0000000..dffafa9
--- /dev/null
+++ b/environments/services-docker/neutron-opendaylight-dpdk.yaml
@@ -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
index 0000000..92bce16
--- /dev/null
+++ b/environments/services-docker/neutron-opendaylight-sriov.yaml
@@ -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