Allow making the public interface a vlan.
[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   CinderPassword:
15     Default: unset
16     Description: The password for the cinder service account, used by cinder-api.
17     Type: String
18     NoEcho: true
19   Flavor:
20     Default: baremetal
21     Description: Flavor to request when deploying.
22     Type: String
23   GlancePassword:
24     Default: unset
25     Description: The password for the glance service account, used by the glance services.
26     Type: String
27     NoEcho: true
28   HeatPassword:
29     Default: unset
30     Description: The password for the Heat service account, used by the Heat services.
31     Type: String
32     NoEcho: true
33   KeyName:
34     Default: default
35     Description: Name of an existing EC2 KeyPair to enable SSH access to the instances
36     Type: String
37   NeutronPassword:
38     Default: unset
39     Description: The password for the neutron service account, used by neutron agents.
40     Type: String
41     NoEcho: true
42   NovaComputeDriver:
43     Default: libvirt.LibvirtDriver
44     Type: String
45   NovaComputeLibvirtType:
46     Default: ''
47     Type: String
48   NovaImage:
49     Type: String
50     Default: overcloud-compute
51   NovaPassword:
52     Default: unset
53     Description: The password for the nova service account, used by nova-api.
54     Type: String
55     NoEcho: true
56   PowerUserName:
57     Default: stack
58     Description: What username to ssh to the virtual power host with.
59     Type: String
60   NeutronPublicInterface:
61     Default: eth0
62     Description: What interface to bridge onto br-ex for network nodes.
63     Type: String
64   NeutronPublicInterfaceIP:
65     Default: ''
66     Description: A custom IP address to put onto the NeutronPublicInterface.
67     Type: String
68   NeutronPublicInterfaceRawDevice:
69     Default: ''
70     Description: If set, the public interface is a vlan with this device as the raw device.
71     Type: String
72   notcomputeImage:
73     Type: String
74     Default: overcloud-control
75 Resources:
76   AccessPolicy:
77     Properties:
78       AllowedResources:
79       - notcompute
80       - notcomputeConfig
81     Type: OS::Heat::AccessPolicy
82   ComputeAccessPolicy:
83     Properties:
84       AllowedResources:
85       - NovaCompute0
86       - NovaCompute0Config
87     Type: OS::Heat::AccessPolicy
88   Key:
89     Properties:
90       UserName:
91         Ref: User
92     Type: AWS::IAM::AccessKey
93   CompletionCondition:
94     Type: AWS::CloudFormation::WaitCondition
95     DependsOn: notcompute
96     Properties:
97       Handle: {Ref: CompletionHandle}
98       Count: '1'
99       Timeout: '1800'
100   CompletionHandle:
101     Type: AWS::CloudFormation::WaitConditionHandle
102   ComputeKey:
103     Properties:
104       UserName:
105         Ref: ComputeUser
106     Type: AWS::IAM::AccessKey
107   ComputeUser:
108     Properties:
109       Policies:
110       - Ref: ComputeAccessPolicy
111     Type: AWS::IAM::User
112   NovaCompute0Config:
113     Type: FileInclude
114     Path: nova-compute-instance.yaml
115     SubKey: Resources.NovaCompute0Config
116     Parameters:
117         NovaApiHost: {"Fn::Select": [ 0, {"Fn::Select": [ "ctlplane", {"Fn::GetAtt": [notcompute, networks]} ]} ] }
118         KeystoneHost: {"Fn::Select": [ 0, {"Fn::Select": [ "ctlplane", {"Fn::GetAtt": [notcompute, networks]} ]} ] }
119         RabbitHost: {"Fn::Select": [ 0, {"Fn::Select": [ "ctlplane", {"Fn::GetAtt": [notcompute, networks]} ]} ] }
120         NeutronHost: {"Fn::Select": [ 0, {"Fn::Select": [ "ctlplane", {"Fn::GetAtt": [notcompute, networks]} ]} ] }
121         GlanceHost: {"Fn::Select": [ 0, {"Fn::Select": [ "ctlplane", {"Fn::GetAtt": [notcompute, networks]} ]} ] }
122         NovaDSN: {"Fn::Join": ['', ['mysql://nova:unset@', {"Fn::Select": [ 0, {"Fn::Select": [ "ctlplane", {"Fn::GetAtt": [notcompute, networks]} ]} ]}, '/nova']]}
123         NeutronDSN: {"Fn::Join": ['', ['mysql://neutron:unset@', {"Fn::Select": [ 0, {"Fn::Select": [ "ctlplane", {"Fn::GetAtt": [notcompute, networks]} ]} ]}, '/neutron']]}
124         NeutronNetworkType: "gre"
125         NeutronEnableTunnelling: "True"
126         NeutronNetworkVLANRanges: ""
127         NeutronBridgeMappings: ""
128         RabbitPassword: "guest"
129   NovaCompute0:
130     Type: FileInclude
131     Path: nova-compute-instance.yaml
132     SubKey: Resources.NovaCompute0
133   User:
134     Properties:
135       Policies:
136       - Ref: AccessPolicy
137     Type: AWS::IAM::User
138   notcomputeConfig:
139     Type: AWS::AutoScaling::LaunchConfiguration
140     Properties:
141       ImageId: '0'
142       InstanceType: '0'
143     Metadata:
144       OpenStack::Heat::Stack: {}
145       Openstack::ImageBuilder::Elements:
146       - boot-stack
147       - heat-cfntools
148       - heat-localip
149       - neutron-network-node
150       admin-password:
151         Ref: AdminPassword
152       admin-token:
153         Ref: AdminToken
154       bootstack:
155         public_interface_ip:
156           Ref: NeutronPublicInterfaceIP
157       cinder:
158         db: mysql://cinder:unset@localhost/cinder
159         volume_size_mb: '5000'
160         service-password:
161           Ref: CinderPassword
162       completion-handle:
163         Ref: CompletionHandle
164       controller-address:
165         Fn::Select:
166          - 0
167          - Fn::Select:
168              - 'ctlplane'
169              - Fn::GetAtt:
170                - notcompute
171                - networks
172       db-password: unset
173       glance:
174         db: mysql://glance:unset@localhost/glance
175         host:
176           Fn::Select:
177            - 0
178            - Fn::Select:
179                - 'ctlplane'
180                - Fn::GetAtt:
181                  - notcompute
182                  - networks
183         service-password:
184           Ref: GlancePassword
185       os-collect-config:
186         cfn:
187           access_key_id:
188             Ref: Key
189           path: notcomputeConfig.Metadata
190           secret_access_key:
191             Fn::GetAtt:
192             - Key
193             - SecretAccessKey
194           stack_name:
195             Ref: AWS::StackName
196       heat:
197         admin_password:
198           Ref: HeatPassword
199         admin_tenant_name: service
200         admin_user: heat
201         auth_encryption_key: unset___________
202         db: mysql://heat:unset@localhost/heat
203         heat_watch_server_url:
204           Fn::Join:
205             - ''
206             - - 'http://'
207               - Fn::Select:
208                 - 0
209                 - Fn::Select:
210                   - 'ctlplane'
211                   - Fn::GetAtt:
212                     - notcompute
213                     - networks
214               - ':8003'
215         metadata_server_url:
216           Fn::Join:
217             - ''
218             - - 'http://'
219               - Fn::Select:
220                 - 0
221                 - Fn::Select:
222                   - 'ctlplane'
223                   - Fn::GetAtt:
224                     - notcompute
225                     - networks
226               - ':8000'
227         waitcondition_server_url:
228           Fn::Join:
229             - ''
230             - - 'http://'
231               - Fn::Select:
232                 - 0
233                 - Fn::Select:
234                   - 'ctlplane'
235                   - Fn::GetAtt:
236                     - notcompute
237                     - networks
238               - ':8000/v1/waitcondition'
239       keystone:
240         db: mysql://keystone:unset@localhost/keystone
241         host:
242           Fn::Select:
243             - 0
244             - Fn::Select:
245               - 'ctlplane'
246               - Fn::GetAtt:
247                 - notcompute
248                 - networks
249       nova:
250         compute_driver: libvirt.LibvirtDriver
251         db: mysql://nova:unset@localhost/nova
252         host:
253           Fn::Select:
254             - 0
255             - Fn::Select:
256               - 'ctlplane'
257               - Fn::GetAtt:
258                 - notcompute
259                 - networks
260         metadata-proxy: true
261         service-password:
262           Ref: NovaPassword
263       neutron:
264         host:
265           Fn::Select:
266             - 0
267             - Fn::Select:
268               - ctlplane
269               - Fn::GetAtt:
270                 - notcompute
271                 - networks
272         metadata_proxy_shared_secret: unset
273         ovs:
274           enable_tunneling: 'True'
275           local_ip:
276             Fn::Select:
277               - 0
278               - Fn::Select:
279                 - ctlplane
280                 - Fn::GetAtt:
281                   - notcompute
282                   - networks
283           public_interface:
284             Ref: NeutronPublicInterface
285           public_interface_raw_device:
286             Ref: NeutronPublicInterfaceRawDevice
287           physical_bridge: br-ex
288           tenant_network_type: gre
289         ovs_db: mysql://neutron:unset@localhost/ovs_neutron?charset=utf8
290         service-password:
291           Ref: NeutronPassword
292       rabbit:
293         host:
294           Fn::Select:
295             - 0
296             - Fn::Select:
297               - ctlplane
298               - Fn::GetAtt:
299                 - notcompute
300                 - networks
301         password: guest
302   notcompute:
303     Type: OS::Nova::Server
304     Properties:
305       image:
306         Ref: notcomputeImage
307       flavor:
308         Ref: Flavor
309       key_name:
310         Ref: KeyName
311     Metadata:
312       os-collect-config:
313         cfn:
314           access_key_id:
315             Ref: Key
316           path: notcomputeConfig.Metadata
317           secret_access_key:
318             Fn::GetAtt:
319             - Key
320             - SecretAccessKey
321           stack_name:
322             Ref: AWS::StackName