Adds docker SFC and cleans up ODL envs

There are now duplicate places where environment files for deployments
are kept.  Those include environments/ and environments/services.  The
files in environments/ are incorrect and should be removed to leave only
a single place (environments/services) to store docker services.
environments/services-baremetal house the legacy bm services.

This patch also adds a missing docker service for SFC so that we can
also include an ODL SFC docker env file.

Change-Id: If70818db9577b7d80c4acd0d0577d9432b5c8bef
Signed-off-by: Tim Rozet <trozet@redhat.com>
This commit is contained in:
Tim Rozet 2018-05-25 16:14:51 -04:00
parent 76c8fe9d0a
commit baec8bba6f
11 changed files with 84 additions and 160 deletions

View File

@ -0,0 +1,68 @@
heat_template_version: rocky
description: >
SFC API service configured with Puppet
parameters:
ServiceData:
default: {}
description: Dictionary packing service data
type: json
ServiceNetMap:
default: {}
description: Mapping of service_name -> network name. Typically set
via parameter_defaults in the resource registry. This
mapping overrides those in ServiceNetMapDefaults.
type: json
DefaultPasswords:
default: {}
type: json
RoleName:
default: ''
description: Role name on which the service is applied
type: string
RoleParameters:
default: {}
description: Parameters specific to the role
type: json
EndpointMap:
default: {}
description: Mapping of service endpoint -> protocol. Typically set
via parameter_defaults in the resource registry.
type: json
DockerNeutronConfigImage:
description: The container image to use for the neutron config_volume
type: string
resources:
ContainersCommon:
type: ./containers-common.yaml
NeutronSfcBase:
type: ../../puppet/services/neutron-sfc-api.yaml
properties:
EndpointMap: {get_param: EndpointMap}
ServiceData: {get_param: ServiceData}
ServiceNetMap: {get_param: ServiceNetMap}
DefaultPasswords: {get_param: DefaultPasswords}
RoleName: {get_param: RoleName}
RoleParameters: {get_param: RoleParameters}
outputs:
role_data:
description: Role data for the SFC role.
value:
service_name:
get_attr: [NeutronSfcBase, role_data, service_name]
config_settings:
get_attr: [NeutronSfcBase, role_data, config_settings]
# BEGIN DOCKER SETTING
puppet_config:
config_volume: 'neutron'
puppet_tags: neutron_sfc_service_config
step_config:
get_attr: [NeutronSfcBase, role_data, step_config]
config_image: {get_param: DockerNeutronConfigImage}
kolla_config: {}
docker_config: {}

View File

@ -1,12 +0,0 @@
# A Heat environment file that can be used to deploy Neutron BGPVPN service
#
# This environment file deploys Neutron BGPVPN service and configures
# Opendaylight as its service provider.
#
# - OpenDaylight: BGPVPN:OpenDaylight:networking_odl.bgpvpn.odl_v2.OpenDaylightBgpvpnDriver:default
resource_registry:
OS::TripleO::Services::NeutronBgpVpnApi: ../docker/services/neutron-bgpvpn-api.yaml
parameter_defaults:
NeutronServicePlugins: 'odl-router_v2,trunk,bgpvpn'
BgpvpnServiceProvider: 'BGPVPN:OpenDaylight:networking_odl.bgpvpn.odl_v2.OpenDaylightBgpvpnDriver:default'

View File

@ -1,18 +0,0 @@
# A Heat environment file that can be used to deploy Neutron L2 Gateway service
#
# Currently there are only two service provider for Neutron L2 Gateway
# This file enables L2GW service with OpenDaylight as driver.
#
# - OpenDaylight: L2GW:OpenDaylight:networking_odl.l2gateway.driver_v2.OpenDaylightL2gwDriver:default
resource_registry:
OS::TripleO::Services::NeutronL2gwApi: ../docker/services/neutron-l2gw-api.yaml
parameter_defaults:
NeutronServicePlugins: "odl-router_v2,trunk,l2gw"
L2gwServiceProvider: ['L2GW:OpenDaylight:networking_odl.l2gateway.driver_v2.OpenDaylightL2gwDriver:default']
# Optional
# L2gwServiceDefaultInterfaceName: "FortyGigE1/0/1"
# L2gwServiceDefaultDeviceName: "Switch1"
# L2gwServiceQuotaL2Gateway: 10
# L2gwServicePeriodicMonitoringInterval: 5

View File

@ -1,37 +0,0 @@
# 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.

View File

@ -1,32 +0,0 @@
# 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: OS::Heat::None
OS::TripleO::Services::NeutronCorePlugin: ../puppet/services/neutron-plugin-ml2-odl.yaml
OS::TripleO::Services::OpenDaylightApi: ../docker/services/opendaylight-api.yaml
# FIXME(bogdando): switch it, once it is containerized
OS::TripleO::Services::OpenDaylightOvs: ../puppet/services/opendaylight-ovs.yaml
OS::TripleO::Services::NeutronSriovHostConfig: ../puppet/services/neutron-sriov-host-config.yaml
OS::TripleO::Services::NeutronL3Agent: OS::Heat::None
parameter_defaults:
NeutronEnableForceMetadata: true
NeutronPluginExtensions: 'port_security'
NeutronMechanismDrivers: ['opendaylight_v2']
NeutronServicePlugins: 'odl-router_v2,trunk'
NovaSchedulerDefaultFilters: ['RetryFilter','AvailabilityZoneFilter','RamFilter','ComputeFilter','ComputeCapabilitiesFilter','ImagePropertiesFilter','ServerGroupAntiAffinityFilter','ServerGroupAffinityFilter','PciPassthroughFilter']
NovaSchedulerAvailableFilters: ["nova.scheduler.filters.all_filters","nova.scheduler.filters.pci_passthrough_filter.PciPassthroughFilter"]
# Kernel arguments for ComputeSriov node
ComputeSriovParameters:
KernelArgs: "intel_iommu=on iommu=pt"
OvsHwOffload: True
# Number of VFs that needs to be configured for a physical interface
#NeutronSriovNumVFs: ["ens3f0:4:switchdev"]
# Mapping of SR-IOV PF interface to neutron physical_network.
# In case of Vxlan/GRE physical_network should be null.
# In case of flat/vlan the physical_network should as configured in neutron.
#NovaPCIPassthrough:
# - devname: "ens3f0"
# physical_network: null

