blob: 84c3c0b3aad4f9ca7c5d1682a7f7d99e3c4e0115 [file] [log] [blame]
Filip Pytloun923d8692015-10-06 16:28:32 +02001
2====
3Heat
4====
5
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
14Sample pillars
15==============
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
30 waitcondition:
31 address: 10.0.106.10
32 port: 8000
33 watch:
34 address: 10.0.106.10
35 port: 8003
36 cloudwatch:
37 host: 10.0.106.20
38 api:
39 host: 10.0.106.20
40 api_cfn:
41 host: 10.0.106.20
42 database:
43 engine: mysql
44 host: 10.0.106.20
45 port: 3306
46 name: heat
47 user: heat
48 password: password
49 identity:
50 engine: keystone
51 host: 10.0.106.20
52 port: 35357
53 tenant: service
54 user: heat
55 password: password
56 message_queue:
57 engine: rabbitmq
58 host: 10.0.106.20
59 port: 5672
60 user: openstack
61 password: password
62 virtual_host: '/openstack'
63 ha_queues: True
64
65Heat client with specified git templates
66
67.. code-block:: yaml
68
69 heat:
70 client:
71 enabled: true
72 source:
73 engine: git
74 address: git@repo.domain.com/heat-templates.git
75 revision: master
76
77Heat system definition of several stacks/systems
78
79.. code-block:: yaml
80
81 heat:
82 control:
83 enabled: true
84 system:
85 web_production:
86 format: hot
87 template_file: /srv/heat/template/web_cluster.hot
88 environment: /srv/heat/env/web_cluster/prd.env
89 web_staging:
90 format: hot
91 template_file: /srv/heat/template/web_cluster.hot
92 environment: /srv/heat/env/web_cluster/stg.env
93
94Ceilometer notification
95
96.. code-block:: yaml
97
98 heat:
99 server:
100 enabled: true
101 version: icehouse
102 notification: true
103
Jiri Konecnyf94dd922016-04-20 12:09:22 +0200104
105Client-side RabbitMQ HA setup
106
107.. code-block:: yaml
108
109 heat:
110 server:
111 ....
112 message_queue:
113 engine: rabbitmq
114 members:
115 - host: 10.0.16.1
116 - host: 10.0.16.2
117 - host: 10.0.16.3
118 user: openstack
119 password: pwd
120 virtual_host: '/openstack'
121 ....
122
123
124
Filip Pytloun923d8692015-10-06 16:28:32 +0200125Usage
126=====
127
128Install Contrail Heat plugin for additional resources
129
130.. code-block:: bash
131
132 pip install git+https://github.com/Juniper/contrail-heat.git@R1.30
133
Filip Pytloun923d8692015-10-06 16:28:32 +0200134Things to improve
135=================
136
137* IBM UrbanCode Deploy - has resources for AWS and VMWare
138 http://www.ibm.com/developerworks/rational/library/multi-platform-application-deployment-urbancode-deploy/
139
Jakub Pavlik3bed97a2016-05-20 11:16:08 +0200140Documentation and Bugs
141============================
142
143To learn how to deploy OpenStack Salt, consult the documentation available
144online at:
145
146 https://wiki.openstack.org/wiki/OpenStackSalt
147
148In the unfortunate event that bugs are discovered, they should be reported to
149the appropriate bug tracker. If you obtained the software from a 3rd party
150operating system vendor, it is often wise to use their own bug tracker for
151reporting problems. In all other cases use the master OpenStack bug tracker,
152available at:
153
154 http://bugs.launchpad.net/openstack-salt
155
156Developers wishing to work on the OpenStack Salt project should always base
157their work on the latest formulas code, available from the master GIT
158repository at:
159
160 https://git.openstack.org/cgit/openstack/salt-formula-heat
161
162Developers should also join the discussion on the IRC list, at:
163
Petr Michalec10261032016-07-27 09:47:57 +0200164 https://wiki.openstack.org/wiki/Meetings/openstack-salt
165Development and testing
166=======================
167
168Development and test workflow with `Test Kitchen <http://kitchen.ci>`_ and
169`kitchen-salt <https://github.com/simonmcc/kitchen-salt>`_ provisioner plugin.
170
171Test Kitchen is a test harness tool to execute your configured code on one or more platforms in isolation.
172There is a ``.kitchen.yml`` in main directory that defines *platforms* to be tested and *suites* to execute on them.
173
174Kitchen CI can spin instances locally or remote, based on used *driver*.
175For local development ``.kitchen.yml`` defines a `vagrant <https://github.com/test-kitchen/kitchen-vagrant>`_ or
176`docker <https://github.com/test-kitchen/kitchen-docker>`_ driver.
177
178To use backend drivers or implement your CI follow the section `INTEGRATION.rst#Continuous Integration`__.
179
180A listing of scenarios to be executed:
181
182.. code-block:: shell
183
184 $ kitchen list
185
186 Instance Driver Provisioner Verifier Transport Last Action
187
188 server-cluster-ubuntu-1404 Vagrant SaltSolo Inspec Ssh <Not Created>
189 server-cluster-ubuntu-1604 Vagrant SaltSolo Inspec Ssh <Not Created>
190 server-cluster-centos-71 Vagrant SaltSolo Inspec Ssh <Not Created>
191 server-single-ubuntu-1404 Vagrant SaltSolo Inspec Ssh <Not Created>
192 server-single-ubuntu-1604 Vagrant SaltSolo Inspec Ssh <Not Created>
193 server-single-centos-71 Vagrant SaltSolo Inspec Ssh <Not Created>
194
195The `Busser <https://github.com/test-kitchen/busser>`_ *Verifier* is used to setup and run tests
196implementated in `<repo>/test/integration`. It installs the particular driver to tested instance
197(`Serverspec <https://github.com/neillturner/kitchen-verifier-serverspec>`_,
198`InSpec <https://github.com/chef/kitchen-inspec>`_, Shell, Bats, ...) prior the verification is executed.
199
200
201Usage:
202
203.. code-block:: shell
204
205 # list instances and status
206 kitchen list
207
208 # manually execute integration tests
209 kitchen [test || [create|converge|verify|exec|login|destroy|...]] [instance] -t tests/integration
210
211 # use with provided Makefile (ie: within CI pipeline)
212 make kitchen
213