From a18a94e498baac9bba70ea95462f7f5a79fbc2c3 Mon Sep 17 00:00:00 2001 From: Ricardo Noriega Date: Fri, 7 Apr 2017 17:14:39 +0200 Subject: [PATCH] Add Bagpipe driver composable service The BaGPipe driver for the BGPVPN service plugin is designed to work jointly with the openvswitch ML2 mechanism driver. Change-Id: I17ed258231e7efdd1ca8e0697d074b11961ed0ae Depends-On: I1e0227d8055f456043fe63c6a9cbd722d7bf84a7 Partially-Implements: blueprint bgpvpn-service-integration Signed-off-by: Ricardo Noriega --- capabilities-map.yaml | 6 ++ environments/hyperconverged-ceph.yaml | 1 + environments/neutron-bgpvpn-bagpipe.yaml | 23 ++++++ overcloud-resource-registry-puppet.j2.yaml | 1 + puppet/services/neutron-bgpvpn-bagpipe.yaml | 71 +++++++++++++++++++ .../add-bgpvpn-support-f60c5a9cee0bb393.yaml | 1 + roles/Compute.yaml | 1 + roles/ComputeHCI.yaml | 1 + roles/ComputeOvsDpdk.yaml | 1 + roles_data.yaml | 1 + 10 files changed, 107 insertions(+) create mode 100644 environments/neutron-bgpvpn-bagpipe.yaml create mode 100644 puppet/services/neutron-bgpvpn-bagpipe.yaml diff --git a/capabilities-map.yaml b/capabilities-map.yaml index 26100639ff..3eb525fa8b 100644 --- a/capabilities-map.yaml +++ b/capabilities-map.yaml @@ -221,6 +221,12 @@ topics: description: Enables Neutron LBaaSv2 Service Plugin and Agent requires: - overcloud-resource-registry-puppet.yaml + - file: environments/neutron-bgpvpn-bagpipe.yaml + title: Neutron Bagpipe Driver for BGPVPN Service Plugin + description: Enables Neutron Bagpipe Driver as BGPVPN backend + requires: + - environments/neutron-bgpvpn.yaml + - overcloud-resource-registry-puppet.yaml - file: environments/neutron-ml2-bigswitch.yaml title: BigSwitch Extensions description: > diff --git a/environments/hyperconverged-ceph.yaml b/environments/hyperconverged-ceph.yaml index 8104417074..f5bd0da657 100644 --- a/environments/hyperconverged-ceph.yaml +++ b/environments/hyperconverged-ceph.yaml @@ -15,6 +15,7 @@ parameter_defaults: - OS::TripleO::Services::Snmp - OS::TripleO::Services::Sshd - OS::TripleO::Services::Securetty + - OS::TripleO::Services::NeutronBgpVpnBagpipe - OS::TripleO::Services::NovaCompute - OS::TripleO::Services::NovaLibvirt - OS::TripleO::Services::NovaMigrationTarget diff --git a/environments/neutron-bgpvpn-bagpipe.yaml b/environments/neutron-bgpvpn-bagpipe.yaml new file mode 100644 index 0000000000..9bf0835eae --- /dev/null +++ b/environments/neutron-bgpvpn-bagpipe.yaml @@ -0,0 +1,23 @@ +# A Heat environment file that can be used to deploy Neutron Bagpipe driver as +# backend for BGPVPN service plugin +# +# The BaGPipe driver for the BGPVPN service plugin is designed to work jointly +# with the openvswitch ML2 mechanism driver. It relies on the use of the +# bagpipe-bgp BGP VPN implementation on compute node and the MPLS implementation +# in OpenVSwitch. +# +resource_registry: + OS::TripleO::Services::NeutronBgpVpnBagpipe: ../puppet/services/neutron-bgpvpn-bagpipe.yaml + +parameter_defaults: + + # Required (example) + # BapipeMyAs: 64512 + + # Optional (example) + # BapipeApiPort: 8082 + # BapipeDataplaneDriverIpVpn: 'ovs' + # BapipeEnableRtc: true + # BapipeOvsBridge: br-mpls + # BapipePeers: 192.168.10.1,192.168.10.2 + # BapipeProxyArp: true diff --git a/overcloud-resource-registry-puppet.j2.yaml b/overcloud-resource-registry-puppet.j2.yaml index 8f4b4b4870..5d5858ac04 100644 --- a/overcloud-resource-registry-puppet.j2.yaml +++ b/overcloud-resource-registry-puppet.j2.yaml @@ -138,6 +138,7 @@ resource_registry: OS::TripleO::Services::Kernel: puppet/services/kernel.yaml 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::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-bgpvpn-bagpipe.yaml b/puppet/services/neutron-bgpvpn-bagpipe.yaml new file mode 100644 index 0000000000..88a0bfe9f7 --- /dev/null +++ b/puppet/services/neutron-bgpvpn-bagpipe.yaml @@ -0,0 +1,71 @@ +heat_template_version: pike + +description: > + Bagpipe Driver configured with Puppet + +parameters: + BapipeMyAs: + default: + description: Private Autonomous System number + type: number + BapipeApiPort: + default: 8084 + description: BGP component API port + type: number + BapipeDataplaneDriverIpVpn: + default: 'ovs' + description: IP VPN dataplane drvier class + type: string + BapipeEnableRtc: + default: true + description: Enable Route Target Constraint + type: boolean + BapipeOvsBridge: + default: 'br-mpls' + description: OVS bridge to use + type: string + BapipePeers: + default: '' + description: List of peers' IPs to establish BGP connections + type: comma_delimited_list + 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 + +outputs: + role_data: + description: Role data for the Bagpipe role. + value: + service_name: neutron_bgpvpn_bagpipe + config_settings: + neutron::agents::bagpipe::my_as: {get_param: BagpipeMyAs} + neutron::agents::bagpipe::api_port: {get_param: BagpipeApiPort} + neutron::agents::bagpipe::dataplane_driver_ipvpn: {get_param: BagpipeDataplaneDriverIpVpn} + neutron::agents::bagpipe::enable_rtc: {get_param: BapipeEnableRtc} + neutron::agents::bagpipe::ovs_bridge: {get_param: BagpipeOvsBridge} + neutron::agents::bagpipe::peers: {get_param: BagpipePeers} + step_config: | + include ::tripleo::profile::base::neutron::agents::bagpipe diff --git a/releasenotes/notes/add-bgpvpn-support-f60c5a9cee0bb393.yaml b/releasenotes/notes/add-bgpvpn-support-f60c5a9cee0bb393.yaml index 2af6aa7219..2c6f66c483 100644 --- a/releasenotes/notes/add-bgpvpn-support-f60c5a9cee0bb393.yaml +++ b/releasenotes/notes/add-bgpvpn-support-f60c5a9cee0bb393.yaml @@ -1,3 +1,4 @@ --- features: - Add support for BGPVPN Neutron service plugin + - Add support for Bagpipe driver as BGPVPN backend diff --git a/roles/Compute.yaml b/roles/Compute.yaml index 9d2c818913..e46b4dbd7b 100644 --- a/roles/Compute.yaml +++ b/roles/Compute.yaml @@ -37,6 +37,7 @@ - OS::TripleO::Services::Iscsid - OS::TripleO::Services::Kernel - OS::TripleO::Services::MySQLClient + - OS::TripleO::Services::NeutronBgpVpnBagpipe - OS::TripleO::Services::NeutronLinuxbridgeAgent - OS::TripleO::Services::NeutronSriovAgent - OS::TripleO::Services::NeutronVppAgent diff --git a/roles/ComputeHCI.yaml b/roles/ComputeHCI.yaml index 0216b04ad7..0f53c2ea58 100644 --- a/roles/ComputeHCI.yaml +++ b/roles/ComputeHCI.yaml @@ -28,6 +28,7 @@ - OS::TripleO::Services::Iscsid - OS::TripleO::Services::Kernel - OS::TripleO::Services::MySQLClient + - OS::TripleO::Services::NeutronBgpVpnBagpipe - OS::TripleO::Services::NeutronLinuxbridgeAgent - OS::TripleO::Services::NeutronSriovAgent - OS::TripleO::Services::NeutronVppAgent diff --git a/roles/ComputeOvsDpdk.yaml b/roles/ComputeOvsDpdk.yaml index 9b94710dc6..80c5725958 100644 --- a/roles/ComputeOvsDpdk.yaml +++ b/roles/ComputeOvsDpdk.yaml @@ -28,6 +28,7 @@ - OS::TripleO::Services::Iscsid - OS::TripleO::Services::Kernel - OS::TripleO::Services::MySQLClient + - OS::TripleO::Services::NeutronBgpVpnBagpipe - OS::TripleO::Services::NovaCompute - OS::TripleO::Services::NovaLibvirt - OS::TripleO::Services::Ntp diff --git a/roles_data.yaml b/roles_data.yaml index 1cdaf26230..ad6729130c 100644 --- a/roles_data.yaml +++ b/roles_data.yaml @@ -187,6 +187,7 @@ - OS::TripleO::Services::Iscsid - OS::TripleO::Services::Kernel - OS::TripleO::Services::MySQLClient + - OS::TripleO::Services::NeutronBgpVpnBagpipe - OS::TripleO::Services::NeutronLinuxbridgeAgent - OS::TripleO::Services::NeutronSriovAgent - OS::TripleO::Services::NeutronVppAgent