blob: 8503acbb4c95ab5588b07c350b7a6170cd94373a [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
Filip Pytloun923d8692015-10-06 16:28:32 +0200122Ceilometer notification
123
124.. code-block:: yaml
125
126 heat:
127 server:
128 enabled: true
129 version: icehouse
130 notification: true
131
Dmitry Ukovf3f33a82017-05-05 11:56:46 +0400132Configuration of policy.json file
133
134.. code-block:: yaml
135
136 heat:
137 server:
138 ....
139 policy:
140 deny_stack_user: 'not role:heat_stack_user'
141 'cloudformation:ValidateTemplate': 'rule:deny_stack_user'
142 # Add key without value to remove line from policy.json
143 'cloudformation:DescribeStackResource':
144
Jiri Konecnyf94dd922016-04-20 12:09:22 +0200145
146Client-side RabbitMQ HA setup
147
148.. code-block:: yaml
149
150 heat:
151 server:
152 ....
153 message_queue:
154 engine: rabbitmq
155 members:
156 - host: 10.0.16.1
157 - host: 10.0.16.2
158 - host: 10.0.16.3
159 user: openstack
160 password: pwd
161 virtual_host: '/openstack'
162 ....
163
Kirill Bespalov27d20ca2017-08-06 15:43:28 +0300164
Kirill Bespalov27d20ca2017-08-06 15:43:28 +0300165
Kirill Bespalov00da2512017-11-21 13:21:21 +0300166Configuring TLS communications
167-------------------------------
Kirill Bespalov27d20ca2017-08-06 15:43:28 +0300168
Kirill Bespalov27d20ca2017-08-06 15:43:28 +0300169
Kirill Bespalov00da2512017-11-21 13:21:21 +0300170 **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 +0300171
Kirill Bespalov27d20ca2017-08-06 15:43:28 +0300172
Kirill Bespalov00da2512017-11-21 13:21:21 +0300173 - **RabbitMQ TLS**
Kirill Bespalov27d20ca2017-08-06 15:43:28 +0300174
Kirill Bespalov00da2512017-11-21 13:21:21 +0300175 .. code-block:: yaml
Kirill Bespalov27d20ca2017-08-06 15:43:28 +0300176
Kirill Bespalov00da2512017-11-21 13:21:21 +0300177 heat:
178 server:
179 message_queue:
180 port: 5671
181 ssl:
182 enabled: True
183 (optional) cacert: cert body if the cacert_file does not exists
184 (optional) cacert_file: /etc/openstack/rabbitmq-ca.pem
185 (optional) version: TLSv1_2
Kirill Bespalov27d20ca2017-08-06 15:43:28 +0300186
Kirill Bespalov27d20ca2017-08-06 15:43:28 +0300187
Kirill Bespalov00da2512017-11-21 13:21:21 +0300188 - **MySQL TLS**
Kirill Bespalov27d20ca2017-08-06 15:43:28 +0300189
Kirill Bespalov00da2512017-11-21 13:21:21 +0300190 .. code-block:: yaml
Kirill Bespalov27d20ca2017-08-06 15:43:28 +0300191
Kirill Bespalov00da2512017-11-21 13:21:21 +0300192 heat:
193 server:
194 database:
195 ssl:
196 enabled: True
197 (optional) cacert: cert body if the cacert_file does not exists
198 (optional) cacert_file: /etc/openstack/mysql-ca.pem
199
200 - **Openstack HTTPS API**
201
202 .. code-block:: yaml
203
204 heat:
205 server:
206 identity:
207 protocol: https
208 (optional) cacert_file: /etc/openstack/proxy.pem
209 clients:
210 keystone:
211 protocol: https
212 (optional) cacert_file: /etc/openstack/proxy.pem
Kirill Bespalov27d20ca2017-08-06 15:43:28 +0300213
Dmitry Kalashnik1c26ac02017-12-06 13:37:19 +0400214Enhanced logging with logging.conf
215----------------------------------
216
217By default logging.conf is disabled.
218
219That is possible to enable per-binary logging.conf with new variables:
220 * openstack_log_appender - set it to true to enable log_config_append for all OpenStack services;
221 * openstack_fluentd_handler_enabled - set to true to enable FluentHandler for all Openstack services.
Oleksii Chupryn99a3e1b2018-02-07 09:40:30 +0200222 * openstack_ossyslog_handler_enabled - set to true to enable OSSysLogHandler for all Openstack services.
Dmitry Kalashnik1c26ac02017-12-06 13:37:19 +0400223
Oleksii Chupryn99a3e1b2018-02-07 09:40:30 +0200224Only WatchedFileHandler, OSSysLogHandler and FluentHandler are available.
Dmitry Kalashnik1c26ac02017-12-06 13:37:19 +0400225
226Also it is possible to configure this with pillar:
227
228.. code-block:: yaml
229
230 heat:
231 server:
232 logging:
233 log_appender: true
234 log_handlers:
235 watchedfile:
236 enabled: true
237 fluentd:
238 enabled: true
Oleksii Chupryn99a3e1b2018-02-07 09:40:30 +0200239 ossyslog:
240 enabled: true
Jiri Konecnyf94dd922016-04-20 12:09:22 +0200241
Filip Pytloundc94d872017-02-02 13:02:03 +0100242Documentation and Bugs
243======================
244
245To learn how to install and update salt-formulas, consult the documentation
246available online at:
247
248 http://salt-formulas.readthedocs.io/
249
250In the unfortunate event that bugs are discovered, they should be reported to
251the appropriate issue tracker. Use Github issue tracker for specific salt
252formula:
253
254 https://github.com/salt-formulas/salt-formula-heat/issues
255
256For feature requests, bug reports or blueprints affecting entire ecosystem,
257use Launchpad salt-formulas project:
258
259 https://launchpad.net/salt-formulas
260
261You can also join salt-formulas-users team and subscribe to mailing list:
262
263 https://launchpad.net/~salt-formulas-users
264
265Developers wishing to work on the salt-formulas projects should always base
266their work on master branch and submit pull request against specific formula.
267
268 https://github.com/salt-formulas/salt-formula-heat
269
270Any questions or feedback is always welcome so feel free to join our IRC
271channel:
272
273 #salt-formulas @ irc.freenode.net