Merge "adding swift middleware that is typically enabled by default"
[apex-tripleo-heat-templates.git] / puppet / services / neutron-api.yaml
1 heat_template_version: 2016-10-14
2
3 description: >
4   OpenStack Neutron Server 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   EndpointMap:
17     default: {}
18     description: Mapping of service endpoint -> protocol. Typically set
19                  via parameter_defaults in the resource registry.
20     type: json
21   NeutronWorkers:
22     default: ''
23     description: |
24       Sets the number of API and RPC workers for the Neutron service. The
25       default value results in the configuration being left unset and a
26       system-dependent default will be chosen (usually the number of
27       processors). Please note that this can result in a large number of
28       processes and memory consumption on systems with a large core count. On
29       such systems it is recommended that a non-default value be selected that
30       matches the load requirements.
31     type: string
32   NeutronPassword:
33     description: The password for the neutron service and db account, used by neutron agents.
34     type: string
35     hidden: true
36   NeutronAllowL3AgentFailover:
37     default: 'True'
38     description: Allow automatic l3-agent failover
39     type: string
40   NovaPassword:
41     description: The password for the nova service and db account, used by nova-api.
42     type: string
43     hidden: true
44   NeutronEnableDVR:
45     description: Enable Neutron DVR.
46     default: false
47     type: boolean
48   KeystoneRegion:
49     type: string
50     default: 'regionOne'
51     description: Keystone region for endpoint
52   MonitoringSubscriptionNeutronServer:
53     default: 'overcloud-neutron-server'
54     type: string
55   NeutronApiLoggingSource:
56     type: json
57     default:
58       tag: openstack.neutron.api
59       path: /var/log/neutron/server.log
60
61   # DEPRECATED: the following options are deprecated and are currently maintained
62   # for backwards compatibility. They will be removed in the Ocata cycle.
63   NeutronL3HA:
64     default: ''
65     type: string
66     description: |
67       Whether to enable HA for virtual routers. When not set, L3 HA will be
68       automatically enabled if the number of nodes hosting controller
69       configurations and DVR is disabled. Valid values are 'true' or 'false'
70       This parameter is being deprecated in Newton and is scheduled to be
71       removed in Ocata.  Future releases will enable L3 HA by default if it is
72       appropriate for the deployment type. Alternate mechanisms will be
73       available to override.
74
75 parameter_groups:
76 - label: deprecated
77   description: |
78    The following parameters are deprecated and will be removed. They should not
79    be relied on for new deployments. If you have concerns regarding deprecated
80    parameters, please contact the TripleO development team on IRC or the
81    OpenStack mailing list.
82   parameters:
83   - NeutronL3HA
84
85 resources:
86
87   NeutronBase:
88     type: ./neutron-base.yaml
89     properties:
90       ServiceNetMap: {get_param: ServiceNetMap}
91       DefaultPasswords: {get_param: DefaultPasswords}
92       EndpointMap: {get_param: EndpointMap}
93
94 outputs:
95   role_data:
96     description: Role data for the Neutron Server agent service.
97     value:
98       service_name: neutron_api
99       monitoring_subscription: {get_param: MonitoringSubscriptionNeutronServer}
100       logging_source: {get_param: NeutronApiLoggingSource}
101       logging_groups:
102         - neutron
103       config_settings:
104         map_merge:
105           - get_attr: [NeutronBase, role_data, config_settings]
106           - neutron::server::database_connection:
107               list_join:
108                 - ''
109                 - - {get_param: [EndpointMap, MysqlInternal, protocol]}
110                   - '://neutron:'
111                   - {get_param: NeutronPassword}
112                   - '@'
113                   - {get_param: [EndpointMap, MysqlInternal, host]}
114                   - '/ovs_neutron'
115             neutron::keystone::authtoken::auth_uri: {get_param: [EndpointMap, KeystoneInternal, uri] }
116             neutron::keystone::authtoken::auth_url: {get_param: [EndpointMap, KeystoneAdmin, uri_no_suffix]}
117             neutron::server::api_workers: {get_param: NeutronWorkers}
118             neutron::server::rpc_workers: {get_param: NeutronWorkers}
119             neutron::server::allow_automatic_l3agent_failover: {get_param: NeutronAllowL3AgentFailover}
120             neutron::server::enable_proxy_headers_parsing: true
121             neutron::keystone::authtoken::password: {get_param: NeutronPassword}
122
123             neutron::server::notifications::nova_url: { get_param: [ EndpointMap, NovaInternal, uri ] }
124             neutron::server::notifications::auth_url: { get_param: [ EndpointMap, KeystoneV3Admin, uri ] }
125             neutron::server::notifications::tenant_name: 'service'
126             neutron::server::notifications::project_name: 'service'
127             neutron::server::notifications::password: {get_param: NovaPassword}
128             neutron::keystone::authtoken::project_name: 'service'
129             neutron::server::sync_db: true
130             tripleo.neutron_api.firewall_rules:
131               '114 neutron api':
132                 dport:
133                   - 9696
134                   - 13696
135             neutron::server::router_distributed: {get_param: NeutronEnableDVR}
136             # NOTE: bind IP is found in Heat replacing the network name with the local node IP
137             # for the given network; replacement examples (eg. for internal_api):
138             # internal_api -> IP
139             # internal_api_uri -> [IP]
140             # internal_api_subnet - > IP/CIDR
141             neutron::bind_host: {get_param: [ServiceNetMap, NeutronApiNetwork]}
142             tripleo::profile::base::neutron::server::l3_ha_override: {get_param: NeutronL3HA}
143       step_config: |
144         include tripleo::profile::base::neutron::server
145       service_config_settings:
146         keystone:
147           neutron::keystone::auth::tenant: 'service'
148           neutron::keystone::auth::public_url: {get_param: [EndpointMap, NeutronPublic, uri]}
149           neutron::keystone::auth::internal_url: { get_param: [ EndpointMap, NeutronInternal, uri ] }
150           neutron::keystone::auth::admin_url: { get_param: [ EndpointMap, NeutronAdmin, uri ] }
151           neutron::keystone::auth::password: {get_param: NeutronPassword}
152           neutron::keystone::auth::region: {get_param: KeystoneRegion}
153         mysql:
154           neutron::db::mysql::password: {get_param: NeutronPassword}
155           neutron::db::mysql::user: neutron
156           neutron::db::mysql::host: {get_param: [EndpointMap, MysqlInternal, host_nobrackets]}
157           neutron::db::mysql::dbname: ovs_neutron
158           neutron::db::mysql::allowed_hosts:
159             - '%'
160             - "%{hiera('mysql_bind_host')}"