Enable Neutron LBaaS Integration
[apex-tripleo-heat-templates.git] / puppet / services / neutron-lbaas.yaml
1 heat_template_version: pike
2
3 description: >
4   Neutron LBaaS service configured with Puppet
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   NeutronLbaasInterfaceDriver:
30     default: 'neutron.agent.linux.interface.OVSInterfaceDriver'
31     type: string
32   NeutronLbaasDeviceDriver:
33     default: 'neutron.services.loadbalancer.drivers.haproxy.namespace_driver.HaproxyNSDriver'
34     type: string
35   NeutronServiceProviders:
36     default: 'LOADBALANCERV2:Haproxy:neutron_lbaas.drivers.haproxy.plugin_driver.HaproxyOnHostPluginDriver:default'
37     description: Global list of service providers used by neutron. This
38                  list should be passed in to ensure all service
39                  providers desired by the user are included. The
40                  provided default value only set the provider for the LBaaSv2
41                  subsystem.This is currently incompatible with enabling
42                  octavia-api as one service or the other will break because the defaults are different.
43     type: comma_delimited_list
44
45 resources:
46
47   NeutronBase:
48     type: ./neutron-base.yaml
49     properties:
50       ServiceNetMap: {get_param: ServiceNetMap}
51       DefaultPasswords: {get_param: DefaultPasswords}
52       EndpointMap: {get_param: EndpointMap}
53       RoleName: {get_param: RoleName}
54       RoleParameters: {get_param: RoleParameters}
55
56 outputs:
57   role_data:
58     description: Role data for the Neutron LBaaS role.
59     value:
60       service_name: neutron_lbaas
61       config_settings:
62         map_merge:
63           - get_attr: [NeutronBase, role_data, config_settings]
64           - neutron::agents::lbaas::interface_driver: {get_param: NeutronLbaasInterfaceDriver}
65             neutron::agents::lbaas::device_driver: {get_param: NeutronLbaasDeviceDriver}
66       step_config: |
67         include ::tripleo::profile::base::neutron::lbaas
68       service_config_settings:
69         neutron_api:
70           neutron::server::service_providers: {get_param: NeutronServiceProviders}