Enable Neutron LBaaS Integration
[apex-tripleo-heat-templates.git] / puppet / services / neutron-ovs-dpdk-agent.yaml
1 heat_template_version: pike
2
3 description: >
4   OpenStack Neutron OVS DPDK configured with Puppet for Compute Role
5
6 parameters:
7   ServiceNetMap:
8     default: {}
9     description: Mapping of service_name -> network name. Typically set
10                  via parameter_defaults in the resource registry.  This
11                  mapping overrides those in ServiceNetMapDefaults.
12     type: json
13   DefaultPasswords:
14     default: {}
15     type: json
16   RoleName:
17     default: ''
18     description: Role name on which the service is applied
19     type: string
20   RoleParameters:
21     default: {}
22     description: Parameters specific to the role
23     type: json
24   EndpointMap:
25     default: {}
26     description: Mapping of service endpoint -> protocol. Typically set
27                  via parameter_defaults in the resource registry.
28     type: json
29   # below parameters has to be set in neutron agent only for compute nodes.
30   # as of now there is no other usecase for these parameters except dpdk.
31   # should be moved to compute only ovs agent in case of any other usecases.
32   NeutronDatapathType:
33     default: ""
34     description: Datapath type for ovs bridges
35     type: string
36   NeutronVhostuserSocketDir:
37     default: ""
38     description: The vhost-user socket directory for OVS
39     type: string
40
41 resources:
42
43   NeutronOvsAgent:
44     type: ./neutron-ovs-agent.yaml
45     properties:
46       ServiceNetMap: {get_param: ServiceNetMap}
47       DefaultPasswords: {get_param: DefaultPasswords}
48       EndpointMap: {get_param: EndpointMap}
49       RoleName: {get_param: RoleName}
50       RoleParameters: {get_param: RoleParameters}
51
52   # Merging role-specific parameters (RoleParameters) with the default parameters.
53   # RoleParameters will have the precedence over the default parameters.
54   RoleParametersValue:
55     type: OS::Heat::Value
56     properties:
57       type: json
58       value:
59         map_replace:
60           - map_replace:
61             - neutron::agents::ml2::ovs::datapath_type: NeutronDatapathType
62               neutron::agents::ml2::ovs::vhostuser_socket_dir: NeutronVhostuserSocketDir
63             - values: {get_param: [RoleParameters]}
64           - values:
65               NeutronDatapathType: {get_param: NeutronDatapathType}
66               NeutronVhostuserSocketDir: {get_param: NeutronVhostuserSocketDir}
67
68   Ovs:
69     type: ./openvswitch.yaml
70     properties:
71       ServiceNetMap: {get_param: ServiceNetMap}
72       DefaultPasswords: {get_param: DefaultPasswords}
73       EndpointMap: {get_param: EndpointMap}
74       RoleName: {get_param: RoleName}
75       RoleParameters: {get_param: RoleParameters}
76
77 outputs:
78   role_data:
79     description: Role data for the Neutron OVS DPDK Agent service.
80     value:
81       service_name: neutron_ovs_dpdk_agent
82       config_settings:
83         map_merge:
84           - map_replace:
85             - get_attr: [NeutronOvsAgent, role_data, config_settings]
86             - keys:
87                 tripleo.neutron_ovs_agent.firewall_rules: tripleo.neutron_ovs_dpdk_agent.firewall_rules
88           - neutron::agents::ml2::ovs::enable_dpdk: true
89           - get_attr: [Ovs, role_data, config_settings]
90           - get_attr: [RoleParametersValue, value]
91       step_config: {get_attr: [NeutronOvsAgent, role_data, step_config]}
92       upgrade_tasks:
93         get_attr: [Ovs, role_data, upgrade_tasks]