From d726a9c8b494b7d6ad5c96078bb8d00c28f43209 Mon Sep 17 00:00:00 2001 From: Wojciech Dec Date: Tue, 2 Jan 2018 16:21:56 +0100 Subject: [PATCH] Add cisco VTS ML2 template for a dockerized service and default environment settings Change-Id: I01989cdec64d5dd3c38ea484d59c89c7bd873b83 Implements: blueprint ml2-cisco-vts Signed-off-by: Wojciech Dec --- capabilities-map.yaml | 5 ++ .../neutron-plugin-ml2-cisco-vts.yaml | 64 +++++++++++++++++++ environments/neutron-ml2-cisco-vts.yaml | 29 +++++++++ .../neutron-ml2-cisco-vts.yaml | 37 +++++++++++ .../neutron-plugin-ml2-cisco-vts.yaml | 26 ++++---- ...cisco_vts_ml2_docker-0d7cfafe4647074d.yaml | 5 ++ 6 files changed, 153 insertions(+), 13 deletions(-) create mode 100644 docker/services/neutron-plugin-ml2-cisco-vts.yaml create mode 100644 environments/neutron-ml2-cisco-vts.yaml create mode 100644 environments/services-docker/neutron-ml2-cisco-vts.yaml create mode 100644 releasenotes/notes/add_cisco_vts_ml2_docker-0d7cfafe4647074d.yaml diff --git a/capabilities-map.yaml b/capabilities-map.yaml index fac4728e0c..a029fb8772 100644 --- a/capabilities-map.yaml +++ b/capabilities-map.yaml @@ -307,6 +307,11 @@ topics: description: Enables Neutron L2 gateway Service Plugin and Agent requires: - overcloud-resource-registry-puppet.yaml + - file: environments/neutron-ml2-cisco-vts.yaml + title: Cisco VTS ML2 Plugin + description: Enables Cisco VTS ML2 Plugin + requires: + - overcloud-resource-registry-puppet.yaml - title: Storage description: diff --git a/docker/services/neutron-plugin-ml2-cisco-vts.yaml b/docker/services/neutron-plugin-ml2-cisco-vts.yaml new file mode 100644 index 0000000000..0529cb302f --- /dev/null +++ b/docker/services/neutron-plugin-ml2-cisco-vts.yaml @@ -0,0 +1,64 @@ +heat_template_version: queens + +description: > + VTS Controller Settings for Neutron ML2 Plugin (Docker) + +parameters: + EndpointMap: + default: {} + description: Mapping of service endpoint -> protocol. Typically set + via parameter_defaults in the resource registry. + type: json + 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 + DockerNeutronConfigImage: + description: The container image to use for the neutron config_volume + type: string + DefaultPasswords: + 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 +resources: + + NeutronMl2VtsBase: + type: ../../puppet/services/neutron-plugin-ml2-cisco-vts.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 Neutron ML2 Cisco VTS Plugin role. + value: + service_name: {get_attr: [NeutronMl2VtsBase, role_data, service_name]} + config_settings: {get_attr: [NeutronMl2VtsBase, role_data, config_settings]} + logging_source: {get_attr: [NeutronMl2VtsBase, role_data, logging_source]} + logging_groups: {get_attr: [NeutronMl2VtsBase, role_data, logging_groups]} + service_config_settings: {get_attr: [NeutronMl2VtsBase, role_data, service_config_settings]} + # BEGIN DOCKER SETTINGS + puppet_config: + config_volume: 'neutron' + puppet_tags: neutron_plugin_ml2 + step_config: + get_attr: [NeutronMl2VtsBase, role_data, step_config] + config_image: {get_param: DockerNeutronConfigImage} + kolla_config: {} + docker_config: {} diff --git a/environments/neutron-ml2-cisco-vts.yaml b/environments/neutron-ml2-cisco-vts.yaml new file mode 100644 index 0000000000..9d2fd322f5 --- /dev/null +++ b/environments/neutron-ml2-cisco-vts.yaml @@ -0,0 +1,29 @@ +# A Heat environment file which can be used to enable Cisco VTS ML2 driver configured +# via puppet + +resource_registry: + OS::TripleO::Services::NeutronCorePlugin: OS::TripleO::Services::NeutronCorePluginVTS + + ## Comment out below line when deploying VTS Agent on compute nodes instead of VPP/VPFA + OS::TripleO::Services::ComputeNeutronCorePlugin: OS::TripleO::Services::NeutronCorePluginVTS + +parameter_defaults: + + ################### + ### VTS General ### + ################### + + VTSUsername: 'admin' + #VTSPassword: + VTSServer: '' + VTSVMMID: '' + + ################### + ### Neutron ML2 ### + ################### + + NeutronCorePlugin: 'neutron.plugins.ml2.plugin.Ml2Plugin' + NeutronMechanismDrivers: 'sriovnicswitch,cisco_vts' + NeutronTypeDrivers: 'vxlan,vlan,flat' + NeutronServicePlugins: 'cisco_vts_router,trunk' + diff --git a/environments/services-docker/neutron-ml2-cisco-vts.yaml b/environments/services-docker/neutron-ml2-cisco-vts.yaml new file mode 100644 index 0000000000..c2f2e32c52 --- /dev/null +++ b/environments/services-docker/neutron-ml2-cisco-vts.yaml @@ -0,0 +1,37 @@ +# A docker enabled Heat environment file which can be used to enable Cisco VTS , configured via puppet + +# By default the configuration has items required to deploy VPP/VPFA on all nodes + the cisco ML2 VTS driver + +resource_registry: + OS::TripleO::Services::NeutronCorePluginVTS: ../../docker/services/neutron-plugin-ml2-cisco-vts.yaml + OS::TripleO::Services::NeutronCorePlugin: OS::TripleO::Services::NeutronCorePluginVTS + + ## Comment out below line when deploying VTS Agent on compute nodes instead of VPP/VPFA + OS::TripleO::Services::ComputeNeutronCorePlugin: OS::TripleO::Services::NeutronCorePluginVTS + +parameter_defaults: + + ######################################## + ### Docker Cisco VTS Neutron images ### + ######################################## + + DockerNeutronApiImage: 'repo/binary-neutron-cisco-vts' + DockerNeutronConfigImage: 'repo/binary-neutron-cisco-vts' + + ################### + ### VTS General ### + ################### + + VTSUsername: 'admin' + #VTSPassword: + VTSServer: '' + VTSVMMID: '' + + ################### + ### Neutron ML2 ### + ################### + + NeutronCorePlugin: 'neutron.plugins.ml2.plugin.Ml2Plugin' + NeutronMechanismDrivers: 'sriovnicswitch,cisco_vts' + NeutronTypeDrivers: 'vxlan,vlan,flat' + NeutronServicePlugins: 'cisco_vts_router,trunk' diff --git a/puppet/services/neutron-plugin-ml2-cisco-vts.yaml b/puppet/services/neutron-plugin-ml2-cisco-vts.yaml index ec81907a2d..d7f30925c1 100644 --- a/puppet/services/neutron-plugin-ml2-cisco-vts.yaml +++ b/puppet/services/neutron-plugin-ml2-cisco-vts.yaml @@ -4,23 +4,10 @@ description: > VTS Controller Settings for the Cisco VTS Neutron ML2 Plugin. 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 VTSUsername: - default: 'admin' description: The username for the VTS server. type: string VTSPassword: - default: 'admin' type: string description: The password for the VTS server. hidden: true @@ -39,6 +26,19 @@ parameters: description: Timeout for VTS server type: number default: 120 + 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 diff --git a/releasenotes/notes/add_cisco_vts_ml2_docker-0d7cfafe4647074d.yaml b/releasenotes/notes/add_cisco_vts_ml2_docker-0d7cfafe4647074d.yaml new file mode 100644 index 0000000000..36d1997e5f --- /dev/null +++ b/releasenotes/notes/add_cisco_vts_ml2_docker-0d7cfafe4647074d.yaml @@ -0,0 +1,5 @@ +--- +features: + - | + Add neutron-plugin-ml2-cisco-vts as a dockerized Neutron Core service template in support of the cisco VTS + controller ml2 plugin. \ No newline at end of file