diff --git a/environments/neutron-ml2-mlnx-sdn.yaml b/environments/neutron-ml2-mlnx-sdn.yaml new file mode 100644 index 0000000000..da4297a8c9 --- /dev/null +++ b/environments/neutron-ml2-mlnx-sdn.yaml @@ -0,0 +1,14 @@ +# A Heat environment file which can be used to configure Mellanox SDN + +resource_registry: + OS::TripleO::Services::NeutronCorePlugin: OS::TripleO::Services::NeutronCorePluginMLNXSDN + +parameter_defaults: + + MlnxSDNUsername: 'sdn_username' + #MlnxSDNPassword: + MlnxSDNUrl: 'sdn_url' + MlnxSDNDomain: 'cloudx' + + NeutronCorePlugin: 'neutron.plugins.ml2.plugin.Ml2Plugin' + NeutronMechanismDrivers: 'mlnx_sdn_assist,sriovnicswitch,openvswitch' diff --git a/overcloud-resource-registry-puppet.j2.yaml b/overcloud-resource-registry-puppet.j2.yaml index b88292a35f..129f1b012e 100644 --- a/overcloud-resource-registry-puppet.j2.yaml +++ b/overcloud-resource-registry-puppet.j2.yaml @@ -173,6 +173,7 @@ resource_registry: OS::TripleO::Services::OVNDBs: OS::Heat::None OS::TripleO::Services::OVNController: OS::Heat::None + OS::TripleO::Services::NeutronCorePluginMLNXSDN: puppet/services/neutron-plugin-ml2-mlnx-sdn-assist.yaml OS::TripleO::Services::NeutronCorePluginMidonet: puppet/services/neutron-midonet.yaml OS::TripleO::Services::NeutronCorePluginVTS: puppet/services/neutron-plugin-ml2-cisco-vts.yaml OS::TripleO::Services::NeutronOvsAgent: docker/services/neutron-ovs-agent.yaml diff --git a/puppet/services/neutron-plugin-ml2-mlnx-sdn-assist.yaml b/puppet/services/neutron-plugin-ml2-mlnx-sdn-assist.yaml new file mode 100644 index 0000000000..6d8de782ca --- /dev/null +++ b/puppet/services/neutron-plugin-ml2-mlnx-sdn-assist.yaml @@ -0,0 +1,74 @@ +heat_template_version: queens + +description: > + MLNX SDN configuration assist for Neutron ML2 Plugin. + +parameters: + MlnxSDNUsername: + description: The username for the SDN server. + type: string + MlnxSDNPassword: + type: string + description: The password for the SDN server. + hidden: true + MlnxSDNUrl: + description: SDN server URL + type: string + MlnxSDNDomain: + description: SDN server domain + type: string + default: 'cloudx' + 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 + +resources: + + NeutronMl2Base: + type: ./neutron-plugin-ml2.yaml + properties: + ServiceData: {get_param: ServiceData} + ServiceNetMap: {get_param: ServiceNetMap} + DefaultPasswords: {get_param: DefaultPasswords} + EndpointMap: {get_param: EndpointMap} + RoleName: {get_param: RoleName} + RoleParameters: {get_param: RoleParameters} + +outputs: + role_data: + description: Role data for the MLNX SDN ML2 Plugin. + value: + service_name: neutron_plugin_ml2_mlnx_sdn_assist + config_settings: + map_merge: + - get_attr: [NeutronMl2Base, role_data, config_settings] + - neutron::plugins::ml2::mellanox::mlnx_sdn_assist::sdn_username: {get_param: MlnxSDNUsername} + neutron::plugins::ml2::mellanox::mlnx_sdn_assist::sdn_password: {get_param: MlnxSDNPassword} + neutron::plugins::ml2::mellanox::mlnx_sdn_assist::sdn_url: {get_param: MlnxSDNUrl} + neutron::plugins::ml2::mellanox::mlnx_sdn_assist::sdn_domain: {get_param: MlnxSDNDomain} + step_config: | + include ::tripleo::profile::base::neutron::plugins::ml2