blob: 27511bdf02eb032c771168562cda2b46b3c0d316 [file] [log] [blame]
Filip Pytlounf8a1d5b2015-10-06 16:28:32 +02001
2=======
3Horizon
4=======
5
Ales Komarek3b2babb2015-11-28 00:35:15 +01006Horizon is the canonical implementation of OpenStacks Dashboard, which provides a web based user interface to OpenStack services including Nova, Swift, Keystone, etc.
Filip Pytlounf8a1d5b2015-10-06 16:28:32 +02007
8Sample pillars
9==============
10
11Packaged version of horizon
12---------------------------
13
14One horizon on server
15
16Simplest horizon setup with managed cloud-archive repo on ubuntu 12.04
17
Adam Tenglerdbd1f052016-01-25 21:12:26 +010018.. code-block:: yaml
19
Filip Pytlounf8a1d5b2015-10-06 16:28:32 +020020 linux:
21 system:
22 name: horizon
23 repo:
24 - cloudarchive-havana:
25 enabled: true
26 source: 'deb http://ubuntu-cloud.archive.canonical.com/ubuntu precise-updates/havana main'
27 pgpcheck: 0
28 horizon:
29 server:
30 manage_repo: true
31 enabled: true
32 secret_key: MEGASECRET
33 host:
34 name: cloud.lab.cz
35 cache:
36 engine: 'memcached'
37 host: '127.0.0.1'
38 port: 11211
39 prefix: 'CACHE_HORIZON'
40 identity:
41 engine: 'keystone'
42 host: '127.0.0.1'
43 port: 5000
44 api_version: 2
45 mail:
46 host: '127.0.0.1'
47
48Simple 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
59Horizon package setup with SSL
60
Adam Tenglerdbd1f052016-01-25 21:12:26 +010061.. code-block:: yaml
62
Filip Pytlounf8a1d5b2015-10-06 16:28:32 +020063 horizon:
64 server:
65 enabled: true
66 secret_key: MEGASECRET
67 version: juno
68 ssl:
69 enabled: true
70 authority: CA_Authority
71 host:
72 name: cloud.lab.cz
73 cache:
74 engine: 'memcached'
75 host: '127.0.0.1'
76 port: 11211
77 prefix: 'CACHE_HORIZON'
78 identity:
79 engine: 'keystone'
80 host: '127.0.0.1'
81 port: 5000
82 api_version: 2
83 mail:
84 host: '127.0.0.1'
85
86Multi-regional horizon setup
87
Adam Tenglerdbd1f052016-01-25 21:12:26 +010088.. code-block:: yaml
89
Filip Pytlounf8a1d5b2015-10-06 16:28:32 +020090 horizon:
91 server:
92 enabled: true
93 version: juno
94 secret_key: MEGASECRET
95 cache:
96 engine: 'memcached'
97 host: '127.0.0.1'
98 port: 11211
99 prefix: 'CACHE_HORIZON'
100 identity:
101 engine: 'keystone'
102 host: '127.0.0.1'
103 port: 5000
104 api_version: 2
105 mail:
106 host: '127.0.0.1'
107 regions:
108 - name: cluster1
109 address: http://cluster1.example.com:5000/v2.0
110 - name: cluster2
111 address: http://cluster2.example.com:5000/v2.0
112
113Horizon setup with sensu plugin
114
Adam Tenglerdbd1f052016-01-25 21:12:26 +0100115.. code-block:: yaml
116
Filip Pytlounf8a1d5b2015-10-06 16:28:32 +0200117 horizon:
118 server:
119 enabled: true
120 version: juno
121 sensu_api:
122 host: localhost
123 port: 4567
124 plugins:
125 - name: monitoring
126 app: horizon_monitoring
127 source:
128 type: git
129 address: git@repo1.robotice.cz:django/horizon-monitoring.git
130 rev: develop
131 - name: api-mask
132 app: api_mask
133 mask_url: 'custom-url.cz'
134 mask_protocol: 'http'
135 source:
136 type: git
137 address: git@repo1.robotice.cz:django/horizon-api-mask.git
138 rev: develop
139
140Sensu multi API
141
Adam Tenglerdbd1f052016-01-25 21:12:26 +0100142.. code-block:: yaml
143
Filip Pytlounf8a1d5b2015-10-06 16:28:32 +0200144 horizon:
145 server:
146 enabled: true
147 version: juno
148 sensu_api:
149 dc1:
150 host: localhost
151 port: 4567
152 dc2:
153 host: anotherhost
154 port: 4567
155
156Horizon setup with billometer plugin
157
Adam Tenglerdbd1f052016-01-25 21:12:26 +0100158.. code-block:: yaml
159
Filip Pytlounf8a1d5b2015-10-06 16:28:32 +0200160 horizon:
161 server:
162 enabled: true
163 version: juno
164 billometer_api:
165 host: localhost
166 port: 9753
167 api_version: 1
168 plugins:
169 - name: billing
170 app: horizon_billing
171 source:
172 type: git
173 address: git@repo1.robotice.cz:django/horizon-billing.git
174 rev: develop
175
176Horizon setup with contrail 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: icehouse
184 plugins:
185 - name: contrail
186 app: contrail_openstack_dashboard
187 override: true
188 source:
189 type: git
190 address: git@repo1.robotice.cz:django/horizon-contrail.git
191 rev: develop
192
193Horizon setup with sentry log handler
194
Adam Tenglerdbd1f052016-01-25 21:12:26 +0100195.. code-block:: yaml
196
Filip Pytlounf8a1d5b2015-10-06 16:28:32 +0200197 horizon:
198 server:
199 enabled: true
200 version: juno
201 ...
202 logging:
203 engine: raven
204 dsn: http://pub:private@sentry1.test.cz/2
205
206Multisite with Git source
207-------------------------
208
209Simple Horizon setup from git repository
210
Adam Tenglerdbd1f052016-01-25 21:12:26 +0100211.. code-block:: yaml
212
Filip Pytlounf8a1d5b2015-10-06 16:28:32 +0200213 horizon:
214 server:
215 enabled: true
216 app:
217 default:
218 secret_key: MEGASECRET
219 source:
220 engine: git
221 address: https://github.com/openstack/horizon.git
222 rev: stable/havana
223 cache:
224 engine: 'memcached'
225 host: '127.0.0.1'
226 port: 11211
227 prefix: 'CACHE_DEFAULT'
228 identity:
229 engine: 'keystone'
230 host: '127.0.0.1'
231 port: 5000
232 api_version: 2
233 mail:
234 host: '127.0.0.1'
235
236Themed multisite setup
237
Adam Tenglerdbd1f052016-01-25 21:12:26 +0100238.. code-block:: yaml
239
Filip Pytlounf8a1d5b2015-10-06 16:28:32 +0200240 horizon:
241 server:
242 enabled: true
243 app:
244 openstack1c:
245 secret_key: MEGASECRET1
246 source:
247 engine: git
248 address: https://github.com/openstack/horizon.git
249 rev: stable/havana
250 plugin:
251 contrail:
252 app: contrail_openstack_dashboard
253 override: true
254 source:
255 type: git
256 address: git@repo1.robotice.cz:django/horizon-contrail.git
257 rev: develop
258 theme:
259 app: site1_theme
260 source:
261 type: git
262 address: git@repo1.domain.com:django/horizon-site1-theme.git
263 cache:
264 engine: 'memcached'
265 host: '127.0.0.1'
266 port: 11211
267 prefix: 'CACHE_SITE1'
268 identity:
269 engine: 'keystone'
270 host: '127.0.0.1'
271 port: 5000
272 api_version: 2
273 mail:
274 host: '127.0.0.1'
275 openstack2:
276 secret_key: MEGASECRET2
277 source:
278 engine: git
279 address: https://repo1.domain.com/openstack/horizon.git
280 rev: stable/icehouse
281 plugin:
282 contrail:
283 app: contrail_openstack_dashboard
284 override: true
285 source:
286 type: git
287 address: git@repo1.domain.com:django/horizon-contrail.git
288 rev: develop
289 monitoring:
290 app: horizon_monitoring
291 source:
292 type: git
293 address: git@domain.com:django/horizon-monitoring.git
294 rev: develop
295 theme:
296 app: bootswatch_theme
297 source:
298 type: git
299 address: git@repo1.robotice.cz:django/horizon-bootswatch-theme.git
300 rev: develop
301 cache:
302 engine: 'memcached'
303 host: '127.0.0.1'
304 port: 11211
305 prefix: 'CACHE_SITE2'
306 identity:
307 engine: 'keystone'
308 host: '127.0.0.1'
309 port: 5000
310 api_version: 3
311 mail:
312 host: '127.0.0.1'
313
314API versions override
315
Adam Tenglerdbd1f052016-01-25 21:12:26 +0100316.. code-block:: yaml
317
Filip Pytlounf8a1d5b2015-10-06 16:28:32 +0200318 horizon:
319 server:
320 enabled: true
321 app:
322 openstack_api_overrride:
323 secret_key: MEGASECRET1
324 api_versions:
325 identity: 3
326 volume: 2
327 source:
328 engine: git
329 address: https://github.com/openstack/horizon.git
330 rev: stable/havana
331
332Control dashboard behaviour
333
Adam Tenglerdbd1f052016-01-25 21:12:26 +0100334.. code-block:: yaml
335
Filip Pytlounf8a1d5b2015-10-06 16:28:32 +0200336 horizon:
337 server:
338 enabled: true
339 app:
340 openstack_dashboard_overrride:
341 secret_key: MEGASECRET1
342 dashboards:
343 settings:
344 enabled: true
345 project:
346 enabled: false
347 order: 10
348 admin:
349 enabled: false
350 order: 20
351 source:
352 engine: git
353 address: https://github.com/openstack/horizon.git
354 rev: stable/juno
355
356Read more
357=========
358
359* https://github.com/openstack/horizon
360* http://dijks.wordpress.com/2012/07/06/how-to-change-screen-resolution-of-novnc-client-in-openstack-essex-dashboard-nova-horizon/
361
362
363Things to improve
364=================
365
366* ALLOWED_HOSTS - do not use * - introduce parameters
367* CACHES - configure caching engine - is it not allowed by default?
368* SESSION_ENGINE - change it from signed cookie to something else
369* policy files - look into these files and think of further configuration/parametrisation