Merge "Refactor Heat dependencies for nova compute"
[apex-tripleo-heat-templates.git] / controller.yaml
1 description: Nova API,Keystone,Heat Engine and API,Glance,Neutron,Dedicated MySQL
2   server,Dedicated RabbitMQ Server
3 heat_template_version: 2013-05-23
4 parameters:
5   AdminToken:
6     type: string
7   BootstrapDumpPassword:
8     default: ''
9     description: Password to use for mysqldump from Bootstrap Host
10     type: string
11     hidden: true
12   BootstrapHost:
13     default: ''
14     description: Load mysqldump from this Host
15     type: string
16   BootstrapRootPassword:
17     default: ''
18     description: Root password for localhost access after bootstrap
19     type: string
20     hidden: true
21   BootstrapSlavePassword:
22     default: ''
23     description: Password to use with BootstrapSlaveUser
24     type: string
25     hidden: true
26   BootstrapSlaveUser:
27     default: ''
28     description: User to use for replication from bootstrap host
29     type: string
30   controllerImage:
31     type: string
32   GlanceDBPassword:
33     description: Password for connecting to glance database
34     type: string
35     hidden: true
36   GlanceNotifierStrategy:
37     description: Strategy to use for Glance notification queue
38     type: string
39     default: noop
40   GlanceLogFile:
41     description: The filepath of the file to use for logging messages from Glance.
42     type: string
43     default: ''
44   HeatDBPassword:
45     description: Password for accessing Heat database.
46     type: string
47     hidden: true
48   HeatStackDomainAdminPassword:
49     description: Password for heat_domain_admin user.
50     type: string
51     default: ''
52     hidden: true
53   InstanceType:
54     default: baremetal
55     description: Use this flavor
56     type: string
57   KeyName:
58     default: default
59     description: Name of an existing EC2 KeyPair to enable SSH access to the instances
60     type: string
61   KeystoneDBPassword:
62     description: Password for connecting to keystone
63     type: string
64     hidden: true
65   NeutronDBPassword:
66     description: Password for connecting to neutron database
67     type: string
68     hidden: true
69   NeutronInterfaces:
70     default: eth0
71     type: string
72   NovaDBPassword:
73     description: Password for connecting to nova database
74     type: string
75     hidden: true
76   NovaInterfaces:
77     default: eth0
78     type: string
79   RabbitMQPassword:
80     description: Password for RabbitMQ
81     type: string
82     hidden: true
83   RabbitPassword:
84     type: string
85     hidden: true
86   RabbitUserName:
87     type: string
88   ServicePassword:
89     description: admin_password for setting up auth in nova.
90     type: string
91     hidden: true
92 resources:
93   AccessPolicy:
94     properties:
95       AllowedResources:
96       - controller0
97     type: OS::Heat::AccessPolicy
98   controller0Key:
99     properties:
100       UserName:
101         get_resource: User
102     type: AWS::IAM::AccessKey
103   User:
104     properties:
105       Policies:
106       - get_resource: AccessPolicy
107     type: AWS::IAM::User
108   controller0:
109     metadata:
110       admin-password:
111         get_param: ServicePassword
112       admin-token:
113         get_param: AdminToken
114       mysql:
115         create-users:
116           - database: keystone
117             username: keystone
118             password: {get_param: KeystoneDBPassword}
119           - database: heat
120             username: heat
121             password: {get_param: HeatDBPassword}
122           - database: glance
123             username: glance
124             password: {get_param: GlanceDBPassword}
125           - database: nova
126             username: nova
127             password: {get_param: NovaDBPassword}
128           - database: neutron
129             username: neutron
130             password: {get_param: NeutronDBPassword}
131       glance:
132         db:
133           Fn::Join:
134             - ''
135             - - 'mysql://glance:'
136               - {get_param: GlanceDBPassword}
137               - '@127.0.0.1/glance'
138           notifier-strategy:
139             get_param: GlanceNotifierStrategy
140           log-file:
141             get_param: GlanceLogFile
142       heat:
143         db:
144           Fn::Join:
145             - ''
146             - - 'mysql://heat:'
147               - {get_param: HeatDBPassword}
148               - '@127.0.0.1/heat'
149         access_key_id:
150           get_resource: controller0Key
151         refresh:
152         - resource: controller0
153         secret_key:
154           get_attr:
155           - controller0Key
156           - SecretAccessKey
157         stack:
158           name:
159             get_param: AWS::StackName
160           region:
161             get_param: AWS::Region
162         auth_encryption_key: unset
163         stack_domain_admin_password: {get_param: HeatStackDomainAdminPassword}
164       interfaces:
165         control:
166           get_param: NovaInterfaces
167       keystone:
168         host:
169           '127.0.0.1'
170         db:
171           Fn::Join:
172             - ''
173             - - 'mysql://keystone:'
174               - {get_param: KeystoneDBPassword}
175               - '@127.0.0.1/keystone'
176       nova:
177         db:
178           Fn::Join:
179             - ''
180             - - 'mysql://nova:'
181               - {get_param: NovaDBPassword}
182               - '@127.0.0.1/nova'
183       neutron:
184         host:
185           '127.0.0.1'
186         ovs_db:
187           Fn::Join:
188             - ''
189             - - 'mysql://neutron:'
190               - {get_param: NeutronDBPassword}
191               - '@127.0.0.1/ovs_neutron'
192       rabbit:
193         host:
194           '127.0.0.1'
195         username:
196           get_param: RabbitUserName
197         password:
198           get_param: RabbitPassword
199         users:
200           username:
201             get_param: RabbitUserName
202           password:
203             get_param: RabbitPassword
204         cookie:
205           get_attr:
206           - RabbitCookie
207           - value
208       service-password:
209         get_param: ServicePassword
210     properties:
211       ImageId:
212         get_param: controllerImage
213       InstanceType:
214         get_param: InstanceType
215       KeyName:
216         get_param: KeyName
217     type: AWS::EC2::Instance