blob: 51ed2d1c6afe16c6946e79acb5171cfaad3234aa [file] [log] [blame]
Filip Pytloun4a72d792015-10-06 16:28:32 +02001
Aleš Komárek72152852017-04-11 13:48:48 +02002============
OlgaGusarenko9dd01c92018-07-31 00:49:30 +03003Usage
Aleš Komárek72152852017-04-11 13:48:48 +02004============
Filip Pytloun4a72d792015-10-06 16:28:32 +02005
Jakub Pavlikfcf34f82016-05-20 09:35:51 +02006OpenStack Nova provides a cloud computing fabric controller, supporting a wide
7variety of virtualization technologies, including KVM, Xen, LXC, VMware, and
8more. In addition to its native API, it includes compatibility with the
9commonly encountered Amazon EC2 and S3 APIs.
Filip Pytloun4a72d792015-10-06 16:28:32 +020010
Aleš Komárek72152852017-04-11 13:48:48 +020011Sample Pillars
Filip Pytloun4a72d792015-10-06 16:28:32 +020012==============
13
14Controller nodes
15----------------
16
OlgaGusarenko9dd01c92018-07-31 00:49:30 +030017Nova services on the controller node:
Filip Pytloun4a72d792015-10-06 16:28:32 +020018
19.. code-block:: yaml
20
21 nova:
22 controller:
23 version: juno
24 enabled: true
25 security_group: true
Lachlan Evensonb72de502016-01-20 15:34:04 -080026 cpu_allocation_ratio: 8.0
27 ram_allocation_ratio: 1.0
Jiri Konecny9344a372016-03-21 19:25:48 +010028 disk_allocation_ratio: 1.0
Dmitry Stremkovskiy2bcba8d2017-07-30 21:43:59 +030029 cross_az_attach: false
Jiri Konecnyb5a80e42016-03-22 11:51:01 +010030 workers: 8
Jakub Pavlik617a8962016-09-04 18:50:06 +020031 report_interval: 60
Michel Nederlof8ff99332017-10-23 14:29:15 +020032 dhcp_domain: novalocal
Vasyl Saienko09b6ac32019-01-17 15:23:58 +020033 vif_plugging_timeout: 300
34 vif_plugging_is_fatal: false
sgarbuzcc02c7f2018-10-25 14:29:30 +030035 consoleauth:
36 token_ttl: 600
Filip Pytloun4a72d792015-10-06 16:28:32 +020037 bind:
38 public_address: 10.0.0.122
39 public_name: openstack.domain.com
40 novncproxy_port: 6080
41 database:
42 engine: mysql
43 host: 127.0.0.1
44 port: 3306
45 name: nova
46 user: nova
47 password: pwd
48 identity:
49 engine: keystone
50 host: 127.0.0.1
51 port: 35357
52 user: nova
53 password: pwd
54 tenant: service
55 message_queue:
56 engine: rabbitmq
57 host: 127.0.0.1
58 port: 5672
59 user: openstack
60 password: pwd
61 virtual_host: '/openstack'
Oleh Hryhorovf5093b82018-10-17 11:16:08 +000062 pci:
63 alias:
64 alias1:
65 device_type: "type-PF"
66 name: "a1"
67 product_id: "154d"
68 vendor_id: "8086"
Filip Pytloun4a72d792015-10-06 16:28:32 +020069 network:
70 engine: neutron
71 host: 127.0.0.1
72 port: 9696
Jakub Pavlik617a8962016-09-04 18:50:06 +020073 extension_sync_interval: 600
Filip Pytloun4a72d792015-10-06 16:28:32 +020074 identity:
75 engine: keystone
76 host: 127.0.0.1
77 port: 35357
78 user: neutron
79 password: pwd
80 tenant: service
81 metadata:
82 password: password
Petr Michalecaa23dc02016-11-29 16:30:25 +010083 audit:
84 enabled: false
Simon Pasquier8683b7a2017-02-03 16:00:16 +010085 osapi_max_limit: 500
Oleg Iurchenko370c10d2017-10-19 14:03:37 +030086 barbican:
87 enabled: true
Filip Pytloun4a72d792015-10-06 16:28:32 +020088
OlgaGusarenko9dd01c92018-07-31 00:49:30 +030089Nova services from custom package repository:
Filip Pytloun4a72d792015-10-06 16:28:32 +020090
91.. code-block:: yaml
92
93 nova:
94 controller:
95 version: juno
96 source:
97 engine: pkg
98 address: http://...
99 ....
100
OlgaGusarenko9dd01c92018-07-31 00:49:30 +0300101Client-side RabbitMQ HA setup:
Jiri Konecnye31f2c52016-04-14 17:16:02 +0200102
103.. code-block:: yaml
104
105 nova:
106 controller:
107 ....
108 message_queue:
109 engine: rabbitmq
110 members:
111 - host: 10.0.16.1
112 - host: 10.0.16.2
113 - host: 10.0.16.3
114 user: openstack
115 password: pwd
116 virtual_host: '/openstack'
117 ....
118
OlgaGusarenko9dd01c92018-07-31 00:49:30 +0300119Enable auditing filter, i.e: CADF:
Petr Michalecaa23dc02016-11-29 16:30:25 +0100120
121.. code-block:: yaml
122
123 nova:
124 controller:
Simon Pasquier6a3c8f72016-12-19 15:37:24 +0100125 audit:
Petr Michalecaa23dc02016-11-29 16:30:25 +0100126 enabled: true
127 ....
128 filter_factory: 'keystonemiddleware.audit:filter_factory'
129 map_file: '/etc/pycadf/nova_api_audit_map.conf'
130 ....
131
OlgaGusarenko9dd01c92018-07-31 00:49:30 +0300132Enable CORS parameters:
Ondrej Smola25b53cb2017-04-28 10:56:19 +0200133
134.. code-block:: yaml
135
136 nova:
137 controller:
138 cors:
139 allowed_origin: https:localhost.local,http:localhost.local
140 expose_headers: X-Auth-Token,X-Openstack-Request-Id,X-Subject-Token
141 allow_methods: GET,PUT,POST,DELETE,PATCH
142 allow_headers: X-Auth-Token,X-Openstack-Request-Id,X-Subject-Token
143 allow_credentials: True
144 max_age: 86400
145
OlgaGusarenko9dd01c92018-07-31 00:49:30 +0300146Configuration of the ``policy.json`` file:
Dmitry Ukov3562a082017-05-04 00:00:48 +0400147
148.. code-block:: yaml
149
150 nova:
151 controller:
152 ....
153 policy:
154 context_is_admin: 'role:admin or role:administrator'
155 'compute:create': 'rule:admin_or_owner'
156 # Add key without value to remove line from policy.json
157 'compute:create:attach_network':
Ondrej Smola25b53cb2017-04-28 10:56:19 +0200158
OlgaGusarenko9dd01c92018-07-31 00:49:30 +0300159Enable Barbican integration:
Oleg Iurchenko370c10d2017-10-19 14:03:37 +0300160
161.. code-block:: yaml
162
163 nova:
164 controller:
165 ....
166 barbican:
167 enabled: true
168
Oleh Hryhorovf5093b82018-10-17 11:16:08 +0000169Define aliases for PCI devices:
170.. code-block:: yaml
171
172 nova:
173 controller:
174 ...
175 pci:
176 alias:
177 alias1:
178 device_type: "type-PF"
179 name: "a1"
180 product_id: "154d"
181 vendor_id: "8086"
182
Jiri Broulik789179a2018-02-13 16:16:46 +0100183Enable cells update:
184
OlgaGusarenko9dd01c92018-07-31 00:49:30 +0300185.. note:: Useful when upgrading Openstack. To update cells to test
186 sync db agains duplicated production database.
Jiri Broulik789179a2018-02-13 16:16:46 +0100187
188.. code-block:: yaml
189
190 nova:
191 controller:
192 update_cells: true
193
Kirill Bespalov64617172017-07-11 14:43:14 +0300194
Kirill Bespalova0eaca72017-11-20 13:40:42 +0300195Configuring TLS communications
196------------------------------
Kirill Bespalov64617172017-07-11 14:43:14 +0300197
OlgaGusarenko9dd01c92018-07-31 00:49:30 +0300198.. note:: By default system wide installed CA certs are used,
199 so ``cacert_file`` param is optional, as well as ``cacert``.
Kirill Bespalova0eaca72017-11-20 13:40:42 +0300200
201- **RabbitMQ TLS**
Kirill Bespalov64617172017-07-11 14:43:14 +0300202
OlgaGusarenko9dd01c92018-07-31 00:49:30 +0300203 .. code-block:: yaml
Kirill Bespalov64617172017-07-11 14:43:14 +0300204
OlgaGusarenko9dd01c92018-07-31 00:49:30 +0300205 nova:
206 compute:
207 message_queue:
208 port: 5671
209 ssl:
210 enabled: True
211 (optional) cacert: cert body if the cacert_file does not exists
212 (optional) cacert_file: /etc/openstack/rabbitmq-ca.pem
213 (optional) version: TLSv1_2
Kirill Bespalov64617172017-07-11 14:43:14 +0300214
Kirill Bespalova0eaca72017-11-20 13:40:42 +0300215- **MySQL TLS**
Kirill Bespalov64617172017-07-11 14:43:14 +0300216
OlgaGusarenko9dd01c92018-07-31 00:49:30 +0300217 .. code-block:: yaml
Kirill Bespalov64617172017-07-11 14:43:14 +0300218
OlgaGusarenko9dd01c92018-07-31 00:49:30 +0300219 nova:
220 controller:
221 database:
222 ssl:
223 enabled: True
224 (optional) cacert: cert body if the cacert_file does not exists
225 (optional) cacert_file: /etc/openstack/mysql-ca.pem
Kirill Bespalov64617172017-07-11 14:43:14 +0300226
Kirill Bespalova0eaca72017-11-20 13:40:42 +0300227- **Openstack HTTPS API**
228
OlgaGusarenko9dd01c92018-07-31 00:49:30 +0300229 Set the ``https`` as protocol at ``nova:compute`` and
230 ``nova:controller`` sections :
Kirill Bespalova0eaca72017-11-20 13:40:42 +0300231
OlgaGusarenko9dd01c92018-07-31 00:49:30 +0300232 .. code-block:: yaml
Kirill Bespalov64617172017-07-11 14:43:14 +0300233
OlgaGusarenko9dd01c92018-07-31 00:49:30 +0300234 nova:
235 controller :
236 identity:
237 protocol: https
238 (optional) cacert_file: /etc/openstack/proxy.pem
239 network:
240 protocol: https
241 (optional) cacert_file: /etc/openstack/proxy.pem
242 glance:
243 protocol: https
244 (optional) cacert_file: /etc/openstack/proxy.pem
Kirill Bespalov64617172017-07-11 14:43:14 +0300245
OlgaGusarenko9dd01c92018-07-31 00:49:30 +0300246 .. code-block:: yaml
Kirill Bespalov64617172017-07-11 14:43:14 +0300247
OlgaGusarenko9dd01c92018-07-31 00:49:30 +0300248 nova:
249 compute:
250 identity:
251 protocol: https
252 (optional) cacert_file: /etc/openstack/proxy.pem
253 network:
254 protocol: https
255 (optional) cacert_file: /etc/openstack/proxy.pem
256 image:
257 protocol: https
258 (optional) cacert_file: /etc/openstack/proxy.pem
259 ironic:
260 protocol: https
261 (optional) cacert_file: /etc/openstack/proxy.pem
Kirill Bespalov64617172017-07-11 14:43:14 +0300262
OlgaGusarenko9dd01c92018-07-31 00:49:30 +0300263.. note:: Barbican, Cinder, and placement url endpoints are discovering
264 using service catalog.
Kirill Bespalov64617172017-07-11 14:43:14 +0300265
Filip Pytloun4a72d792015-10-06 16:28:32 +0200266Compute nodes
267-------------
268
OlgaGusarenko9dd01c92018-07-31 00:49:30 +0300269Nova controller services on compute node:
Filip Pytloun4a72d792015-10-06 16:28:32 +0200270
271.. code-block:: yaml
272
273 nova:
274 compute:
275 version: juno
276 enabled: true
Dmitry Stremkovskiy2bcba8d2017-07-30 21:43:59 +0300277 cross_az_attach: false
Dmitry Stremkovskiy35e53b72017-07-29 12:50:39 +0300278 disk_cachemodes: network=writeback,block=none
Jiri Broulik70d9e3f2017-02-15 18:37:13 +0100279 availability_zone: availability_zone_01
Damian Szelugae1922412017-04-18 16:36:46 +0200280 aggregates:
281 - hosts_with_fc
282 - hosts_with_ssd
Filip Pytloun4a72d792015-10-06 16:28:32 +0200283 security_group: true
Petr Michalecf03e4882017-04-10 10:26:18 +0200284 resume_guests_state_on_host_boot: False
Michael Polenchuk159c2542018-06-09 15:31:51 +0400285 preallocate_images: space # Default is 'none'
Dmitry Stremkovskiy8a0ff512017-07-25 20:54:13 +0300286 my_ip: 10.1.0.16
Vasyl Saienko09b6ac32019-01-17 15:23:58 +0200287 vif_plugging_timeout: 300
288 vif_plugging_is_fatal: false
Filip Pytloun4a72d792015-10-06 16:28:32 +0200289 bind:
290 vnc_address: 172.20.0.100
291 vnc_port: 6080
292 vnc_name: openstack.domain.com
293 vnc_protocol: http
294 database:
295 engine: mysql
296 host: 127.0.0.1
297 port: 3306
298 name: nova
299 user: nova
300 password: pwd
301 identity:
302 engine: keystone
303 host: 127.0.0.1
304 port: 35357
305 user: nova
306 password: pwd
307 tenant: service
308 message_queue:
309 engine: rabbitmq
310 host: 127.0.0.1
311 port: 5672
312 user: openstack
313 password: pwd
314 virtual_host: '/openstack'
315 image:
316 engine: glance
317 host: 127.0.0.1
318 port: 9292
Oleh Hryhorovf5093b82018-10-17 11:16:08 +0000319 pci:
320 alias:
321 alias1:
322 device_type: "type-PF"
323 name: "a1"
324 product_id: "154d"
325 vendor_id: "8086"
Filip Pytloun4a72d792015-10-06 16:28:32 +0200326 network:
327 engine: neutron
328 host: 127.0.0.1
329 port: 9696
330 identity:
331 engine: keystone
332 host: 127.0.0.1
333 port: 35357
334 user: neutron
335 password: pwd
336 tenant: service
337 qemu:
338 max_files: 4096
339 max_processes: 4096
Dmitry Stremkovskiy96281f52017-07-26 00:39:22 +0300340 host: node-12.domain.tld
Filip Pytloun4a72d792015-10-06 16:28:32 +0200341
Vasyl Saienkocab3a902018-07-12 13:17:17 +0300342Compute with vmware driver. Each vmware cluster requires a separate process of nova-compute.
343Each process should have uniq host identifier. However multiple computes might be running on
344single host. It is not recommended to have multiple computes running on different hosts that
345manage the same vmware cluster. To achive this pacemaker/corosync or keepalived might be used.
346
347.. code-block:: yaml
348
349 nova:
350 compute:
351 compute_driver: vmwareapi.VMwareVCDriver
352 vmware:
353 host_username: vmware
354 host_password: vmware
355 cluster_name: vmware_cluster01
356 host_ip: 1.2.3.4
357
OlgaGusarenko9dd01c92018-07-31 00:49:30 +0300358Group and user to be used for QEMU processes run by the system instance:
kkalynovskyif50f0c02017-12-12 17:52:57 +0200359
360.. code-block:: yaml
361
362 nova:
363 compute:
364 enabled: true
365 ...
366 qemu:
367 user: nova
368 group: cinder
369 dynamic_ownership: 1
370
OlgaGusarenko9dd01c92018-07-31 00:49:30 +0300371Group membership for user nova (upgrade related):
Dmitry Stremkovskiy3cd6ba82017-07-25 17:15:36 +0300372
373.. code-block:: yaml
374
375 nova:
376 compute:
377 enabled: true
378 ...
379 user:
380 groups:
381 - libvirt
Filip Pytloun4a72d792015-10-06 16:28:32 +0200382
OlgaGusarenko9dd01c92018-07-31 00:49:30 +0300383Nova services on compute node with OpenContrail:
Filip Pytloun4a72d792015-10-06 16:28:32 +0200384
385.. code-block:: yaml
386
387 nova:
388 compute:
389 enabled: true
390 ...
391 networking: contrail
392
Oleksandr Bryndziibb8abfe2018-09-28 22:21:43 +0000393Nova services on compute node with memcached caching and security strategy:
Filip Pytloun4a72d792015-10-06 16:28:32 +0200394
395.. code-block:: yaml
396
397 nova:
398 compute:
399 enabled: true
400 ...
401 cache:
402 engine: memcached
403 members:
404 - host: 127.0.0.1
405 port: 11211
406 - host: 127.0.0.1
407 port: 11211
Oleksandr Bryndziibb8abfe2018-09-28 22:21:43 +0000408 security:
409 enabled: true
410 strategy: ENCRYPT
411 secret_key: secret
Filip Pytloun4a72d792015-10-06 16:28:32 +0200412
OlgaGusarenko9dd01c92018-07-31 00:49:30 +0300413Client-side RabbitMQ HA setup:
Jiri Konecnye31f2c52016-04-14 17:16:02 +0200414
415.. code-block:: yaml
416
417 nova:
Kirill Bespalov64617172017-07-11 14:43:14 +0300418 compute:
Jiri Konecnye31f2c52016-04-14 17:16:02 +0200419 ....
420 message_queue:
421 engine: rabbitmq
422 members:
423 - host: 10.0.16.1
424 - host: 10.0.16.2
425 - host: 10.0.16.3
426 user: openstack
427 password: pwd
428 virtual_host: '/openstack'
429 ....
430
OlgaGusarenko9dd01c92018-07-31 00:49:30 +0300431Nova with ephemeral configured with Ceph:
maxstack39e6aca2016-05-04 13:50:13 +0000432
433.. code-block:: yaml
434
435 nova:
436 compute:
437 enabled: true
438 ...
439 ceph:
440 ephemeral: yes
441 rbd_pool: nova
442 rbd_user: nova
443 secret_uuid: 03006edd-d957-40a3-ac4c-26cd254b3731
Kalynovskyi0bc79692017-07-21 16:22:09 +0300444 ....
maxstack39e6aca2016-05-04 13:50:13 +0000445
OlgaGusarenko9dd01c92018-07-31 00:49:30 +0300446Nova with ephemeral configured with LVM:
Kalynovskyi0bc79692017-07-21 16:22:09 +0300447
448.. code-block:: yaml
449
450 nova:
451 compute:
452 enabled: true
453 ...
454 lvm:
455 ephemeral: yes
456 images_volume_group: nova_vg
457
458 linux:
459 storage:
460 lvm:
461 nova_vg:
462 name: nova_vg
463 devices:
464 - /dev/sdf
465 - /dev/sdd
466 - /dev/sdg
467 - /dev/sde
468 - /dev/sdc
469 - /dev/sdj
470 - /dev/sdh
maxstack39e6aca2016-05-04 13:50:13 +0000471
OlgaGusarenko9dd01c92018-07-31 00:49:30 +0300472Enable Barbican integration:
Oleg Iurchenko370c10d2017-10-19 14:03:37 +0300473
474.. code-block:: yaml
475
476 nova:
477 compute:
478 ....
479 barbican:
480 enabled: true
481
Oleh Hryhorovf5093b82018-10-17 11:16:08 +0000482Define aliases for PCI devices:
483.. code-block:: yaml
484
485 nova:
486 compute:
487 ...
488 pci:
489 alias:
490 alias1:
491 device_type: "type-PF"
492 name: "a1"
493 product_id: "154d"
494 vendor_id: "8086"
495
OlgaGusarenko9dd01c92018-07-31 00:49:30 +0300496Nova metadata custom bindings:
Vasyl Saienko2d591282018-02-05 14:19:02 +0200497
498.. code-block:: yaml
499
500 nova:
501 controller:
502 enabled: true
503 ...
504 metadata:
505 bind:
506 address: 1.2.3.4
507 port: 8776
508
Oleh Hryhorov08482aa2018-11-19 14:07:47 +0200509Define multipath for nova compute:
510
511.. code-block:: yaml
512
513 nova:
514 compute:
515 ....
516 libvirt:
517 volume_use_multipath: True
518
Jiri Broulik0ce9fc92017-02-01 23:10:40 +0100519Client role
520-----------
521
OlgaGusarenko9dd01c92018-07-31 00:49:30 +0300522Nova configured with NFS:
Dmitry Stremkovskiy665c7282017-07-05 17:36:27 +0300523
524.. code-block:: yaml
525
526 nova:
527 compute:
528 instances_path: /mnt/nova/instances
529
530 linux:
531 storage:
532 enabled: true
533 mount:
534 nfs_nova:
535 enabled: true
536 path: ${nova:compute:instances_path}
537 device: 172.31.35.145:/data
538 file_system: nfs
539 opts: rw,vers=3
540
OlgaGusarenko9dd01c92018-07-31 00:49:30 +0300541Nova flavors:
Jiri Broulik0ce9fc92017-02-01 23:10:40 +0100542
543.. code-block:: yaml
544
545 nova:
546 client:
547 enabled: true
548 server:
549 identity:
550 flavor:
Jiri Broulik70d9e3f2017-02-15 18:37:13 +0100551 flavor1:
Jiri Broulik0ce9fc92017-02-01 23:10:40 +0100552 flavor_id: 10
553 ram: 4096
554 disk: 10
555 vcpus: 1
Jiri Broulik70d9e3f2017-02-15 18:37:13 +0100556 flavor2:
557 flavor_id: auto
558 ram: 4096
559 disk: 20
560 vcpus: 2
Jiri Broulik0ce9fc92017-02-01 23:10:40 +0100561 identity1:
562 flavor:
563 ...
564
OlgaGusarenko9dd01c92018-07-31 00:49:30 +0300565Availability zones:
Jiri Broulik70d9e3f2017-02-15 18:37:13 +0100566
567.. code-block:: yaml
568
569 nova:
570 client:
571 enabled: true
572 server:
573 identity:
574 availability_zones:
575 - availability_zone_01
576 - availability_zone_02
577
OlgaGusarenko9dd01c92018-07-31 00:49:30 +0300578Aggregates:
Damian Szeluga5dca0f02017-04-13 17:27:15 +0200579
580.. code-block:: yaml
581
582 nova:
583 client:
584 enabled: true
585 server:
586 identity:
587 aggregates:
588 - aggregate1
589 - aggregate2
590
OlgaGusarenko9dd01c92018-07-31 00:49:30 +0300591Upgrade levels:
Dmitry Stremkovskiy91f45852017-07-18 16:22:31 +0300592
593.. code-block:: yaml
594
595 nova:
596 controller:
597 upgrade_levels:
598 compute: juno
599
600 nova:
601 compute:
602 upgrade_levels:
603 compute: juno
604
Petr Jedinýd855ef22017-03-06 22:24:33 +0100605SR-IOV
Jakub Pavlik39a05942017-02-13 23:03:08 +0100606------
607
OlgaGusarenko9dd01c92018-07-31 00:49:30 +0300608Add ``PciPassthroughFilter`` into scheduler filters and NICs on
609specific compute nodes:
Jakub Pavlik39a05942017-02-13 23:03:08 +0100610
611.. code-block:: yaml
612
613 nova:
614 controller:
615 sriov: true
sandriichenko4fe321d2018-01-22 17:34:06 +0000616 scheduler_default_filters: "DifferentHostFilter,SameHostFilter,RetryFilter,AvailabilityZoneFilter,RamFilter,CoreFilter,DiskFilter,ComputeFilter,ComputeCapabilitiesFilter,ImagePropertiesFilter,ServerGroupAntiAffinityFilter,ServerGroupAffinityFilter,PciPassthroughFilter"
Jakub Pavlik39a05942017-02-13 23:03:08 +0100617
618 nova:
619 compute:
620 sriov:
621 nic_one:
622 devname: eth1
623 physical_network: physnet1
624
Oleh Hryhorovf5093b82018-10-17 11:16:08 +0000625.. note:: Parameters located under nova:compute:sriov:<nic_name> are copied to passthrough_whitelist parameter into
626 nova.conf file in appropriate format.
627
Jakub Pavlik26fb85c2017-02-16 22:29:22 +0100628CPU pinning & Hugepages
629-----------------------
630
OlgaGusarenko9dd01c92018-07-31 00:49:30 +0300631CPU pinning of virtual machine instances to dedicated physical
632CPU cores. Hugepages mount point for libvirt.
Jakub Pavlik26fb85c2017-02-16 22:29:22 +0100633
634.. code-block:: yaml
635
636 nova:
637 controller:
sandriichenko4fe321d2018-01-22 17:34:06 +0000638 scheduler_default_filters: "DifferentHostFilter,SameHostFilter,RetryFilter,AvailabilityZoneFilter,RamFilter,CoreFilter,DiskFilter,ComputeFilter,ComputeCapabilitiesFilter,ImagePropertiesFilter,ServerGroupAntiAffinityFilter,ServerGroupAffinityFilter,NUMATopologyFilter,AggregateInstanceExtraSpecsFilter"
Jakub Pavlik26fb85c2017-02-16 22:29:22 +0100639
640 nova:
641 compute:
642 vcpu_pin_set: 2,3,4,5
643 hugepages:
644 mount_points:
645 - path: /mnt/hugepages_1GB
646 - path: /mnt/hugepages_2MB
Jiri Broulik0ce9fc92017-02-01 23:10:40 +0100647
Michel Nederlof171c7ac2017-04-13 12:54:14 +0200648Custom Scheduler filters
649------------------------
650
OlgaGusarenko9dd01c92018-07-31 00:49:30 +0300651If you have a custom filter, that needs to be included in the
652scheduler, then you can include it like so:
Michel Nederlof171c7ac2017-04-13 12:54:14 +0200653
654.. code-block:: yaml
655
656 nova:
657 controller:
658 scheduler_custom_filters:
659 - my_custom_driver.nova.scheduler.filters.my_custom_filter.MyCustomFilter
660
661 # Then add your custom filter on the end (make sure to include all other ones that you need as well)
sandriichenko4fe321d2018-01-22 17:34:06 +0000662 scheduler_default_filters: "DifferentHostFilter,SameHostFilter,RetryFilter,AvailabilityZoneFilter,RamFilter,CoreFilter,DiskFilter,ComputeFilter,ComputeCapabilitiesFilter,ImagePropertiesFilter,ServerGroupAntiAffinityFilter,ServerGroupAffinityFilter,PciPassthroughFilter,MyCustomFilter"
Michel Nederlof171c7ac2017-04-13 12:54:14 +0200663
Michael Polenchuk2bce2cb2018-09-17 16:05:43 +0400664 # Since Queens version a sequence could be used as well:
665 ~scheduler_default_filters:
666 - DifferentHostFilter
667 - SameHostFilter
668 ...
669 - MyCustomFilter
670
671
Michel Nederlofeb566f62017-04-21 15:37:47 +0200672Hardware Trip/Unmap Support
673---------------------------
674
OlgaGusarenko9dd01c92018-07-31 00:49:30 +0300675To enable TRIM support for ephemeral images (thru nova managed
676images), libvirt has this option:
Michel Nederlofeb566f62017-04-21 15:37:47 +0200677
678.. code-block:: yaml
679
680 nova:
681 compute:
682 libvirt:
683 hw_disk_discard: unmap
684
OlgaGusarenko9dd01c92018-07-31 00:49:30 +0300685To actually utilize this feature, the following metadata must be
686set on the image as well, so the SCSI unmap is supported:
Michel Nederlofeb566f62017-04-21 15:37:47 +0200687
688.. code-block:: bash
689
690 glance image-update --property hw_scsi_model=virtio-scsi <image>
691 glance image-update --property hw_disk_bus=scsi <image>
Filip Pytloun5bc9e9f2017-02-02 13:05:40 +0100692
Thom Gerdesf582f1e2017-05-02 18:05:50 +0000693Scheduler Host Manager
694----------------------
695
696Specify a custom host manager.
697
Thom Gerdesec00afd2017-04-07 18:06:59 +0000698libvirt CPU mode
699----------------
700
OlgaGusarenko9dd01c92018-07-31 00:49:30 +0300701Allow setting the model of CPU that is exposed to a VM. This
702allows for better support live migration between hypervisors with
703different hardware, among other things. Defaults to host-passthrough.
Jakub Pavlik7046b9c2017-09-19 12:04:19 +0200704
Thom Gerdesf582f1e2017-05-02 18:05:50 +0000705.. code-block:: yaml
706
707 nova:
708 controller:
709 scheduler_host_manager: ironic_host_manager
710
Thom Gerdesec00afd2017-04-07 18:06:59 +0000711 compute:
712 cpu_mode: host-model
713
Dzmitry Stremkouski7da9bf12018-04-25 22:30:37 +0200714Nova compute cpu model
715----------------------
716
717.. code-block:: yaml
718
719 nova:
720 compute:
721 cpu_mode: custom
722 libvirt:
723 cpu_model: IvyBridge
724
725
Michel Nederloff7eefb22017-07-10 11:14:33 +0200726Nova compute workarounds
727------------------------
728
OlgaGusarenko9dd01c92018-07-31 00:49:30 +0300729Live snapshotting is disabled by default in nova. To enable
730this, it needs a manual switch.
Michel Nederloff7eefb22017-07-10 11:14:33 +0200731
732From manual:
733
734.. code-block:: yaml
735
OlgaGusarenko9dd01c92018-07-31 00:49:30 +0300736 When using libvirt 1.2.2 live snapshots fail intermittently under load
737 (likely related to concurrent libvirt/qemu operations). This config
738 option provides a mechanism to disable live snapshot, in favor of cold
739 snapshot, while this is resolved. Cold snapshot causes an instance
740 outage while the guest is going through the snapshotting process.
741
742 For more information, refer to the bug report:
743
744 https://bugs.launchpad.net/nova/+bug/1334398
Michel Nederloff7eefb22017-07-10 11:14:33 +0200745
746Configurable pillar data:
747
748.. code-block:: yaml
749
750 nova:
751 compute:
Michel Nederlofe322ebb2017-07-10 12:29:21 +0200752 workaround:
Michel Nederloff7eefb22017-07-10 11:14:33 +0200753 disable_libvirt_livesnapshot: False
754
Michel Nederlofb51a5142017-06-27 08:31:35 +0200755Config drive options
756--------------------
757
OlgaGusarenko9dd01c92018-07-31 00:49:30 +0300758See example below on how to configure the options for the
759config drive:
Michel Nederlofb51a5142017-06-27 08:31:35 +0200760
761.. code-block:: yaml
762
763 nova:
764 compute:
765 config_drive:
766 forced: True # Default: True
767 cdrom: True # Default: False
768 format: iso9660 # Default: vfat
769 inject_password: False # Default: False
770
Michel Nederloff81919b2017-11-20 09:37:07 +0100771Number of concurrent live migrates
772----------------------------------
773
OlgaGusarenko9dd01c92018-07-31 00:49:30 +0300774Default is to have no concurrent live migrations (so 1
775live-migration at a time).
Michel Nederloff81919b2017-11-20 09:37:07 +0100776
OlgaGusarenko9dd01c92018-07-31 00:49:30 +0300777Excerpt from config options page
778https://docs.openstack.org/ocata/config-reference/compute/config-options.html:
Michel Nederloff81919b2017-11-20 09:37:07 +0100779
OlgaGusarenko9dd01c92018-07-31 00:49:30 +0300780Maximum number of live migrations to run concurrently. This limit is
781enforced to avoid outbound live migrations overwhelming the host/network
782and causing failures. It is not recommended that you change this unless
783you are very sure that doing so is safe and stable in your environment.
Michel Nederloff81919b2017-11-20 09:37:07 +0100784
OlgaGusarenko9dd01c92018-07-31 00:49:30 +0300785Possible values:
Michel Nederloff81919b2017-11-20 09:37:07 +0100786
OlgaGusarenko9dd01c92018-07-31 00:49:30 +0300787- 0 : treated as unlimited.
788- Negative value defaults to 0.
789- Any positive integer representing maximum number of live migrations
790 to run concurrently.
Michel Nederloff81919b2017-11-20 09:37:07 +0100791
792To configure this option:
793
794.. code-block:: yaml
795
796 nova:
797 compute:
798 max_concurrent_live_migrations: 1 # (1 is the default)
799
Sergio Lystopad9d31cba2018-05-15 11:29:11 +0300800Live migration with auto converge
801----------------------------------
802
OlgaGusarenko9dd01c92018-07-31 00:49:30 +0300803Auto converge throttles down CPU if a progress of on-going live
804migration is slow
805https://docs.openstack.org/ocata/config-reference/compute/config-options.html:
Sergio Lystopad9d31cba2018-05-15 11:29:11 +0300806
807.. code-block:: yaml
808
809 nova:
810 compute:
811 libvirt:
812 live_migration_permit_auto_converge: False # (False is the default)
813
814.. code-block:: yaml
815
816 nova:
817 controller:
818 libvirt:
819 live_migration_permit_auto_converge: False # (False is the default)
820
Dmitry Kalashnike58fe082017-12-01 16:31:14 +0400821Enhanced logging with logging.conf
822----------------------------------
823
OlgaGusarenko9dd01c92018-07-31 00:49:30 +0300824By default ``logging.conf`` is disabled.
Dmitry Kalashnike58fe082017-12-01 16:31:14 +0400825
826That is possible to enable per-binary logging.conf with new variables:
Dmitry Kalashnike58fe082017-12-01 16:31:14 +0400827
OlgaGusarenko9dd01c92018-07-31 00:49:30 +0300828* ``openstack_log_appender``
829 Set to true to enable log_config_append for all OpenStack services
830
831* ``openstack_fluentd_handler_enabled``
832 Set to true to enable FluentHandler for all Openstack services
833
834* ``openstack_ossyslog_handler_enabled``
835 Set to true to enable OSSysLogHandler for all Openstack services
836
837Only ``WatchedFileHandler``, ``OSSysLogHandler``, and ``FluentHandler``
838are available.
Dmitry Kalashnike58fe082017-12-01 16:31:14 +0400839
Dmitry Kalashnik8da249c2018-01-16 17:58:00 +0400840Also it is possible to configure this with pillar:
Dmitry Kalashnike58fe082017-12-01 16:31:14 +0400841
842.. code-block:: yaml
843
844 nova:
845 controller:
846 logging:
847 log_appender: true
848 log_handlers:
849 watchedfile:
850 enabled: true
851 fluentd:
852 enabled: true
Oleksii Chupryn99e35032018-02-06 01:59:40 +0200853 ossyslog:
854 enabled: true
Dmitry Kalashnike58fe082017-12-01 16:31:14 +0400855
856 compute:
857 logging:
858 log_appender: true
859 log_handlers:
860 watchedfile:
861 enabled: true
862 fluentd:
863 enabled: true
Oleksii Chupryn99e35032018-02-06 01:59:40 +0200864 ossyslog:
865 enabled: true
Thom Gerdesf582f1e2017-05-02 18:05:50 +0000866
Vasyl Saienko7243a952018-05-11 21:26:54 +0300867The log level might be configured per logger by using the
868following pillar structure:
869
870.. code-block:: yaml
871
872 nova:
873 compute:
874 logging:
875 loggers:
876 <logger_name>:
877 level: WARNING
878
879 nova:
880 compute:
881 logging:
882 loggers:
883 <logger_name>:
884 level: WARNING
885
Oleh Hryhorove38525d2018-05-15 08:58:59 +0000886Configure syslog parameters for libvirtd
887----------------------------------------
888
OlgaGusarenko9dd01c92018-07-31 00:49:30 +0300889To configure syslog parameters for libvirtd the below pillar
890structure should be used with values which are supported
Oleh Hryhorove38525d2018-05-15 08:58:59 +0000891by libvirtd. These values might be known from the documentation.
892
OlgaGusarenko9dd01c92018-07-31 00:49:30 +0300893.. code-block:: yaml
894
Oleh Hryhorove38525d2018-05-15 08:58:59 +0000895 nova:
896 compute:
897 libvirt:
898 logging:
899 level: 3
900 filters: '3:remote 4:event'
901 outputs: '3:syslog:libvirtd'
902 buffer_size: 64
903
OlgaGusarenko9dd01c92018-07-31 00:49:30 +0300904Logging controls:
Oleh Hryhorove38525d2018-05-15 08:58:59 +0000905
OlgaGusarenko9dd01c92018-07-31 00:49:30 +0300906Logging level: 4 errors, 3 warnings, 2 information, 1 debug
907basically 1 will log everything possible ``log_level = 3``
Oleh Hryhorove38525d2018-05-15 08:58:59 +0000908
OlgaGusarenko9dd01c92018-07-31 00:49:30 +0300909Logging filters:
Oleh Hryhorove38525d2018-05-15 08:58:59 +0000910
OlgaGusarenko9dd01c92018-07-31 00:49:30 +0300911A filter allows to select a different logging level for a given category
912of logs.
Oleh Hryhorove38525d2018-05-15 08:58:59 +0000913
OlgaGusarenko9dd01c92018-07-31 00:49:30 +0300914The format for a filter is one of:
Oleh Hryhorove38525d2018-05-15 08:58:59 +0000915
OlgaGusarenko9dd01c92018-07-31 00:49:30 +0300916* ``x:name``
917* ``x:+name``
918 where name is a string which is matched against source file name,
919 e.g., ``remote``, ``qemu``, or ``util/json``, the optional ``+`` prefix
920 tells libvirt to log stack trace for each message matching name,
921 and x is the minimal level where matching messages should be logged:
Oleh Hryhorove38525d2018-05-15 08:58:59 +0000922
OlgaGusarenko9dd01c92018-07-31 00:49:30 +0300923* ``1: DEBUG``
924* ``2: INFO``
925* ``3: WARNING``
926* ``4: ERROR``
927
928Multiple filter can be defined in a single @filters, they just
929need to be separated by spaces.
930
931For example, to only get warning or errors from the remote layer
932and only errors from the event layer: ``log_filters="3:remote 4:event``
933
934Logging outputs:
935
936An output is one of the places to save logging information
937The format for an output can be:
938
939* ``x:stderr``
940 Output goes to stderr
941
942* ``x:syslog:name``
943 Use syslog for the output and use the given name as the ident
944
945* ``x:file:file_path``
946 output to a file, with the given filepath
947
948 In all case the x prefix is the minimal level, acting as a filter
949
950* ``1: DEBUG``
951* ``2: INFO``
952* ``3: WARNING``
953* ``4: ERROR``
954
955Multiple output can be defined, they just need to be separated by spaces.
956For example, to log all warnings and errors to syslog under the libvirt
957dident: ``log_outputs="3:syslog:libvirtd``
958
959Log debug buffer size: default 64
960The daemon keeps an internal debug log buffer which will be dumped
961in case of crash or upon receiving a ``SIGUSR2`` signal. This setting
962allows to override the default buffer size in kilobytes.
963If value is ``0`` or less the debug log buffer is deactivated
964``log_buffer_size = 64``
965
966To configure the logging parameters for QEMU, the below pillar
967structure and logging parameters should be used:
968
969.. code-block:: yaml
970
971 nova:
972 compute:
973 qemu:
974 logging:
975 handler: logd
976 virtlog:
977 enabled: true
978 level: 4
979 filters: '3:remote 3:event'
980 outputs: '4:syslog:virtlogd'
981 max_clients: 512
982 max_size: 2097100
983 max_backups: 2
Oleh Hryhorove38525d2018-05-15 08:58:59 +0000984
Oleksandr Shyshko981b4fa2018-05-02 15:39:30 +0300985Inject password to VM
986---------------------
987
OlgaGusarenko9dd01c92018-07-31 00:49:30 +0300988By default nova blocks up any inject to VM because
989``inject_partition`` param is equal to ``-2``.
990If you want to inject password to VM, you will need to
991define ``inject_partition`` greater or equal to ``-1`` and
992define ``inject_password`` to ``True``
Oleksandr Shyshko981b4fa2018-05-02 15:39:30 +0300993
994For example:
995
OlgaGusarenko9dd01c92018-07-31 00:49:30 +0300996.. code-block:: yaml
997
Oleksandr Shyshko981b4fa2018-05-02 15:39:30 +0300998 nova:
999 compute:
1000 inject_partition: '-1'
1001 inject_password: True
1002
OlgaGusarenko9dd01c92018-07-31 00:49:30 +03001003Allow the injection of an admin password for instance only at
1004``create`` and ``rebuild`` process.
1005
1006There is no agent needed within the image to do this. If *libguestfs* is
1007available on the host, it will be used. Otherwise *nbd* is used. The file
1008system of the image will be mounted and the admin password, which is provided
1009in the REST API call will be injected as password for the root user. If no
1010root user is available, the instance won't be launched and an error is thrown.
1011Be aware that the injection is *not* possible when the instance gets launched
1012from a volume.
1013
1014Possible values:
1015
1016* ``True``
1017 Allows the injection
1018
1019* ``False`` (default)
1020 Disallows the injection. Any via the REST API provided
1021 admin password will be silently ignored.
1022
1023Related options:
1024
1025* ``inject_partition``
1026 Decides about the discovery and usage of the file system.
1027 It also can disable the injection at all.
1028 (boolean value)
Oleksandr Shyshko981b4fa2018-05-02 15:39:30 +03001029
1030You can read more about injecting the administrator password here:
OlgaGusarenko9dd01c92018-07-31 00:49:30 +03001031https://docs.openstack.org/nova/queens/admin/admin-password-injection.html
Oleksandr Shyshko981b4fa2018-05-02 15:39:30 +03001032
Oleksandr Shyshko1c020d12018-05-24 12:47:08 +03001033Enable libvirt control channel over TLS
OlgaGusarenko9dd01c92018-07-31 00:49:30 +03001034---------------------------------------
Oleksandr Shyshko1c020d12018-05-24 12:47:08 +03001035
1036By default TLS is disabled.
1037
OlgaGusarenko9dd01c92018-07-31 00:49:30 +03001038Enable TLS transport:
1039
1040.. code-block:: yaml
Oleksandr Shyshko1c020d12018-05-24 12:47:08 +03001041
1042 compute:
1043 libvirt:
1044 tls:
1045 enabled: True
1046
1047You able to set custom certificates in pillar:
1048
OlgaGusarenko9dd01c92018-07-31 00:49:30 +03001049.. code-block:: yaml
1050
Oleksandr Shyshko1c020d12018-05-24 12:47:08 +03001051 nova:
1052 compute:
1053 libvirt:
1054 tls:
1055 key: (certificate content)
1056 cert: (certificate content)
1057 cacert: (certificate content)
1058 client:
1059 key: (certificate content)
1060 cert: (certificate content)
1061
Vasyl Saienko11ac9732018-10-02 17:04:33 +00001062Controlling access by `tls_allowed_dn_list`.
1063Enable an access control list of client certificate Distinguished Names (DNs)
1064which can connect to the TLS port on this server. The default is that DNs are
1065not checked. This list may contain wildcards such as
1066"C=GB,ST=London,L=London,O=Libvirt Project,CN=*" See the POSIX fnmatch function
1067for the format of the wildcards.
1068Note that if this is an empty list, no client can connect.
1069Note also that GnuTLS returns DNs without spaces after commas between
1070the fields (and this is what we check against), but the openssl x509 tool
1071shows spaces.
1072
1073.. code-block:: yaml
1074
1075 nova:
1076 compute:
1077 libvirt:
1078 tls:
1079 tls_allowed_dn_list:
1080 host1:
1081 enabled: true
1082 value: 'C=foo,CN=cmp1'
1083 host2:
1084 enabled: true
1085 value: 'C=foo,CN=cmp2'
1086
1087
Oleksandr Shyshko1c020d12018-05-24 12:47:08 +03001088You can read more about live migration over TLS here:
OlgaGusarenko9dd01c92018-07-31 00:49:30 +03001089https://wiki.libvirt.org/page/TLSCreateServerCerts
Oleksandr Shyshko981b4fa2018-05-02 15:39:30 +03001090
Oleksandr Shyshko1195fca2018-07-09 18:22:59 +03001091Enable transport + authentication for VNC over TLS
1092---------------------
Oleksandr Shyshkod8337cf2018-07-11 17:55:58 +03001093# Only for Queens. Communication between noVNC proxy service and QEMU
Oleksandr Shyshko1195fca2018-07-09 18:22:59 +03001094
1095By default communication between nova-novncproxy and qemu service is unsecure.
1096
1097compute:
1098 qemu:
1099 vnc:
1100 tls:
1101 enabled: True
1102
1103controller:
1104 novncproxy:
Oleksandr Shyshkod8337cf2018-07-11 17:55:58 +03001105 # This section responsible for communication between noVNC proxy and client machine
Oleksandr Shyshko1195fca2018-07-09 18:22:59 +03001106 tls:
1107 enabled: True
Oleksandr Shyshkod8337cf2018-07-11 17:55:58 +03001108 # This section responsible for communication between nova-novncproxy and qemu service
1109 vencrypt:
1110 tls:
1111 enabled: True
Oleksandr Shyshko1195fca2018-07-09 18:22:59 +03001112
1113You able to set custom certificates in pillar:
1114
Oleksandr Shyshkod8337cf2018-07-11 17:55:58 +03001115nova:
1116 compute:
1117 qemu:
1118 vnc:
1119 tls:
1120 cacert (certificate content)
1121 cert (certificate content)
1122 key (certificate content)
1123
1124nova:
1125 controller:
1126 novncproxy:
1127 tls:
1128 server:
1129 cert (certificate content)
1130 key (certificate content)
1131 vencrypt:
1132 tls:
1133 cacert (certificate content)
1134 cert (certificate content)
1135 key (certificate content)
1136
1137
1138You can read more about it here:
1139 https://docs.openstack.org/nova/queens/admin/remote-console-access.html
1140
1141Enable communication between noVNC proxy and client machine over TLS
1142---------------------
1143
1144By default communication between noVNC proxy and client machine is unsecure.
1145
1146 controller:
1147 novncproxy:
1148 tls:
1149 enabled: True
Oleksandr Shyshko1195fca2018-07-09 18:22:59 +03001150
1151 nova:
1152 controller:
1153 novncproxy:
1154 tls:
Oleksandr Shyshkod8337cf2018-07-11 17:55:58 +03001155 server:
1156 cert (certificate content)
1157 key (certificate content)
Oleksandr Shyshko1195fca2018-07-09 18:22:59 +03001158
1159You can read more about it here:
Oleksandr Shyshkod8337cf2018-07-11 17:55:58 +03001160 https://docs.openstack.org/mitaka/config-reference/dashboard/configure.html
Oleksandr Shyshko1195fca2018-07-09 18:22:59 +03001161
Oleksandr Shyshko55eeac72018-08-03 18:23:28 +03001162Enable x509 and ssl communication between Nova and Galera cluster.
1163---------------------
1164By default communication between Nova and Galera is unsecure.
1165
Oleksandr Shyshkocbe87352018-09-07 13:42:57 +03001166nova:
1167 controller:
1168 database:
1169 x509:
1170 enabled: True
1171
Oleksandr Shyshko55eeac72018-08-03 18:23:28 +03001172You able to set custom certificates in pillar:
Oleksandr Shyshko55eeac72018-08-03 18:23:28 +03001173
1174nova:
1175 controller:
1176 database:
1177 x509:
Oleksandr Shyshkocbe87352018-09-07 13:42:57 +03001178 cacert: (certificate content)
1179 cert: (certificate content)
1180 key: (certificate content)
Oleksandr Shyshko55eeac72018-08-03 18:23:28 +03001181
1182You can read more about it here:
1183 https://docs.openstack.org/security-guide/databases/database-access-control.html
1184
obryndziif7957912019-01-31 00:55:56 +00001185Nova database connection setup:
1186========
1187
1188.. code-block:: yaml
1189
1190 nova:
1191 controller:
1192 enabled: True
1193 ...
1194 database:
1195 idle_timeout: 180
1196 min_pool_size: 100
1197 max_pool_size: 700
1198 max_overflow: 100
1199 retry_interval: 5
1200 max_retries: '-1'
1201 db_max_retries: 3
1202 db_retry_interval: 1
1203 connection_debug: 10
1204 pool_timeout: 120
1205
Oleh Hryhorov63ee8452018-08-14 09:16:02 +00001206Upgrades
1207========
1208
1209Each openstack formula provide set of phases (logical bloks) that will help to
1210build flexible upgrade orchestration logic for particular components. The list
1211of phases might and theirs descriptions are listed in table below:
1212
1213+-------------------------------+------------------------------------------------------+
1214| State | Description |
1215+===============================+======================================================+
1216| <app>.upgrade.service_running | Ensure that all services for particular application |
1217| | are enabled for autostart and running |
1218+-------------------------------+------------------------------------------------------+
1219| <app>.upgrade.service_stopped | Ensure that all services for particular application |
1220| | disabled for autostart and dead |
1221+-------------------------------+------------------------------------------------------+
1222| <app>.upgrade.pkgs_latest | Ensure that packages used by particular application |
1223| | are installed to latest available version. |
1224| | This will not upgrade data plane packages like qemu |
1225| | and openvswitch as usually minimal required version |
1226| | in openstack services is really old. The data plane |
1227| | packages should be upgraded separately by `apt-get |
1228| | upgrade` or `apt-get dist-upgrade` |
1229| | Applying this state will not autostart service. |
1230+-------------------------------+------------------------------------------------------+
1231| <app>.upgrade.render_config | Ensure configuration is rendered actual version. +
1232+-------------------------------+------------------------------------------------------+
1233| <app>.upgrade.pre | We assume this state is applied on all nodes in the |
1234| | cloud before running upgrade. |
1235| | Only non destructive actions will be applied during |
1236| | this phase. Perform service built in service check |
1237| | like (keystone-manage doctor and nova-status upgrade)|
1238+-------------------------------+------------------------------------------------------+
1239| <app>.upgrade.upgrade.pre | Mostly applicable for data plane nodes. During this |
1240| | phase resources will be gracefully removed from |
1241| | current node if it is allowed. Services for upgraded |
1242| | application will be set to admin disabled state to |
1243| | make sure node will not participate in resources |
1244| | scheduling. For example on gtw nodes this will set |
1245| | all agents to admin disable state and will move all |
1246| | routers to other agents. |
1247+-------------------------------+------------------------------------------------------+
1248| <app>.upgrade.upgrade | This state will basically upgrade application on |
1249| | particular target. Stop services, render |
1250| | configuration, install new packages, run offline |
1251| | dbsync (for ctl), start services. Data plane should |
1252| | not be affected, only OpenStack python services. |
1253+-------------------------------+------------------------------------------------------+
1254| <app>.upgrade.upgrade.post | Add services back to scheduling. |
1255+-------------------------------+------------------------------------------------------+
1256| <app>.upgrade.post | This phase should be launched only when upgrade of |
1257| | the cloud is completed. Cleanup temporary files, |
1258| | perform other post upgrade tasks. |
1259+-------------------------------+------------------------------------------------------+
1260| <app>.upgrade.verify | Here we will do basic health checks (API CRUD |
1261| | operations, verify do not have dead network |
1262| | agents/compute services) |
1263+-------------------------------+------------------------------------------------------+