diff --git a/capabilities-map.yaml b/capabilities-map.yaml index 3eb525fa8b..e7eb0a4d0d 100644 --- a/capabilities-map.yaml +++ b/capabilities-map.yaml @@ -211,6 +211,11 @@ topics: description: > Enable various Neutron plugins and backends environments: + - file: environments/neutron-sfc.yaml + title: Neutron SFC Service Plugin + description: Enables Neutron SFC Service Plugin + requires: + - overcloud-resource-registry-puppet.yaml - file: environments/neutron-bgpvpn.yaml title: Neutron BGPVPN Service Plugin description: Enables Neutron BGPVPN Service Plugin diff --git a/environments/neutron-sfc-opendaylight.yaml b/environments/neutron-sfc-opendaylight.yaml new file mode 100644 index 0000000000..bfdd19312f --- /dev/null +++ b/environments/neutron-sfc-opendaylight.yaml @@ -0,0 +1,18 @@ +# A Heat environment file that can be used to deploy Neutron SFC service with OpenDaylight +resource_registry: + 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: ../puppet/services/opendaylight-api.yaml + 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/neutron-sfc.yaml b/environments/neutron-sfc.yaml new file mode 100644 index 0000000000..2240f53fb4 --- /dev/null +++ b/environments/neutron-sfc.yaml @@ -0,0 +1,6 @@ +# A Heat environment file that can be used to deploy Neutron SFC service +resource_registry: + OS::TripleO::Services::NeutronSfcApi: ../puppet/services/neutron-sfc-api.yaml + +parameter_defaults: + NeutronServicePlugins: 'flow_classifier,sfc' diff --git a/overcloud-resource-registry-puppet.j2.yaml b/overcloud-resource-registry-puppet.j2.yaml index c7cd96762b..f905fe61e2 100644 --- a/overcloud-resource-registry-puppet.j2.yaml +++ b/overcloud-resource-registry-puppet.j2.yaml @@ -139,6 +139,7 @@ resource_registry: OS::TripleO::Services::MySQL: puppet/services/database/mysql.yaml OS::TripleO::Services::NeutronBgpVpnApi: OS::Heat::None OS::TripleO::Services::NeutronBgpVpnBagpipe: OS::Heat::None + OS::TripleO::Services::NeutronSfcApi: OS::Heat::None OS::TripleO::Services::NeutronDhcpAgent: puppet/services/neutron-dhcp.yaml OS::TripleO::Services::NeutronL2gwApi: OS::Heat::None OS::TripleO::Services::NeutronL3Agent: puppet/services/neutron-l3.yaml diff --git a/puppet/services/neutron-sfc-api.yaml b/puppet/services/neutron-sfc-api.yaml new file mode 100644 index 0000000000..d190ee158b --- /dev/null +++ b/puppet/services/neutron-sfc-api.yaml @@ -0,0 +1,51 @@ +heat_template_version: pike + +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 + NeutronSfcDriver: + default: 'dummy' + description: Default driver for Service Function Chaining + type: string + NeutronFcDriver: + default: 'dummy' + description: Default driver for Flow Classifier + type: string + +outputs: + role_data: + description: Role data for the SFC role. + value: + service_name: neutron_sfc_api + config_settings: + neutron::services::sfc::sfc_driver: {get_param: NeutronSfcDriver} + neutron::services::sfc::fc_driver: {get_param: NeutronFcDriver} + step_config: | + include ::tripleo::profile::base::neutron::sfc diff --git a/releasenotes/notes/add-networking-sfc-72cd16bb34075150.yaml b/releasenotes/notes/add-networking-sfc-72cd16bb34075150.yaml new file mode 100644 index 0000000000..84676cdae0 --- /dev/null +++ b/releasenotes/notes/add-networking-sfc-72cd16bb34075150.yaml @@ -0,0 +1,4 @@ +--- +features: + - Add support for deploying Service Function + Chaining api service with neutron networking-sfc. diff --git a/roles/Controller.yaml b/roles/Controller.yaml index 818f77625f..0251fd1a2f 100644 --- a/roles/Controller.yaml +++ b/roles/Controller.yaml @@ -96,6 +96,7 @@ - OS::TripleO::Services::MySQLClient - OS::TripleO::Services::NeutronApi - OS::TripleO::Services::NeutronBgpVpnApi + - OS::TripleO::Services::NeutronSfcApi - OS::TripleO::Services::NeutronCorePlugin - OS::TripleO::Services::NeutronDhcpAgent - OS::TripleO::Services::NeutronL2gwAgent diff --git a/roles/ControllerOpenstack.yaml b/roles/ControllerOpenstack.yaml index c48405af24..bbdb9bc089 100644 --- a/roles/ControllerOpenstack.yaml +++ b/roles/ControllerOpenstack.yaml @@ -78,6 +78,7 @@ - OS::TripleO::Services::MySQLClient - OS::TripleO::Services::NeutronApi - OS::TripleO::Services::NeutronBgpVpnApi + - OS::TripleO::Services::NeutronSfcApi - OS::TripleO::Services::NeutronCorePlugin - OS::TripleO::Services::NeutronL2gwApi - OS::TripleO::Services::NovaApi diff --git a/roles_data.yaml b/roles_data.yaml index 8b17e428b1..5359d66d02 100644 --- a/roles_data.yaml +++ b/roles_data.yaml @@ -99,6 +99,7 @@ - OS::TripleO::Services::MySQLClient - OS::TripleO::Services::NeutronApi - OS::TripleO::Services::NeutronBgpVpnApi + - OS::TripleO::Services::NeutronSfcApi - OS::TripleO::Services::NeutronCorePlugin - OS::TripleO::Services::NeutronDhcpAgent - OS::TripleO::Services::NeutronL2gwAgent