blob: afd5dce422c7a1c1d43e667ad43e7e86de2b9192 [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
Dmitry Stremkovskiy381e5602017-07-18 18:50:13 +030038Multidomain setup for horizon
39
40.. code-block:: yaml
41
42 horizon:
43 server:
44 enabled: true
45 default_domain: MYDOMAIN
46 multidomain: True
47
Filip Pytlounf8a1d5b2015-10-06 16:28:32 +020048Simple branded horizon
49
Adam Tenglerdbd1f052016-01-25 21:12:26 +010050.. code-block:: yaml
51
Filip Pytlounf8a1d5b2015-10-06 16:28:32 +020052 horizon:
53 server:
54 enabled: true
55 branding: 'OpenStack Company Dashboard'
56 default_dashboard: 'admin'
57 help_url: 'http://doc.domain.com'
58
Adam Tengler08874e32017-05-05 17:24:29 +000059Horizon 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.
60
61.. code-block:: yaml
62
63 horizon:
64 server:
65 enabled: true
66 policy:
67 identity:
68 source: mine
69 host: ctl01.my-domain.local
70 name: keystone_policy.json
71 grain_name: keystone_policy
72 enabled: true
73 compute:
74 source: file
75 name: nova_policy.json
76 enabled: true
77 network:
78 source: file
79 name: neutron_policy.json
80 enabled: true
81 image:
82 source: file
83 name: glance_policy.json
84 enabled: true
85 volume:
86 source: file
87 name: cinder_policy.json
88 enabled: true
89 telemetry:
90 source: file
91 name: ceilometer_policy.json
92 enabled: true
93 orchestration:
94 source: file
95 name: heat_policy.json
96 enabled: true
Ales Komarek231eb652017-04-11 16:01:19 +020097
98Horizon with enabled SSL security (when SSL is realised by proxy)
99
100.. code-block:: yaml
101
102 horizon:
103 server:
104 enabled: True
105 secure: True
106
107
Filip Pytlounf8a1d5b2015-10-06 16:28:32 +0200108Horizon package setup with SSL
109
Adam Tenglerdbd1f052016-01-25 21:12:26 +0100110.. code-block:: yaml
111
Filip Pytlounf8a1d5b2015-10-06 16:28:32 +0200112 horizon:
113 server:
114 enabled: true
115 secret_key: MEGASECRET
116 version: juno
117 ssl:
118 enabled: true
119 authority: CA_Authority
120 host:
121 name: cloud.lab.cz
122 cache:
123 engine: 'memcached'
124 host: '127.0.0.1'
125 port: 11211
126 prefix: 'CACHE_HORIZON'
Oleksii Chupryn7d3d6482017-03-07 11:23:27 +0200127 api_versions:
128 identity: 2
Filip Pytlounf8a1d5b2015-10-06 16:28:32 +0200129 identity:
130 engine: 'keystone'
131 host: '127.0.0.1'
132 port: 5000
Filip Pytlounf8a1d5b2015-10-06 16:28:32 +0200133 mail:
134 host: '127.0.0.1'
135
Adam Tenglerddef0502017-05-04 11:36:54 +0000136Horizon with custom SESSION_ENGINE (default is "signed_cookies", valid options are: "signed_cookies", "cache", "file") and SESSION_TIMEOUT
137
138.. code-block:: yaml
139
140 horizon:
141 server:
142 enabled: True
143 secure: True
144 session:
145 engine: 'cache'
146 timeout: 43200
147
Filip Pytlounf8a1d5b2015-10-06 16:28:32 +0200148Multi-regional horizon setup
149
Adam Tenglerdbd1f052016-01-25 21:12:26 +0100150.. code-block:: yaml
151
Filip Pytlounf8a1d5b2015-10-06 16:28:32 +0200152 horizon:
153 server:
154 enabled: true
155 version: juno
156 secret_key: MEGASECRET
157 cache:
158 engine: 'memcached'
159 host: '127.0.0.1'
160 port: 11211
161 prefix: 'CACHE_HORIZON'
Oleksii Chupryn7d3d6482017-03-07 11:23:27 +0200162 api_versions:
163 identity: 2
Filip Pytlounf8a1d5b2015-10-06 16:28:32 +0200164 identity:
165 engine: 'keystone'
166 host: '127.0.0.1'
167 port: 5000
Filip Pytlounf8a1d5b2015-10-06 16:28:32 +0200168 mail:
169 host: '127.0.0.1'
170 regions:
171 - name: cluster1
172 address: http://cluster1.example.com:5000/v2.0
173 - name: cluster2
174 address: http://cluster2.example.com:5000/v2.0
175
176Horizon setup with sensu plugin
177
Adam Tenglerdbd1f052016-01-25 21:12:26 +0100178.. code-block:: yaml
179
Filip Pytlounf8a1d5b2015-10-06 16:28:32 +0200180 horizon:
181 server:
182 enabled: true
183 version: juno
184 sensu_api:
185 host: localhost
186 port: 4567
Ales Komarek2e7d83b2016-11-22 22:58:12 +0100187 plugin:
188 monitoring:
189 app: horizon_monitoring
190 source:
191 type: git
192 address: git@repo1.robotice.cz:django/horizon-monitoring.git
193 rev: develop
Filip Pytlounf8a1d5b2015-10-06 16:28:32 +0200194
195Sensu multi API
196
Adam Tenglerdbd1f052016-01-25 21:12:26 +0100197.. code-block:: yaml
198
Filip Pytlounf8a1d5b2015-10-06 16:28:32 +0200199 horizon:
200 server:
201 enabled: true
202 version: juno
203 sensu_api:
204 dc1:
205 host: localhost
206 port: 4567
207 dc2:
208 host: anotherhost
209 port: 4567
210
Ales Komarek2e7d83b2016-11-22 22:58:12 +0100211Horizon setup with jenkins plugin
212
213.. code-block:: yaml
214
215 horizon:
216 server:
217 enabled: true
218 version: juno
219 jenkins_api:
220 url: https://localhost:8080
221 user: admin
222 password: pwd
223 plugin:
224 jenkins:
225 app: horizon_jenkins
226 source:
227 type: pkg
228
Filip Pytlounf8a1d5b2015-10-06 16:28:32 +0200229Horizon setup with billometer plugin
230
Adam Tenglerdbd1f052016-01-25 21:12:26 +0100231.. code-block:: yaml
232
Filip Pytlounf8a1d5b2015-10-06 16:28:32 +0200233 horizon:
234 server:
235 enabled: true
236 version: juno
237 billometer_api:
238 host: localhost
239 port: 9753
240 api_version: 1
Ales Komarek2e7d83b2016-11-22 22:58:12 +0100241 plugin:
242 billing:
243 app: horizon_billing
244 source:
245 type: git
246 address: git@repo1.robotice.cz:django/horizon-billing.git
247 rev: develop
Filip Pytlounf8a1d5b2015-10-06 16:28:32 +0200248
249Horizon setup with contrail plugin
250
Adam Tenglerdbd1f052016-01-25 21:12:26 +0100251.. code-block:: yaml
252
Filip Pytlounf8a1d5b2015-10-06 16:28:32 +0200253 horizon:
254 server:
255 enabled: true
256 version: icehouse
Ales Komarek2e7d83b2016-11-22 22:58:12 +0100257 plugin:
258 contrail:
259 app: contrail_openstack_dashboard
260 override: true
261 source:
262 type: git
263 address: git@repo1.robotice.cz:django/horizon-contrail.git
264 rev: develop
Filip Pytlounf8a1d5b2015-10-06 16:28:32 +0200265
266Horizon setup with sentry log handler
267
Adam Tenglerdbd1f052016-01-25 21:12:26 +0100268.. code-block:: yaml
269
Filip Pytlounf8a1d5b2015-10-06 16:28:32 +0200270 horizon:
271 server:
272 enabled: true
273 version: juno
274 ...
275 logging:
276 engine: raven
277 dsn: http://pub:private@sentry1.test.cz/2
278
279Multisite with Git source
280-------------------------
281
282Simple Horizon setup from git repository
283
Adam Tenglerdbd1f052016-01-25 21:12:26 +0100284.. code-block:: yaml
285
Filip Pytlounf8a1d5b2015-10-06 16:28:32 +0200286 horizon:
287 server:
288 enabled: true
289 app:
290 default:
291 secret_key: MEGASECRET
292 source:
293 engine: git
294 address: https://github.com/openstack/horizon.git
295 rev: stable/havana
296 cache:
297 engine: 'memcached'
298 host: '127.0.0.1'
299 port: 11211
300 prefix: 'CACHE_DEFAULT'
Oleksii Chupryn7d3d6482017-03-07 11:23:27 +0200301 api_versions:
302 identity: 2
Filip Pytlounf8a1d5b2015-10-06 16:28:32 +0200303 identity:
304 engine: 'keystone'
305 host: '127.0.0.1'
306 port: 5000
Filip Pytlounf8a1d5b2015-10-06 16:28:32 +0200307 mail:
308 host: '127.0.0.1'
309
310Themed multisite setup
311
Adam Tenglerdbd1f052016-01-25 21:12:26 +0100312.. code-block:: yaml
313
Filip Pytlounf8a1d5b2015-10-06 16:28:32 +0200314 horizon:
315 server:
316 enabled: true
317 app:
318 openstack1c:
319 secret_key: MEGASECRET1
320 source:
321 engine: git
322 address: https://github.com/openstack/horizon.git
323 rev: stable/havana
324 plugin:
325 contrail:
326 app: contrail_openstack_dashboard
327 override: true
328 source:
329 type: git
330 address: git@repo1.robotice.cz:django/horizon-contrail.git
331 rev: develop
332 theme:
333 app: site1_theme
334 source:
335 type: git
336 address: git@repo1.domain.com:django/horizon-site1-theme.git
337 cache:
338 engine: 'memcached'
339 host: '127.0.0.1'
340 port: 11211
341 prefix: 'CACHE_SITE1'
Oleksii Chupryn7d3d6482017-03-07 11:23:27 +0200342 api_versions:
343 identity: 2
Filip Pytlounf8a1d5b2015-10-06 16:28:32 +0200344 identity:
345 engine: 'keystone'
346 host: '127.0.0.1'
347 port: 5000
Filip Pytlounf8a1d5b2015-10-06 16:28:32 +0200348 mail:
349 host: '127.0.0.1'
350 openstack2:
351 secret_key: MEGASECRET2
352 source:
353 engine: git
354 address: https://repo1.domain.com/openstack/horizon.git
355 rev: stable/icehouse
356 plugin:
357 contrail:
358 app: contrail_openstack_dashboard
359 override: true
360 source:
361 type: git
362 address: git@repo1.domain.com:django/horizon-contrail.git
363 rev: develop
364 monitoring:
365 app: horizon_monitoring
366 source:
367 type: git
368 address: git@domain.com:django/horizon-monitoring.git
369 rev: develop
370 theme:
371 app: bootswatch_theme
372 source:
373 type: git
374 address: git@repo1.robotice.cz:django/horizon-bootswatch-theme.git
375 rev: develop
376 cache:
377 engine: 'memcached'
378 host: '127.0.0.1'
379 port: 11211
380 prefix: 'CACHE_SITE2'
Oleksii Chupryn7d3d6482017-03-07 11:23:27 +0200381 api_versions:
382 identity: 3
Filip Pytlounf8a1d5b2015-10-06 16:28:32 +0200383 identity:
384 engine: 'keystone'
385 host: '127.0.0.1'
386 port: 5000
Filip Pytlounf8a1d5b2015-10-06 16:28:32 +0200387 mail:
388 host: '127.0.0.1'
389
390API versions override
391
Adam Tenglerdbd1f052016-01-25 21:12:26 +0100392.. code-block:: yaml
393
Filip Pytlounf8a1d5b2015-10-06 16:28:32 +0200394 horizon:
395 server:
396 enabled: true
397 app:
398 openstack_api_overrride:
399 secret_key: MEGASECRET1
400 api_versions:
401 identity: 3
402 volume: 2
403 source:
404 engine: git
405 address: https://github.com/openstack/horizon.git
406 rev: stable/havana
407
408Control dashboard behaviour
409
Adam Tenglerdbd1f052016-01-25 21:12:26 +0100410.. code-block:: yaml
411
Filip Pytlounf8a1d5b2015-10-06 16:28:32 +0200412 horizon:
413 server:
414 enabled: true
415 app:
416 openstack_dashboard_overrride:
Ales Komarek2e7d83b2016-11-22 22:58:12 +0100417 secret_key: password
Filip Pytlounf8a1d5b2015-10-06 16:28:32 +0200418 dashboards:
419 settings:
420 enabled: true
421 project:
422 enabled: false
423 order: 10
424 admin:
425 enabled: false
426 order: 20
427 source:
428 engine: git
429 address: https://github.com/openstack/horizon.git
430 rev: stable/juno
431
Alexander Noskov787a8122016-12-07 13:00:49 +0400432Enable WebSSO feature
433
434.. code-block:: yaml
435
436 horizon:
437 server:
438 enabled: true
439 websso:
440 login_url: "WEBROOT + 'auth/login/'"
441 logout_url: "WEBROOT + 'auth/logout/'"
442 websso_choices:
443 - saml2
444 - oidc
445
Ales Komarek231eb652017-04-11 16:01:19 +0200446
447More Information
448================
Filip Pytlounf8a1d5b2015-10-06 16:28:32 +0200449
450* https://github.com/openstack/horizon
451* 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 +0100452
Ales Komarek231eb652017-04-11 16:01:19 +0200453
Filip Pytloun219343c2017-02-02 13:02:03 +0100454Documentation and Bugs
455======================
456
457To learn how to install and update salt-formulas, consult the documentation
458available online at:
459
460 http://salt-formulas.readthedocs.io/
461
462In the unfortunate event that bugs are discovered, they should be reported to
463the appropriate issue tracker. Use Github issue tracker for specific salt
464formula:
465
466 https://github.com/salt-formulas/salt-formula-horizon/issues
467
468For feature requests, bug reports or blueprints affecting entire ecosystem,
469use Launchpad salt-formulas project:
470
471 https://launchpad.net/salt-formulas
472
473You can also join salt-formulas-users team and subscribe to mailing list:
474
475 https://launchpad.net/~salt-formulas-users
476
477Developers wishing to work on the salt-formulas projects should always base
478their work on master branch and submit pull request against specific formula.
479
480 https://github.com/salt-formulas/salt-formula-horizon
481
482Any questions or feedback is always welcome so feel free to join our IRC
483channel:
484
485 #salt-formulas @ irc.freenode.net