8800aca80dbd7202c9ca930fd89a92c829d6f2e1
[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   AdminToken:
10     Default: unset
11     Description: The keystone auth secret.
12     Type: String
13   CinderPassword:
14     Default: unset
15     Description: The password for the cinder service account, used by cinder-api.
16     Type: String
17   Flavor:
18     Default: baremetal
19     Description: Flavor to request when deploying.
20     Type: String
21   GlancePassword:
22     Default: unset
23     Description: The password for the glance service account, used by the glance services.
24     Type: String
25   KeyName:
26     Default: default
27     Description: Name of an existing EC2 KeyPair to enable SSH access to the instances
28     Type: String
29   NeutronPassword:
30     Default: unset
31     Description: The password for the neutron service account, used by neutron agents.
32     Type: String
33   NovaComputeDriver:
34     Default: libvirt.LibvirtDriver
35     Type: String
36   NovaComputeLibvirtType:
37     Default: ''
38     Type: String
39   NovaImage:
40     Type: String
41     Default: overcloud-compute
42   NovaInterfaces:
43     Default: eth0
44     Type: String
45   PowerUserName:
46     Default: stack
47     Description: What username to ssh to the virtual power host with.
48     Type: String
49   notcomputeImage:
50     Type: String
51     Default: overcloud-control
52 Resources:
53   AccessPolicy:
54     Properties:
55       AllowedResources:
56       - notcompute
57       - notcomputeConfig
58     Type: OS::Heat::AccessPolicy
59   ComputeAccessPolicy:
60     Properties:
61       AllowedResources:
62       - NovaCompute0
63       - NovaCompute0Config
64     Type: OS::Heat::AccessPolicy
65   Key:
66     Properties:
67       UserName:
68         Ref: User
69     Type: AWS::IAM::AccessKey
70   ComputeKey:
71     Properties:
72       UserName:
73         Ref: ComputeUser
74     Type: AWS::IAM::AccessKey
75   ComputeUser:
76     Properties:
77       Policies:
78       - Ref: ComputeAccessPolicy
79     Type: AWS::IAM::User
80   NovaCompute0Config:
81     Type: FileInclude
82     Path: nova-compute-instance.yaml
83     SubKey: Resources.NovaCompute0Config
84     Parameters:
85         NovaApiHost: {"Fn::GetAtt": [notcompute, PrivateIp]}
86         KeystoneHost: {"Fn::GetAtt": [notcompute, PrivateIp]}
87         RabbitHost: {"Fn::GetAtt": [notcompute, PrivateIp]}
88         NeutronHost: {"Fn::GetAtt": [notcompute, PrivateIp]}
89         GlanceHost: {"Fn::GetAtt": [notcompute, PrivateIp]}
90         NovaDSN: {"Fn::Join": ['', ['mysql://nova:unset@', {"Fn::GetAtt": [notcompute, PrivateIp]}, '/nova']]}
91         NeutronDSN: {"Fn::Join": ['', ['mysql://neutron:unset@', {"Fn::GetAtt": [notcompute, PrivateIp]}, '/neutron']]}
92         NeutronNetworkType: "gre"
93         NeutronEnableTunnelling: "True"
94         NeutronNetworkVLANRanges: ""
95         NeutronBridgeMappings: ""
96         RabbitPassword: "guest"
97         ServicePassword: "unset"
98   NovaCompute0:
99     Type: FileInclude
100     Path: nova-compute-instance.yaml
101     SubKey: Resources.NovaCompute0
102   User:
103     Properties:
104       Policies:
105       - Ref: AccessPolicy
106     Type: AWS::IAM::User
107   notcomputeConfig:
108     Type: AWS::AutoScaling::LaunchConfiguration
109     Properties:
110       ImageId: '0'
111       InstanceType: '0'
112     Metadata:
113       OpenStack::Heat::Stack: {}
114       Openstack::ImageBuilder::Elements:
115       - boot-stack
116       - heat-cfntools
117       - heat-localip
118       - neutron-network-node
119       admin-password:
120         Ref: AdminPassword
121       admin-token:
122         Ref: AdminToken
123       cinder:
124         db: mysql://cinder:unset@localhost/cinder
125         volume_size_mb: '5000'
126         service-password:
127           Ref: CinderPassword
128       controller-address:
129         Fn::GetAtt:
130           - notcompute
131           - PrivateIp
132       db-password: unset
133       glance:
134         db: mysql://glance:unset@localhost/glance
135         host:
136           Fn::GetAtt:
137             - notcompute
138             - PrivateIp
139         service-password:
140           Ref: GlancePassword
141       os-collect-config:
142         cfn:
143           access_key_id:
144             Ref: Key
145           path: notcomputeConfig.Metadata
146           secret_access_key:
147             Fn::GetAtt:
148             - Key
149             - SecretAccessKey
150           stack_name:
151             Ref: AWS::StackName
152       heat:
153         admin_password: unset
154         admin_tenant_name: service
155         admin_user: heat
156         auth_encryption_key: unset___________
157         db: mysql://heat:unset@localhost/heat
158         heat_watch_server_url:
159           Fn::Join:
160             - ''
161             - - 'http://'
162               - Fn::GetAtt:
163                   - notcompute
164                   - PrivateIp
165               - ':8003'
166         metadata_server_url:
167           Fn::Join:
168             - ''
169             - - 'http://'
170               - Fn::GetAtt:
171                   - notcompute
172                   - PrivateIp
173               - ':8000'
174         waitcondition_server_url:
175           Fn::Join:
176             - ''
177             - - 'http://'
178               - Fn::GetAtt:
179                   - notcompute
180                   - PrivateIp
181               - ':8000/v1/waitcondition'
182       interfaces:
183         control: eth0
184       keystone:
185         db: mysql://keystone:unset@localhost/keystone
186         host:
187           Fn::GetAtt:
188             - notcompute
189             - PrivateIp
190       nova:
191         compute_driver: libvirt.LibvirtDriver
192         db: mysql://nova:unset@localhost/nova
193         host:
194           Fn::GetAtt:
195             - notcompute
196             - PrivateIp
197         metadata-proxy: true
198       neutron:
199         host:
200           Fn::GetAtt:
201             - notcompute
202             - PrivateIp
203         metadata_proxy_shared_secret: unset
204         ovs:
205           enable_tunneling: 'True'
206           local_ip:
207             Fn::GetAtt:
208               - notcompute
209               - PrivateIp
210           public_interface: eth0
211           physical_bridge: br-ex
212           tenant_network_type: gre
213         ovs_db: mysql://neutron:unset@localhost/ovs_neutron?charset=utf8
214         service-password:
215           Ref: NeutronPassword
216       rabbit:
217         host:
218           Fn::GetAtt:
219             - notcompute
220             - PrivateIp
221         password: guest
222       service-password: unset
223   notcompute:
224     Type: OS::Nova::Server
225     Properties:
226       image:
227         Ref: notcomputeImage
228       flavor:
229         Ref: Flavor
230       key_name:
231         Ref: KeyName
232     Metadata:
233       os-collect-config:
234         cfn:
235           access_key_id:
236             Ref: Key
237           path: notcomputeConfig.Metadata
238           secret_access_key:
239             Fn::GetAtt:
240             - Key
241             - SecretAccessKey
242           stack_name:
243             Ref: AWS::StackName