Refacter Endpoints into EndpointMap
[apex-tripleo-heat-templates.git] / network / endpoints / endpoint_map.yaml
1 heat_template_version: 2015-04-30
2
3 description: >
4   A Map of OpenStack Endpoints
5
6 parameters:
7   CeilometerApiVirtualIP:
8     type: string
9     default: ''
10   CinderApiVirtualIP:
11     type: string
12     default: ''
13   GlanceApiVirtualIP:
14     type: string
15     default: ''
16   GlanceRegistryVirtualIP:
17     type: string
18     default: ''
19   HeatApiVirtualIP:
20     type: string
21     default: ''
22   KeystoneAdminApiVirtualIP:
23     type: string
24     default: ''
25   KeystonePublicApiVirtualIP:
26     type: string
27     default: ''
28   MysqlVirtualIP:
29     type: string
30     default: ''
31   NeutronApiVirtualIP:
32     type: string
33     default: ''
34   NovaApiVirtualIP:
35     type: string
36     default: ''
37   PublicVirtualIP:
38     type: string
39     default: ''
40   SwiftProxyVirtualIP:
41     type: string
42     default: ''
43   EndpointMap:
44     type: json
45     default:
46       CeilometerAdmin: {protocol: 'http', port: '8777', host: 'IP_ADDRESS'}
47       CeilometerInternal: {protocol: 'http', port: '8777', host: 'IP_ADDRESS'}
48       CeilometerPublic: {protocol: 'http', port: '8777', host: 'IP_ADDRESS'}
49       CinderAdmin: {protocol: 'http', port: '8776', host: 'IP_ADDRESS'}
50       CinderInternal: {protocol: 'http', port: '8776', host: 'IP_ADDRESS'}
51       CinderPublic: {protocol: 'http', port: '8776', host: 'IP_ADDRESS'}
52       GlanceAdmin: {protocol: 'http', port: '9292', host: 'IP_ADDRESS'}
53       GlanceInternal: {protocol: 'http', port: '9292', host: 'IP_ADDRESS'}
54       GlancePublic: {protocol: 'http', port: '9292', host: 'IP_ADDRESS'}
55       HeatAdmin: {protocol: 'http', port: '8004', host: 'IP_ADDRESS'}
56       HeatInternal: {protocol: 'http', port: '8004', host: 'IP_ADDRESS'}
57       HeatPublic: {protocol: 'http', port: '8004', host: 'IP_ADDRESS'}
58       KeystoneAdmin: {protocol: 'http', port: '35357', host: 'IP_ADDRESS'}
59       KeystoneInternal: {protocol: 'http', port: '5000', host: 'IP_ADDRESS'}
60       KeystonePublic: {protocol: 'http', port: '5000', host: 'IP_ADDRESS'}
61       NeutronAdmin: {protocol: 'http', port: '9696', host: 'IP_ADDRESS'}
62       NeutronInternal: {protocol: 'http', port: '9696', host: 'IP_ADDRESS'}
63       NeutronPublic: {protocol: 'http', port: '9696', host: 'IP_ADDRESS'}
64       NovaAdmin: {protocol: 'http', port: '8774', host: 'IP_ADDRESS'}
65       NovaInternal: {protocol: 'http', port: '8774', host: 'IP_ADDRESS'}
66       NovaPublic: {protocol: 'http', port: '8774', host: 'IP_ADDRESS'}
67       NovaEC2Admin: {protocol: 'http', port: '8773', host: 'IP_ADDRESS'}
68       NovaEC2Internal: {protocol: 'http', port: '8773', host: 'IP_ADDRESS'}
69       NovaEC2Public: {protocol: 'http', port: '8773', host: 'IP_ADDRESS'}
70       SwiftAdmin: {protocol: 'http', port: '8080', host: 'IP_ADDRESS'}
71       SwiftInternal: {protocol: 'http', port: '8080', host: 'IP_ADDRESS'}
72       SwiftPublic: {protocol: 'http', port: '8080', host: 'IP_ADDRESS'}
73     description: Mapping of service endpoint -> protocol. Typically set
74                  via parameter_defaults in the resource registry.
75
76 resources:
77
78   CeilometerInternal:
79     type: OS::TripleO::Endpoint
80     properties:
81       EndpointName: CeilometerInternal
82       EndpointMap: { get_param: EndpointMap }
83       IP: {get_param: CeilometerApiVirtualIP}
84   CeilometerPublic:
85     type: OS::TripleO::Endpoint
86     properties:
87       EndpointName: CeilometerPublic
88       EndpointMap: { get_param: EndpointMap }
89       IP: {get_param: PublicVirtualIP}
90   CeilometerAdmin:
91     type: OS::TripleO::Endpoint
92     properties:
93       EndpointName: CeilometerAdmin
94       EndpointMap: { get_param: EndpointMap }
95       IP: {get_param: CeilometerApiVirtualIP}
96
97   CinderInternal:
98     type: OS::TripleO::Endpoint
99     properties:
100       EndpointName: CinderInternal
101       EndpointMap: { get_param: EndpointMap }
102       IP: {get_param: CinderApiVirtualIP}
103       UriSuffix: '/v1/%(tenant_id)s'
104   CinderPublic:
105     type: OS::TripleO::Endpoint
106     properties:
107       EndpointName: CinderPublic
108       EndpointMap: { get_param: EndpointMap }
109       IP: {get_param: PublicVirtualIP}
110       UriSuffix: '/v1/%(tenant_id)s'
111   CinderAdmin:
112     type: OS::TripleO::Endpoint
113     properties:
114       EndpointName: CinderAdmin
115       EndpointMap: { get_param: EndpointMap }
116       IP: {get_param: CinderApiVirtualIP}
117       UriSuffix: '/v1/%(tenant_id)s'
118
119   CinderV2Internal:
120     type: OS::TripleO::Endpoint
121     properties:
122       EndpointName: CinderInternal
123       EndpointMap: { get_param: EndpointMap }
124       IP: {get_param: CinderApiVirtualIP}
125       UriSuffix: '/v2/%(tenant_id)s'
126   CinderV2Public:
127     type: OS::TripleO::Endpoint
128     properties:
129       EndpointName: CinderPublic
130       EndpointMap: { get_param: EndpointMap }
131       IP: {get_param: PublicVirtualIP}
132       UriSuffix: '/v2/%(tenant_id)s'
133   CinderV2Admin:
134     type: OS::TripleO::Endpoint
135     properties:
136       EndpointName: CinderAdmin
137       EndpointMap: { get_param: EndpointMap }
138       IP: {get_param: CinderApiVirtualIP}
139       UriSuffix: '/v2/%(tenant_id)s'
140
141   GlanceInternal:
142     type: OS::TripleO::Endpoint
143     properties:
144       EndpointName: GlanceInternal
145       EndpointMap: { get_param: EndpointMap }
146       IP: {get_param: GlanceApiVirtualIP}
147   GlancePublic:
148     type: OS::TripleO::Endpoint
149     properties:
150       EndpointName: GlancePublic
151       EndpointMap: { get_param: EndpointMap }
152       IP: {get_param: PublicVirtualIP}
153   GlanceAdmin:
154     type: OS::TripleO::Endpoint
155     properties:
156       EndpointName: GlanceAdmin
157       EndpointMap: { get_param: EndpointMap }
158       IP: {get_param: GlanceApiVirtualIP}
159
160   HeatInternal:
161     type: OS::TripleO::Endpoint
162     properties:
163       EndpointName: HeatInternal
164       EndpointMap: { get_param: EndpointMap }
165       IP: {get_param: HeatApiVirtualIP}
166       UriSuffix: '/v1/%(tenant_id)s'
167   HeatPublic:
168     type: OS::TripleO::Endpoint
169     properties:
170       EndpointName: HeatPublic
171       EndpointMap: { get_param: EndpointMap }
172       IP: {get_param: PublicVirtualIP}
173       UriSuffix: '/v1/%(tenant_id)s'
174   HeatAdmin:
175     type: OS::TripleO::Endpoint
176     properties:
177       EndpointName: HeatAdmin
178       EndpointMap: { get_param: EndpointMap }
179       IP: {get_param: HeatApiVirtualIP}
180       UriSuffix: '/v1/%(tenant_id)s'
181
182   KeystoneInternal:
183     type: OS::TripleO::Endpoint
184     properties:
185       EndpointName: KeystoneInternal
186       EndpointMap: { get_param: EndpointMap }
187       IP: {get_param: KeystonePublicApiVirtualIP}
188       UriSuffix: '/v2.0'
189   KeystonePublic:
190     type: OS::TripleO::Endpoint
191     properties:
192       EndpointName: KeystonePublic
193       EndpointMap: { get_param: EndpointMap }
194       IP: {get_param: PublicVirtualIP}
195       UriSuffix: '/v2.0'
196   KeystoneAdmin:
197     type: OS::TripleO::Endpoint
198     properties:
199       EndpointName: KeystoneAdmin
200       EndpointMap: { get_param: EndpointMap }
201       IP: {get_param: KeystoneAdminApiVirtualIP}
202       UriSuffix: '/v2.0'
203   KeystoneEC2:
204     type: OS::TripleO::Endpoint
205     properties:
206       EndpointName: KeystoneInternal
207       EndpointMap: { get_param: EndpointMap }
208       IP: {get_param: KeystonePublicApiVirtualIP}
209       UriSuffix: '/v2.0/ec2tokens'
210
211   NeutronInternal:
212     type: OS::TripleO::Endpoint
213     properties:
214       EndpointName: NeutronInternal
215       EndpointMap: { get_param: EndpointMap }
216       IP: {get_param: NeutronApiVirtualIP}
217   NeutronPublic:
218     type: OS::TripleO::Endpoint
219     properties:
220       EndpointName: NeutronPublic
221       EndpointMap: { get_param: EndpointMap }
222       IP: {get_param: PublicVirtualIP}
223   NeutronAdmin:
224     type: OS::TripleO::Endpoint
225     properties:
226       EndpointName: NeutronAdmin
227       EndpointMap: { get_param: EndpointMap }
228       IP: {get_param: NeutronApiVirtualIP}
229
230   NovaInternal:
231     type: OS::TripleO::Endpoint
232     properties:
233       EndpointName: NovaInternal
234       EndpointMap: { get_param: EndpointMap }
235       IP: {get_param: NovaApiVirtualIP}
236       UriSuffix: '/v2/%(tenant_id)s'
237   NovaPublic:
238     type: OS::TripleO::Endpoint
239     properties:
240       EndpointName: NovaPublic
241       EndpointMap: { get_param: EndpointMap }
242       IP: {get_param: PublicVirtualIP}
243       UriSuffix: '/v2/%(tenant_id)s'
244   NovaAdmin:
245     type: OS::TripleO::Endpoint
246     properties:
247       EndpointName: NovaAdmin
248       EndpointMap: { get_param: EndpointMap }
249       IP: {get_param: NovaApiVirtualIP}
250       UriSuffix: '/v2/%(tenant_id)s'
251   NovaV3Internal:
252     type: OS::TripleO::Endpoint
253     properties:
254       EndpointName: NovaInternal
255       EndpointMap: { get_param: EndpointMap }
256       IP: {get_param: NovaApiVirtualIP}
257       UriSuffix: '/v3'
258   NovaV3Public:
259     type: OS::TripleO::Endpoint
260     properties:
261       EndpointName: NovaPublic
262       EndpointMap: { get_param: EndpointMap }
263       IP: {get_param: PublicVirtualIP}
264       UriSuffix: '/v3'
265   NovaV3Admin:
266     type: OS::TripleO::Endpoint
267     properties:
268       EndpointName: NovaAdmin
269       EndpointMap: { get_param: EndpointMap }
270       IP: {get_param: NovaApiVirtualIP}
271       UriSuffix: '/v3'
272
273   NovaEC2Internal:
274     type: OS::TripleO::Endpoint
275     properties:
276       EndpointName: NovaEC2Internal
277       EndpointMap: { get_param: EndpointMap }
278       IP: {get_param: NovaApiVirtualIP}
279       UriSuffix: '/services/Cloud'
280   NovaEC2Public:
281     type: OS::TripleO::Endpoint
282     properties:
283       EndpointName: NovaEC2Public
284       EndpointMap: { get_param: EndpointMap }
285       IP: {get_param: PublicVirtualIP}
286       UriSuffix: '/services/Cloud'
287   NovaEC2Admin:
288     type: OS::TripleO::Endpoint
289     properties:
290       EndpointName: NovaEC2Admin
291       EndpointMap: { get_param: EndpointMap }
292       IP: {get_param: NovaApiVirtualIP}
293       UriSuffix: '/services/Admin'
294
295   SwiftInternal:
296     type: OS::TripleO::Endpoint
297     properties:
298       EndpointName: SwiftInternal
299       EndpointMap: { get_param: EndpointMap }
300       IP: {get_param: SwiftProxyVirtualIP}
301       UriSuffix: '/v1/AUTH_%(tenant_id)s'
302   SwiftPublic:
303     type: OS::TripleO::Endpoint
304     properties:
305       EndpointName: SwiftPublic
306       EndpointMap: { get_param: EndpointMap }
307       IP: {get_param: PublicVirtualIP}
308       UriSuffix: '/v1/AUTH_%(tenant_id)s'
309   SwiftAdmin:
310     type: OS::TripleO::Endpoint
311     properties:
312       EndpointName: SwiftAdmin
313       EndpointMap: { get_param: EndpointMap }
314       IP: {get_param: SwiftProxyVirtualIP}
315       # No Suffix for the Admin interface
316   SwiftS3Internal:
317     type: OS::TripleO::Endpoint
318     properties:
319       EndpointName: SwiftInternal
320       EndpointMap: { get_param: EndpointMap }
321       IP: {get_param: SwiftProxyVirtualIP}
322   SwiftS3Public:
323     type: OS::TripleO::Endpoint
324     properties:
325       EndpointName: SwiftPublic
326       EndpointMap: { get_param: EndpointMap }
327       IP: {get_param: PublicVirtualIP}
328   SwiftS3Admin:
329     type: OS::TripleO::Endpoint
330     properties:
331       EndpointName: SwiftAdmin
332       EndpointMap: { get_param: EndpointMap }
333       IP: {get_param: SwiftProxyVirtualIP}
334
335 outputs:
336   endpoint_map:
337     value:
338       CeilometerInternal: {get_attr: [ CeilometerInternal, endpoint] }
339       CeilometerPublic: {get_attr: [ CeilometerPublic, endpoint] }
340       CeilometerAdmin: {get_attr: [ CeilometerAdmin, endpoint] }
341       CinderInternal: {get_attr: [ CinderInternal, endpoint] }
342       CinderPublic: {get_attr: [ CinderPublic, endpoint] }
343       CinderAdmin: {get_attr: [ CinderAdmin, endpoint] }
344       CinderV2Internal: {get_attr: [ CinderV2Internal, endpoint] }
345       CinderV2Public: {get_attr: [ CinderV2Public, endpoint] }
346       CinderV2Admin: {get_attr: [ CinderV2Admin, endpoint] }
347       GlanceInternal: {get_attr: [ GlanceInternal, endpoint] }
348       GlancePublic: {get_attr: [ GlancePublic, endpoint] }
349       GlanceAdmin: {get_attr: [ GlanceAdmin, endpoint] }
350       HeatInternal: {get_attr: [ HeatInternal, endpoint] }
351       HeatPublic: {get_attr: [ HeatPublic, endpoint] }
352       HeatAdmin: {get_attr: [ HeatAdmin, endpoint] }
353       KeystoneInternal: {get_attr: [ KeystoneInternal, endpoint] }
354       KeystonePublic: {get_attr: [ KeystonePublic, endpoint] }
355       KeystoneAdmin: {get_attr: [ KeystoneAdmin, endpoint] }
356       KeystoneEC2: {get_attr: [ KeystoneEC2, endpoint] }
357       NeutronInternal: {get_attr: [ NeutronInternal, endpoint] }
358       NeutronPublic: {get_attr: [ NeutronPublic, endpoint] }
359       NeutronAdmin: {get_attr: [ NeutronAdmin, endpoint] }
360       NovaInternal: {get_attr: [ NovaInternal, endpoint] }
361       NovaPublic: {get_attr: [ NovaPublic, endpoint] }
362       NovaAdmin: {get_attr: [ NovaAdmin, endpoint] }
363       NovaV3Internal: {get_attr: [ NovaV3Internal, endpoint] }
364       NovaV3Public: {get_attr: [ NovaV3Public, endpoint] }
365       NovaV3Admin: {get_attr: [ NovaV3Admin, endpoint] }
366       NovaEC2Internal: {get_attr: [ NovaEC2Internal, endpoint] }
367       NovaEC2Public: {get_attr: [ NovaEC2Public, endpoint] }
368       NovaEC2Admin: {get_attr: [ NovaEC2Admin, endpoint] }
369       SwiftInternal: {get_attr: [ SwiftInternal, endpoint] }
370       SwiftPublic: {get_attr: [ SwiftPublic, endpoint] }
371       SwiftAdmin: {get_attr: [ SwiftAdmin, endpoint] }
372       SwiftS3Internal: {get_attr: [ SwiftS3Internal, endpoint] }
373       SwiftS3Public: {get_attr: [ SwiftS3Public, endpoint] }
374       SwiftS3Admin: {get_attr: [ SwiftS3Admin, endpoint] }