diff --git a/docker/services/neutron-sfc-api.yaml b/docker/services/neutron-sfc-api.yaml new file mode 100644 index 0000000000..976c10dce0 --- /dev/null +++ b/docker/services/neutron-sfc-api.yaml @@ -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: {} diff --git a/environments/neutron-bgpvpn-opendaylight.yaml b/environments/neutron-bgpvpn-opendaylight.yaml deleted file mode 100644 index dc1fce038a..0000000000 --- a/environments/neutron-bgpvpn-opendaylight.yaml +++ /dev/null @@ -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' diff --git a/environments/neutron-l2gw-opendaylight.yaml b/environments/neutron-l2gw-opendaylight.yaml deleted file mode 100644 index 5798ef6d84..0000000000 --- a/environments/neutron-l2gw-opendaylight.yaml +++ /dev/null @@ -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 diff --git a/environments/neutron-opendaylight-dpdk.yaml b/environments/neutron-opendaylight-dpdk.yaml deleted file mode 100644 index 749b215073..0000000000 --- a/environments/neutron-opendaylight-dpdk.yaml +++ /dev/null @@ -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: - # ",", 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. diff --git a/environments/neutron-opendaylight-hw-offload.yaml b/environments/neutron-opendaylight-hw-offload.yaml deleted file mode 100644 index 45abc2ffc7..0000000000 --- a/environments/neutron-opendaylight-hw-offload.yaml +++ /dev/null @@ -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 diff --git a/environments/neutron-opendaylight-sriov.yaml b/environments/neutron-opendaylight-sriov.yaml deleted file mode 100644 index a6eb14a980..0000000000 --- a/environments/neutron-opendaylight-sriov.yaml +++ /dev/null @@ -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" diff --git a/environments/neutron-opendaylight.yaml b/environments/neutron-opendaylight.yaml deleted file mode 100644 index f588e51a1c..0000000000 --- a/environments/neutron-opendaylight.yaml +++ /dev/null @@ -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' diff --git a/environments/neutron-sfc-opendaylight.yaml b/environments/neutron-sfc-opendaylight.yaml deleted file mode 100644 index 9839cc40f3..0000000000 --- a/environments/neutron-sfc-opendaylight.yaml +++ /dev/null @@ -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' diff --git a/environments/services/neutron-opendaylight-sriov.yaml b/environments/services/neutron-opendaylight-sriov.yaml index 92bce16bc2..996fcfcbe2 100644 --- a/environments/services/neutron-opendaylight-sriov.yaml +++ b/environments/services/neutron-opendaylight-sriov.yaml @@ -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" \ No newline at end of file + # physical_network: "datacentre" diff --git a/environments/services/neutron-sfc-opendaylight.yaml b/environments/services/neutron-sfc-opendaylight.yaml new file mode 100644 index 0000000000..b2f0073922 --- /dev/null +++ b/environments/services/neutron-sfc-opendaylight.yaml @@ -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' diff --git a/releasenotes/notes/add-docker-sfc-bda84d08b119a250.yaml b/releasenotes/notes/add-docker-sfc-bda84d08b119a250.yaml new file mode 100644 index 0000000000..1af5931ab7 --- /dev/null +++ b/releasenotes/notes/add-docker-sfc-bda84d08b119a250.yaml @@ -0,0 +1,4 @@ +--- +features: + - | + Adds docker service for Neutron SFC.