View File

@ -1,23 +0,0 @@
# A Heat environment that can be used to deploy OpenDaylight with SRIOV
resource_registry:
# FIXME(bogdando): can not be switched yet due to puppet-base issues
# see https://review.openstack.org/#/c/563443
OS::TripleO::Services::ComputeNeutronCorePlugin: ../puppet/services/neutron-plugin-ml2.yaml
OS::TripleO::Services::NeutronSriovAgent: ../docker/services/neutron-sriov-agent.yaml
OS::TripleO::Services::NeutronSriovHostConfig: ../puppet/services/neutron-sriov-host-config.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"

View File

@ -1,17 +0,0 @@
# A Heat environment that can be used to deploy OpenDaylight with L3 DVR
resource_registry:
OS::TripleO::Services::NeutronOvsAgent: OS::Heat::None
OS::TripleO::Services::ComputeNeutronOvsAgent: OS::Heat::None
OS::TripleO::Services::ComputeNeutronCorePlugin: OS::Heat::None
# FIXME(bogdando): switch it, once it is containerized
OS::TripleO::Services::NeutronCorePlugin: ../puppet/services/neutron-plugin-ml2-odl.yaml
OS::TripleO::Services::OpenDaylightApi: ../docker/services/opendaylight-api.yaml
# FIXME(bogdando): switch it, once it is containerized
OS::TripleO::Services::OpenDaylightOvs: ../puppet/services/opendaylight-ovs.yaml
OS::TripleO::Services::NeutronL3Agent: OS::Heat::None
parameter_defaults:
NeutronEnableForceMetadata: true
NeutronMechanismDrivers: 'opendaylight_v2'
NeutronServicePlugins: 'odl-router_v2,trunk'
NeutronPluginExtensions: 'port_security'

View File

@ -1,20 +0,0 @@
# A Heat environment file that can be used to deploy Neutron SFC service with OpenDaylight
resource_registry:
# FIXME(bogdando): switch it, once it is containerized
OS::TripleO::Services::NeutronSfcApi: ../puppet/services/neutron-sfc-api.yaml
OS::TripleO::Services::NeutronOvsAgent: OS::Heat::None
OS::TripleO::Services::ComputeNeutronOvsAgent: OS::Heat::None
OS::TripleO::Services::ComputeNeutronCorePlugin: OS::Heat::None
OS::TripleO::Services::NeutronCorePlugin: ../puppet/services/neutron-plugin-ml2-odl.yaml
OS::TripleO::Services::OpenDaylightApi: ../docker/services/opendaylight-api.yaml
# FIXME(bogdando): switch it, once it is containerized
OS::TripleO::Services::OpenDaylightOvs: ../puppet/services/opendaylight-ovs.yaml
OS::TripleO::Services::NeutronL3Agent: OS::Heat::None
parameter_defaults:
NeutronEnableForceMetadata: true
NeutronMechanismDrivers: 'opendaylight_v2'
NeutronServicePlugins: 'odl-router_v2,trunk,flow_classifier,sfc'
OpenDaylightFeatures: ["odl-netvirt-sfc","odl-jolokia"]
NeutronSfcDriver: 'odl_v2'
NeutronFcDriver: 'odl_v2'

View File

@ -4,6 +4,7 @@
resource_registry:
OS::TripleO::Services::ComputeNeutronCorePlugin: ../../docker/services/neutron-plugin-ml2.yaml
OS::TripleO::Services::NeutronSriovAgent: ../../docker/services/neutron-sriov-agent.yaml
OS::TripleO::Services::NeutronSriovHostConfig: ../puppet/services/neutron-sriov-host-config.yaml
parameter_defaults:
NeutronMechanismDrivers: ['sriovnicswitch','opendaylight_v2']
@ -19,4 +20,4 @@ parameter_defaults:
#NovaPCIPassthrough:
# - devname: "ens20f2"
# physical_network: "datacentre"
# physical_network: "datacentre"

View File

@ -0,0 +1,10 @@
# A Heat environment file that can be used to deploy Neutron SFC service with OpenDaylight
resource_registry:
# FIXME(bogdando): switch it, once it is containerized
OS::TripleO::Services::NeutronSfcApi: ../../docker/services/neutron-bgpvpn-api.yaml
parameter_defaults:
NeutronServicePlugins: 'odl-router_v2,trunk,flow_classifier,sfc'
OpenDaylightFeatures: ["odl-netvirt-sfc","odl-jolokia"]
NeutronSfcDriver: 'odl_v2'
NeutronFcDriver: 'odl_v2'

View File

@ -0,0 +1,4 @@
---
features:
- |
Adds docker service for Neutron SFC.