blob: aae1c04823a0633e085c0c7300224fd22fe85eda [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
Ivan Berezovskiy689e6ea2019-11-14 20:17:58 +040033 concurrency:
34 lock_path: '/var/lib/nova/tmp'
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
Dzmitry Stremkouski9f743222019-05-26 01:20:42 +020055 interface: internal
56 valid_interfaces:
57 - internal
Filip Pytloun4a72d792015-10-06 16:28:32 +020058 message_queue:
59 engine: rabbitmq
60 host: 127.0.0.1
61 port: 5672
62 user: openstack
63 password: pwd
64 virtual_host: '/openstack'
Oleh Hryhorovf5093b82018-10-17 11:16:08 +000065 pci:
66 alias:
67 alias1:
68 device_type: "type-PF"
69 name: "a1"
70 product_id: "154d"
71 vendor_id: "8086"
Filip Pytloun4a72d792015-10-06 16:28:32 +020072 network:
73 engine: neutron
74 host: 127.0.0.1
75 port: 9696
Jakub Pavlik617a8962016-09-04 18:50:06 +020076 extension_sync_interval: 600
Filip Pytloun4a72d792015-10-06 16:28:32 +020077 identity:
78 engine: keystone
79 host: 127.0.0.1
80 port: 35357
81 user: neutron
82 password: pwd
83 tenant: service
84 metadata:
85 password: password
Petr Michalecaa23dc02016-11-29 16:30:25 +010086 audit:
87 enabled: false
Simon Pasquier8683b7a2017-02-03 16:00:16 +010088 osapi_max_limit: 500
Oleg Iurchenko370c10d2017-10-19 14:03:37 +030089 barbican:
90 enabled: true
Filip Pytloun4a72d792015-10-06 16:28:32 +020091
OlgaGusarenko9dd01c92018-07-31 00:49:30 +030092Nova services from custom package repository:
Filip Pytloun4a72d792015-10-06 16:28:32 +020093
94.. code-block:: yaml
95
96 nova:
97 controller:
98 version: juno
99 source:
100 engine: pkg
101 address: http://...
102 ....
103
OlgaGusarenko9dd01c92018-07-31 00:49:30 +0300104Client-side RabbitMQ HA setup:
Jiri Konecnye31f2c52016-04-14 17:16:02 +0200105
106.. code-block:: yaml
107
108 nova:
109 controller:
110 ....
111 message_queue:
112 engine: rabbitmq
113 members:
114 - host: 10.0.16.1
115 - host: 10.0.16.2
116 - host: 10.0.16.3
117 user: openstack
118 password: pwd
119 virtual_host: '/openstack'
120 ....
121
OlgaGusarenko9dd01c92018-07-31 00:49:30 +0300122Enable auditing filter, i.e: CADF:
Petr Michalecaa23dc02016-11-29 16:30:25 +0100123
124.. code-block:: yaml
125
126 nova:
127 controller:
Simon Pasquier6a3c8f72016-12-19 15:37:24 +0100128 audit:
Petr Michalecaa23dc02016-11-29 16:30:25 +0100129 enabled: true
130 ....
131 filter_factory: 'keystonemiddleware.audit:filter_factory'
132 map_file: '/etc/pycadf/nova_api_audit_map.conf'
133 ....
134
OlgaGusarenko9dd01c92018-07-31 00:49:30 +0300135Enable CORS parameters:
Ondrej Smola25b53cb2017-04-28 10:56:19 +0200136
137.. code-block:: yaml
138
139 nova:
140 controller:
141 cors:
142 allowed_origin: https:localhost.local,http:localhost.local
143 expose_headers: X-Auth-Token,X-Openstack-Request-Id,X-Subject-Token
144 allow_methods: GET,PUT,POST,DELETE,PATCH
145 allow_headers: X-Auth-Token,X-Openstack-Request-Id,X-Subject-Token
146 allow_credentials: True
147 max_age: 86400
148
OlgaGusarenko9dd01c92018-07-31 00:49:30 +0300149Configuration of the ``policy.json`` file:
Dmitry Ukov3562a082017-05-04 00:00:48 +0400150
151.. code-block:: yaml
152
153 nova:
154 controller:
155 ....
156 policy:
157 context_is_admin: 'role:admin or role:administrator'
158 'compute:create': 'rule:admin_or_owner'
159 # Add key without value to remove line from policy.json
160 'compute:create:attach_network':
Ondrej Smola25b53cb2017-04-28 10:56:19 +0200161
OlgaGusarenko9dd01c92018-07-31 00:49:30 +0300162Enable Barbican integration:
Oleg Iurchenko370c10d2017-10-19 14:03:37 +0300163
164.. code-block:: yaml
165
166 nova:
167 controller:
168 ....
169 barbican:
170 enabled: true
171
Oleh Hryhorovf5093b82018-10-17 11:16:08 +0000172Define aliases for PCI devices:
173.. code-block:: yaml
174
175 nova:
176 controller:
177 ...
178 pci:
179 alias:
180 alias1:
181 device_type: "type-PF"
182 name: "a1"
183 product_id: "154d"
184 vendor_id: "8086"
185
Jiri Broulik789179a2018-02-13 16:16:46 +0100186Enable cells update:
187
OlgaGusarenko9dd01c92018-07-31 00:49:30 +0300188.. note:: Useful when upgrading Openstack. To update cells to test
189 sync db agains duplicated production database.
Jiri Broulik789179a2018-02-13 16:16:46 +0100190
191.. code-block:: yaml
192
193 nova:
194 controller:
195 update_cells: true
196
Dzmitry Stremkouskif8497672019-11-03 10:36:46 +0100197Increase number of chunks for online db migrations:
198
199.. note:: This only should be done in offline as large number of
200 rows locked by this process may cause service outage, which
201 may not be expected.
202
203.. code-block:: yaml
204
205 nova:
206 controller:
207 db_migrations:
208 max_count: 5000000
Kirill Bespalov64617172017-07-11 14:43:14 +0300209
Kirill Bespalova0eaca72017-11-20 13:40:42 +0300210Configuring TLS communications
211------------------------------
Kirill Bespalov64617172017-07-11 14:43:14 +0300212
OlgaGusarenko9dd01c92018-07-31 00:49:30 +0300213.. note:: By default system wide installed CA certs are used,
214 so ``cacert_file`` param is optional, as well as ``cacert``.
Kirill Bespalova0eaca72017-11-20 13:40:42 +0300215
216- **RabbitMQ TLS**
Kirill Bespalov64617172017-07-11 14:43:14 +0300217
OlgaGusarenko9dd01c92018-07-31 00:49:30 +0300218 .. code-block:: yaml
Kirill Bespalov64617172017-07-11 14:43:14 +0300219
OlgaGusarenko9dd01c92018-07-31 00:49:30 +0300220 nova:
221 compute:
222 message_queue:
223 port: 5671
224 ssl:
225 enabled: True
226 (optional) cacert: cert body if the cacert_file does not exists
227 (optional) cacert_file: /etc/openstack/rabbitmq-ca.pem
228 (optional) version: TLSv1_2
Kirill Bespalov64617172017-07-11 14:43:14 +0300229
Kirill Bespalova0eaca72017-11-20 13:40:42 +0300230- **MySQL TLS**
Kirill Bespalov64617172017-07-11 14:43:14 +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 database:
237 ssl:
238 enabled: True
239 (optional) cacert: cert body if the cacert_file does not exists
240 (optional) cacert_file: /etc/openstack/mysql-ca.pem
Kirill Bespalov64617172017-07-11 14:43:14 +0300241
Kirill Bespalova0eaca72017-11-20 13:40:42 +0300242- **Openstack HTTPS API**
243
OlgaGusarenko9dd01c92018-07-31 00:49:30 +0300244 Set the ``https`` as protocol at ``nova:compute`` and
245 ``nova:controller`` sections :
Kirill Bespalova0eaca72017-11-20 13:40:42 +0300246
OlgaGusarenko9dd01c92018-07-31 00:49:30 +0300247 .. code-block:: yaml
Kirill Bespalov64617172017-07-11 14:43:14 +0300248
OlgaGusarenko9dd01c92018-07-31 00:49:30 +0300249 nova:
250 controller :
251 identity:
252 protocol: https
253 (optional) cacert_file: /etc/openstack/proxy.pem
254 network:
255 protocol: https
256 (optional) cacert_file: /etc/openstack/proxy.pem
257 glance:
258 protocol: https
259 (optional) cacert_file: /etc/openstack/proxy.pem
Kirill Bespalov64617172017-07-11 14:43:14 +0300260
OlgaGusarenko9dd01c92018-07-31 00:49:30 +0300261 .. code-block:: yaml
Kirill Bespalov64617172017-07-11 14:43:14 +0300262
OlgaGusarenko9dd01c92018-07-31 00:49:30 +0300263 nova:
264 compute:
265 identity:
266 protocol: https
267 (optional) cacert_file: /etc/openstack/proxy.pem
268 network:
269 protocol: https
270 (optional) cacert_file: /etc/openstack/proxy.pem
271 image:
272 protocol: https
273 (optional) cacert_file: /etc/openstack/proxy.pem
274 ironic:
275 protocol: https
276 (optional) cacert_file: /etc/openstack/proxy.pem
Kirill Bespalov64617172017-07-11 14:43:14 +0300277
OlgaGusarenko9dd01c92018-07-31 00:49:30 +0300278.. note:: Barbican, Cinder, and placement url endpoints are discovering
279 using service catalog.
Kirill Bespalov64617172017-07-11 14:43:14 +0300280
Filip Pytloun4a72d792015-10-06 16:28:32 +0200281Compute nodes
282-------------
283
OlgaGusarenko9dd01c92018-07-31 00:49:30 +0300284Nova controller services on compute node:
Filip Pytloun4a72d792015-10-06 16:28:32 +0200285
286.. code-block:: yaml
287
288 nova:
289 compute:
290 version: juno
291 enabled: true
Dmitry Stremkovskiy2bcba8d2017-07-30 21:43:59 +0300292 cross_az_attach: false
Dmitry Stremkovskiy35e53b72017-07-29 12:50:39 +0300293 disk_cachemodes: network=writeback,block=none
Jiri Broulik70d9e3f2017-02-15 18:37:13 +0100294 availability_zone: availability_zone_01
Damian Szelugae1922412017-04-18 16:36:46 +0200295 aggregates:
296 - hosts_with_fc
297 - hosts_with_ssd
Filip Pytloun4a72d792015-10-06 16:28:32 +0200298 security_group: true
Petr Michalecf03e4882017-04-10 10:26:18 +0200299 resume_guests_state_on_host_boot: False
Michael Polenchuk159c2542018-06-09 15:31:51 +0400300 preallocate_images: space # Default is 'none'
Dmitry Stremkovskiy8a0ff512017-07-25 20:54:13 +0300301 my_ip: 10.1.0.16
Ivan Berezovskiy689e6ea2019-11-14 20:17:58 +0400302 concurrency:
303 lock_path: '/var/lib/nova/tmp'
Filip Pytloun4a72d792015-10-06 16:28:32 +0200304 bind:
305 vnc_address: 172.20.0.100
306 vnc_port: 6080
307 vnc_name: openstack.domain.com
308 vnc_protocol: http
309 database:
310 engine: mysql
311 host: 127.0.0.1
312 port: 3306
313 name: nova
314 user: nova
315 password: pwd
316 identity:
317 engine: keystone
318 host: 127.0.0.1
319 port: 35357
320 user: nova
321 password: pwd
322 tenant: service
323 message_queue:
324 engine: rabbitmq
325 host: 127.0.0.1
326 port: 5672
327 user: openstack
328 password: pwd
329 virtual_host: '/openstack'
330 image:
331 engine: glance
332 host: 127.0.0.1
333 port: 9292
Oleh Hryhorovf5093b82018-10-17 11:16:08 +0000334 pci:
335 alias:
336 alias1:
337 device_type: "type-PF"
338 name: "a1"
339 product_id: "154d"
340 vendor_id: "8086"
Filip Pytloun4a72d792015-10-06 16:28:32 +0200341 network:
342 engine: neutron
343 host: 127.0.0.1
344 port: 9696
345 identity:
346 engine: keystone
347 host: 127.0.0.1
348 port: 35357
349 user: neutron
350 password: pwd
351 tenant: service
352 qemu:
353 max_files: 4096
354 max_processes: 4096
Dmitry Stremkovskiy96281f52017-07-26 00:39:22 +0300355 host: node-12.domain.tld
Filip Pytloun4a72d792015-10-06 16:28:32 +0200356
Vasyl Saienkocab3a902018-07-12 13:17:17 +0300357Compute with vmware driver. Each vmware cluster requires a separate process of nova-compute.
358Each process should have uniq host identifier. However multiple computes might be running on
359single host. It is not recommended to have multiple computes running on different hosts that
360manage the same vmware cluster. To achive this pacemaker/corosync or keepalived might be used.
361
362.. code-block:: yaml
363
364 nova:
365 compute:
366 compute_driver: vmwareapi.VMwareVCDriver
367 vmware:
368 host_username: vmware
369 host_password: vmware
370 cluster_name: vmware_cluster01
371 host_ip: 1.2.3.4
372
OlgaGusarenko9dd01c92018-07-31 00:49:30 +0300373Group and user to be used for QEMU processes run by the system instance:
kkalynovskyif50f0c02017-12-12 17:52:57 +0200374
375.. code-block:: yaml
376
377 nova:
378 compute:
379 enabled: true
380 ...
381 qemu:
382 user: nova
383 group: cinder
384 dynamic_ownership: 1
385
OlgaGusarenko9dd01c92018-07-31 00:49:30 +0300386Group membership for user nova (upgrade related):
Dmitry Stremkovskiy3cd6ba82017-07-25 17:15:36 +0300387
388.. code-block:: yaml
389
390 nova:
391 compute:
392 enabled: true
393 ...
394 user:
395 groups:
396 - libvirt
Filip Pytloun4a72d792015-10-06 16:28:32 +0200397
OlgaGusarenko9dd01c92018-07-31 00:49:30 +0300398Nova services on compute node with OpenContrail:
Filip Pytloun4a72d792015-10-06 16:28:32 +0200399
400.. code-block:: yaml
401
402 nova:
403 compute:
404 enabled: true
405 ...
406 networking: contrail
407
Oleksandr Bryndziibb8abfe2018-09-28 22:21:43 +0000408Nova services on compute node with memcached caching and security strategy:
Filip Pytloun4a72d792015-10-06 16:28:32 +0200409
410.. code-block:: yaml
411
412 nova:
413 compute:
414 enabled: true
415 ...
416 cache:
417 engine: memcached
418 members:
419 - host: 127.0.0.1
420 port: 11211
421 - host: 127.0.0.1
422 port: 11211
Oleksandr Bryndziibb8abfe2018-09-28 22:21:43 +0000423 security:
424 enabled: true
425 strategy: ENCRYPT
426 secret_key: secret
Filip Pytloun4a72d792015-10-06 16:28:32 +0200427
OlgaGusarenko9dd01c92018-07-31 00:49:30 +0300428Client-side RabbitMQ HA setup:
Jiri Konecnye31f2c52016-04-14 17:16:02 +0200429
430.. code-block:: yaml
431
432 nova:
Kirill Bespalov64617172017-07-11 14:43:14 +0300433 compute:
Jiri Konecnye31f2c52016-04-14 17:16:02 +0200434 ....
435 message_queue:
436 engine: rabbitmq
437 members:
438 - host: 10.0.16.1
439 - host: 10.0.16.2
440 - host: 10.0.16.3
441 user: openstack
442 password: pwd
443 virtual_host: '/openstack'
444 ....
445
OlgaGusarenko9dd01c92018-07-31 00:49:30 +0300446Nova with ephemeral configured with Ceph:
maxstack39e6aca2016-05-04 13:50:13 +0000447
448.. code-block:: yaml
449
450 nova:
451 compute:
452 enabled: true
453 ...
454 ceph:
455 ephemeral: yes
456 rbd_pool: nova
457 rbd_user: nova
458 secret_uuid: 03006edd-d957-40a3-ac4c-26cd254b3731
Kalynovskyi0bc79692017-07-21 16:22:09 +0300459 ....
maxstack39e6aca2016-05-04 13:50:13 +0000460
OlgaGusarenko9dd01c92018-07-31 00:49:30 +0300461Nova with ephemeral configured with LVM:
Kalynovskyi0bc79692017-07-21 16:22:09 +0300462
463.. code-block:: yaml
464
465 nova:
466 compute:
467 enabled: true
468 ...
469 lvm:
470 ephemeral: yes
471 images_volume_group: nova_vg
472
473 linux:
474 storage:
475 lvm:
476 nova_vg:
477 name: nova_vg
478 devices:
479 - /dev/sdf
480 - /dev/sdd
481 - /dev/sdg
482 - /dev/sde
483 - /dev/sdc
484 - /dev/sdj
485 - /dev/sdh
maxstack39e6aca2016-05-04 13:50:13 +0000486
OlgaGusarenko9dd01c92018-07-31 00:49:30 +0300487Enable Barbican integration:
Oleg Iurchenko370c10d2017-10-19 14:03:37 +0300488
489.. code-block:: yaml
490
491 nova:
492 compute:
493 ....
494 barbican:
495 enabled: true
496
Oleh Hryhorovf5093b82018-10-17 11:16:08 +0000497Define aliases for PCI devices:
498.. code-block:: yaml
499
500 nova:
501 compute:
502 ...
503 pci:
504 alias:
505 alias1:
506 device_type: "type-PF"
507 name: "a1"
508 product_id: "154d"
509 vendor_id: "8086"
510
OlgaGusarenko9dd01c92018-07-31 00:49:30 +0300511Nova metadata custom bindings:
Vasyl Saienko2d591282018-02-05 14:19:02 +0200512
513.. code-block:: yaml
514
515 nova:
516 controller:
517 enabled: true
518 ...
519 metadata:
520 bind:
521 address: 1.2.3.4
522 port: 8776
523
Oleh Hryhorov08482aa2018-11-19 14:07:47 +0200524Define multipath for nova compute:
525
526.. code-block:: yaml
527
528 nova:
529 compute:
530 ....
531 libvirt:
532 volume_use_multipath: True
533
Oleh Hryhorov5add3b22019-03-06 17:00:00 +0000534To disable or enable StrictHostKeyChecking and discover
535compute nodes fingerprints the below pillar should be used:
536
537.. code-block:: yaml
538
539 nova:
540 compute:
541 ....
542 openssh:
543 stricthostkeychecking: True
544 discover_compute_hosts: True
545
Jiri Broulik0ce9fc92017-02-01 23:10:40 +0100546Client role
547-----------
548
OlgaGusarenko9dd01c92018-07-31 00:49:30 +0300549Nova configured with NFS:
Dmitry Stremkovskiy665c7282017-07-05 17:36:27 +0300550
551.. code-block:: yaml
552
553 nova:
554 compute:
555 instances_path: /mnt/nova/instances
556
557 linux:
558 storage:
559 enabled: true
560 mount:
561 nfs_nova:
562 enabled: true
563 path: ${nova:compute:instances_path}
564 device: 172.31.35.145:/data
565 file_system: nfs
566 opts: rw,vers=3
567
OlgaGusarenko9dd01c92018-07-31 00:49:30 +0300568Nova flavors:
Jiri Broulik0ce9fc92017-02-01 23:10:40 +0100569
570.. code-block:: yaml
571
572 nova:
573 client:
574 enabled: true
575 server:
576 identity:
577 flavor:
Jiri Broulik70d9e3f2017-02-15 18:37:13 +0100578 flavor1:
Jiri Broulik0ce9fc92017-02-01 23:10:40 +0100579 flavor_id: 10
580 ram: 4096
581 disk: 10
582 vcpus: 1
Jiri Broulik70d9e3f2017-02-15 18:37:13 +0100583 flavor2:
584 flavor_id: auto
585 ram: 4096
586 disk: 20
587 vcpus: 2
Jiri Broulik0ce9fc92017-02-01 23:10:40 +0100588 identity1:
589 flavor:
590 ...
591
OlgaGusarenko9dd01c92018-07-31 00:49:30 +0300592Availability zones:
Jiri Broulik70d9e3f2017-02-15 18:37:13 +0100593
594.. code-block:: yaml
595
596 nova:
597 client:
598 enabled: true
599 server:
600 identity:
601 availability_zones:
602 - availability_zone_01
603 - availability_zone_02
604
OlgaGusarenko9dd01c92018-07-31 00:49:30 +0300605Aggregates:
Damian Szeluga5dca0f02017-04-13 17:27:15 +0200606
607.. code-block:: yaml
608
609 nova:
610 client:
611 enabled: true
612 server:
613 identity:
614 aggregates:
615 - aggregate1
616 - aggregate2
617
OlgaGusarenko9dd01c92018-07-31 00:49:30 +0300618Upgrade levels:
Dmitry Stremkovskiy91f45852017-07-18 16:22:31 +0300619
620.. code-block:: yaml
621
622 nova:
623 controller:
624 upgrade_levels:
625 compute: juno
626
627 nova:
628 compute:
629 upgrade_levels:
630 compute: juno
631
Petr Jedinýd855ef22017-03-06 22:24:33 +0100632SR-IOV
Jakub Pavlik39a05942017-02-13 23:03:08 +0100633------
634
OlgaGusarenko9dd01c92018-07-31 00:49:30 +0300635Add ``PciPassthroughFilter`` into scheduler filters and NICs on
636specific compute nodes:
Jakub Pavlik39a05942017-02-13 23:03:08 +0100637
638.. code-block:: yaml
639
640 nova:
641 controller:
642 sriov: true
sandriichenko4fe321d2018-01-22 17:34:06 +0000643 scheduler_default_filters: "DifferentHostFilter,SameHostFilter,RetryFilter,AvailabilityZoneFilter,RamFilter,CoreFilter,DiskFilter,ComputeFilter,ComputeCapabilitiesFilter,ImagePropertiesFilter,ServerGroupAntiAffinityFilter,ServerGroupAffinityFilter,PciPassthroughFilter"
Jakub Pavlik39a05942017-02-13 23:03:08 +0100644
645 nova:
646 compute:
647 sriov:
648 nic_one:
649 devname: eth1
650 physical_network: physnet1
651
Oleh Hryhorovf5093b82018-10-17 11:16:08 +0000652.. note:: Parameters located under nova:compute:sriov:<nic_name> are copied to passthrough_whitelist parameter into
653 nova.conf file in appropriate format.
654
Jakub Pavlik26fb85c2017-02-16 22:29:22 +0100655CPU pinning & Hugepages
656-----------------------
657
OlgaGusarenko9dd01c92018-07-31 00:49:30 +0300658CPU pinning of virtual machine instances to dedicated physical
659CPU cores. Hugepages mount point for libvirt.
Jakub Pavlik26fb85c2017-02-16 22:29:22 +0100660
661.. code-block:: yaml
662
663 nova:
664 controller:
sandriichenko4fe321d2018-01-22 17:34:06 +0000665 scheduler_default_filters: "DifferentHostFilter,SameHostFilter,RetryFilter,AvailabilityZoneFilter,RamFilter,CoreFilter,DiskFilter,ComputeFilter,ComputeCapabilitiesFilter,ImagePropertiesFilter,ServerGroupAntiAffinityFilter,ServerGroupAffinityFilter,NUMATopologyFilter,AggregateInstanceExtraSpecsFilter"
Jakub Pavlik26fb85c2017-02-16 22:29:22 +0100666
667 nova:
668 compute:
669 vcpu_pin_set: 2,3,4,5
670 hugepages:
671 mount_points:
672 - path: /mnt/hugepages_1GB
673 - path: /mnt/hugepages_2MB
Jiri Broulik0ce9fc92017-02-01 23:10:40 +0100674
Michel Nederlof171c7ac2017-04-13 12:54:14 +0200675Custom Scheduler filters
676------------------------
677
OlgaGusarenko9dd01c92018-07-31 00:49:30 +0300678If you have a custom filter, that needs to be included in the
679scheduler, then you can include it like so:
Michel Nederlof171c7ac2017-04-13 12:54:14 +0200680
681.. code-block:: yaml
682
683 nova:
684 controller:
685 scheduler_custom_filters:
686 - my_custom_driver.nova.scheduler.filters.my_custom_filter.MyCustomFilter
687
688 # 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 +0000689 scheduler_default_filters: "DifferentHostFilter,SameHostFilter,RetryFilter,AvailabilityZoneFilter,RamFilter,CoreFilter,DiskFilter,ComputeFilter,ComputeCapabilitiesFilter,ImagePropertiesFilter,ServerGroupAntiAffinityFilter,ServerGroupAffinityFilter,PciPassthroughFilter,MyCustomFilter"
Michel Nederlof171c7ac2017-04-13 12:54:14 +0200690
Michael Polenchuk2bce2cb2018-09-17 16:05:43 +0400691 # Since Queens version a sequence could be used as well:
692 ~scheduler_default_filters:
693 - DifferentHostFilter
694 - SameHostFilter
695 ...
696 - MyCustomFilter
697
698
Michel Nederlofeb566f62017-04-21 15:37:47 +0200699Hardware Trip/Unmap Support
700---------------------------
701
OlgaGusarenko9dd01c92018-07-31 00:49:30 +0300702To enable TRIM support for ephemeral images (thru nova managed
703images), libvirt has this option:
Michel Nederlofeb566f62017-04-21 15:37:47 +0200704
705.. code-block:: yaml
706
707 nova:
708 compute:
709 libvirt:
710 hw_disk_discard: unmap
711
OlgaGusarenko9dd01c92018-07-31 00:49:30 +0300712To actually utilize this feature, the following metadata must be
713set on the image as well, so the SCSI unmap is supported:
Michel Nederlofeb566f62017-04-21 15:37:47 +0200714
715.. code-block:: bash
716
717 glance image-update --property hw_scsi_model=virtio-scsi <image>
718 glance image-update --property hw_disk_bus=scsi <image>
Filip Pytloun5bc9e9f2017-02-02 13:05:40 +0100719
Thom Gerdesf582f1e2017-05-02 18:05:50 +0000720Scheduler Host Manager
721----------------------
722
723Specify a custom host manager.
724
Thom Gerdesec00afd2017-04-07 18:06:59 +0000725libvirt CPU mode
726----------------
727
OlgaGusarenko9dd01c92018-07-31 00:49:30 +0300728Allow setting the model of CPU that is exposed to a VM. This
729allows for better support live migration between hypervisors with
730different hardware, among other things. Defaults to host-passthrough.
Jakub Pavlik7046b9c2017-09-19 12:04:19 +0200731
Thom Gerdesf582f1e2017-05-02 18:05:50 +0000732.. code-block:: yaml
733
734 nova:
735 controller:
736 scheduler_host_manager: ironic_host_manager
737
Thom Gerdesec00afd2017-04-07 18:06:59 +0000738 compute:
739 cpu_mode: host-model
740
Dzmitry Stremkouski7da9bf12018-04-25 22:30:37 +0200741Nova compute cpu model
742----------------------
743
744.. code-block:: yaml
745
746 nova:
747 compute:
748 cpu_mode: custom
749 libvirt:
750 cpu_model: IvyBridge
751
Oleksandr Pidrepnyief9fd782019-03-04 19:18:19 +0200752RNG (Random Number Generator) device path
753----------------------
754
755The path to an RNG (Random Number Generator) device that will be used
756as the source of entropy on the host.
757The recommended source of entropy is /dev/urandom.
758Permitted options are: /dev/random, /dev/urandom or /dev/hwrng.
759Default: /dev/urandom
760
761.. code-block:: yaml
762
763 nova:
764 controller:
765 libvirt:
766 rng_dev_path: /dev/random
767
768 compute:
769 libvirt:
770 rng_dev_path: /dev/random
771
Dzmitry Stremkouski7da9bf12018-04-25 22:30:37 +0200772
Michel Nederloff7eefb22017-07-10 11:14:33 +0200773Nova compute workarounds
774------------------------
775
OlgaGusarenko9dd01c92018-07-31 00:49:30 +0300776Live snapshotting is disabled by default in nova. To enable
777this, it needs a manual switch.
Michel Nederloff7eefb22017-07-10 11:14:33 +0200778
779From manual:
780
781.. code-block:: yaml
782
OlgaGusarenko9dd01c92018-07-31 00:49:30 +0300783 When using libvirt 1.2.2 live snapshots fail intermittently under load
784 (likely related to concurrent libvirt/qemu operations). This config
785 option provides a mechanism to disable live snapshot, in favor of cold
786 snapshot, while this is resolved. Cold snapshot causes an instance
787 outage while the guest is going through the snapshotting process.
788
789 For more information, refer to the bug report:
790
791 https://bugs.launchpad.net/nova/+bug/1334398
Michel Nederloff7eefb22017-07-10 11:14:33 +0200792
793Configurable pillar data:
794
795.. code-block:: yaml
796
797 nova:
798 compute:
Michel Nederlofe322ebb2017-07-10 12:29:21 +0200799 workaround:
Michel Nederloff7eefb22017-07-10 11:14:33 +0200800 disable_libvirt_livesnapshot: False
801
Michel Nederlofb51a5142017-06-27 08:31:35 +0200802Config drive options
803--------------------
804
OlgaGusarenko9dd01c92018-07-31 00:49:30 +0300805See example below on how to configure the options for the
806config drive:
Michel Nederlofb51a5142017-06-27 08:31:35 +0200807
808.. code-block:: yaml
809
810 nova:
811 compute:
812 config_drive:
813 forced: True # Default: True
814 cdrom: True # Default: False
815 format: iso9660 # Default: vfat
816 inject_password: False # Default: False
817
Michel Nederloff81919b2017-11-20 09:37:07 +0100818Number of concurrent live migrates
819----------------------------------
820
OlgaGusarenko9dd01c92018-07-31 00:49:30 +0300821Default is to have no concurrent live migrations (so 1
822live-migration at a time).
Michel Nederloff81919b2017-11-20 09:37:07 +0100823
OlgaGusarenko9dd01c92018-07-31 00:49:30 +0300824Excerpt from config options page
825https://docs.openstack.org/ocata/config-reference/compute/config-options.html:
Michel Nederloff81919b2017-11-20 09:37:07 +0100826
OlgaGusarenko9dd01c92018-07-31 00:49:30 +0300827Maximum number of live migrations to run concurrently. This limit is
828enforced to avoid outbound live migrations overwhelming the host/network
829and causing failures. It is not recommended that you change this unless
830you are very sure that doing so is safe and stable in your environment.
Michel Nederloff81919b2017-11-20 09:37:07 +0100831
OlgaGusarenko9dd01c92018-07-31 00:49:30 +0300832Possible values:
Michel Nederloff81919b2017-11-20 09:37:07 +0100833
OlgaGusarenko9dd01c92018-07-31 00:49:30 +0300834- 0 : treated as unlimited.
835- Negative value defaults to 0.
836- Any positive integer representing maximum number of live migrations
837 to run concurrently.
Michel Nederloff81919b2017-11-20 09:37:07 +0100838
839To configure this option:
840
841.. code-block:: yaml
842
843 nova:
844 compute:
845 max_concurrent_live_migrations: 1 # (1 is the default)
846
Sergio Lystopad9d31cba2018-05-15 11:29:11 +0300847Live migration with auto converge
848----------------------------------
849
OlgaGusarenko9dd01c92018-07-31 00:49:30 +0300850Auto converge throttles down CPU if a progress of on-going live
851migration is slow
852https://docs.openstack.org/ocata/config-reference/compute/config-options.html:
Sergio Lystopad9d31cba2018-05-15 11:29:11 +0300853
854.. code-block:: yaml
855
856 nova:
857 compute:
858 libvirt:
859 live_migration_permit_auto_converge: False # (False is the default)
860
861.. code-block:: yaml
862
863 nova:
864 controller:
865 libvirt:
866 live_migration_permit_auto_converge: False # (False is the default)
867
Dmitry Kalashnike58fe082017-12-01 16:31:14 +0400868Enhanced logging with logging.conf
869----------------------------------
870
OlgaGusarenko9dd01c92018-07-31 00:49:30 +0300871By default ``logging.conf`` is disabled.
Dmitry Kalashnike58fe082017-12-01 16:31:14 +0400872
873That is possible to enable per-binary logging.conf with new variables:
Dmitry Kalashnike58fe082017-12-01 16:31:14 +0400874
OlgaGusarenko9dd01c92018-07-31 00:49:30 +0300875* ``openstack_log_appender``
876 Set to true to enable log_config_append for all OpenStack services
877
878* ``openstack_fluentd_handler_enabled``
879 Set to true to enable FluentHandler for all Openstack services
880
881* ``openstack_ossyslog_handler_enabled``
882 Set to true to enable OSSysLogHandler for all Openstack services
883
884Only ``WatchedFileHandler``, ``OSSysLogHandler``, and ``FluentHandler``
885are available.
Dmitry Kalashnike58fe082017-12-01 16:31:14 +0400886
Dmitry Kalashnik8da249c2018-01-16 17:58:00 +0400887Also it is possible to configure this with pillar:
Dmitry Kalashnike58fe082017-12-01 16:31:14 +0400888
889.. code-block:: yaml
890
891 nova:
892 controller:
893 logging:
894 log_appender: true
895 log_handlers:
896 watchedfile:
897 enabled: true
898 fluentd:
899 enabled: true
Oleksii Chupryn99e35032018-02-06 01:59:40 +0200900 ossyslog:
901 enabled: true
Dmitry Kalashnike58fe082017-12-01 16:31:14 +0400902
903 compute:
904 logging:
905 log_appender: true
906 log_handlers:
907 watchedfile:
908 enabled: true
909 fluentd:
910 enabled: true
Oleksii Chupryn99e35032018-02-06 01:59:40 +0200911 ossyslog:
912 enabled: true
Thom Gerdesf582f1e2017-05-02 18:05:50 +0000913
Vasyl Saienko7243a952018-05-11 21:26:54 +0300914The log level might be configured per logger by using the
915following pillar structure:
916
917.. code-block:: yaml
918
919 nova:
920 compute:
921 logging:
922 loggers:
923 <logger_name>:
924 level: WARNING
925
926 nova:
927 compute:
928 logging:
929 loggers:
930 <logger_name>:
931 level: WARNING
932
Oleh Hryhorove38525d2018-05-15 08:58:59 +0000933Configure syslog parameters for libvirtd
934----------------------------------------
935
OlgaGusarenko9dd01c92018-07-31 00:49:30 +0300936To configure syslog parameters for libvirtd the below pillar
937structure should be used with values which are supported
Oleh Hryhorove38525d2018-05-15 08:58:59 +0000938by libvirtd. These values might be known from the documentation.
939
OlgaGusarenko9dd01c92018-07-31 00:49:30 +0300940.. code-block:: yaml
941
Oleh Hryhorove38525d2018-05-15 08:58:59 +0000942 nova:
943 compute:
944 libvirt:
945 logging:
946 level: 3
947 filters: '3:remote 4:event'
948 outputs: '3:syslog:libvirtd'
949 buffer_size: 64
950
OlgaGusarenko9dd01c92018-07-31 00:49:30 +0300951Logging controls:
Oleh Hryhorove38525d2018-05-15 08:58:59 +0000952
OlgaGusarenko9dd01c92018-07-31 00:49:30 +0300953Logging level: 4 errors, 3 warnings, 2 information, 1 debug
954basically 1 will log everything possible ``log_level = 3``
Oleh Hryhorove38525d2018-05-15 08:58:59 +0000955
OlgaGusarenko9dd01c92018-07-31 00:49:30 +0300956Logging filters:
Oleh Hryhorove38525d2018-05-15 08:58:59 +0000957
OlgaGusarenko9dd01c92018-07-31 00:49:30 +0300958A filter allows to select a different logging level for a given category
959of logs.
Oleh Hryhorove38525d2018-05-15 08:58:59 +0000960
OlgaGusarenko9dd01c92018-07-31 00:49:30 +0300961The format for a filter is one of:
Oleh Hryhorove38525d2018-05-15 08:58:59 +0000962
OlgaGusarenko9dd01c92018-07-31 00:49:30 +0300963* ``x:name``
964* ``x:+name``
965 where name is a string which is matched against source file name,
966 e.g., ``remote``, ``qemu``, or ``util/json``, the optional ``+`` prefix
967 tells libvirt to log stack trace for each message matching name,
968 and x is the minimal level where matching messages should be logged:
Oleh Hryhorove38525d2018-05-15 08:58:59 +0000969
OlgaGusarenko9dd01c92018-07-31 00:49:30 +0300970* ``1: DEBUG``
971* ``2: INFO``
972* ``3: WARNING``
973* ``4: ERROR``
974
975Multiple filter can be defined in a single @filters, they just
976need to be separated by spaces.
977
978For example, to only get warning or errors from the remote layer
979and only errors from the event layer: ``log_filters="3:remote 4:event``
980
981Logging outputs:
982
983An output is one of the places to save logging information
984The format for an output can be:
985
986* ``x:stderr``
987 Output goes to stderr
988
989* ``x:syslog:name``
990 Use syslog for the output and use the given name as the ident
991
992* ``x:file:file_path``
993 output to a file, with the given filepath
994
995 In all case the x prefix is the minimal level, acting as a filter
996
997* ``1: DEBUG``
998* ``2: INFO``
999* ``3: WARNING``
1000* ``4: ERROR``
1001
1002Multiple output can be defined, they just need to be separated by spaces.
1003For example, to log all warnings and errors to syslog under the libvirt
1004dident: ``log_outputs="3:syslog:libvirtd``
1005
1006Log debug buffer size: default 64
1007The daemon keeps an internal debug log buffer which will be dumped
1008in case of crash or upon receiving a ``SIGUSR2`` signal. This setting
1009allows to override the default buffer size in kilobytes.
1010If value is ``0`` or less the debug log buffer is deactivated
1011``log_buffer_size = 64``
1012
1013To configure the logging parameters for QEMU, the below pillar
1014structure and logging parameters should be used:
1015
1016.. code-block:: yaml
1017
1018 nova:
1019 compute:
1020 qemu:
1021 logging:
1022 handler: logd
1023 virtlog:
1024 enabled: true
1025 level: 4
1026 filters: '3:remote 3:event'
1027 outputs: '4:syslog:virtlogd'
1028 max_clients: 512
1029 max_size: 2097100
1030 max_backups: 2
Oleh Hryhorove38525d2018-05-15 08:58:59 +00001031
Oleksandr Shyshko981b4fa2018-05-02 15:39:30 +03001032Inject password to VM
1033---------------------
1034
OlgaGusarenko9dd01c92018-07-31 00:49:30 +03001035By default nova blocks up any inject to VM because
1036``inject_partition`` param is equal to ``-2``.
1037If you want to inject password to VM, you will need to
1038define ``inject_partition`` greater or equal to ``-1`` and
1039define ``inject_password`` to ``True``
Oleksandr Shyshko981b4fa2018-05-02 15:39:30 +03001040
1041For example:
1042
OlgaGusarenko9dd01c92018-07-31 00:49:30 +03001043.. code-block:: yaml
1044
Oleksandr Shyshko981b4fa2018-05-02 15:39:30 +03001045 nova:
1046 compute:
1047 inject_partition: '-1'
1048 inject_password: True
1049
OlgaGusarenko9dd01c92018-07-31 00:49:30 +03001050Allow the injection of an admin password for instance only at
1051``create`` and ``rebuild`` process.
1052
1053There is no agent needed within the image to do this. If *libguestfs* is
1054available on the host, it will be used. Otherwise *nbd* is used. The file
1055system of the image will be mounted and the admin password, which is provided
1056in the REST API call will be injected as password for the root user. If no
1057root user is available, the instance won't be launched and an error is thrown.
1058Be aware that the injection is *not* possible when the instance gets launched
1059from a volume.
1060
1061Possible values:
1062
1063* ``True``
1064 Allows the injection
1065
1066* ``False`` (default)
1067 Disallows the injection. Any via the REST API provided
1068 admin password will be silently ignored.
1069
1070Related options:
1071
1072* ``inject_partition``
1073 Decides about the discovery and usage of the file system.
1074 It also can disable the injection at all.
1075 (boolean value)
Oleksandr Shyshko981b4fa2018-05-02 15:39:30 +03001076
1077You can read more about injecting the administrator password here:
OlgaGusarenko9dd01c92018-07-31 00:49:30 +03001078https://docs.openstack.org/nova/queens/admin/admin-password-injection.html
Oleksandr Shyshko981b4fa2018-05-02 15:39:30 +03001079
Oleksandr Shyshko1c020d12018-05-24 12:47:08 +03001080Enable libvirt control channel over TLS
OlgaGusarenko9dd01c92018-07-31 00:49:30 +03001081---------------------------------------
Oleksandr Shyshko1c020d12018-05-24 12:47:08 +03001082
1083By default TLS is disabled.
1084
OlgaGusarenko9dd01c92018-07-31 00:49:30 +03001085Enable TLS transport:
1086
1087.. code-block:: yaml
Oleksandr Shyshko1c020d12018-05-24 12:47:08 +03001088
1089 compute:
1090 libvirt:
1091 tls:
1092 enabled: True
1093
1094You able to set custom certificates in pillar:
1095
OlgaGusarenko9dd01c92018-07-31 00:49:30 +03001096.. code-block:: yaml
1097
Oleksandr Shyshko1c020d12018-05-24 12:47:08 +03001098 nova:
1099 compute:
1100 libvirt:
1101 tls:
1102 key: (certificate content)
1103 cert: (certificate content)
1104 cacert: (certificate content)
1105 client:
1106 key: (certificate content)
1107 cert: (certificate content)
1108
Dmitry Teselkin70862022019-04-18 16:43:50 +03001109It is possible to limit allowed SSL / TLS ciphers using libvirt's tls_priority:
1110
1111.. code-block:: yaml
1112
1113 nova:
1114 compute:
1115 libvirt:
1116 tls:
1117 priority: <TLS priority string>
1118
1119Example priority strings are:
1120
1121- The system imposed security level:
1122
1123.. code-block:: text
1124
1125 "SYSTEM"
1126
1127- The default priority without the HMAC-MD5:
1128
1129.. code-block:: text
1130
1131 "NORMAL:-MD5"
1132
1133- Specifying RSA with AES-128-CBC:
1134
1135.. code-block:: text
1136
1137 "NONE:+VERS-TLS-ALL:+MAC-ALL:+RSA:+AES-128-CBC:+SIGN-ALL:+COMP-NULL"
1138
1139- Specifying the defaults plus ARCFOUR-128:
1140
1141.. code-block:: text
1142
1143 "NORMAL:+ARCFOUR-128"
1144
1145- Enabling the 128-bit secure ciphers, while disabling TLS 1.0:
1146
1147.. code-block:: text
1148
1149 "SECURE128:-VERS-TLS1.0"
1150
1151- Enabling the 128-bit and 192-bit secure ciphers, while disabling all TLS
1152 versions except TLS 1.2:
1153
1154.. code-block:: text
1155
1156 "SECURE128:+SECURE192:-VERS-ALL:+VERS-TLS1.2"
1157
1158More on TLS Priority Strings:
1159
1160- https://gnutls.org/manual/html_node/Priority-Strings.html
1161
Vasyl Saienko11ac9732018-10-02 17:04:33 +00001162Controlling access by `tls_allowed_dn_list`.
1163Enable an access control list of client certificate Distinguished Names (DNs)
1164which can connect to the TLS port on this server. The default is that DNs are
1165not checked. This list may contain wildcards such as
1166"C=GB,ST=London,L=London,O=Libvirt Project,CN=*" See the POSIX fnmatch function
1167for the format of the wildcards.
1168Note that if this is an empty list, no client can connect.
1169Note also that GnuTLS returns DNs without spaces after commas between
1170the fields (and this is what we check against), but the openssl x509 tool
1171shows spaces.
1172
1173.. code-block:: yaml
1174
1175 nova:
1176 compute:
1177 libvirt:
1178 tls:
1179 tls_allowed_dn_list:
1180 host1:
1181 enabled: true
1182 value: 'C=foo,CN=cmp1'
1183 host2:
1184 enabled: true
1185 value: 'C=foo,CN=cmp2'
1186
1187
Oleksandr Shyshko1c020d12018-05-24 12:47:08 +03001188You can read more about live migration over TLS here:
OlgaGusarenko9dd01c92018-07-31 00:49:30 +03001189https://wiki.libvirt.org/page/TLSCreateServerCerts
Oleksandr Shyshko981b4fa2018-05-02 15:39:30 +03001190
Oleksandr Shyshko1195fca2018-07-09 18:22:59 +03001191Enable transport + authentication for VNC over TLS
1192---------------------
Oleksandr Shyshkod8337cf2018-07-11 17:55:58 +03001193# Only for Queens. Communication between noVNC proxy service and QEMU
Oleksandr Shyshko1195fca2018-07-09 18:22:59 +03001194
1195By default communication between nova-novncproxy and qemu service is unsecure.
1196
1197compute:
1198 qemu:
1199 vnc:
1200 tls:
1201 enabled: True
1202
1203controller:
1204 novncproxy:
Oleksandr Shyshkod8337cf2018-07-11 17:55:58 +03001205 # This section responsible for communication between noVNC proxy and client machine
Oleksandr Shyshko1195fca2018-07-09 18:22:59 +03001206 tls:
1207 enabled: True
Oleksandr Shyshkod8337cf2018-07-11 17:55:58 +03001208 # This section responsible for communication between nova-novncproxy and qemu service
1209 vencrypt:
1210 tls:
1211 enabled: True
Oleksandr Shyshko1195fca2018-07-09 18:22:59 +03001212
1213You able to set custom certificates in pillar:
1214
Oleksandr Shyshkod8337cf2018-07-11 17:55:58 +03001215nova:
1216 compute:
1217 qemu:
1218 vnc:
1219 tls:
1220 cacert (certificate content)
1221 cert (certificate content)
1222 key (certificate content)
1223
1224nova:
1225 controller:
1226 novncproxy:
1227 tls:
1228 server:
1229 cert (certificate content)
1230 key (certificate content)
1231 vencrypt:
1232 tls:
1233 cacert (certificate content)
1234 cert (certificate content)
1235 key (certificate content)
1236
1237
1238You can read more about it here:
1239 https://docs.openstack.org/nova/queens/admin/remote-console-access.html
1240
1241Enable communication between noVNC proxy and client machine over TLS
1242---------------------
1243
1244By default communication between noVNC proxy and client machine is unsecure.
1245
1246 controller:
1247 novncproxy:
1248 tls:
1249 enabled: True
Oleksandr Shyshko1195fca2018-07-09 18:22:59 +03001250
1251 nova:
1252 controller:
1253 novncproxy:
1254 tls:
Oleksandr Shyshkod8337cf2018-07-11 17:55:58 +03001255 server:
1256 cert (certificate content)
1257 key (certificate content)
Oleksandr Shyshko1195fca2018-07-09 18:22:59 +03001258
1259You can read more about it here:
Oleksandr Shyshkod8337cf2018-07-11 17:55:58 +03001260 https://docs.openstack.org/mitaka/config-reference/dashboard/configure.html
Oleksandr Shyshko1195fca2018-07-09 18:22:59 +03001261
Oleksandr Shyshko55eeac72018-08-03 18:23:28 +03001262Enable x509 and ssl communication between Nova and Galera cluster.
1263---------------------
1264By default communication between Nova and Galera is unsecure.
1265
Oleksandr Shyshkocbe87352018-09-07 13:42:57 +03001266nova:
1267 controller:
1268 database:
1269 x509:
1270 enabled: True
1271
Oleksandr Shyshko55eeac72018-08-03 18:23:28 +03001272You able to set custom certificates in pillar:
Oleksandr Shyshko55eeac72018-08-03 18:23:28 +03001273
1274nova:
1275 controller:
1276 database:
1277 x509:
Oleksandr Shyshkocbe87352018-09-07 13:42:57 +03001278 cacert: (certificate content)
1279 cert: (certificate content)
1280 key: (certificate content)
Oleksandr Shyshko55eeac72018-08-03 18:23:28 +03001281
1282You can read more about it here:
1283 https://docs.openstack.org/security-guide/databases/database-access-control.html
1284
Oleksandr Bryndzii687b6542019-02-20 15:51:15 +02001285Configure nova to use service user tokens:
1286========
1287Long-running operations such as live migration or snapshot can sometimes overrun the
1288expiry of the user token. In such cases, post operations such as cleaning up after a
1289live migration can fail when the nova-compute service needs to cleanup resources in
1290other services, such as in the block-storage (cinder) or networking (neutron) services.
1291
1292This patch enables nova to use service user tokens to supplement the regular user token
1293used to initiate the operation. The identity service (keystone) will then authenticate
1294a request using the service user token if the user token has already expired.
1295
1296.. code-block:: yaml
1297
1298 nova:
1299 controller:
1300 enabled: True
1301 ...
1302 service_user:
1303 enabled: True
1304 user_domain_id: default
1305 project_domain_id: default
1306 project_name: service
1307 username: nova
1308 password: pswd
1309
1310
obryndzii2ea61412019-01-31 00:55:56 +00001311Nova database connection setup:
1312========
1313
1314.. code-block:: yaml
1315
1316 nova:
1317 controller:
1318 enabled: True
1319 ...
1320 min_pool_size: 100
1321 max_pool_size: 700
1322 max_overflow: 100
1323 retry_interval: 5
1324 max_retries: '-1'
1325 db_max_retries: 3
1326 db_retry_interval: 1
1327 connection_debug: 10
1328 pool_timeout: 120
Oleksandr Bryndzii687b6542019-02-20 15:51:15 +02001329
Oleksandr Bryndziife715df2019-04-23 15:34:42 +03001330Change default resource quotas using configmap template settings
1331========
1332
1333.. code-block:: yaml
1334
1335 nova:
1336 controller:
1337 configmap:
1338 quota:
1339 instances: 10
1340 cores: 20
1341 ram: 51200
1342 metadata_items: 128
1343 injected_files: 5
1344 injected_file_content_bytes: 10240
1345 injected_file_path_length: 255
1346 key_pairs: 100
1347 server_groups: 10
1348 server_group_members: 10
1349 reservation_expire: 86400
1350 until_refresh: 0
1351 max_age: 0
1352
Oleh Hryhorov63ee8452018-08-14 09:16:02 +00001353Upgrades
1354========
1355
1356Each openstack formula provide set of phases (logical bloks) that will help to
1357build flexible upgrade orchestration logic for particular components. The list
1358of phases might and theirs descriptions are listed in table below:
1359
1360+-------------------------------+------------------------------------------------------+
1361| State | Description |
1362+===============================+======================================================+
1363| <app>.upgrade.service_running | Ensure that all services for particular application |
1364| | are enabled for autostart and running |
1365+-------------------------------+------------------------------------------------------+
1366| <app>.upgrade.service_stopped | Ensure that all services for particular application |
1367| | disabled for autostart and dead |
1368+-------------------------------+------------------------------------------------------+
1369| <app>.upgrade.pkgs_latest | Ensure that packages used by particular application |
1370| | are installed to latest available version. |
1371| | This will not upgrade data plane packages like qemu |
1372| | and openvswitch as usually minimal required version |
1373| | in openstack services is really old. The data plane |
1374| | packages should be upgraded separately by `apt-get |
1375| | upgrade` or `apt-get dist-upgrade` |
1376| | Applying this state will not autostart service. |
1377+-------------------------------+------------------------------------------------------+
1378| <app>.upgrade.render_config | Ensure configuration is rendered actual version. +
1379+-------------------------------+------------------------------------------------------+
1380| <app>.upgrade.pre | We assume this state is applied on all nodes in the |
1381| | cloud before running upgrade. |
1382| | Only non destructive actions will be applied during |
1383| | this phase. Perform service built in service check |
1384| | like (keystone-manage doctor and nova-status upgrade)|
1385+-------------------------------+------------------------------------------------------+
1386| <app>.upgrade.upgrade.pre | Mostly applicable for data plane nodes. During this |
1387| | phase resources will be gracefully removed from |
1388| | current node if it is allowed. Services for upgraded |
1389| | application will be set to admin disabled state to |
1390| | make sure node will not participate in resources |
1391| | scheduling. For example on gtw nodes this will set |
1392| | all agents to admin disable state and will move all |
1393| | routers to other agents. |
1394+-------------------------------+------------------------------------------------------+
1395| <app>.upgrade.upgrade | This state will basically upgrade application on |
1396| | particular target. Stop services, render |
1397| | configuration, install new packages, run offline |
1398| | dbsync (for ctl), start services. Data plane should |
1399| | not be affected, only OpenStack python services. |
1400+-------------------------------+------------------------------------------------------+
1401| <app>.upgrade.upgrade.post | Add services back to scheduling. |
1402+-------------------------------+------------------------------------------------------+
1403| <app>.upgrade.post | This phase should be launched only when upgrade of |
1404| | the cloud is completed. Cleanup temporary files, |
1405| | perform other post upgrade tasks. |
1406+-------------------------------+------------------------------------------------------+
1407| <app>.upgrade.verify | Here we will do basic health checks (API CRUD |
1408| | operations, verify do not have dead network |
1409| | agents/compute services) |
1410+-------------------------------+------------------------------------------------------+
Oleksandr Pidrepnyidabe8b22019-06-07 16:18:11 +03001411
1412
1413Don't manage services scheduling while upgrade
1414----------------------------------------------
1415For some special cases, don't manage services scheduling both enable and disable
1416before and after upgrade procedure.
1417
1418If 'manage_service_maintenance: true' or not present - default behavior, disable services
1419before upgrade and enable it after upgrade.
1420If 'manage_service_maintenance: false' - don't disable and don't enable upgraded services
1421scheduling before and after upgrade.
1422
1423.. code-block:: yaml
1424
1425 nova:
1426 upgrade:
1427 manage_service_maintenance: false