blob: 082d4354c03954b2f1ed2bfb3ef1082e2ae79b82 [file] [log] [blame]
Filip Pytlounf8a1d5b2015-10-06 16:28:32 +02001
OlgaGusarenko8c33bca2018-07-30 18:33:34 +03002=====
3Usage
4=====
Filip Pytlounf8a1d5b2015-10-06 16:28:32 +02005
OlgaGusarenko8c33bca2018-07-30 18:33:34 +03006Horizon is the canonical implementation of OpenStack Dashboard, which
7provides a web-based user interface to OpenStack services including Nova,
Ales Komarek231eb652017-04-11 16:01:19 +02008Swift, Keystone, etc.
Filip Pytlounf8a1d5b2015-10-06 16:28:32 +02009
Ales Komarek231eb652017-04-11 16:01:19 +020010Sample Pillars
Filip Pytlounf8a1d5b2015-10-06 16:28:32 +020011==============
12
OlgaGusarenko8c33bca2018-07-30 18:33:34 +030013Simplest Horizon setup:
Filip Pytlounf8a1d5b2015-10-06 16:28:32 +020014
Adam Tenglerdbd1f052016-01-25 21:12:26 +010015.. code-block:: yaml
16
Filip Pytlounf8a1d5b2015-10-06 16:28:32 +020017 horizon:
18 server:
Filip Pytlounf8a1d5b2015-10-06 16:28:32 +020019 enabled: true
Ales Komarek2e7d83b2016-11-22 22:58:12 +010020 secret_key: secret
Filip Pytlounf8a1d5b2015-10-06 16:28:32 +020021 host:
22 name: cloud.lab.cz
23 cache:
24 engine: 'memcached'
25 host: '127.0.0.1'
26 port: 11211
27 prefix: 'CACHE_HORIZON'
Oleksii Chupryn7d3d6482017-03-07 11:23:27 +020028 api_versions:
29 identity: 2
Filip Pytlounf8a1d5b2015-10-06 16:28:32 +020030 identity:
31 engine: 'keystone'
32 host: '127.0.0.1'
33 port: 5000
Filip Pytlounf8a1d5b2015-10-06 16:28:32 +020034 mail:
35 host: '127.0.0.1'
36
OlgaGusarenko8c33bca2018-07-30 18:33:34 +030037Multidomain setup for Horizon:
Dmitry Stremkovskiy381e5602017-07-18 18:50:13 +030038
39.. code-block:: yaml
40
41 horizon:
42 server:
43 enabled: true
44 default_domain: MYDOMAIN
45 multidomain: True
46
OlgaGusarenko8c33bca2018-07-30 18:33:34 +030047Simple branded Horizon:
Filip Pytlounf8a1d5b2015-10-06 16:28:32 +020048
Adam Tenglerdbd1f052016-01-25 21:12:26 +010049.. code-block:: yaml
50
Filip Pytlounf8a1d5b2015-10-06 16:28:32 +020051 horizon:
52 server:
53 enabled: true
54 branding: 'OpenStack Company Dashboard'
55 default_dashboard: 'admin'
56 help_url: 'http://doc.domain.com'
57
Oleh Hryhorov179b8ee2019-02-13 16:04:11 +000058Dashboard settings with HORIZON_CONFIG dictionary:
59
60.. code-block:: yaml
61
62 horizon:
63 server:
64 enabled: true
65 horizon_config:
66 user_home: "openstack_dashboard.views.get_user_home"
67 ajax_queue_limit: 10
68 auto_fade_alerts:
69 delay: 3000
70 fade_duration: 1500
71 types:
72 - alert-success
73 - alert-info
74 help_url: "http://docs.openstack.org"
75 modal_backdrop: "static"
76 disable_password_reveal: True
77 password_validator:
78 regex: "^.{8,18}$"
79 help_text: "Password must be between 8 and 18 characters."
80 password_autocomplete: "off"
81
OlgaGusarenko8c33bca2018-07-30 18:33:34 +030082Horizon with policy files metadata. With source mine you can obtain real
83time policy file state from targeted node (OpenStack control node),
84provided you have policy file published to specified grain key. Source
85file will obtain static policy definition from formula files directory.
Adam Tengler08874e32017-05-05 17:24:29 +000086
87.. code-block:: yaml
88
89 horizon:
90 server:
91 enabled: true
92 policy:
93 identity:
94 source: mine
95 host: ctl01.my-domain.local
96 name: keystone_policy.json
97 grain_name: keystone_policy
98 enabled: true
Denis Egorenkoa69f6352019-12-04 17:51:47 +040099 dns:
100 enabled: True
101 source: 'mine'
102 target_type: 'compound'
103 host: 'I@designate:server'
104 grain_name: 'designate_policy'
105 name: 'designate_policy.json'
Adam Tengler08874e32017-05-05 17:24:29 +0000106 compute:
107 source: file
108 name: nova_policy.json
109 enabled: true
110 network:
111 source: file
112 name: neutron_policy.json
113 enabled: true
114 image:
115 source: file
116 name: glance_policy.json
117 enabled: true
118 volume:
119 source: file
120 name: cinder_policy.json
121 enabled: true
122 telemetry:
123 source: file
124 name: ceilometer_policy.json
125 enabled: true
126 orchestration:
127 source: file
128 name: heat_policy.json
129 enabled: true
Ales Komarek231eb652017-04-11 16:01:19 +0200130
OlgaGusarenko8c33bca2018-07-30 18:33:34 +0300131Horizon with enabled SSL security (when SSL is realised by proxy):
Ales Komarek231eb652017-04-11 16:01:19 +0200132
133.. code-block:: yaml
134
135 horizon:
136 server:
137 enabled: True
138 secure: True
139
140
OlgaGusarenko8c33bca2018-07-30 18:33:34 +0300141Horizon package setup with SSL:
Adam Tengler250e9b32018-06-26 14:39:31 +0000142
OlgaGusarenko8c33bca2018-07-30 18:33:34 +0300143.. important:: For the sake of backwards compatibility, the ``ssl_no_verify``
144 attribute defaults to ``true`` when
145 ``horizon:server:identity:encryption`` is set to ``'ssl'``.
Filip Pytlounf8a1d5b2015-10-06 16:28:32 +0200146
Adam Tenglerdbd1f052016-01-25 21:12:26 +0100147.. code-block:: yaml
148
Filip Pytlounf8a1d5b2015-10-06 16:28:32 +0200149 horizon:
150 server:
151 enabled: true
152 secret_key: MEGASECRET
153 version: juno
Adam Tengler250e9b32018-06-26 14:39:31 +0000154 ssl_no_verify: false
Filip Pytlounf8a1d5b2015-10-06 16:28:32 +0200155 ssl:
156 enabled: true
157 authority: CA_Authority
158 host:
159 name: cloud.lab.cz
160 cache:
161 engine: 'memcached'
162 host: '127.0.0.1'
163 port: 11211
164 prefix: 'CACHE_HORIZON'
Oleksii Chupryn7d3d6482017-03-07 11:23:27 +0200165 api_versions:
166 identity: 2
Filip Pytlounf8a1d5b2015-10-06 16:28:32 +0200167 identity:
168 engine: 'keystone'
169 host: '127.0.0.1'
170 port: 5000
Filip Pytlounf8a1d5b2015-10-06 16:28:32 +0200171 mail:
172 host: '127.0.0.1'
173
OlgaGusarenko8c33bca2018-07-30 18:33:34 +0300174Horizon with custom ``SESSION_ENGINE`` (default is
175``signed_cookies``, valid options are: ``signed_cookies``,
176``cache``, ``file``) and ``SESSION_TIMEOUT``:
Adam Tenglerddef0502017-05-04 11:36:54 +0000177
178.. code-block:: yaml
179
180 horizon:
181 server:
182 enabled: True
183 secure: True
184 session:
185 engine: 'cache'
186 timeout: 43200
187
OlgaGusarenko8c33bca2018-07-30 18:33:34 +0300188Multi-regional Horizon setup:
Filip Pytlounf8a1d5b2015-10-06 16:28:32 +0200189
Adam Tenglerdbd1f052016-01-25 21:12:26 +0100190.. code-block:: yaml
191
Filip Pytlounf8a1d5b2015-10-06 16:28:32 +0200192 horizon:
193 server:
194 enabled: true
195 version: juno
196 secret_key: MEGASECRET
197 cache:
198 engine: 'memcached'
199 host: '127.0.0.1'
200 port: 11211
201 prefix: 'CACHE_HORIZON'
Oleksii Chupryn7d3d6482017-03-07 11:23:27 +0200202 api_versions:
203 identity: 2
Filip Pytlounf8a1d5b2015-10-06 16:28:32 +0200204 identity:
205 engine: 'keystone'
206 host: '127.0.0.1'
207 port: 5000
Filip Pytlounf8a1d5b2015-10-06 16:28:32 +0200208 mail:
209 host: '127.0.0.1'
210 regions:
211 - name: cluster1
212 address: http://cluster1.example.com:5000/v2.0
213 - name: cluster2
214 address: http://cluster2.example.com:5000/v2.0
215
Pavel Cizinsky4c773642018-08-21 15:28:57 +0200216Configuration of LAUNCH_INSTANCE_DEFAULTS parameter:
217
218.. code-block:: yaml
219
220 horizon:
221 server:
222 launch_instance_defaults:
223 config_drive: False
224 enable_scheduler_hints: True
225 disable_image: False
226 disable_instance_snapshot: False
227 disable_volume: False
228 disable_volume_snapshot: False
229 create_volume: False
230
OlgaGusarenko8c33bca2018-07-30 18:33:34 +0300231Horizon setup with sensu plugin:
Filip Pytlounf8a1d5b2015-10-06 16:28:32 +0200232
Adam Tenglerdbd1f052016-01-25 21:12:26 +0100233.. code-block:: yaml
234
Filip Pytlounf8a1d5b2015-10-06 16:28:32 +0200235 horizon:
236 server:
237 enabled: true
238 version: juno
239 sensu_api:
240 host: localhost
241 port: 4567
Ales Komarek2e7d83b2016-11-22 22:58:12 +0100242 plugin:
243 monitoring:
244 app: horizon_monitoring
245 source:
246 type: git
247 address: git@repo1.robotice.cz:django/horizon-monitoring.git
248 rev: develop
Filip Pytlounf8a1d5b2015-10-06 16:28:32 +0200249
OlgaGusarenko8c33bca2018-07-30 18:33:34 +0300250Sensu multi API:
Filip Pytlounf8a1d5b2015-10-06 16:28:32 +0200251
Adam Tenglerdbd1f052016-01-25 21:12:26 +0100252.. code-block:: yaml
253
Filip Pytlounf8a1d5b2015-10-06 16:28:32 +0200254 horizon:
255 server:
256 enabled: true
257 version: juno
258 sensu_api:
259 dc1:
260 host: localhost
261 port: 4567
262 dc2:
263 host: anotherhost
264 port: 4567
265
OlgaGusarenko8c33bca2018-07-30 18:33:34 +0300266Horizon setup with jenkins plugin:
Ales Komarek2e7d83b2016-11-22 22:58:12 +0100267
268.. code-block:: yaml
269
270 horizon:
271 server:
272 enabled: true
273 version: juno
274 jenkins_api:
275 url: https://localhost:8080
276 user: admin
277 password: pwd
278 plugin:
279 jenkins:
280 app: horizon_jenkins
281 source:
282 type: pkg
283
OlgaGusarenko8c33bca2018-07-30 18:33:34 +0300284Horizon setup with billometer plugin:
Filip Pytlounf8a1d5b2015-10-06 16:28:32 +0200285
Adam Tenglerdbd1f052016-01-25 21:12:26 +0100286.. code-block:: yaml
287
Filip Pytlounf8a1d5b2015-10-06 16:28:32 +0200288 horizon:
289 server:
290 enabled: true
291 version: juno
292 billometer_api:
293 host: localhost
294 port: 9753
295 api_version: 1
Ales Komarek2e7d83b2016-11-22 22:58:12 +0100296 plugin:
297 billing:
298 app: horizon_billing
299 source:
300 type: git
301 address: git@repo1.robotice.cz:django/horizon-billing.git
302 rev: develop
Filip Pytlounf8a1d5b2015-10-06 16:28:32 +0200303
OlgaGusarenko8c33bca2018-07-30 18:33:34 +0300304Horizon setup with Contrail plugin:
Filip Pytlounf8a1d5b2015-10-06 16:28:32 +0200305
Adam Tenglerdbd1f052016-01-25 21:12:26 +0100306.. code-block:: yaml
307
Filip Pytlounf8a1d5b2015-10-06 16:28:32 +0200308 horizon:
309 server:
310 enabled: true
311 version: icehouse
Ales Komarek2e7d83b2016-11-22 22:58:12 +0100312 plugin:
313 contrail:
314 app: contrail_openstack_dashboard
315 override: true
316 source:
317 type: git
318 address: git@repo1.robotice.cz:django/horizon-contrail.git
319 rev: develop
Filip Pytlounf8a1d5b2015-10-06 16:28:32 +0200320
OlgaGusarenko8c33bca2018-07-30 18:33:34 +0300321Horizon setup with sentry log handler:
Filip Pytlounf8a1d5b2015-10-06 16:28:32 +0200322
Adam Tenglerdbd1f052016-01-25 21:12:26 +0100323.. code-block:: yaml
324
Filip Pytlounf8a1d5b2015-10-06 16:28:32 +0200325 horizon:
326 server:
327 enabled: true
328 version: juno
329 ...
330 logging:
331 engine: raven
332 dsn: http://pub:private@sentry1.test.cz/2
333
334Multisite with Git source
335-------------------------
336
OlgaGusarenko8c33bca2018-07-30 18:33:34 +0300337Simple Horizon setup from Git repository:
Filip Pytlounf8a1d5b2015-10-06 16:28:32 +0200338
Adam Tenglerdbd1f052016-01-25 21:12:26 +0100339.. code-block:: yaml
340
Filip Pytlounf8a1d5b2015-10-06 16:28:32 +0200341 horizon:
342 server:
343 enabled: true
344 app:
345 default:
346 secret_key: MEGASECRET
347 source:
348 engine: git
349 address: https://github.com/openstack/horizon.git
350 rev: stable/havana
351 cache:
352 engine: 'memcached'
353 host: '127.0.0.1'
354 port: 11211
355 prefix: 'CACHE_DEFAULT'
Oleksii Chupryn7d3d6482017-03-07 11:23:27 +0200356 api_versions:
357 identity: 2
Filip Pytlounf8a1d5b2015-10-06 16:28:32 +0200358 identity:
359 engine: 'keystone'
360 host: '127.0.0.1'
361 port: 5000
Filip Pytlounf8a1d5b2015-10-06 16:28:32 +0200362 mail:
363 host: '127.0.0.1'
364
OlgaGusarenko8c33bca2018-07-30 18:33:34 +0300365Themed multisite setup:
Filip Pytlounf8a1d5b2015-10-06 16:28:32 +0200366
Adam Tenglerdbd1f052016-01-25 21:12:26 +0100367.. code-block:: yaml
368
Filip Pytlounf8a1d5b2015-10-06 16:28:32 +0200369 horizon:
370 server:
371 enabled: true
372 app:
373 openstack1c:
374 secret_key: MEGASECRET1
375 source:
376 engine: git
377 address: https://github.com/openstack/horizon.git
378 rev: stable/havana
379 plugin:
380 contrail:
381 app: contrail_openstack_dashboard
382 override: true
383 source:
384 type: git
385 address: git@repo1.robotice.cz:django/horizon-contrail.git
386 rev: develop
387 theme:
388 app: site1_theme
389 source:
390 type: git
391 address: git@repo1.domain.com:django/horizon-site1-theme.git
392 cache:
393 engine: 'memcached'
394 host: '127.0.0.1'
395 port: 11211
396 prefix: 'CACHE_SITE1'
Oleksii Chupryn7d3d6482017-03-07 11:23:27 +0200397 api_versions:
398 identity: 2
Filip Pytlounf8a1d5b2015-10-06 16:28:32 +0200399 identity:
400 engine: 'keystone'
401 host: '127.0.0.1'
402 port: 5000
Filip Pytlounf8a1d5b2015-10-06 16:28:32 +0200403 mail:
404 host: '127.0.0.1'
405 openstack2:
406 secret_key: MEGASECRET2
407 source:
408 engine: git
409 address: https://repo1.domain.com/openstack/horizon.git
410 rev: stable/icehouse
411 plugin:
412 contrail:
413 app: contrail_openstack_dashboard
414 override: true
415 source:
416 type: git
417 address: git@repo1.domain.com:django/horizon-contrail.git
418 rev: develop
419 monitoring:
420 app: horizon_monitoring
421 source:
422 type: git
423 address: git@domain.com:django/horizon-monitoring.git
424 rev: develop
425 theme:
426 app: bootswatch_theme
427 source:
428 type: git
429 address: git@repo1.robotice.cz:django/horizon-bootswatch-theme.git
430 rev: develop
431 cache:
432 engine: 'memcached'
433 host: '127.0.0.1'
434 port: 11211
435 prefix: 'CACHE_SITE2'
Oleksii Chupryn7d3d6482017-03-07 11:23:27 +0200436 api_versions:
437 identity: 3
Filip Pytlounf8a1d5b2015-10-06 16:28:32 +0200438 identity:
439 engine: 'keystone'
440 host: '127.0.0.1'
441 port: 5000
Filip Pytlounf8a1d5b2015-10-06 16:28:32 +0200442 mail:
443 host: '127.0.0.1'
444
Adam Tengler383e5712018-06-26 20:09:54 +0000445Set advanced theme options (for Horizon version Mitaka and newer).
446
447Full example:
448
449.. code-block:: yaml
450
451 horizon:
452 server:
453 themes:
454 default: default # optional, default: "default"
455 directory: themes # optional, default: "themes"
456 cookie_name: theme # optional, default: "theme"
457 available:
458 default: # slug
459 name: "Default" # display name
460 description: "Default style theme"
461 path: "themes/default" # optional, default: "<directory>/<slug>", e.g. "themes/default"
462 enabled: True
463 material:
464 name: "Material"
465 description: "Google's Material Design style theme"
466 path: "themes/material"
467 enabled: True
468
469Minimal example:
470
471.. code-block:: yaml
472
473 horizon:
474 server:
475 theme:
476 available:
477 default: # slug
478 name: "Default" # display name
479 description: "Default style theme"
480 material:
481 name: "Material"
482 description: "Google's Material Design style theme"
483
OlgaGusarenko8c33bca2018-07-30 18:33:34 +0300484API versions override:
Filip Pytlounf8a1d5b2015-10-06 16:28:32 +0200485
Adam Tenglerdbd1f052016-01-25 21:12:26 +0100486.. code-block:: yaml
487
Filip Pytlounf8a1d5b2015-10-06 16:28:32 +0200488 horizon:
489 server:
490 enabled: true
491 app:
492 openstack_api_overrride:
493 secret_key: MEGASECRET1
494 api_versions:
495 identity: 3
496 volume: 2
497 source:
498 engine: git
499 address: https://github.com/openstack/horizon.git
500 rev: stable/havana
501
OlgaGusarenko8c33bca2018-07-30 18:33:34 +0300502Control dashboard behavior:
Filip Pytlounf8a1d5b2015-10-06 16:28:32 +0200503
Adam Tenglerdbd1f052016-01-25 21:12:26 +0100504.. code-block:: yaml
505
Filip Pytlounf8a1d5b2015-10-06 16:28:32 +0200506 horizon:
507 server:
508 enabled: true
509 app:
510 openstack_dashboard_overrride:
Ales Komarek2e7d83b2016-11-22 22:58:12 +0100511 secret_key: password
Filip Pytlounf8a1d5b2015-10-06 16:28:32 +0200512 dashboards:
513 settings:
514 enabled: true
515 project:
516 enabled: false
517 order: 10
518 admin:
519 enabled: false
520 order: 20
521 source:
522 engine: git
523 address: https://github.com/openstack/horizon.git
524 rev: stable/juno
525
OlgaGusarenko8c33bca2018-07-30 18:33:34 +0300526Enable WebSSO feature. Define a list of choices
527[supported choices: oidc, saml2], ``credentials`` choice
528will be automatically appended and choice description is
529predefined. DEPRECATED
Aleksieiev, Oleksii318d9de2018-05-18 16:37:18 -0700530
OlgaGusarenko8c33bca2018-07-30 18:33:34 +0300531WebSSO with credentials and saml2:
Alexander Noskov787a8122016-12-07 13:00:49 +0400532
533.. code-block:: yaml
534
535 horizon:
536 server:
537 enabled: true
538 websso:
539 login_url: "WEBROOT + 'auth/login/'"
540 logout_url: "WEBROOT + 'auth/logout/'"
Aleksieiev, Oleksii318d9de2018-05-18 16:37:18 -0700541 login_redirect_url: "WEBROOT + 'project/'"
Alexander Noskov787a8122016-12-07 13:00:49 +0400542 websso_choices:
543 - saml2
Alexander Noskov787a8122016-12-07 13:00:49 +0400544
OlgaGusarenko8c33bca2018-07-30 18:33:34 +0300545Enable WebSSO feature. Define a map of choices in the following
546format: ``{"<choice_name>": {"description": "<choice_description>"}``.
Aleksieiev, Oleksii318d9de2018-05-18 16:37:18 -0700547
OlgaGusarenko8c33bca2018-07-30 18:33:34 +0300548WebSSO with saml2 and credentials:
Aleksieiev, Oleksii318d9de2018-05-18 16:37:18 -0700549
550.. code-block:: yaml
551
552 horizon:
553 server:
554 enabled: true
555 websso:
556 login_url: "WEBROOT + 'auth/login/'"
557 logout_url: "WEBROOT + 'auth/logout/'"
558 login_redirect_url: "WEBROOT + 'project/'"
559 websso_choices:
560 saml2:
561 description: "Security Assertion Markup Language"
562 credentials:
563 description: "Keystone Credentials"
564
OlgaGusarenko8c33bca2018-07-30 18:33:34 +0300565WebSSO with IDP mapping:
Aleksieiev, Oleksii318d9de2018-05-18 16:37:18 -0700566
567.. code-block:: yaml
568
569 horizon:
570 server:
571 enabled: true
572 websso:
573 login_url: "WEBROOT + 'auth/login/'"
574 logout_url: "WEBROOT + 'auth/logout/'"
575 login_redirect_url: "WEBROOT + 'project/'"
576 websso_choices:
577 credentials:
578 description: "Keystone Credentials"
579 saml2:
580 description: "Security Assertion Markup Language"
581 oidc:
582 description: "OpenID Connect"
583 myidp_oidc:
584 description: "Acme Corporation - OpenID Connect"
585 myidp_saml2:
586 description: "Acme Corporation - SAML2"
587 idp_mapping:
588 myidp_oidc:
589 id: myidp
590 protocol: oidc
591 myidp_saml2:
592 id: myidp
593 protocol: saml2
Ales Komarek231eb652017-04-11 16:01:19 +0200594
Vasyl Saienkof976b522018-11-06 08:42:10 +0000595Images upload mode:
596Horizon allows to use different strategies when uploading images to glance that are
597controlled by `horizon:server:images_upload_mode` pillar, possible options are
Oleksandr Bryndzii2ca01fb2018-10-24 19:36:26 +0300598direct, ligacy, off. When `direct` mode is used CORS have to be enabled on glance
Vasyl Saienkof976b522018-11-06 08:42:10 +0000599side, and client should use modern browser.
600
601.. code-block:: yaml
602
603 horizon:
604 server:
605 images_upload_mode: "direct"
Vasyl Saienkoc9cfd1f2018-09-10 13:47:12 +0000606
Oleksandr Bryndzii2ca01fb2018-10-24 19:36:26 +0300607Images allow location:
608If set to True, this setting allows users to specify an image location (URL) as the image source
609when creating or updating images. Depending on the Glance version, the ability to set an image
610location is controlled by policies and/or the Glance configuration. Therefore IMAGES_ALLOW_LOCATION
611should only be set to True if Glance is configured to allow specifying a location.
612
613.. code-block:: yaml
614
615 horizon:
616 server:
617 images_allow_location: True
618
Vasyl Saienko0498a8f2018-11-30 08:41:04 +0000619Custom django settings.
620Django has a tonn of usefull settings that might be tuned for particular use case.
621Cover them all in templated manner is not possible. This sections shows how to
622configure custom django setting via horizon metadata.
623
624.. code-block:: yaml
625
626 horizon:
627 server:
628 django_settings:
629 CUSTOM_DJANGO_OPTION:
630 enabled: true
631 value: 'value'
632
Oleksandr Pidrepnyi116b9312019-05-24 14:10:06 +0300633hange default options using configmap template settings
634========================================================
635
636.. code-block:: yaml
637
638 horizon:
639 server:
640 configmap:
641 API_RESULT_LIMIT: 1000
642 API_RESULT_PAGE_SIZE: 20
Oleksandr Bryndzii2ca01fb2018-10-24 19:36:26 +0300643
Vasyl Saienkoc9cfd1f2018-09-10 13:47:12 +0000644Upgrades
645========
646
647Each openstack formula provide set of phases (logical bloks) that will help to
648build flexible upgrade orchestration logic for particular components. The list
649of phases and theirs descriptions are listed in table below:
650
651+-------------------------------+------------------------------------------------------+
652| State | Description |
653+===============================+======================================================+
654| <app>.upgrade.service_running | Ensure that all services for particular application |
655| | are enabled for autostart and running |
656+-------------------------------+------------------------------------------------------+
657| <app>.upgrade.service_stopped | Ensure that all services for particular application |
658| | disabled for autostart and dead |
659+-------------------------------+------------------------------------------------------+
660| <app>.upgrade.pkgs_latest | Ensure that packages used by particular application |
661| | are installed to latest available version. |
662| | This will not upgrade data plane packages like qemu |
663| | and openvswitch as usually minimal required version |
664| | in openstack services is really old. The data plane |
665| | packages should be upgraded separately by `apt-get |
666| | upgrade` or `apt-get dist-upgrade` |
667| | Applying this state will not autostart service. |
668+-------------------------------+------------------------------------------------------+
669| <app>.upgrade.render_config | Ensure configuration is rendered actual version. +
670+-------------------------------+------------------------------------------------------+
671| <app>.upgrade.pre | We assume this state is applied on all nodes in the |
672| | cloud before running upgrade. |
673| | Only non destructive actions will be applied during |
674| | this phase. Perform service built in service check |
675| | like (keystone-manage doctor and nova-status upgrade)|
676+-------------------------------+------------------------------------------------------+
677| <app>.upgrade.upgrade.pre | Mostly applicable for data plane nodes. During this |
678| | phase resources will be gracefully removed from |
679| | current node if it is allowed. Services for upgraded |
680| | application will be set to admin disabled state to |
681| | make sure node will not participate in resources |
682| | scheduling. For example on gtw nodes this will set |
683| | all agents to admin disable state and will move all |
684| | routers to other agents. |
685+-------------------------------+------------------------------------------------------+
686| <app>.upgrade.upgrade | This state will basically upgrade application on |
687| | particular target. Stop services, render |
688| | configuration, install new packages, run offline |
689| | dbsync (for ctl), start services. Data plane should |
690| | not be affected, only OpenStack python services. |
691+-------------------------------+------------------------------------------------------+
692| <app>.upgrade.upgrade.post | Add services back to scheduling. |
693+-------------------------------+------------------------------------------------------+
694| <app>.upgrade.post | This phase should be launched only when upgrade of |
695| | the cloud is completed. Cleanup temporary files, |
696| | perform other post upgrade tasks. |
697+-------------------------------+------------------------------------------------------+
698| <app>.upgrade.verify | Here we will do basic health checks (API CRUD |
699| | operations, verify do not have dead network |
700| | agents/compute services) |
701+-------------------------------+------------------------------------------------------+
702
703
OlgaGusarenko8c33bca2018-07-30 18:33:34 +0300704Read more
705=========
Filip Pytlounf8a1d5b2015-10-06 16:28:32 +0200706
707* https://github.com/openstack/horizon
708* http://dijks.wordpress.com/2012/07/06/how-to-change-screen-resolution-of-novnc-client-in-openstack-essex-dashboard-nova-horizon/