Expose bridge_mappings in the overcloud.
[apex-tripleo-heat-templates.git] / overcloud-source.yaml
1 Description: Nova API,Keystone,Heat Engine and API,Glance,Neutron,Dedicated MySQL
2   server,Dedicated RabbitMQ Server,Group of Nova Computes
3 HeatTemplateFormatVersion: '2012-12-12'
4 Parameters:
5   AdminPassword:
6     Default: unset
7     Description: The password for the keystone admin account, used for monitoring, querying neutron etc.
8     Type: String
9     NoEcho: true
10   AdminToken:
11     Default: unset
12     Description: The keystone auth secret.
13     Type: String
14     NoEcho: true
15   CinderPassword:
16     Default: unset
17     Description: The password for the cinder service account, used by cinder-api.
18     Type: String
19     NoEcho: true
20   Flavor:
21     Default: baremetal
22     Description: Flavor to request when deploying.
23     Type: String
24   GlancePassword:
25     Default: unset
26     Description: The password for the glance service account, used by the glance services.
27     Type: String
28     NoEcho: true
29   HeatPassword:
30     Default: unset
31     Description: The password for the Heat service account, used by the Heat services.
32     Type: String
33     NoEcho: true
34   ImageUpdatePolicy:
35     Default: 'REPLACE'
36     Description: What policy to use when reconstructing instances. REBUILD for rebuilds, REBUILD_PRESERVE_EPHEMERAL to preserve /mnt.
37     Type: String
38   KeyName:
39     Default: default
40     Description: Name of an existing EC2 KeyPair to enable SSH access to the instances
41     Type: String
42   NeutronBridgeMappings:
43     Description: The OVS logical->physical bridge mappings to use.
44     Type: String
45     Default: ''
46   NeutronPassword:
47     Default: unset
48     Description: The password for the neutron service account, used by neutron agents.
49     Type: String
50     NoEcho: true
51   CeilometerComputeAgent:
52     Description: Indicates whether the Compute agent is present and expects nova-compute to be configured accordingly
53     Type: String
54     Default: ''
55     AllowedValues: ['', Present]
56   CeilometerMeteringSecret:
57     Default: unset
58     Description: Secret shared by the ceilometer services.
59     Type: String
60     NoEcho: true
61   CeilometerPassword:
62     Default: unset
63     Description: The password for the ceilometer service account.
64     Type: String
65     NoEcho: true
66   NovaComputeDriver:
67     Default: libvirt.LibvirtDriver
68     Type: String
69   NovaComputeLibvirtType:
70     Default: ''
71     Type: String
72   NovaImage:
73     Type: String
74     Default: overcloud-compute
75   NovaPassword:
76     Default: unset
77     Description: The password for the nova service account, used by nova-api.
78     Type: String
79     NoEcho: true
80   PowerUserName:
81     Default: stack
82     Description: What username to ssh to the virtual power host with.
83     Type: String
84   NeutronPublicInterface:
85     Default: eth0
86     Description: What interface to bridge onto br-ex for network nodes.
87     Type: String
88   NeutronPublicInterfaceDefaultRoute:
89     Default: ''
90     Description: A custom default route for the NeutronPublicInterface.
91     Type: String
92   NeutronPublicInterfaceIP:
93     Default: ''
94     Description: A custom IP address to put onto the NeutronPublicInterface.
95     Type: String
96   NeutronPublicInterfaceRawDevice:
97     Default: ''
98     Description: If set, the public interface is a vlan with this device as the raw device.
99     Type: String
100   notcomputeImage:
101     Type: String
102     Default: overcloud-control
103 Resources:
104   AccessPolicy:
105     Properties:
106       AllowedResources:
107       - notcompute
108       - notcomputeConfig
109     Type: OS::Heat::AccessPolicy
110   ComputeAccessPolicy:
111     Properties:
112       AllowedResources:
113       - NovaCompute0
114       - NovaCompute0Config
115     Type: OS::Heat::AccessPolicy
116   Key:
117     Properties:
118       UserName:
119         Ref: User
120     Type: AWS::IAM::AccessKey
121   CompletionCondition:
122     Type: AWS::CloudFormation::WaitCondition
123     DependsOn: notcompute
124     Properties:
125       Handle: {Ref: CompletionHandle}
126       Count: '2'
127       Timeout: '1800'
128   CompletionHandle:
129     Type: AWS::CloudFormation::WaitConditionHandle
130   ComputeKey:
131     Properties:
132       UserName:
133         Ref: ComputeUser
134     Type: AWS::IAM::AccessKey
135   ComputeUser:
136     Properties:
137       Policies:
138       - Ref: ComputeAccessPolicy
139     Type: AWS::IAM::User
140   NovaCompute0Config:
141     Type: FileInclude
142     Path: nova-compute-instance.yaml
143     SubKey: Resources.NovaCompute0Config
144     Parameters:
145         NovaApiHost: {"Fn::Select": [ 0, {"Fn::Select": [ "ctlplane", {"Fn::GetAtt": [notcompute, networks]} ]} ] }
146         KeystoneHost: {"Fn::Select": [ 0, {"Fn::Select": [ "ctlplane", {"Fn::GetAtt": [notcompute, networks]} ]} ] }
147         RabbitHost: {"Fn::Select": [ 0, {"Fn::Select": [ "ctlplane", {"Fn::GetAtt": [notcompute, networks]} ]} ] }
148         NeutronHost: {"Fn::Select": [ 0, {"Fn::Select": [ "ctlplane", {"Fn::GetAtt": [notcompute, networks]} ]} ] }
149         GlanceHost: {"Fn::Select": [ 0, {"Fn::Select": [ "ctlplane", {"Fn::GetAtt": [notcompute, networks]} ]} ] }
150         NovaDSN: {"Fn::Join": ['', ['mysql://nova:unset@', {"Fn::Select": [ 0, {"Fn::Select": [ "ctlplane", {"Fn::GetAtt": [notcompute, networks]} ]} ]}, '/nova']]}
151         CeilometerDSN: {"Fn::Join": ['', ['mysql://ceilometer:unset@', {"Fn::Select": [ 0, {"Fn::Select": [ "ctlplane", {"Fn::GetAtt": [notcompute, networks]} ]} ]}, '/ceilometer']]}
152         NeutronDSN: {"Fn::Join": ['', ['mysql://neutron:unset@', {"Fn::Select": [ 0, {"Fn::Select": [ "ctlplane", {"Fn::GetAtt": [notcompute, networks]} ]} ]}, '/neutron']]}
153         NeutronNetworkType: "gre"
154         NeutronEnableTunnelling: "True"
155         NeutronNetworkVLANRanges: ""
156         NeutronBridgeMappings:
157             Ref: NeutronBridgeMappings
158         RabbitPassword: "guest"
159   NovaCompute0:
160     Type: FileInclude
161     Path: nova-compute-instance.yaml
162     SubKey: Resources.NovaCompute0
163   User:
164     Properties:
165       Policies:
166       - Ref: AccessPolicy
167     Type: AWS::IAM::User
168   notcomputeConfig:
169     Type: AWS::AutoScaling::LaunchConfiguration
170     Properties:
171       ImageId: '0'
172       InstanceType: '0'
173     Metadata:
174       OpenStack::Heat::Stack: {}
175       OpenStack::ImageBuilder::Elements:
176       - boot-stack
177       - heat-cfntools
178       - heat-localip
179       - neutron-network-node
180       admin-password:
181         Ref: AdminPassword
182       admin-token:
183         Ref: AdminToken
184       bootstack:
185         public_interface_ip:
186           Ref: NeutronPublicInterfaceIP
187       cinder:
188         db: mysql://cinder:unset@localhost/cinder
189         volume_size_mb: '5000'
190         service-password:
191           Ref: CinderPassword
192       completion-handle:
193         Ref: CompletionHandle
194       controller-address:
195         Fn::Select:
196          - 0
197          - Fn::Select:
198              - 'ctlplane'
199              - Fn::GetAtt:
200                - notcompute
201                - networks
202       db-password: unset
203       glance:
204         backend: swift
205         db: mysql://glance:unset@localhost/glance
206         host:
207           Fn::Select:
208            - 0
209            - Fn::Select:
210                - 'ctlplane'
211                - Fn::GetAtt:
212                  - notcompute
213                  - networks
214         service-password:
215           Ref: GlancePassword
216         swift-store-user: service:glance
217         swift-store-key:
218           Ref: GlancePassword
219       heat:
220         admin_password:
221           Ref: HeatPassword
222         admin_tenant_name: service
223         admin_user: heat
224         auth_encryption_key: unset___________
225         db: mysql://heat:unset@localhost/heat
226         watch_server_url:
227           Fn::Join:
228             - ''
229             - - 'http://'
230               - Fn::Select:
231                 - 0
232                 - Fn::Select:
233                   - 'ctlplane'
234                   - Fn::GetAtt:
235                     - notcompute
236                     - networks
237               - ':8003'
238         metadata_server_url:
239           Fn::Join:
240             - ''
241             - - 'http://'
242               - Fn::Select:
243                 - 0
244                 - Fn::Select:
245                   - 'ctlplane'
246                   - Fn::GetAtt:
247                     - notcompute
248                     - networks
249               - ':8000'
250         waitcondition_server_url:
251           Fn::Join:
252             - ''
253             - - 'http://'
254               - Fn::Select:
255                 - 0
256                 - Fn::Select:
257                   - 'ctlplane'
258                   - Fn::GetAtt:
259                     - notcompute
260                     - networks
261               - ':8000/v1/waitcondition'
262       keystone:
263         db: mysql://keystone:unset@localhost/keystone
264         host:
265           Fn::Select:
266             - 0
267             - Fn::Select:
268               - 'ctlplane'
269               - Fn::GetAtt:
270                 - notcompute
271                 - networks
272       neutron:
273         host:
274           Fn::Select:
275             - 0
276             - Fn::Select:
277               - ctlplane
278               - Fn::GetAtt:
279                 - notcompute
280                 - networks
281         metadata_proxy_shared_secret: unset
282         ovs:
283           enable_tunneling: 'True'
284           local_ip:
285             Fn::Select:
286               - 0
287               - Fn::Select:
288                 - ctlplane
289                 - Fn::GetAtt:
290                   - notcompute
291                   - networks
292           bridge_mappings: {Ref: NeutronBridgeMappings}
293           public_interface:
294             Ref: NeutronPublicInterface
295           public_interface_raw_device:
296             Ref: NeutronPublicInterfaceRawDevice
297           public_interface_route:
298             Ref: NeutronPublicInterfaceDefaultRoute
299           physical_bridge: br-ex
300           tenant_network_type: gre
301         ovs_db: mysql://neutron:unset@localhost/ovs_neutron?charset=utf8
302         service-password:
303           Ref: NeutronPassword
304       ceilometer:
305         db: mysql://ceilometer:unset@localhost/ceilometer
306         metering_secret: {Ref: CeilometerMeteringSecret}
307         service-password:
308           Ref: CeilometerPassword
309       nova:
310         compute_driver: libvirt.LibvirtDriver
311         db: mysql://nova:unset@localhost/nova
312         default_floating_pool:
313           ext-net
314         host:
315           Fn::Select:
316             - 0
317             - Fn::Select:
318               - 'ctlplane'
319               - Fn::GetAtt:
320                 - notcompute
321                 - networks
322         metadata-proxy: true
323         service-password:
324           Ref: NovaPassword
325       os-collect-config:
326         cfn:
327           access_key_id:
328             Ref: Key
329           path: notcomputeConfig.Metadata
330           secret_access_key:
331             Fn::GetAtt:
332             - Key
333             - SecretAccessKey
334           stack_name:
335             Ref: AWS::StackName
336       rabbit:
337         host:
338           Fn::Select:
339             - 0
340             - Fn::Select:
341               - ctlplane
342               - Fn::GetAtt:
343                 - notcompute
344                 - networks
345         password: guest
346   notcompute:
347     Type: OS::Nova::Server
348     Properties:
349       image:
350         Ref: notcomputeImage
351       image_update_policy:
352         Ref: ImageUpdatePolicy
353       flavor:
354         Ref: Flavor
355       key_name:
356         Ref: KeyName
357     Metadata:
358       os-collect-config:
359         cfn:
360           access_key_id:
361             Ref: Key
362           path: notcomputeConfig.Metadata
363           secret_access_key:
364             Fn::GetAtt:
365             - Key
366             - SecretAccessKey
367           stack_name:
368             Ref: AWS::StackName
369 Outputs:
370   KeystoneURL:
371     Description: URL for the Overcloud Keystone service
372     Value:
373       Fn::Join:
374       - ''
375       - - http://
376         - Fn::Select:
377           - 0
378           - Fn::Select:
379             - ctlplane
380             - Fn::GetAtt:
381               - notcompute
382               - networks
383         - :5000/v2.0/