blob: afebedb082d16dad64590806c4db7bb56171af71 [file] [log] [blame]
Filip Pytlounf8a1d5b2015-10-06 16:28:32 +02001
Ales Komarek231eb652017-04-11 16:01:19 +02002===============
3Horizon Formula
4===============
Filip Pytlounf8a1d5b2015-10-06 16:28:32 +02005
Ales Komarek231eb652017-04-11 16:01:19 +02006Horizon is the canonical implementation of OpenStacks Dashboard, which
7provides a web based user interface to OpenStack services including Nova,
8Swift, Keystone, etc.
Filip Pytlounf8a1d5b2015-10-06 16:28:32 +02009
Ales Komarek231eb652017-04-11 16:01:19 +020010
11Sample Pillars
Filip Pytlounf8a1d5b2015-10-06 16:28:32 +020012==============
13
Ales Komarek2e7d83b2016-11-22 22:58:12 +010014Simplest horizon setup
Filip Pytlounf8a1d5b2015-10-06 16:28:32 +020015
Adam Tenglerdbd1f052016-01-25 21:12:26 +010016.. code-block:: yaml
17
Filip Pytlounf8a1d5b2015-10-06 16:28:32 +020018 horizon:
19 server:
Filip Pytlounf8a1d5b2015-10-06 16:28:32 +020020 enabled: true
Ales Komarek2e7d83b2016-11-22 22:58:12 +010021 secret_key: secret
Filip Pytlounf8a1d5b2015-10-06 16:28:32 +020022 host:
23 name: cloud.lab.cz
24 cache:
25 engine: 'memcached'
26 host: '127.0.0.1'
27 port: 11211
28 prefix: 'CACHE_HORIZON'
Oleksii Chupryn7d3d6482017-03-07 11:23:27 +020029 api_versions:
30 identity: 2
Filip Pytlounf8a1d5b2015-10-06 16:28:32 +020031 identity:
32 engine: 'keystone'
33 host: '127.0.0.1'
34 port: 5000
Filip Pytlounf8a1d5b2015-10-06 16:28:32 +020035 mail:
36 host: '127.0.0.1'
37
38Simple branded horizon
39
Adam Tenglerdbd1f052016-01-25 21:12:26 +010040.. code-block:: yaml
41
Filip Pytlounf8a1d5b2015-10-06 16:28:32 +020042 horizon:
43 server:
44 enabled: true
45 branding: 'OpenStack Company Dashboard'
46 default_dashboard: 'admin'
47 help_url: 'http://doc.domain.com'
48
Adam Tengler08874e32017-05-05 17:24:29 +000049Horizon with policy files metadata. With source mine you can obtain real time policy file state from targeted node (OpenStack control node), provided you have policy file published to specified grain key. Source file will obtain static policy definition from formula files directory.
50
51.. code-block:: yaml
52
53 horizon:
54 server:
55 enabled: true
56 policy:
57 identity:
58 source: mine
59 host: ctl01.my-domain.local
60 name: keystone_policy.json
61 grain_name: keystone_policy
62 enabled: true
63 compute:
64 source: file
65 name: nova_policy.json
66 enabled: true
67 network:
68 source: file
69 name: neutron_policy.json
70 enabled: true
71 image:
72 source: file
73 name: glance_policy.json
74 enabled: true
75 volume:
76 source: file
77 name: cinder_policy.json
78 enabled: true
79 telemetry:
80 source: file
81 name: ceilometer_policy.json
82 enabled: true
83 orchestration:
84 source: file
85 name: heat_policy.json
86 enabled: true
Ales Komarek231eb652017-04-11 16:01:19 +020087
88Horizon with enabled SSL security (when SSL is realised by proxy)
89
90.. code-block:: yaml
91
92 horizon:
93 server:
94 enabled: True
95 secure: True
96
97
Filip Pytlounf8a1d5b2015-10-06 16:28:32 +020098Horizon package setup with SSL
99
Adam Tenglerdbd1f052016-01-25 21:12:26 +0100100.. code-block:: yaml
101
Filip Pytlounf8a1d5b2015-10-06 16:28:32 +0200102 horizon:
103 server:
104 enabled: true
105 secret_key: MEGASECRET
106 version: juno
107 ssl:
108 enabled: true
109 authority: CA_Authority
110 host:
111 name: cloud.lab.cz
112 cache:
113 engine: 'memcached'
114 host: '127.0.0.1'
115 port: 11211
116 prefix: 'CACHE_HORIZON'
Oleksii Chupryn7d3d6482017-03-07 11:23:27 +0200117 api_versions:
118 identity: 2
Filip Pytlounf8a1d5b2015-10-06 16:28:32 +0200119 identity:
120 engine: 'keystone'
121 host: '127.0.0.1'
122 port: 5000
Filip Pytlounf8a1d5b2015-10-06 16:28:32 +0200123 mail:
124 host: '127.0.0.1'
125
Adam Tenglerddef0502017-05-04 11:36:54 +0000126Horizon with custom SESSION_ENGINE (default is "signed_cookies", valid options are: "signed_cookies", "cache", "file") and SESSION_TIMEOUT
127
128.. code-block:: yaml
129
130 horizon:
131 server:
132 enabled: True
133 secure: True
134 session:
135 engine: 'cache'
136 timeout: 43200
137
Filip Pytlounf8a1d5b2015-10-06 16:28:32 +0200138Multi-regional horizon setup
139
Adam Tenglerdbd1f052016-01-25 21:12:26 +0100140.. code-block:: yaml
141
Filip Pytlounf8a1d5b2015-10-06 16:28:32 +0200142 horizon:
143 server:
144 enabled: true
145 version: juno
146 secret_key: MEGASECRET
147 cache:
148 engine: 'memcached'
149 host: '127.0.0.1'
150 port: 11211
151 prefix: 'CACHE_HORIZON'
Oleksii Chupryn7d3d6482017-03-07 11:23:27 +0200152 api_versions:
153 identity: 2
Filip Pytlounf8a1d5b2015-10-06 16:28:32 +0200154 identity:
155 engine: 'keystone'
156 host: '127.0.0.1'
157 port: 5000
Filip Pytlounf8a1d5b2015-10-06 16:28:32 +0200158 mail:
159 host: '127.0.0.1'
160 regions:
161 - name: cluster1
162 address: http://cluster1.example.com:5000/v2.0
163 - name: cluster2
164 address: http://cluster2.example.com:5000/v2.0
165
166Horizon setup with sensu plugin
167
Adam Tenglerdbd1f052016-01-25 21:12:26 +0100168.. code-block:: yaml
169
Filip Pytlounf8a1d5b2015-10-06 16:28:32 +0200170 horizon:
171 server:
172 enabled: true
173 version: juno
174 sensu_api:
175 host: localhost
176 port: 4567
Ales Komarek2e7d83b2016-11-22 22:58:12 +0100177 plugin:
178 monitoring:
179 app: horizon_monitoring
180 source:
181 type: git
182 address: git@repo1.robotice.cz:django/horizon-monitoring.git
183 rev: develop
Filip Pytlounf8a1d5b2015-10-06 16:28:32 +0200184
185Sensu multi API
186
Adam Tenglerdbd1f052016-01-25 21:12:26 +0100187.. code-block:: yaml
188
Filip Pytlounf8a1d5b2015-10-06 16:28:32 +0200189 horizon:
190 server:
191 enabled: true
192 version: juno
193 sensu_api:
194 dc1:
195 host: localhost
196 port: 4567
197 dc2:
198 host: anotherhost
199 port: 4567
200
Ales Komarek2e7d83b2016-11-22 22:58:12 +0100201Horizon setup with jenkins plugin
202
203.. code-block:: yaml
204
205 horizon:
206 server:
207 enabled: true
208 version: juno
209 jenkins_api:
210 url: https://localhost:8080
211 user: admin
212 password: pwd
213 plugin:
214 jenkins:
215 app: horizon_jenkins
216 source:
217 type: pkg
218
Filip Pytlounf8a1d5b2015-10-06 16:28:32 +0200219Horizon setup with billometer plugin
220
Adam Tenglerdbd1f052016-01-25 21:12:26 +0100221.. code-block:: yaml
222
Filip Pytlounf8a1d5b2015-10-06 16:28:32 +0200223 horizon:
224 server:
225 enabled: true
226 version: juno
227 billometer_api:
228 host: localhost
229 port: 9753
230 api_version: 1
Ales Komarek2e7d83b2016-11-22 22:58:12 +0100231 plugin:
232 billing:
233 app: horizon_billing
234 source:
235 type: git
236 address: git@repo1.robotice.cz:django/horizon-billing.git
237 rev: develop
Filip Pytlounf8a1d5b2015-10-06 16:28:32 +0200238
239Horizon setup with contrail plugin
240
Adam Tenglerdbd1f052016-01-25 21:12:26 +0100241.. code-block:: yaml
242
Filip Pytlounf8a1d5b2015-10-06 16:28:32 +0200243 horizon:
244 server:
245 enabled: true
246 version: icehouse
Ales Komarek2e7d83b2016-11-22 22:58:12 +0100247 plugin:
248 contrail:
249 app: contrail_openstack_dashboard
250 override: true
251 source:
252 type: git
253 address: git@repo1.robotice.cz:django/horizon-contrail.git
254 rev: develop
Filip Pytlounf8a1d5b2015-10-06 16:28:32 +0200255
256Horizon setup with sentry log handler
257
Adam Tenglerdbd1f052016-01-25 21:12:26 +0100258.. code-block:: yaml
259
Filip Pytlounf8a1d5b2015-10-06 16:28:32 +0200260 horizon:
261 server:
262 enabled: true
263 version: juno
264 ...
265 logging:
266 engine: raven
267 dsn: http://pub:private@sentry1.test.cz/2
268
269Multisite with Git source
270-------------------------
271
272Simple Horizon setup from git repository
273
Adam Tenglerdbd1f052016-01-25 21:12:26 +0100274.. code-block:: yaml
275
Filip Pytlounf8a1d5b2015-10-06 16:28:32 +0200276 horizon:
277 server:
278 enabled: true
279 app:
280 default:
281 secret_key: MEGASECRET
282 source:
283 engine: git
284 address: https://github.com/openstack/horizon.git
285 rev: stable/havana
286 cache:
287 engine: 'memcached'
288 host: '127.0.0.1'
289 port: 11211
290 prefix: 'CACHE_DEFAULT'
Oleksii Chupryn7d3d6482017-03-07 11:23:27 +0200291 api_versions:
292 identity: 2
Filip Pytlounf8a1d5b2015-10-06 16:28:32 +0200293 identity:
294 engine: 'keystone'
295 host: '127.0.0.1'
296 port: 5000
Filip Pytlounf8a1d5b2015-10-06 16:28:32 +0200297 mail:
298 host: '127.0.0.1'
299
300Themed multisite setup
301
Adam Tenglerdbd1f052016-01-25 21:12:26 +0100302.. code-block:: yaml
303
Filip Pytlounf8a1d5b2015-10-06 16:28:32 +0200304 horizon:
305 server:
306 enabled: true
307 app:
308 openstack1c:
309 secret_key: MEGASECRET1
310 source:
311 engine: git
312 address: https://github.com/openstack/horizon.git
313 rev: stable/havana
314 plugin:
315 contrail:
316 app: contrail_openstack_dashboard
317 override: true
318 source:
319 type: git
320 address: git@repo1.robotice.cz:django/horizon-contrail.git
321 rev: develop
322 theme:
323 app: site1_theme
324 source:
325 type: git
326 address: git@repo1.domain.com:django/horizon-site1-theme.git
327 cache:
328 engine: 'memcached'
329 host: '127.0.0.1'
330 port: 11211
331 prefix: 'CACHE_SITE1'
Oleksii Chupryn7d3d6482017-03-07 11:23:27 +0200332 api_versions:
333 identity: 2
Filip Pytlounf8a1d5b2015-10-06 16:28:32 +0200334 identity:
335 engine: 'keystone'
336 host: '127.0.0.1'
337 port: 5000
Filip Pytlounf8a1d5b2015-10-06 16:28:32 +0200338 mail:
339 host: '127.0.0.1'
340 openstack2:
341 secret_key: MEGASECRET2
342 source:
343 engine: git
344 address: https://repo1.domain.com/openstack/horizon.git
345 rev: stable/icehouse
346 plugin:
347 contrail:
348 app: contrail_openstack_dashboard
349 override: true
350 source:
351 type: git
352 address: git@repo1.domain.com:django/horizon-contrail.git
353 rev: develop
354 monitoring:
355 app: horizon_monitoring
356 source:
357 type: git
358 address: git@domain.com:django/horizon-monitoring.git
359 rev: develop
360 theme:
361 app: bootswatch_theme
362 source:
363 type: git
364 address: git@repo1.robotice.cz:django/horizon-bootswatch-theme.git
365 rev: develop
366 cache:
367 engine: 'memcached'
368 host: '127.0.0.1'
369 port: 11211
370 prefix: 'CACHE_SITE2'
Oleksii Chupryn7d3d6482017-03-07 11:23:27 +0200371 api_versions:
372 identity: 3
Filip Pytlounf8a1d5b2015-10-06 16:28:32 +0200373 identity:
374 engine: 'keystone'
375 host: '127.0.0.1'
376 port: 5000
Filip Pytlounf8a1d5b2015-10-06 16:28:32 +0200377 mail:
378 host: '127.0.0.1'
379
380API versions override
381
Adam Tenglerdbd1f052016-01-25 21:12:26 +0100382.. code-block:: yaml
383
Filip Pytlounf8a1d5b2015-10-06 16:28:32 +0200384 horizon:
385 server:
386 enabled: true
387 app:
388 openstack_api_overrride:
389 secret_key: MEGASECRET1
390 api_versions:
391 identity: 3
392 volume: 2
393 source:
394 engine: git
395 address: https://github.com/openstack/horizon.git
396 rev: stable/havana
397
398Control dashboard behaviour
399
Adam Tenglerdbd1f052016-01-25 21:12:26 +0100400.. code-block:: yaml
401
Filip Pytlounf8a1d5b2015-10-06 16:28:32 +0200402 horizon:
403 server:
404 enabled: true
405 app:
406 openstack_dashboard_overrride:
Ales Komarek2e7d83b2016-11-22 22:58:12 +0100407 secret_key: password
Filip Pytlounf8a1d5b2015-10-06 16:28:32 +0200408 dashboards:
409 settings:
410 enabled: true
411 project:
412 enabled: false
413 order: 10
414 admin:
415 enabled: false
416 order: 20
417 source:
418 engine: git
419 address: https://github.com/openstack/horizon.git
420 rev: stable/juno
421
Alexander Noskov787a8122016-12-07 13:00:49 +0400422Enable WebSSO feature
423
424.. code-block:: yaml
425
426 horizon:
427 server:
428 enabled: true
429 websso:
430 login_url: "WEBROOT + 'auth/login/'"
431 logout_url: "WEBROOT + 'auth/logout/'"
432 websso_choices:
433 - saml2
434 - oidc
435
Ales Komarek231eb652017-04-11 16:01:19 +0200436
437More Information
438================
Filip Pytlounf8a1d5b2015-10-06 16:28:32 +0200439
440* https://github.com/openstack/horizon
441* http://dijks.wordpress.com/2012/07/06/how-to-change-screen-resolution-of-novnc-client-in-openstack-essex-dashboard-nova-horizon/
Filip Pytloun219343c2017-02-02 13:02:03 +0100442
Ales Komarek231eb652017-04-11 16:01:19 +0200443
Filip Pytloun219343c2017-02-02 13:02:03 +0100444Documentation and Bugs
445======================
446
447To learn how to install and update salt-formulas, consult the documentation
448available online at:
449
450 http://salt-formulas.readthedocs.io/
451
452In the unfortunate event that bugs are discovered, they should be reported to
453the appropriate issue tracker. Use Github issue tracker for specific salt
454formula:
455
456 https://github.com/salt-formulas/salt-formula-horizon/issues
457
458For feature requests, bug reports or blueprints affecting entire ecosystem,
459use Launchpad salt-formulas project:
460
461 https://launchpad.net/salt-formulas
462
463You can also join salt-formulas-users team and subscribe to mailing list:
464
465 https://launchpad.net/~salt-formulas-users
466
467Developers wishing to work on the salt-formulas projects should always base
468their work on master branch and submit pull request against specific formula.
469
470 https://github.com/salt-formulas/salt-formula-horizon
471
472Any questions or feedback is always welcome so feel free to join our IRC
473channel:
474
475 #salt-formulas @ irc.freenode.net