blob: 769a4eeb94e262c157e6f22754535b259c8161dc [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
Ales Komarek231eb652017-04-11 16:01:19 +020049
50Horizon with enabled SSL security (when SSL is realised by proxy)
51
52.. code-block:: yaml
53
54 horizon:
55 server:
56 enabled: True
57 secure: True
58
59
Filip Pytlounf8a1d5b2015-10-06 16:28:32 +020060Horizon package setup with SSL
61
Adam Tenglerdbd1f052016-01-25 21:12:26 +010062.. code-block:: yaml
63
Filip Pytlounf8a1d5b2015-10-06 16:28:32 +020064 horizon:
65 server:
66 enabled: true
67 secret_key: MEGASECRET
68 version: juno
69 ssl:
70 enabled: true
71 authority: CA_Authority
72 host:
73 name: cloud.lab.cz
74 cache:
75 engine: 'memcached'
76 host: '127.0.0.1'
77 port: 11211
78 prefix: 'CACHE_HORIZON'
Oleksii Chupryn7d3d6482017-03-07 11:23:27 +020079 api_versions:
80 identity: 2
Filip Pytlounf8a1d5b2015-10-06 16:28:32 +020081 identity:
82 engine: 'keystone'
83 host: '127.0.0.1'
84 port: 5000
Filip Pytlounf8a1d5b2015-10-06 16:28:32 +020085 mail:
86 host: '127.0.0.1'
87
Adam Tenglerddef0502017-05-04 11:36:54 +000088Horizon with custom SESSION_ENGINE (default is "signed_cookies", valid options are: "signed_cookies", "cache", "file") and SESSION_TIMEOUT
89
90.. code-block:: yaml
91
92 horizon:
93 server:
94 enabled: True
95 secure: True
96 session:
97 engine: 'cache'
98 timeout: 43200
99
Filip Pytlounf8a1d5b2015-10-06 16:28:32 +0200100Multi-regional horizon setup
101
Adam Tenglerdbd1f052016-01-25 21:12:26 +0100102.. code-block:: yaml
103
Filip Pytlounf8a1d5b2015-10-06 16:28:32 +0200104 horizon:
105 server:
106 enabled: true
107 version: juno
108 secret_key: MEGASECRET
109 cache:
110 engine: 'memcached'
111 host: '127.0.0.1'
112 port: 11211
113 prefix: 'CACHE_HORIZON'
Oleksii Chupryn7d3d6482017-03-07 11:23:27 +0200114 api_versions:
115 identity: 2
Filip Pytlounf8a1d5b2015-10-06 16:28:32 +0200116 identity:
117 engine: 'keystone'
118 host: '127.0.0.1'
119 port: 5000
Filip Pytlounf8a1d5b2015-10-06 16:28:32 +0200120 mail:
121 host: '127.0.0.1'
122 regions:
123 - name: cluster1
124 address: http://cluster1.example.com:5000/v2.0
125 - name: cluster2
126 address: http://cluster2.example.com:5000/v2.0
127
128Horizon setup with sensu plugin
129
Adam Tenglerdbd1f052016-01-25 21:12:26 +0100130.. code-block:: yaml
131
Filip Pytlounf8a1d5b2015-10-06 16:28:32 +0200132 horizon:
133 server:
134 enabled: true
135 version: juno
136 sensu_api:
137 host: localhost
138 port: 4567
Ales Komarek2e7d83b2016-11-22 22:58:12 +0100139 plugin:
140 monitoring:
141 app: horizon_monitoring
142 source:
143 type: git
144 address: git@repo1.robotice.cz:django/horizon-monitoring.git
145 rev: develop
Filip Pytlounf8a1d5b2015-10-06 16:28:32 +0200146
147Sensu multi API
148
Adam Tenglerdbd1f052016-01-25 21:12:26 +0100149.. code-block:: yaml
150
Filip Pytlounf8a1d5b2015-10-06 16:28:32 +0200151 horizon:
152 server:
153 enabled: true
154 version: juno
155 sensu_api:
156 dc1:
157 host: localhost
158 port: 4567
159 dc2:
160 host: anotherhost
161 port: 4567
162
Ales Komarek2e7d83b2016-11-22 22:58:12 +0100163Horizon setup with jenkins plugin
164
165.. code-block:: yaml
166
167 horizon:
168 server:
169 enabled: true
170 version: juno
171 jenkins_api:
172 url: https://localhost:8080
173 user: admin
174 password: pwd
175 plugin:
176 jenkins:
177 app: horizon_jenkins
178 source:
179 type: pkg
180
Filip Pytlounf8a1d5b2015-10-06 16:28:32 +0200181Horizon setup with billometer plugin
182
Adam Tenglerdbd1f052016-01-25 21:12:26 +0100183.. code-block:: yaml
184
Filip Pytlounf8a1d5b2015-10-06 16:28:32 +0200185 horizon:
186 server:
187 enabled: true
188 version: juno
189 billometer_api:
190 host: localhost
191 port: 9753
192 api_version: 1
Ales Komarek2e7d83b2016-11-22 22:58:12 +0100193 plugin:
194 billing:
195 app: horizon_billing
196 source:
197 type: git
198 address: git@repo1.robotice.cz:django/horizon-billing.git
199 rev: develop
Filip Pytlounf8a1d5b2015-10-06 16:28:32 +0200200
201Horizon setup with contrail plugin
202
Adam Tenglerdbd1f052016-01-25 21:12:26 +0100203.. code-block:: yaml
204
Filip Pytlounf8a1d5b2015-10-06 16:28:32 +0200205 horizon:
206 server:
207 enabled: true
208 version: icehouse
Ales Komarek2e7d83b2016-11-22 22:58:12 +0100209 plugin:
210 contrail:
211 app: contrail_openstack_dashboard
212 override: true
213 source:
214 type: git
215 address: git@repo1.robotice.cz:django/horizon-contrail.git
216 rev: develop
Filip Pytlounf8a1d5b2015-10-06 16:28:32 +0200217
218Horizon setup with sentry log handler
219
Adam Tenglerdbd1f052016-01-25 21:12:26 +0100220.. code-block:: yaml
221
Filip Pytlounf8a1d5b2015-10-06 16:28:32 +0200222 horizon:
223 server:
224 enabled: true
225 version: juno
226 ...
227 logging:
228 engine: raven
229 dsn: http://pub:private@sentry1.test.cz/2
230
231Multisite with Git source
232-------------------------
233
234Simple Horizon setup from git repository
235
Adam Tenglerdbd1f052016-01-25 21:12:26 +0100236.. code-block:: yaml
237
Filip Pytlounf8a1d5b2015-10-06 16:28:32 +0200238 horizon:
239 server:
240 enabled: true
241 app:
242 default:
243 secret_key: MEGASECRET
244 source:
245 engine: git
246 address: https://github.com/openstack/horizon.git
247 rev: stable/havana
248 cache:
249 engine: 'memcached'
250 host: '127.0.0.1'
251 port: 11211
252 prefix: 'CACHE_DEFAULT'
Oleksii Chupryn7d3d6482017-03-07 11:23:27 +0200253 api_versions:
254 identity: 2
Filip Pytlounf8a1d5b2015-10-06 16:28:32 +0200255 identity:
256 engine: 'keystone'
257 host: '127.0.0.1'
258 port: 5000
Filip Pytlounf8a1d5b2015-10-06 16:28:32 +0200259 mail:
260 host: '127.0.0.1'
261
262Themed multisite setup
263
Adam Tenglerdbd1f052016-01-25 21:12:26 +0100264.. code-block:: yaml
265
Filip Pytlounf8a1d5b2015-10-06 16:28:32 +0200266 horizon:
267 server:
268 enabled: true
269 app:
270 openstack1c:
271 secret_key: MEGASECRET1
272 source:
273 engine: git
274 address: https://github.com/openstack/horizon.git
275 rev: stable/havana
276 plugin:
277 contrail:
278 app: contrail_openstack_dashboard
279 override: true
280 source:
281 type: git
282 address: git@repo1.robotice.cz:django/horizon-contrail.git
283 rev: develop
284 theme:
285 app: site1_theme
286 source:
287 type: git
288 address: git@repo1.domain.com:django/horizon-site1-theme.git
289 cache:
290 engine: 'memcached'
291 host: '127.0.0.1'
292 port: 11211
293 prefix: 'CACHE_SITE1'
Oleksii Chupryn7d3d6482017-03-07 11:23:27 +0200294 api_versions:
295 identity: 2
Filip Pytlounf8a1d5b2015-10-06 16:28:32 +0200296 identity:
297 engine: 'keystone'
298 host: '127.0.0.1'
299 port: 5000
Filip Pytlounf8a1d5b2015-10-06 16:28:32 +0200300 mail:
301 host: '127.0.0.1'
302 openstack2:
303 secret_key: MEGASECRET2
304 source:
305 engine: git
306 address: https://repo1.domain.com/openstack/horizon.git
307 rev: stable/icehouse
308 plugin:
309 contrail:
310 app: contrail_openstack_dashboard
311 override: true
312 source:
313 type: git
314 address: git@repo1.domain.com:django/horizon-contrail.git
315 rev: develop
316 monitoring:
317 app: horizon_monitoring
318 source:
319 type: git
320 address: git@domain.com:django/horizon-monitoring.git
321 rev: develop
322 theme:
323 app: bootswatch_theme
324 source:
325 type: git
326 address: git@repo1.robotice.cz:django/horizon-bootswatch-theme.git
327 rev: develop
328 cache:
329 engine: 'memcached'
330 host: '127.0.0.1'
331 port: 11211
332 prefix: 'CACHE_SITE2'
Oleksii Chupryn7d3d6482017-03-07 11:23:27 +0200333 api_versions:
334 identity: 3
Filip Pytlounf8a1d5b2015-10-06 16:28:32 +0200335 identity:
336 engine: 'keystone'
337 host: '127.0.0.1'
338 port: 5000
Filip Pytlounf8a1d5b2015-10-06 16:28:32 +0200339 mail:
340 host: '127.0.0.1'
341
342API versions override
343
Adam Tenglerdbd1f052016-01-25 21:12:26 +0100344.. code-block:: yaml
345
Filip Pytlounf8a1d5b2015-10-06 16:28:32 +0200346 horizon:
347 server:
348 enabled: true
349 app:
350 openstack_api_overrride:
351 secret_key: MEGASECRET1
352 api_versions:
353 identity: 3
354 volume: 2
355 source:
356 engine: git
357 address: https://github.com/openstack/horizon.git
358 rev: stable/havana
359
360Control dashboard behaviour
361
Adam Tenglerdbd1f052016-01-25 21:12:26 +0100362.. code-block:: yaml
363
Filip Pytlounf8a1d5b2015-10-06 16:28:32 +0200364 horizon:
365 server:
366 enabled: true
367 app:
368 openstack_dashboard_overrride:
Ales Komarek2e7d83b2016-11-22 22:58:12 +0100369 secret_key: password
Filip Pytlounf8a1d5b2015-10-06 16:28:32 +0200370 dashboards:
371 settings:
372 enabled: true
373 project:
374 enabled: false
375 order: 10
376 admin:
377 enabled: false
378 order: 20
379 source:
380 engine: git
381 address: https://github.com/openstack/horizon.git
382 rev: stable/juno
383
Alexander Noskov787a8122016-12-07 13:00:49 +0400384Enable WebSSO feature
385
386.. code-block:: yaml
387
388 horizon:
389 server:
390 enabled: true
391 websso:
392 login_url: "WEBROOT + 'auth/login/'"
393 logout_url: "WEBROOT + 'auth/logout/'"
394 websso_choices:
395 - saml2
396 - oidc
397
Ales Komarek231eb652017-04-11 16:01:19 +0200398
399More Information
400================
Filip Pytlounf8a1d5b2015-10-06 16:28:32 +0200401
402* https://github.com/openstack/horizon
403* 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 +0100404
Ales Komarek231eb652017-04-11 16:01:19 +0200405
Filip Pytloun219343c2017-02-02 13:02:03 +0100406Documentation and Bugs
407======================
408
409To learn how to install and update salt-formulas, consult the documentation
410available online at:
411
412 http://salt-formulas.readthedocs.io/
413
414In the unfortunate event that bugs are discovered, they should be reported to
415the appropriate issue tracker. Use Github issue tracker for specific salt
416formula:
417
418 https://github.com/salt-formulas/salt-formula-horizon/issues
419
420For feature requests, bug reports or blueprints affecting entire ecosystem,
421use Launchpad salt-formulas project:
422
423 https://launchpad.net/salt-formulas
424
425You can also join salt-formulas-users team and subscribe to mailing list:
426
427 https://launchpad.net/~salt-formulas-users
428
429Developers wishing to work on the salt-formulas projects should always base
430their work on master branch and submit pull request against specific formula.
431
432 https://github.com/salt-formulas/salt-formula-horizon
433
434Any questions or feedback is always welcome so feel free to join our IRC
435channel:
436
437 #salt-formulas @ irc.freenode.net