blob: 6e703b81730f10e79bbc381f241c9a58b2aafbff [file] [log] [blame]
Filip Pytloun923d8692015-10-06 16:28:32 +02001
Aleš Komárekd13365c2017-04-11 13:13:37 +02002============
3Heat Formula
4============
Filip Pytloun923d8692015-10-06 16:28:32 +02005
Jakub Pavlik3bed97a2016-05-20 11:16:08 +02006Heat is the main project in the OpenStack Orchestration program. It implements
7an orchestration engine to launch multiple composite cloud applications based
8on templates in the form of text files that can be treated like code. A native
9Heat template format is evolving, but Heat also endeavours to provide
10compatibility with the AWS CloudFormation template format, so that many
11existing CloudFormation templates can be launched on OpenStack. Heat provides
12both an OpenStack-native ReST API and a CloudFormation-compatible Query API.
Filip Pytloun923d8692015-10-06 16:28:32 +020013
Aleš Komárekd13365c2017-04-11 13:13:37 +020014Sample Pillars
Filip Pytloun923d8692015-10-06 16:28:32 +020015==============
16
17Single Heat services on the controller node
18
19.. code-block:: yaml
20
21 heat:
22 server:
23 enabled: true
24 version: icehouse
Jakub Pavlik51e15e02016-03-12 13:32:26 +010025 region: RegionOne
Filip Pytloun923d8692015-10-06 16:28:32 +020026 bind:
27 metadata:
28 address: 10.0.106.10
29 port: 8000
Oleksii Chupryncd1be6f2017-04-07 09:30:26 +030030 protocol: http
Filip Pytloun923d8692015-10-06 16:28:32 +020031 waitcondition:
32 address: 10.0.106.10
33 port: 8000
Oleksii Chupryncd1be6f2017-04-07 09:30:26 +030034 protocol: http
Filip Pytloun923d8692015-10-06 16:28:32 +020035 watch:
36 address: 10.0.106.10
37 port: 8003
Oleksii Chupryncd1be6f2017-04-07 09:30:26 +030038 protocol: http
Filip Pytloun923d8692015-10-06 16:28:32 +020039 cloudwatch:
40 host: 10.0.106.20
41 api:
42 host: 10.0.106.20
43 api_cfn:
44 host: 10.0.106.20
45 database:
46 engine: mysql
47 host: 10.0.106.20
48 port: 3306
49 name: heat
50 user: heat
51 password: password
52 identity:
53 engine: keystone
54 host: 10.0.106.20
55 port: 35357
56 tenant: service
57 user: heat
58 password: password
Dennis Dmitriev09650272017-03-09 17:51:00 +020059 endpoint_type_default: internalURL
60 endpoint_type_heat: publicURL
Filip Pytloun923d8692015-10-06 16:28:32 +020061 message_queue:
62 engine: rabbitmq
63 host: 10.0.106.20
64 port: 5672
65 user: openstack
66 password: password
67 virtual_host: '/openstack'
68 ha_queues: True
Dmitry Stremkouskib3d83a92017-11-08 16:01:18 +030069 max_stacks_per_tenant: 150
Dmitry Stremkouski9cacd162017-11-08 16:39:38 +030070 max_nested_stack_depth: 10
Filip Pytloun923d8692015-10-06 16:28:32 +020071
Ondrej Smola24ae6a82017-07-18 10:53:14 +020072Define server clients keystone parameter
73
74.. code-block:: yaml
75
76 heat:
77 server:
78 clients:
79 keystone:
80 protocol: https
81 host: 10.0.106.10
82 port: 5000
83 insecure: false
84
Ondrej Smola70f29342017-04-28 12:58:06 +020085Enable CORS parameters
86
87.. code-block:: yaml
88
89 heat:
90 server:
91 cors:
92 allowed_origin: https:localhost.local,http:localhost.local
93 expose_headers: X-Auth-Token,X-Openstack-Request-Id,X-Subject-Token
94 allow_methods: GET,PUT,POST,DELETE,PATCH
95 allow_headers: X-Auth-Token,X-Openstack-Request-Id,X-Subject-Token
96 allow_credentials: True
97 max_age: 86400
98
99
Filip Pytloun923d8692015-10-06 16:28:32 +0200100Heat client with specified git templates
101
102.. code-block:: yaml
103
104 heat:
105 client:
106 enabled: true
Jiri Broulikb2ef3282017-02-07 22:33:30 +0100107 template:
108 admin:
109 domain: default
110 source:
111 engine: git
112 address: git@repo.domain.com/admin-templates.git
113 revision: master
114 default:
115 domain: default
116 source:
117 engine: git
118 address: git@repo.domain.com/default-templates.git
119 revision: master
120
Filip Pytloun923d8692015-10-06 16:28:32 +0200121
Kirill Bespalov27d20ca2017-08-06 15:43:28 +0300122Heat system definition of several stacks/systems
Filip Pytloun923d8692015-10-06 16:28:32 +0200123
124.. code-block:: yaml
125
126 heat:
127 control:
128 enabled: true
129 system:
130 web_production:
131 format: hot
132 template_file: /srv/heat/template/web_cluster.hot
133 environment: /srv/heat/env/web_cluster/prd.env
134 web_staging:
135 format: hot
136 template_file: /srv/heat/template/web_cluster.hot
137 environment: /srv/heat/env/web_cluster/stg.env
138
139Ceilometer notification
140
141.. code-block:: yaml
142
143 heat:
144 server:
145 enabled: true
146 version: icehouse
147 notification: true
148
Dmitry Ukovf3f33a82017-05-05 11:56:46 +0400149Configuration of policy.json file
150
151.. code-block:: yaml
152
153 heat:
154 server:
155 ....
156 policy:
157 deny_stack_user: 'not role:heat_stack_user'
158 'cloudformation:ValidateTemplate': 'rule:deny_stack_user'
159 # Add key without value to remove line from policy.json
160 'cloudformation:DescribeStackResource':
161
Jiri Konecnyf94dd922016-04-20 12:09:22 +0200162
163Client-side RabbitMQ HA setup
164
165.. code-block:: yaml
166
167 heat:
168 server:
169 ....
170 message_queue:
171 engine: rabbitmq
172 members:
173 - host: 10.0.16.1
174 - host: 10.0.16.2
175 - host: 10.0.16.3
176 user: openstack
177 password: pwd
178 virtual_host: '/openstack'
179 ....
180
Kirill Bespalov27d20ca2017-08-06 15:43:28 +0300181
Kirill Bespalov27d20ca2017-08-06 15:43:28 +0300182
Kirill Bespalov00da2512017-11-21 13:21:21 +0300183Configuring TLS communications
184-------------------------------
Kirill Bespalov27d20ca2017-08-06 15:43:28 +0300185
Kirill Bespalov27d20ca2017-08-06 15:43:28 +0300186
Kirill Bespalov00da2512017-11-21 13:21:21 +0300187 **Note:** by default system wide installed CA certs are used, so ``cacert_file`` param is optional, as well as ``cacert``.
Kirill Bespalov27d20ca2017-08-06 15:43:28 +0300188
Kirill Bespalov27d20ca2017-08-06 15:43:28 +0300189
Kirill Bespalov00da2512017-11-21 13:21:21 +0300190 - **RabbitMQ TLS**
Kirill Bespalov27d20ca2017-08-06 15:43:28 +0300191
Kirill Bespalov00da2512017-11-21 13:21:21 +0300192 .. code-block:: yaml
Kirill Bespalov27d20ca2017-08-06 15:43:28 +0300193
Kirill Bespalov00da2512017-11-21 13:21:21 +0300194 heat:
195 server:
196 message_queue:
197 port: 5671
198 ssl:
199 enabled: True
200 (optional) cacert: cert body if the cacert_file does not exists
201 (optional) cacert_file: /etc/openstack/rabbitmq-ca.pem
202 (optional) version: TLSv1_2
Kirill Bespalov27d20ca2017-08-06 15:43:28 +0300203
Kirill Bespalov27d20ca2017-08-06 15:43:28 +0300204
Kirill Bespalov00da2512017-11-21 13:21:21 +0300205 - **MySQL TLS**
Kirill Bespalov27d20ca2017-08-06 15:43:28 +0300206
Kirill Bespalov00da2512017-11-21 13:21:21 +0300207 .. code-block:: yaml
Kirill Bespalov27d20ca2017-08-06 15:43:28 +0300208
Kirill Bespalov00da2512017-11-21 13:21:21 +0300209 heat:
210 server:
211 database:
212 ssl:
213 enabled: True
214 (optional) cacert: cert body if the cacert_file does not exists
215 (optional) cacert_file: /etc/openstack/mysql-ca.pem
216
217 - **Openstack HTTPS API**
218
219 .. code-block:: yaml
220
221 heat:
222 server:
223 identity:
224 protocol: https
225 (optional) cacert_file: /etc/openstack/proxy.pem
226 clients:
227 keystone:
228 protocol: https
229 (optional) cacert_file: /etc/openstack/proxy.pem
Kirill Bespalov27d20ca2017-08-06 15:43:28 +0300230
Jiri Konecnyf94dd922016-04-20 12:09:22 +0200231
Filip Pytloundc94d872017-02-02 13:02:03 +0100232Documentation and Bugs
233======================
234
235To learn how to install and update salt-formulas, consult the documentation
236available online at:
237
238 http://salt-formulas.readthedocs.io/
239
240In the unfortunate event that bugs are discovered, they should be reported to
241the appropriate issue tracker. Use Github issue tracker for specific salt
242formula:
243
244 https://github.com/salt-formulas/salt-formula-heat/issues
245
246For feature requests, bug reports or blueprints affecting entire ecosystem,
247use Launchpad salt-formulas project:
248
249 https://launchpad.net/salt-formulas
250
251You can also join salt-formulas-users team and subscribe to mailing list:
252
253 https://launchpad.net/~salt-formulas-users
254
255Developers wishing to work on the salt-formulas projects should always base
256their work on master branch and submit pull request against specific formula.
257
258 https://github.com/salt-formulas/salt-formula-heat
259
260Any questions or feedback is always welcome so feel free to join our IRC
261channel:
262
263 #salt-formulas @ irc.freenode.net