blob: 9284f9f104fc36472e0002fa01c0ea49e77c3a12 [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
Martin Polreichdbf4f142019-12-17 14:19:44 +0100281Change default service policy configuration:
282--------------------------------------------
283
284.. code-block:: yaml
285
286 nova:
287 controller:
288 policy:
289 'context_is_admin': 'role:admin or role:administrator'
290 'compute:create': 'rule:admin_or_owner'
291 # Add key without value to remove line from policy.json
292 'compute:create:attach_network':
293
294
Filip Pytloun4a72d792015-10-06 16:28:32 +0200295Compute nodes
296-------------
297
OlgaGusarenko9dd01c92018-07-31 00:49:30 +0300298Nova controller services on compute node:
Filip Pytloun4a72d792015-10-06 16:28:32 +0200299
300.. code-block:: yaml
301
302 nova:
303 compute:
304 version: juno
305 enabled: true
Dmitry Stremkovskiy2bcba8d2017-07-30 21:43:59 +0300306 cross_az_attach: false
Dmitry Stremkovskiy35e53b72017-07-29 12:50:39 +0300307 disk_cachemodes: network=writeback,block=none
Jiri Broulik70d9e3f2017-02-15 18:37:13 +0100308 availability_zone: availability_zone_01
Damian Szelugae1922412017-04-18 16:36:46 +0200309 aggregates:
310 - hosts_with_fc
311 - hosts_with_ssd
Filip Pytloun4a72d792015-10-06 16:28:32 +0200312 security_group: true
Petr Michalecf03e4882017-04-10 10:26:18 +0200313 resume_guests_state_on_host_boot: False
Michael Polenchuk159c2542018-06-09 15:31:51 +0400314 preallocate_images: space # Default is 'none'
Dmitry Stremkovskiy8a0ff512017-07-25 20:54:13 +0300315 my_ip: 10.1.0.16
Ivan Berezovskiy689e6ea2019-11-14 20:17:58 +0400316 concurrency:
317 lock_path: '/var/lib/nova/tmp'
Filip Pytloun4a72d792015-10-06 16:28:32 +0200318 bind:
319 vnc_address: 172.20.0.100
320 vnc_port: 6080
321 vnc_name: openstack.domain.com
322 vnc_protocol: http
323 database:
324 engine: mysql
325 host: 127.0.0.1
326 port: 3306
327 name: nova
328 user: nova
329 password: pwd
330 identity:
331 engine: keystone
332 host: 127.0.0.1
333 port: 35357
334 user: nova
335 password: pwd
336 tenant: service
337 message_queue:
338 engine: rabbitmq
339 host: 127.0.0.1
340 port: 5672
341 user: openstack
342 password: pwd
343 virtual_host: '/openstack'
344 image:
345 engine: glance
346 host: 127.0.0.1
347 port: 9292
Oleh Hryhorovf5093b82018-10-17 11:16:08 +0000348 pci:
349 alias:
350 alias1:
351 device_type: "type-PF"
352 name: "a1"
353 product_id: "154d"
354 vendor_id: "8086"
Filip Pytloun4a72d792015-10-06 16:28:32 +0200355 network:
356 engine: neutron
357 host: 127.0.0.1
358 port: 9696
359 identity:
360 engine: keystone
361 host: 127.0.0.1
362 port: 35357
363 user: neutron
364 password: pwd
365 tenant: service
366 qemu:
367 max_files: 4096
368 max_processes: 4096
Dmitry Stremkovskiy96281f52017-07-26 00:39:22 +0300369 host: node-12.domain.tld
Filip Pytloun4a72d792015-10-06 16:28:32 +0200370
Vasyl Saienkocab3a902018-07-12 13:17:17 +0300371Compute with vmware driver. Each vmware cluster requires a separate process of nova-compute.
372Each process should have uniq host identifier. However multiple computes might be running on
373single host. It is not recommended to have multiple computes running on different hosts that
374manage the same vmware cluster. To achive this pacemaker/corosync or keepalived might be used.
375
376.. code-block:: yaml
377
378 nova:
379 compute:
380 compute_driver: vmwareapi.VMwareVCDriver
381 vmware:
382 host_username: vmware
383 host_password: vmware
384 cluster_name: vmware_cluster01
385 host_ip: 1.2.3.4
386
OlgaGusarenko9dd01c92018-07-31 00:49:30 +0300387Group and user to be used for QEMU processes run by the system instance:
kkalynovskyif50f0c02017-12-12 17:52:57 +0200388
389.. code-block:: yaml
390
391 nova:
392 compute:
393 enabled: true
394 ...
395 qemu:
396 user: nova
397 group: cinder
398 dynamic_ownership: 1
399
OlgaGusarenko9dd01c92018-07-31 00:49:30 +0300400Group membership for user nova (upgrade related):
Dmitry Stremkovskiy3cd6ba82017-07-25 17:15:36 +0300401
402.. code-block:: yaml
403
404 nova:
405 compute:
406 enabled: true
407 ...
408 user:
409 groups:
410 - libvirt
Filip Pytloun4a72d792015-10-06 16:28:32 +0200411
OlgaGusarenko9dd01c92018-07-31 00:49:30 +0300412Nova services on compute node with OpenContrail:
Filip Pytloun4a72d792015-10-06 16:28:32 +0200413
414.. code-block:: yaml
415
416 nova:
417 compute:
418 enabled: true
419 ...
420 networking: contrail
421
Oleksandr Bryndziibb8abfe2018-09-28 22:21:43 +0000422Nova services on compute node with memcached caching and security strategy:
Filip Pytloun4a72d792015-10-06 16:28:32 +0200423
424.. code-block:: yaml
425
426 nova:
427 compute:
428 enabled: true
429 ...
430 cache:
431 engine: memcached
432 members:
433 - host: 127.0.0.1
434 port: 11211
435 - host: 127.0.0.1
436 port: 11211
Oleksandr Bryndziibb8abfe2018-09-28 22:21:43 +0000437 security:
438 enabled: true
439 strategy: ENCRYPT
440 secret_key: secret
Filip Pytloun4a72d792015-10-06 16:28:32 +0200441
OlgaGusarenko9dd01c92018-07-31 00:49:30 +0300442Client-side RabbitMQ HA setup:
Jiri Konecnye31f2c52016-04-14 17:16:02 +0200443
444.. code-block:: yaml
445
446 nova:
Kirill Bespalov64617172017-07-11 14:43:14 +0300447 compute:
Jiri Konecnye31f2c52016-04-14 17:16:02 +0200448 ....
449 message_queue:
450 engine: rabbitmq
451 members:
452 - host: 10.0.16.1
453 - host: 10.0.16.2
454 - host: 10.0.16.3
455 user: openstack
456 password: pwd
457 virtual_host: '/openstack'
458 ....
459
OlgaGusarenko9dd01c92018-07-31 00:49:30 +0300460Nova with ephemeral configured with Ceph:
maxstack39e6aca2016-05-04 13:50:13 +0000461
462.. code-block:: yaml
463
464 nova:
465 compute:
466 enabled: true
467 ...
468 ceph:
469 ephemeral: yes
470 rbd_pool: nova
471 rbd_user: nova
472 secret_uuid: 03006edd-d957-40a3-ac4c-26cd254b3731
Kalynovskyi0bc79692017-07-21 16:22:09 +0300473 ....
maxstack39e6aca2016-05-04 13:50:13 +0000474
OlgaGusarenko9dd01c92018-07-31 00:49:30 +0300475Nova with ephemeral configured with LVM:
Kalynovskyi0bc79692017-07-21 16:22:09 +0300476
477.. code-block:: yaml
478
479 nova:
480 compute:
481 enabled: true
482 ...
483 lvm:
484 ephemeral: yes
485 images_volume_group: nova_vg
486
487 linux:
488 storage:
489 lvm:
490 nova_vg:
491 name: nova_vg
492 devices:
493 - /dev/sdf
494 - /dev/sdd
495 - /dev/sdg
496 - /dev/sde
497 - /dev/sdc
498 - /dev/sdj
499 - /dev/sdh
maxstack39e6aca2016-05-04 13:50:13 +0000500
OlgaGusarenko9dd01c92018-07-31 00:49:30 +0300501Enable Barbican integration:
Oleg Iurchenko370c10d2017-10-19 14:03:37 +0300502
503.. code-block:: yaml
504
505 nova:
506 compute:
507 ....
508 barbican:
509 enabled: true
510
Oleh Hryhorovf5093b82018-10-17 11:16:08 +0000511Define aliases for PCI devices:
512.. code-block:: yaml
513
514 nova:
515 compute:
516 ...
517 pci:
518 alias:
519 alias1:
520 device_type: "type-PF"
521 name: "a1"
522 product_id: "154d"
523 vendor_id: "8086"
524
OlgaGusarenko9dd01c92018-07-31 00:49:30 +0300525Nova metadata custom bindings:
Vasyl Saienko2d591282018-02-05 14:19:02 +0200526
527.. code-block:: yaml
528
529 nova:
530 controller:
531 enabled: true
532 ...
533 metadata:
534 bind:
535 address: 1.2.3.4
536 port: 8776
537
Oleh Hryhorov08482aa2018-11-19 14:07:47 +0200538Define multipath for nova compute:
539
540.. code-block:: yaml
541
542 nova:
543 compute:
544 ....
545 libvirt:
546 volume_use_multipath: True
547
Oleh Hryhorov5add3b22019-03-06 17:00:00 +0000548To disable or enable StrictHostKeyChecking and discover
549compute nodes fingerprints the below pillar should be used:
550
551.. code-block:: yaml
552
553 nova:
554 compute:
555 ....
556 openssh:
557 stricthostkeychecking: True
558 discover_compute_hosts: True
559
Jiri Broulik0ce9fc92017-02-01 23:10:40 +0100560Client role
561-----------
562
OlgaGusarenko9dd01c92018-07-31 00:49:30 +0300563Nova configured with NFS:
Dmitry Stremkovskiy665c7282017-07-05 17:36:27 +0300564
565.. code-block:: yaml
566
567 nova:
568 compute:
569 instances_path: /mnt/nova/instances
570
571 linux:
572 storage:
573 enabled: true
574 mount:
575 nfs_nova:
576 enabled: true
577 path: ${nova:compute:instances_path}
578 device: 172.31.35.145:/data
579 file_system: nfs
580 opts: rw,vers=3
581
OlgaGusarenko9dd01c92018-07-31 00:49:30 +0300582Nova flavors:
Jiri Broulik0ce9fc92017-02-01 23:10:40 +0100583
584.. code-block:: yaml
585
586 nova:
587 client:
588 enabled: true
589 server:
590 identity:
591 flavor:
Jiri Broulik70d9e3f2017-02-15 18:37:13 +0100592 flavor1:
Jiri Broulik0ce9fc92017-02-01 23:10:40 +0100593 flavor_id: 10
594 ram: 4096
595 disk: 10
596 vcpus: 1
Jiri Broulik70d9e3f2017-02-15 18:37:13 +0100597 flavor2:
598 flavor_id: auto
599 ram: 4096
600 disk: 20
601 vcpus: 2
Jiri Broulik0ce9fc92017-02-01 23:10:40 +0100602 identity1:
603 flavor:
604 ...
605
OlgaGusarenko9dd01c92018-07-31 00:49:30 +0300606Availability zones:
Jiri Broulik70d9e3f2017-02-15 18:37:13 +0100607
608.. code-block:: yaml
609
610 nova:
611 client:
612 enabled: true
613 server:
614 identity:
615 availability_zones:
616 - availability_zone_01
617 - availability_zone_02
618
OlgaGusarenko9dd01c92018-07-31 00:49:30 +0300619Aggregates:
Damian Szeluga5dca0f02017-04-13 17:27:15 +0200620
621.. code-block:: yaml
622
623 nova:
624 client:
625 enabled: true
626 server:
627 identity:
628 aggregates:
629 - aggregate1
630 - aggregate2
631
OlgaGusarenko9dd01c92018-07-31 00:49:30 +0300632Upgrade levels:
Dmitry Stremkovskiy91f45852017-07-18 16:22:31 +0300633
634.. code-block:: yaml
635
636 nova:
637 controller:
638 upgrade_levels:
639 compute: juno
640
641 nova:
642 compute:
643 upgrade_levels:
644 compute: juno
645
Petr Jedinýd855ef22017-03-06 22:24:33 +0100646SR-IOV
Jakub Pavlik39a05942017-02-13 23:03:08 +0100647------
648
OlgaGusarenko9dd01c92018-07-31 00:49:30 +0300649Add ``PciPassthroughFilter`` into scheduler filters and NICs on
650specific compute nodes:
Jakub Pavlik39a05942017-02-13 23:03:08 +0100651
652.. code-block:: yaml
653
654 nova:
655 controller:
656 sriov: true
sandriichenko4fe321d2018-01-22 17:34:06 +0000657 scheduler_default_filters: "DifferentHostFilter,SameHostFilter,RetryFilter,AvailabilityZoneFilter,RamFilter,CoreFilter,DiskFilter,ComputeFilter,ComputeCapabilitiesFilter,ImagePropertiesFilter,ServerGroupAntiAffinityFilter,ServerGroupAffinityFilter,PciPassthroughFilter"
Jakub Pavlik39a05942017-02-13 23:03:08 +0100658
659 nova:
660 compute:
661 sriov:
662 nic_one:
663 devname: eth1
664 physical_network: physnet1
665
Oleh Hryhorovf5093b82018-10-17 11:16:08 +0000666.. note:: Parameters located under nova:compute:sriov:<nic_name> are copied to passthrough_whitelist parameter into
667 nova.conf file in appropriate format.
668
Jakub Pavlik26fb85c2017-02-16 22:29:22 +0100669CPU pinning & Hugepages
670-----------------------
671
OlgaGusarenko9dd01c92018-07-31 00:49:30 +0300672CPU pinning of virtual machine instances to dedicated physical
673CPU cores. Hugepages mount point for libvirt.
Jakub Pavlik26fb85c2017-02-16 22:29:22 +0100674
675.. code-block:: yaml
676
677 nova:
678 controller:
sandriichenko4fe321d2018-01-22 17:34:06 +0000679 scheduler_default_filters: "DifferentHostFilter,SameHostFilter,RetryFilter,AvailabilityZoneFilter,RamFilter,CoreFilter,DiskFilter,ComputeFilter,ComputeCapabilitiesFilter,ImagePropertiesFilter,ServerGroupAntiAffinityFilter,ServerGroupAffinityFilter,NUMATopologyFilter,AggregateInstanceExtraSpecsFilter"
Jakub Pavlik26fb85c2017-02-16 22:29:22 +0100680
681 nova:
682 compute:
683 vcpu_pin_set: 2,3,4,5
684 hugepages:
685 mount_points:
686 - path: /mnt/hugepages_1GB
687 - path: /mnt/hugepages_2MB
Jiri Broulik0ce9fc92017-02-01 23:10:40 +0100688
Michel Nederlof171c7ac2017-04-13 12:54:14 +0200689Custom Scheduler filters
690------------------------
691
OlgaGusarenko9dd01c92018-07-31 00:49:30 +0300692If you have a custom filter, that needs to be included in the
693scheduler, then you can include it like so:
Michel Nederlof171c7ac2017-04-13 12:54:14 +0200694
695.. code-block:: yaml
696
697 nova:
698 controller:
699 scheduler_custom_filters:
700 - my_custom_driver.nova.scheduler.filters.my_custom_filter.MyCustomFilter
701
702 # 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 +0000703 scheduler_default_filters: "DifferentHostFilter,SameHostFilter,RetryFilter,AvailabilityZoneFilter,RamFilter,CoreFilter,DiskFilter,ComputeFilter,ComputeCapabilitiesFilter,ImagePropertiesFilter,ServerGroupAntiAffinityFilter,ServerGroupAffinityFilter,PciPassthroughFilter,MyCustomFilter"
Michel Nederlof171c7ac2017-04-13 12:54:14 +0200704
Michael Polenchuk2bce2cb2018-09-17 16:05:43 +0400705 # Since Queens version a sequence could be used as well:
706 ~scheduler_default_filters:
707 - DifferentHostFilter
708 - SameHostFilter
709 ...
710 - MyCustomFilter
711
712
Michel Nederlofeb566f62017-04-21 15:37:47 +0200713Hardware Trip/Unmap Support
714---------------------------
715
OlgaGusarenko9dd01c92018-07-31 00:49:30 +0300716To enable TRIM support for ephemeral images (thru nova managed
717images), libvirt has this option:
Michel Nederlofeb566f62017-04-21 15:37:47 +0200718
719.. code-block:: yaml
720
721 nova:
722 compute:
723 libvirt:
724 hw_disk_discard: unmap
725
OlgaGusarenko9dd01c92018-07-31 00:49:30 +0300726To actually utilize this feature, the following metadata must be
727set on the image as well, so the SCSI unmap is supported:
Michel Nederlofeb566f62017-04-21 15:37:47 +0200728
729.. code-block:: bash
730
731 glance image-update --property hw_scsi_model=virtio-scsi <image>
732 glance image-update --property hw_disk_bus=scsi <image>
Filip Pytloun5bc9e9f2017-02-02 13:05:40 +0100733
Thom Gerdesf582f1e2017-05-02 18:05:50 +0000734Scheduler Host Manager
735----------------------
736
737Specify a custom host manager.
738
Thom Gerdesec00afd2017-04-07 18:06:59 +0000739libvirt CPU mode
740----------------
741
OlgaGusarenko9dd01c92018-07-31 00:49:30 +0300742Allow setting the model of CPU that is exposed to a VM. This
743allows for better support live migration between hypervisors with
744different hardware, among other things. Defaults to host-passthrough.
Jakub Pavlik7046b9c2017-09-19 12:04:19 +0200745
Thom Gerdesf582f1e2017-05-02 18:05:50 +0000746.. code-block:: yaml
747
748 nova:
749 controller:
750 scheduler_host_manager: ironic_host_manager
751
Thom Gerdesec00afd2017-04-07 18:06:59 +0000752 compute:
753 cpu_mode: host-model
754
Dzmitry Stremkouski7da9bf12018-04-25 22:30:37 +0200755Nova compute cpu model
756----------------------
757
758.. code-block:: yaml
759
760 nova:
761 compute:
762 cpu_mode: custom
763 libvirt:
764 cpu_model: IvyBridge
765
Oleksandr Pidrepnyief9fd782019-03-04 19:18:19 +0200766RNG (Random Number Generator) device path
767----------------------
768
769The path to an RNG (Random Number Generator) device that will be used
770as the source of entropy on the host.
771The recommended source of entropy is /dev/urandom.
772Permitted options are: /dev/random, /dev/urandom or /dev/hwrng.
773Default: /dev/urandom
774
775.. code-block:: yaml
776
777 nova:
778 controller:
779 libvirt:
780 rng_dev_path: /dev/random
781
782 compute:
783 libvirt:
784 rng_dev_path: /dev/random
785
Dzmitry Stremkouski7da9bf12018-04-25 22:30:37 +0200786
Michel Nederloff7eefb22017-07-10 11:14:33 +0200787Nova compute workarounds
788------------------------
789
OlgaGusarenko9dd01c92018-07-31 00:49:30 +0300790Live snapshotting is disabled by default in nova. To enable
791this, it needs a manual switch.
Michel Nederloff7eefb22017-07-10 11:14:33 +0200792
793From manual:
794
795.. code-block:: yaml
796
OlgaGusarenko9dd01c92018-07-31 00:49:30 +0300797 When using libvirt 1.2.2 live snapshots fail intermittently under load
798 (likely related to concurrent libvirt/qemu operations). This config
799 option provides a mechanism to disable live snapshot, in favor of cold
800 snapshot, while this is resolved. Cold snapshot causes an instance
801 outage while the guest is going through the snapshotting process.
802
803 For more information, refer to the bug report:
804
805 https://bugs.launchpad.net/nova/+bug/1334398
Michel Nederloff7eefb22017-07-10 11:14:33 +0200806
807Configurable pillar data:
808
809.. code-block:: yaml
810
811 nova:
812 compute:
Michel Nederlofe322ebb2017-07-10 12:29:21 +0200813 workaround:
Michel Nederloff7eefb22017-07-10 11:14:33 +0200814 disable_libvirt_livesnapshot: False
815
Michel Nederlofb51a5142017-06-27 08:31:35 +0200816Config drive options
817--------------------
818
OlgaGusarenko9dd01c92018-07-31 00:49:30 +0300819See example below on how to configure the options for the
820config drive:
Michel Nederlofb51a5142017-06-27 08:31:35 +0200821
822.. code-block:: yaml
823
824 nova:
825 compute:
826 config_drive:
827 forced: True # Default: True
828 cdrom: True # Default: False
829 format: iso9660 # Default: vfat
830 inject_password: False # Default: False
831
Michel Nederloff81919b2017-11-20 09:37:07 +0100832Number of concurrent live migrates
833----------------------------------
834
OlgaGusarenko9dd01c92018-07-31 00:49:30 +0300835Default is to have no concurrent live migrations (so 1
836live-migration at a time).
Michel Nederloff81919b2017-11-20 09:37:07 +0100837
OlgaGusarenko9dd01c92018-07-31 00:49:30 +0300838Excerpt from config options page
839https://docs.openstack.org/ocata/config-reference/compute/config-options.html:
Michel Nederloff81919b2017-11-20 09:37:07 +0100840
OlgaGusarenko9dd01c92018-07-31 00:49:30 +0300841Maximum number of live migrations to run concurrently. This limit is
842enforced to avoid outbound live migrations overwhelming the host/network
843and causing failures. It is not recommended that you change this unless
844you are very sure that doing so is safe and stable in your environment.
Michel Nederloff81919b2017-11-20 09:37:07 +0100845
OlgaGusarenko9dd01c92018-07-31 00:49:30 +0300846Possible values:
Michel Nederloff81919b2017-11-20 09:37:07 +0100847
OlgaGusarenko9dd01c92018-07-31 00:49:30 +0300848- 0 : treated as unlimited.
849- Negative value defaults to 0.
850- Any positive integer representing maximum number of live migrations
851 to run concurrently.
Michel Nederloff81919b2017-11-20 09:37:07 +0100852
853To configure this option:
854
855.. code-block:: yaml
856
857 nova:
858 compute:
859 max_concurrent_live_migrations: 1 # (1 is the default)
860
Sergio Lystopad9d31cba2018-05-15 11:29:11 +0300861Live migration with auto converge
862----------------------------------
863
OlgaGusarenko9dd01c92018-07-31 00:49:30 +0300864Auto converge throttles down CPU if a progress of on-going live
865migration is slow
866https://docs.openstack.org/ocata/config-reference/compute/config-options.html:
Sergio Lystopad9d31cba2018-05-15 11:29:11 +0300867
868.. code-block:: yaml
869
870 nova:
871 compute:
872 libvirt:
873 live_migration_permit_auto_converge: False # (False is the default)
874
875.. code-block:: yaml
876
877 nova:
878 controller:
879 libvirt:
880 live_migration_permit_auto_converge: False # (False is the default)
881
Dmitry Kalashnike58fe082017-12-01 16:31:14 +0400882Enhanced logging with logging.conf
883----------------------------------
884
OlgaGusarenko9dd01c92018-07-31 00:49:30 +0300885By default ``logging.conf`` is disabled.
Dmitry Kalashnike58fe082017-12-01 16:31:14 +0400886
887That is possible to enable per-binary logging.conf with new variables:
Dmitry Kalashnike58fe082017-12-01 16:31:14 +0400888
OlgaGusarenko9dd01c92018-07-31 00:49:30 +0300889* ``openstack_log_appender``
890 Set to true to enable log_config_append for all OpenStack services
891
892* ``openstack_fluentd_handler_enabled``
893 Set to true to enable FluentHandler for all Openstack services
894
895* ``openstack_ossyslog_handler_enabled``
896 Set to true to enable OSSysLogHandler for all Openstack services
897
898Only ``WatchedFileHandler``, ``OSSysLogHandler``, and ``FluentHandler``
899are available.
Dmitry Kalashnike58fe082017-12-01 16:31:14 +0400900
Dmitry Kalashnik8da249c2018-01-16 17:58:00 +0400901Also it is possible to configure this with pillar:
Dmitry Kalashnike58fe082017-12-01 16:31:14 +0400902
903.. code-block:: yaml
904
905 nova:
906 controller:
907 logging:
908 log_appender: true
909 log_handlers:
910 watchedfile:
911 enabled: true
912 fluentd:
913 enabled: true
Oleksii Chupryn99e35032018-02-06 01:59:40 +0200914 ossyslog:
915 enabled: true
Dmitry Kalashnike58fe082017-12-01 16:31:14 +0400916
917 compute:
918 logging:
919 log_appender: true
920 log_handlers:
921 watchedfile:
922 enabled: true
923 fluentd:
924 enabled: true
Oleksii Chupryn99e35032018-02-06 01:59:40 +0200925 ossyslog:
926 enabled: true
Thom Gerdesf582f1e2017-05-02 18:05:50 +0000927
Vasyl Saienko7243a952018-05-11 21:26:54 +0300928The log level might be configured per logger by using the
929following pillar structure:
930
931.. code-block:: yaml
932
933 nova:
934 compute:
935 logging:
936 loggers:
937 <logger_name>:
938 level: WARNING
939
940 nova:
941 compute:
942 logging:
943 loggers:
944 <logger_name>:
945 level: WARNING
946
Oleh Hryhorove38525d2018-05-15 08:58:59 +0000947Configure syslog parameters for libvirtd
948----------------------------------------
949
OlgaGusarenko9dd01c92018-07-31 00:49:30 +0300950To configure syslog parameters for libvirtd the below pillar
951structure should be used with values which are supported
Oleh Hryhorove38525d2018-05-15 08:58:59 +0000952by libvirtd. These values might be known from the documentation.
953
OlgaGusarenko9dd01c92018-07-31 00:49:30 +0300954.. code-block:: yaml
955
Oleh Hryhorove38525d2018-05-15 08:58:59 +0000956 nova:
957 compute:
958 libvirt:
959 logging:
960 level: 3
961 filters: '3:remote 4:event'
962 outputs: '3:syslog:libvirtd'
963 buffer_size: 64
964
OlgaGusarenko9dd01c92018-07-31 00:49:30 +0300965Logging controls:
Oleh Hryhorove38525d2018-05-15 08:58:59 +0000966
OlgaGusarenko9dd01c92018-07-31 00:49:30 +0300967Logging level: 4 errors, 3 warnings, 2 information, 1 debug
968basically 1 will log everything possible ``log_level = 3``
Oleh Hryhorove38525d2018-05-15 08:58:59 +0000969
OlgaGusarenko9dd01c92018-07-31 00:49:30 +0300970Logging filters:
Oleh Hryhorove38525d2018-05-15 08:58:59 +0000971
OlgaGusarenko9dd01c92018-07-31 00:49:30 +0300972A filter allows to select a different logging level for a given category
973of logs.
Oleh Hryhorove38525d2018-05-15 08:58:59 +0000974
OlgaGusarenko9dd01c92018-07-31 00:49:30 +0300975The format for a filter is one of:
Oleh Hryhorove38525d2018-05-15 08:58:59 +0000976
OlgaGusarenko9dd01c92018-07-31 00:49:30 +0300977* ``x:name``
978* ``x:+name``
979 where name is a string which is matched against source file name,
980 e.g., ``remote``, ``qemu``, or ``util/json``, the optional ``+`` prefix
981 tells libvirt to log stack trace for each message matching name,
982 and x is the minimal level where matching messages should be logged:
Oleh Hryhorove38525d2018-05-15 08:58:59 +0000983
OlgaGusarenko9dd01c92018-07-31 00:49:30 +0300984* ``1: DEBUG``
985* ``2: INFO``
986* ``3: WARNING``
987* ``4: ERROR``
988
989Multiple filter can be defined in a single @filters, they just
990need to be separated by spaces.
991
992For example, to only get warning or errors from the remote layer
993and only errors from the event layer: ``log_filters="3:remote 4:event``
994
995Logging outputs:
996
997An output is one of the places to save logging information
998The format for an output can be:
999
1000* ``x:stderr``
1001 Output goes to stderr
1002
1003* ``x:syslog:name``
1004 Use syslog for the output and use the given name as the ident
1005
1006* ``x:file:file_path``
1007 output to a file, with the given filepath
1008
1009 In all case the x prefix is the minimal level, acting as a filter
1010
1011* ``1: DEBUG``
1012* ``2: INFO``
1013* ``3: WARNING``
1014* ``4: ERROR``
1015
1016Multiple output can be defined, they just need to be separated by spaces.
1017For example, to log all warnings and errors to syslog under the libvirt
1018dident: ``log_outputs="3:syslog:libvirtd``
1019
1020Log debug buffer size: default 64
1021The daemon keeps an internal debug log buffer which will be dumped
1022in case of crash or upon receiving a ``SIGUSR2`` signal. This setting
1023allows to override the default buffer size in kilobytes.
1024If value is ``0`` or less the debug log buffer is deactivated
1025``log_buffer_size = 64``
1026
1027To configure the logging parameters for QEMU, the below pillar
1028structure and logging parameters should be used:
1029
1030.. code-block:: yaml
1031
1032 nova:
1033 compute:
1034 qemu:
1035 logging:
1036 handler: logd
1037 virtlog:
1038 enabled: true
1039 level: 4
1040 filters: '3:remote 3:event'
1041 outputs: '4:syslog:virtlogd'
1042 max_clients: 512
1043 max_size: 2097100
1044 max_backups: 2
Oleh Hryhorove38525d2018-05-15 08:58:59 +00001045
Oleksandr Shyshko981b4fa2018-05-02 15:39:30 +03001046Inject password to VM
1047---------------------
1048
OlgaGusarenko9dd01c92018-07-31 00:49:30 +03001049By default nova blocks up any inject to VM because
1050``inject_partition`` param is equal to ``-2``.
1051If you want to inject password to VM, you will need to
1052define ``inject_partition`` greater or equal to ``-1`` and
1053define ``inject_password`` to ``True``
Oleksandr Shyshko981b4fa2018-05-02 15:39:30 +03001054
1055For example:
1056
OlgaGusarenko9dd01c92018-07-31 00:49:30 +03001057.. code-block:: yaml
1058
Oleksandr Shyshko981b4fa2018-05-02 15:39:30 +03001059 nova:
1060 compute:
1061 inject_partition: '-1'
1062 inject_password: True
1063
OlgaGusarenko9dd01c92018-07-31 00:49:30 +03001064Allow the injection of an admin password for instance only at
1065``create`` and ``rebuild`` process.
1066
1067There is no agent needed within the image to do this. If *libguestfs* is
1068available on the host, it will be used. Otherwise *nbd* is used. The file
1069system of the image will be mounted and the admin password, which is provided
1070in the REST API call will be injected as password for the root user. If no
1071root user is available, the instance won't be launched and an error is thrown.
1072Be aware that the injection is *not* possible when the instance gets launched
1073from a volume.
1074
1075Possible values:
1076
1077* ``True``
1078 Allows the injection
1079
1080* ``False`` (default)
1081 Disallows the injection. Any via the REST API provided
1082 admin password will be silently ignored.
1083
1084Related options:
1085
1086* ``inject_partition``
1087 Decides about the discovery and usage of the file system.
1088 It also can disable the injection at all.
1089 (boolean value)
Oleksandr Shyshko981b4fa2018-05-02 15:39:30 +03001090
1091You can read more about injecting the administrator password here:
OlgaGusarenko9dd01c92018-07-31 00:49:30 +03001092https://docs.openstack.org/nova/queens/admin/admin-password-injection.html
Oleksandr Shyshko981b4fa2018-05-02 15:39:30 +03001093
Oleksandr Shyshko1c020d12018-05-24 12:47:08 +03001094Enable libvirt control channel over TLS
OlgaGusarenko9dd01c92018-07-31 00:49:30 +03001095---------------------------------------
Oleksandr Shyshko1c020d12018-05-24 12:47:08 +03001096
1097By default TLS is disabled.
1098
OlgaGusarenko9dd01c92018-07-31 00:49:30 +03001099Enable TLS transport:
1100
1101.. code-block:: yaml
Oleksandr Shyshko1c020d12018-05-24 12:47:08 +03001102
1103 compute:
1104 libvirt:
1105 tls:
1106 enabled: True
1107
1108You able to set custom certificates in pillar:
1109
OlgaGusarenko9dd01c92018-07-31 00:49:30 +03001110.. code-block:: yaml
1111
Oleksandr Shyshko1c020d12018-05-24 12:47:08 +03001112 nova:
1113 compute:
1114 libvirt:
1115 tls:
1116 key: (certificate content)
1117 cert: (certificate content)
1118 cacert: (certificate content)
1119 client:
1120 key: (certificate content)
1121 cert: (certificate content)
1122
Dmitry Teselkin70862022019-04-18 16:43:50 +03001123It is possible to limit allowed SSL / TLS ciphers using libvirt's tls_priority:
1124
1125.. code-block:: yaml
1126
1127 nova:
1128 compute:
1129 libvirt:
1130 tls:
1131 priority: <TLS priority string>
1132
1133Example priority strings are:
1134
1135- The system imposed security level:
1136
1137.. code-block:: text
1138
1139 "SYSTEM"
1140
1141- The default priority without the HMAC-MD5:
1142
1143.. code-block:: text
1144
1145 "NORMAL:-MD5"
1146
1147- Specifying RSA with AES-128-CBC:
1148
1149.. code-block:: text
1150
1151 "NONE:+VERS-TLS-ALL:+MAC-ALL:+RSA:+AES-128-CBC:+SIGN-ALL:+COMP-NULL"
1152
1153- Specifying the defaults plus ARCFOUR-128:
1154
1155.. code-block:: text
1156
1157 "NORMAL:+ARCFOUR-128"
1158
1159- Enabling the 128-bit secure ciphers, while disabling TLS 1.0:
1160
1161.. code-block:: text
1162
1163 "SECURE128:-VERS-TLS1.0"
1164
1165- Enabling the 128-bit and 192-bit secure ciphers, while disabling all TLS
1166 versions except TLS 1.2:
1167
1168.. code-block:: text
1169
1170 "SECURE128:+SECURE192:-VERS-ALL:+VERS-TLS1.2"
1171
1172More on TLS Priority Strings:
1173
1174- https://gnutls.org/manual/html_node/Priority-Strings.html
1175
Vasyl Saienko11ac9732018-10-02 17:04:33 +00001176Controlling access by `tls_allowed_dn_list`.
1177Enable an access control list of client certificate Distinguished Names (DNs)
1178which can connect to the TLS port on this server. The default is that DNs are
1179not checked. This list may contain wildcards such as
1180"C=GB,ST=London,L=London,O=Libvirt Project,CN=*" See the POSIX fnmatch function
1181for the format of the wildcards.
1182Note that if this is an empty list, no client can connect.
1183Note also that GnuTLS returns DNs without spaces after commas between
1184the fields (and this is what we check against), but the openssl x509 tool
1185shows spaces.
1186
1187.. code-block:: yaml
1188
1189 nova:
1190 compute:
1191 libvirt:
1192 tls:
1193 tls_allowed_dn_list:
1194 host1:
1195 enabled: true
1196 value: 'C=foo,CN=cmp1'
1197 host2:
1198 enabled: true
1199 value: 'C=foo,CN=cmp2'
1200
1201
Oleksandr Shyshko1c020d12018-05-24 12:47:08 +03001202You can read more about live migration over TLS here:
OlgaGusarenko9dd01c92018-07-31 00:49:30 +03001203https://wiki.libvirt.org/page/TLSCreateServerCerts
Oleksandr Shyshko981b4fa2018-05-02 15:39:30 +03001204
Oleksandr Shyshko1195fca2018-07-09 18:22:59 +03001205Enable transport + authentication for VNC over TLS
1206---------------------
Oleksandr Shyshkod8337cf2018-07-11 17:55:58 +03001207# Only for Queens. Communication between noVNC proxy service and QEMU
Oleksandr Shyshko1195fca2018-07-09 18:22:59 +03001208
1209By default communication between nova-novncproxy and qemu service is unsecure.
1210
1211compute:
1212 qemu:
1213 vnc:
1214 tls:
1215 enabled: True
1216
1217controller:
1218 novncproxy:
Oleksandr Shyshkod8337cf2018-07-11 17:55:58 +03001219 # This section responsible for communication between noVNC proxy and client machine
Oleksandr Shyshko1195fca2018-07-09 18:22:59 +03001220 tls:
1221 enabled: True
Oleksandr Shyshkod8337cf2018-07-11 17:55:58 +03001222 # This section responsible for communication between nova-novncproxy and qemu service
1223 vencrypt:
1224 tls:
1225 enabled: True
Oleksandr Shyshko1195fca2018-07-09 18:22:59 +03001226
1227You able to set custom certificates in pillar:
1228
Oleksandr Shyshkod8337cf2018-07-11 17:55:58 +03001229nova:
1230 compute:
1231 qemu:
1232 vnc:
1233 tls:
1234 cacert (certificate content)
1235 cert (certificate content)
1236 key (certificate content)
1237
1238nova:
1239 controller:
1240 novncproxy:
1241 tls:
1242 server:
1243 cert (certificate content)
1244 key (certificate content)
1245 vencrypt:
1246 tls:
1247 cacert (certificate content)
1248 cert (certificate content)
1249 key (certificate content)
1250
1251
1252You can read more about it here:
1253 https://docs.openstack.org/nova/queens/admin/remote-console-access.html
1254
1255Enable communication between noVNC proxy and client machine over TLS
1256---------------------
1257
1258By default communication between noVNC proxy and client machine is unsecure.
1259
1260 controller:
1261 novncproxy:
1262 tls:
1263 enabled: True
Oleksandr Shyshko1195fca2018-07-09 18:22:59 +03001264
1265 nova:
1266 controller:
1267 novncproxy:
1268 tls:
Oleksandr Shyshkod8337cf2018-07-11 17:55:58 +03001269 server:
1270 cert (certificate content)
1271 key (certificate content)
Oleksandr Shyshko1195fca2018-07-09 18:22:59 +03001272
1273You can read more about it here:
Oleksandr Shyshkod8337cf2018-07-11 17:55:58 +03001274 https://docs.openstack.org/mitaka/config-reference/dashboard/configure.html
Oleksandr Shyshko1195fca2018-07-09 18:22:59 +03001275
Oleksandr Shyshko55eeac72018-08-03 18:23:28 +03001276Enable x509 and ssl communication between Nova and Galera cluster.
1277---------------------
1278By default communication between Nova and Galera is unsecure.
1279
Oleksandr Shyshkocbe87352018-09-07 13:42:57 +03001280nova:
1281 controller:
1282 database:
1283 x509:
1284 enabled: True
1285
Oleksandr Shyshko55eeac72018-08-03 18:23:28 +03001286You able to set custom certificates in pillar:
Oleksandr Shyshko55eeac72018-08-03 18:23:28 +03001287
1288nova:
1289 controller:
1290 database:
1291 x509:
Oleksandr Shyshkocbe87352018-09-07 13:42:57 +03001292 cacert: (certificate content)
1293 cert: (certificate content)
1294 key: (certificate content)
Oleksandr Shyshko55eeac72018-08-03 18:23:28 +03001295
1296You can read more about it here:
1297 https://docs.openstack.org/security-guide/databases/database-access-control.html
1298
Oleksandr Bryndzii687b6542019-02-20 15:51:15 +02001299Configure nova to use service user tokens:
1300========
1301Long-running operations such as live migration or snapshot can sometimes overrun the
1302expiry of the user token. In such cases, post operations such as cleaning up after a
1303live migration can fail when the nova-compute service needs to cleanup resources in
1304other services, such as in the block-storage (cinder) or networking (neutron) services.
1305
1306This patch enables nova to use service user tokens to supplement the regular user token
1307used to initiate the operation. The identity service (keystone) will then authenticate
1308a request using the service user token if the user token has already expired.
1309
1310.. code-block:: yaml
1311
1312 nova:
1313 controller:
1314 enabled: True
1315 ...
1316 service_user:
1317 enabled: True
1318 user_domain_id: default
1319 project_domain_id: default
1320 project_name: service
1321 username: nova
1322 password: pswd
1323
1324
obryndzii2ea61412019-01-31 00:55:56 +00001325Nova database connection setup:
1326========
1327
1328.. code-block:: yaml
1329
1330 nova:
1331 controller:
1332 enabled: True
1333 ...
1334 min_pool_size: 100
1335 max_pool_size: 700
1336 max_overflow: 100
1337 retry_interval: 5
1338 max_retries: '-1'
1339 db_max_retries: 3
1340 db_retry_interval: 1
1341 connection_debug: 10
1342 pool_timeout: 120
Oleksandr Bryndzii687b6542019-02-20 15:51:15 +02001343
Oleksandr Bryndziife715df2019-04-23 15:34:42 +03001344Change default resource quotas using configmap template settings
1345========
1346
1347.. code-block:: yaml
1348
1349 nova:
1350 controller:
1351 configmap:
1352 quota:
1353 instances: 10
1354 cores: 20
1355 ram: 51200
1356 metadata_items: 128
1357 injected_files: 5
1358 injected_file_content_bytes: 10240
1359 injected_file_path_length: 255
1360 key_pairs: 100
1361 server_groups: 10
1362 server_group_members: 10
1363 reservation_expire: 86400
1364 until_refresh: 0
1365 max_age: 0
1366
Oleh Hryhorov63ee8452018-08-14 09:16:02 +00001367Upgrades
1368========
1369
1370Each openstack formula provide set of phases (logical bloks) that will help to
1371build flexible upgrade orchestration logic for particular components. The list
1372of phases might and theirs descriptions are listed in table below:
1373
1374+-------------------------------+------------------------------------------------------+
1375| State | Description |
1376+===============================+======================================================+
1377| <app>.upgrade.service_running | Ensure that all services for particular application |
1378| | are enabled for autostart and running |
1379+-------------------------------+------------------------------------------------------+
1380| <app>.upgrade.service_stopped | Ensure that all services for particular application |
1381| | disabled for autostart and dead |
1382+-------------------------------+------------------------------------------------------+
1383| <app>.upgrade.pkgs_latest | Ensure that packages used by particular application |
1384| | are installed to latest available version. |
1385| | This will not upgrade data plane packages like qemu |
1386| | and openvswitch as usually minimal required version |
1387| | in openstack services is really old. The data plane |
1388| | packages should be upgraded separately by `apt-get |
1389| | upgrade` or `apt-get dist-upgrade` |
1390| | Applying this state will not autostart service. |
1391+-------------------------------+------------------------------------------------------+
1392| <app>.upgrade.render_config | Ensure configuration is rendered actual version. +
1393+-------------------------------+------------------------------------------------------+
1394| <app>.upgrade.pre | We assume this state is applied on all nodes in the |
1395| | cloud before running upgrade. |
1396| | Only non destructive actions will be applied during |
1397| | this phase. Perform service built in service check |
1398| | like (keystone-manage doctor and nova-status upgrade)|
1399+-------------------------------+------------------------------------------------------+
1400| <app>.upgrade.upgrade.pre | Mostly applicable for data plane nodes. During this |
1401| | phase resources will be gracefully removed from |
1402| | current node if it is allowed. Services for upgraded |
1403| | application will be set to admin disabled state to |
1404| | make sure node will not participate in resources |
1405| | scheduling. For example on gtw nodes this will set |
1406| | all agents to admin disable state and will move all |
1407| | routers to other agents. |
1408+-------------------------------+------------------------------------------------------+
1409| <app>.upgrade.upgrade | This state will basically upgrade application on |
1410| | particular target. Stop services, render |
1411| | configuration, install new packages, run offline |
1412| | dbsync (for ctl), start services. Data plane should |
1413| | not be affected, only OpenStack python services. |
1414+-------------------------------+------------------------------------------------------+
1415| <app>.upgrade.upgrade.post | Add services back to scheduling. |
1416+-------------------------------+------------------------------------------------------+
1417| <app>.upgrade.post | This phase should be launched only when upgrade of |
1418| | the cloud is completed. Cleanup temporary files, |
1419| | perform other post upgrade tasks. |
1420+-------------------------------+------------------------------------------------------+
1421| <app>.upgrade.verify | Here we will do basic health checks (API CRUD |
1422| | operations, verify do not have dead network |
1423| | agents/compute services) |
1424+-------------------------------+------------------------------------------------------+
Oleksandr Pidrepnyidabe8b22019-06-07 16:18:11 +03001425
1426
1427Don't manage services scheduling while upgrade
1428----------------------------------------------
1429For some special cases, don't manage services scheduling both enable and disable
1430before and after upgrade procedure.
1431
1432If 'manage_service_maintenance: true' or not present - default behavior, disable services
1433before upgrade and enable it after upgrade.
1434If 'manage_service_maintenance: false' - don't disable and don't enable upgraded services
1435scheduling before and after upgrade.
1436
1437.. code-block:: yaml
1438
1439 nova:
1440 upgrade:
1441 manage_service_maintenance: false