blob: 549b68d9a41a87d441edf760e051c7cbe28ece8f [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
55 message_queue:
56 engine: rabbitmq
57 host: 127.0.0.1
58 port: 5672
59 user: openstack
60 password: pwd
61 virtual_host: '/openstack'
Oleh Hryhorovf5093b82018-10-17 11:16:08 +000062 pci:
63 alias:
64 alias1:
65 device_type: "type-PF"
66 name: "a1"
67 product_id: "154d"
68 vendor_id: "8086"
Filip Pytloun4a72d792015-10-06 16:28:32 +020069 network:
70 engine: neutron
71 host: 127.0.0.1
72 port: 9696
Jakub Pavlik617a8962016-09-04 18:50:06 +020073 extension_sync_interval: 600
Filip Pytloun4a72d792015-10-06 16:28:32 +020074 identity:
75 engine: keystone
76 host: 127.0.0.1
77 port: 35357
78 user: neutron
79 password: pwd
80 tenant: service
81 metadata:
82 password: password
Petr Michalecaa23dc02016-11-29 16:30:25 +010083 audit:
84 enabled: false
Simon Pasquier8683b7a2017-02-03 16:00:16 +010085 osapi_max_limit: 500
Oleg Iurchenko370c10d2017-10-19 14:03:37 +030086 barbican:
87 enabled: true
Filip Pytloun4a72d792015-10-06 16:28:32 +020088
OlgaGusarenko9dd01c92018-07-31 00:49:30 +030089Nova services from custom package repository:
Filip Pytloun4a72d792015-10-06 16:28:32 +020090
91.. code-block:: yaml
92
93 nova:
94 controller:
95 version: juno
96 source:
97 engine: pkg
98 address: http://...
99 ....
100
OlgaGusarenko9dd01c92018-07-31 00:49:30 +0300101Client-side RabbitMQ HA setup:
Jiri Konecnye31f2c52016-04-14 17:16:02 +0200102
103.. code-block:: yaml
104
105 nova:
106 controller:
107 ....
108 message_queue:
109 engine: rabbitmq
110 members:
111 - host: 10.0.16.1
112 - host: 10.0.16.2
113 - host: 10.0.16.3
114 user: openstack
115 password: pwd
116 virtual_host: '/openstack'
117 ....
118
OlgaGusarenko9dd01c92018-07-31 00:49:30 +0300119Enable auditing filter, i.e: CADF:
Petr Michalecaa23dc02016-11-29 16:30:25 +0100120
121.. code-block:: yaml
122
123 nova:
124 controller:
Simon Pasquier6a3c8f72016-12-19 15:37:24 +0100125 audit:
Petr Michalecaa23dc02016-11-29 16:30:25 +0100126 enabled: true
127 ....
128 filter_factory: 'keystonemiddleware.audit:filter_factory'
129 map_file: '/etc/pycadf/nova_api_audit_map.conf'
130 ....
131
OlgaGusarenko9dd01c92018-07-31 00:49:30 +0300132Enable CORS parameters:
Ondrej Smola25b53cb2017-04-28 10:56:19 +0200133
134.. code-block:: yaml
135
136 nova:
137 controller:
138 cors:
139 allowed_origin: https:localhost.local,http:localhost.local
140 expose_headers: X-Auth-Token,X-Openstack-Request-Id,X-Subject-Token
141 allow_methods: GET,PUT,POST,DELETE,PATCH
142 allow_headers: X-Auth-Token,X-Openstack-Request-Id,X-Subject-Token
143 allow_credentials: True
144 max_age: 86400
145
OlgaGusarenko9dd01c92018-07-31 00:49:30 +0300146Configuration of the ``policy.json`` file:
Dmitry Ukov3562a082017-05-04 00:00:48 +0400147
148.. code-block:: yaml
149
150 nova:
151 controller:
152 ....
153 policy:
154 context_is_admin: 'role:admin or role:administrator'
155 'compute:create': 'rule:admin_or_owner'
156 # Add key without value to remove line from policy.json
157 'compute:create:attach_network':
Ondrej Smola25b53cb2017-04-28 10:56:19 +0200158
OlgaGusarenko9dd01c92018-07-31 00:49:30 +0300159Enable Barbican integration:
Oleg Iurchenko370c10d2017-10-19 14:03:37 +0300160
161.. code-block:: yaml
162
163 nova:
164 controller:
165 ....
166 barbican:
167 enabled: true
168
Oleh Hryhorovf5093b82018-10-17 11:16:08 +0000169Define aliases for PCI devices:
170.. code-block:: yaml
171
172 nova:
173 controller:
174 ...
175 pci:
176 alias:
177 alias1:
178 device_type: "type-PF"
179 name: "a1"
180 product_id: "154d"
181 vendor_id: "8086"
182
Jiri Broulik789179a2018-02-13 16:16:46 +0100183Enable cells update:
184
OlgaGusarenko9dd01c92018-07-31 00:49:30 +0300185.. note:: Useful when upgrading Openstack. To update cells to test
186 sync db agains duplicated production database.
Jiri Broulik789179a2018-02-13 16:16:46 +0100187
188.. code-block:: yaml
189
190 nova:
191 controller:
192 update_cells: true
193
Dzmitry Stremkouskif8497672019-11-03 10:36:46 +0100194Increase number of chunks for online db migrations:
195
196.. note:: This only should be done in offline as large number of
197 rows locked by this process may cause service outage, which
198 may not be expected.
199
200.. code-block:: yaml
201
202 nova:
203 controller:
204 db_migrations:
205 max_count: 5000000
Kirill Bespalov64617172017-07-11 14:43:14 +0300206
Kirill Bespalova0eaca72017-11-20 13:40:42 +0300207Configuring TLS communications
208------------------------------
Kirill Bespalov64617172017-07-11 14:43:14 +0300209
OlgaGusarenko9dd01c92018-07-31 00:49:30 +0300210.. note:: By default system wide installed CA certs are used,
211 so ``cacert_file`` param is optional, as well as ``cacert``.
Kirill Bespalova0eaca72017-11-20 13:40:42 +0300212
213- **RabbitMQ TLS**
Kirill Bespalov64617172017-07-11 14:43:14 +0300214
OlgaGusarenko9dd01c92018-07-31 00:49:30 +0300215 .. code-block:: yaml
Kirill Bespalov64617172017-07-11 14:43:14 +0300216
OlgaGusarenko9dd01c92018-07-31 00:49:30 +0300217 nova:
218 compute:
219 message_queue:
220 port: 5671
221 ssl:
222 enabled: True
223 (optional) cacert: cert body if the cacert_file does not exists
224 (optional) cacert_file: /etc/openstack/rabbitmq-ca.pem
225 (optional) version: TLSv1_2
Kirill Bespalov64617172017-07-11 14:43:14 +0300226
Kirill Bespalova0eaca72017-11-20 13:40:42 +0300227- **MySQL TLS**
Kirill Bespalov64617172017-07-11 14:43:14 +0300228
OlgaGusarenko9dd01c92018-07-31 00:49:30 +0300229 .. code-block:: yaml
Kirill Bespalov64617172017-07-11 14:43:14 +0300230
OlgaGusarenko9dd01c92018-07-31 00:49:30 +0300231 nova:
232 controller:
233 database:
234 ssl:
235 enabled: True
236 (optional) cacert: cert body if the cacert_file does not exists
237 (optional) cacert_file: /etc/openstack/mysql-ca.pem
Kirill Bespalov64617172017-07-11 14:43:14 +0300238
Kirill Bespalova0eaca72017-11-20 13:40:42 +0300239- **Openstack HTTPS API**
240
OlgaGusarenko9dd01c92018-07-31 00:49:30 +0300241 Set the ``https`` as protocol at ``nova:compute`` and
242 ``nova:controller`` sections :
Kirill Bespalova0eaca72017-11-20 13:40:42 +0300243
OlgaGusarenko9dd01c92018-07-31 00:49:30 +0300244 .. code-block:: yaml
Kirill Bespalov64617172017-07-11 14:43:14 +0300245
OlgaGusarenko9dd01c92018-07-31 00:49:30 +0300246 nova:
247 controller :
248 identity:
249 protocol: https
250 (optional) cacert_file: /etc/openstack/proxy.pem
251 network:
252 protocol: https
253 (optional) cacert_file: /etc/openstack/proxy.pem
254 glance:
255 protocol: https
256 (optional) cacert_file: /etc/openstack/proxy.pem
Kirill Bespalov64617172017-07-11 14:43:14 +0300257
OlgaGusarenko9dd01c92018-07-31 00:49:30 +0300258 .. code-block:: yaml
Kirill Bespalov64617172017-07-11 14:43:14 +0300259
OlgaGusarenko9dd01c92018-07-31 00:49:30 +0300260 nova:
261 compute:
262 identity:
263 protocol: https
264 (optional) cacert_file: /etc/openstack/proxy.pem
265 network:
266 protocol: https
267 (optional) cacert_file: /etc/openstack/proxy.pem
268 image:
269 protocol: https
270 (optional) cacert_file: /etc/openstack/proxy.pem
271 ironic:
272 protocol: https
273 (optional) cacert_file: /etc/openstack/proxy.pem
Kirill Bespalov64617172017-07-11 14:43:14 +0300274
OlgaGusarenko9dd01c92018-07-31 00:49:30 +0300275.. note:: Barbican, Cinder, and placement url endpoints are discovering
276 using service catalog.
Kirill Bespalov64617172017-07-11 14:43:14 +0300277
Filip Pytloun4a72d792015-10-06 16:28:32 +0200278Compute nodes
279-------------
280
OlgaGusarenko9dd01c92018-07-31 00:49:30 +0300281Nova controller services on compute node:
Filip Pytloun4a72d792015-10-06 16:28:32 +0200282
283.. code-block:: yaml
284
285 nova:
286 compute:
287 version: juno
288 enabled: true
Dmitry Stremkovskiy2bcba8d2017-07-30 21:43:59 +0300289 cross_az_attach: false
Dmitry Stremkovskiy35e53b72017-07-29 12:50:39 +0300290 disk_cachemodes: network=writeback,block=none
Jiri Broulik70d9e3f2017-02-15 18:37:13 +0100291 availability_zone: availability_zone_01
Damian Szelugae1922412017-04-18 16:36:46 +0200292 aggregates:
293 - hosts_with_fc
294 - hosts_with_ssd
Filip Pytloun4a72d792015-10-06 16:28:32 +0200295 security_group: true
Petr Michalecf03e4882017-04-10 10:26:18 +0200296 resume_guests_state_on_host_boot: False
Michael Polenchuk159c2542018-06-09 15:31:51 +0400297 preallocate_images: space # Default is 'none'
Dmitry Stremkovskiy8a0ff512017-07-25 20:54:13 +0300298 my_ip: 10.1.0.16
Ivan Berezovskiy689e6ea2019-11-14 20:17:58 +0400299 concurrency:
300 lock_path: '/var/lib/nova/tmp'
Filip Pytloun4a72d792015-10-06 16:28:32 +0200301 bind:
302 vnc_address: 172.20.0.100
303 vnc_port: 6080
304 vnc_name: openstack.domain.com
305 vnc_protocol: http
306 database:
307 engine: mysql
308 host: 127.0.0.1
309 port: 3306
310 name: nova
311 user: nova
312 password: pwd
313 identity:
314 engine: keystone
315 host: 127.0.0.1
316 port: 35357
317 user: nova
318 password: pwd
319 tenant: service
320 message_queue:
321 engine: rabbitmq
322 host: 127.0.0.1
323 port: 5672
324 user: openstack
325 password: pwd
326 virtual_host: '/openstack'
327 image:
328 engine: glance
329 host: 127.0.0.1
330 port: 9292
Oleh Hryhorovf5093b82018-10-17 11:16:08 +0000331 pci:
332 alias:
333 alias1:
334 device_type: "type-PF"
335 name: "a1"
336 product_id: "154d"
337 vendor_id: "8086"
Filip Pytloun4a72d792015-10-06 16:28:32 +0200338 network:
339 engine: neutron
340 host: 127.0.0.1
341 port: 9696
342 identity:
343 engine: keystone
344 host: 127.0.0.1
345 port: 35357
346 user: neutron
347 password: pwd
348 tenant: service
349 qemu:
350 max_files: 4096
351 max_processes: 4096
Dmitry Stremkovskiy96281f52017-07-26 00:39:22 +0300352 host: node-12.domain.tld
Filip Pytloun4a72d792015-10-06 16:28:32 +0200353
Vasyl Saienkocab3a902018-07-12 13:17:17 +0300354Compute with vmware driver. Each vmware cluster requires a separate process of nova-compute.
355Each process should have uniq host identifier. However multiple computes might be running on
356single host. It is not recommended to have multiple computes running on different hosts that
357manage the same vmware cluster. To achive this pacemaker/corosync or keepalived might be used.
358
359.. code-block:: yaml
360
361 nova:
362 compute:
363 compute_driver: vmwareapi.VMwareVCDriver
364 vmware:
365 host_username: vmware
366 host_password: vmware
367 cluster_name: vmware_cluster01
368 host_ip: 1.2.3.4
369
OlgaGusarenko9dd01c92018-07-31 00:49:30 +0300370Group and user to be used for QEMU processes run by the system instance:
kkalynovskyif50f0c02017-12-12 17:52:57 +0200371
372.. code-block:: yaml
373
374 nova:
375 compute:
376 enabled: true
377 ...
378 qemu:
379 user: nova
380 group: cinder
381 dynamic_ownership: 1
382
OlgaGusarenko9dd01c92018-07-31 00:49:30 +0300383Group membership for user nova (upgrade related):
Dmitry Stremkovskiy3cd6ba82017-07-25 17:15:36 +0300384
385.. code-block:: yaml
386
387 nova:
388 compute:
389 enabled: true
390 ...
391 user:
392 groups:
393 - libvirt
Filip Pytloun4a72d792015-10-06 16:28:32 +0200394
OlgaGusarenko9dd01c92018-07-31 00:49:30 +0300395Nova services on compute node with OpenContrail:
Filip Pytloun4a72d792015-10-06 16:28:32 +0200396
397.. code-block:: yaml
398
399 nova:
400 compute:
401 enabled: true
402 ...
403 networking: contrail
404
Oleksandr Bryndziibb8abfe2018-09-28 22:21:43 +0000405Nova services on compute node with memcached caching and security strategy:
Filip Pytloun4a72d792015-10-06 16:28:32 +0200406
407.. code-block:: yaml
408
409 nova:
410 compute:
411 enabled: true
412 ...
413 cache:
414 engine: memcached
415 members:
416 - host: 127.0.0.1
417 port: 11211
418 - host: 127.0.0.1
419 port: 11211
Oleksandr Bryndziibb8abfe2018-09-28 22:21:43 +0000420 security:
421 enabled: true
422 strategy: ENCRYPT
423 secret_key: secret
Filip Pytloun4a72d792015-10-06 16:28:32 +0200424
OlgaGusarenko9dd01c92018-07-31 00:49:30 +0300425Client-side RabbitMQ HA setup:
Jiri Konecnye31f2c52016-04-14 17:16:02 +0200426
427.. code-block:: yaml
428
429 nova:
Kirill Bespalov64617172017-07-11 14:43:14 +0300430 compute:
Jiri Konecnye31f2c52016-04-14 17:16:02 +0200431 ....
432 message_queue:
433 engine: rabbitmq
434 members:
435 - host: 10.0.16.1
436 - host: 10.0.16.2
437 - host: 10.0.16.3
438 user: openstack
439 password: pwd
440 virtual_host: '/openstack'
441 ....
442
OlgaGusarenko9dd01c92018-07-31 00:49:30 +0300443Nova with ephemeral configured with Ceph:
maxstack39e6aca2016-05-04 13:50:13 +0000444
445.. code-block:: yaml
446
447 nova:
448 compute:
449 enabled: true
450 ...
451 ceph:
452 ephemeral: yes
453 rbd_pool: nova
454 rbd_user: nova
455 secret_uuid: 03006edd-d957-40a3-ac4c-26cd254b3731
Kalynovskyi0bc79692017-07-21 16:22:09 +0300456 ....
maxstack39e6aca2016-05-04 13:50:13 +0000457
OlgaGusarenko9dd01c92018-07-31 00:49:30 +0300458Nova with ephemeral configured with LVM:
Kalynovskyi0bc79692017-07-21 16:22:09 +0300459
460.. code-block:: yaml
461
462 nova:
463 compute:
464 enabled: true
465 ...
466 lvm:
467 ephemeral: yes
468 images_volume_group: nova_vg
469
470 linux:
471 storage:
472 lvm:
473 nova_vg:
474 name: nova_vg
475 devices:
476 - /dev/sdf
477 - /dev/sdd
478 - /dev/sdg
479 - /dev/sde
480 - /dev/sdc
481 - /dev/sdj
482 - /dev/sdh
maxstack39e6aca2016-05-04 13:50:13 +0000483
OlgaGusarenko9dd01c92018-07-31 00:49:30 +0300484Enable Barbican integration:
Oleg Iurchenko370c10d2017-10-19 14:03:37 +0300485
486.. code-block:: yaml
487
488 nova:
489 compute:
490 ....
491 barbican:
492 enabled: true
493
Oleh Hryhorovf5093b82018-10-17 11:16:08 +0000494Define aliases for PCI devices:
495.. code-block:: yaml
496
497 nova:
498 compute:
499 ...
500 pci:
501 alias:
502 alias1:
503 device_type: "type-PF"
504 name: "a1"
505 product_id: "154d"
506 vendor_id: "8086"
507
OlgaGusarenko9dd01c92018-07-31 00:49:30 +0300508Nova metadata custom bindings:
Vasyl Saienko2d591282018-02-05 14:19:02 +0200509
510.. code-block:: yaml
511
512 nova:
513 controller:
514 enabled: true
515 ...
516 metadata:
517 bind:
518 address: 1.2.3.4
519 port: 8776
520
Oleh Hryhorov08482aa2018-11-19 14:07:47 +0200521Define multipath for nova compute:
522
523.. code-block:: yaml
524
525 nova:
526 compute:
527 ....
528 libvirt:
529 volume_use_multipath: True
530
Oleh Hryhorov5add3b22019-03-06 17:00:00 +0000531To disable or enable StrictHostKeyChecking and discover
532compute nodes fingerprints the below pillar should be used:
533
534.. code-block:: yaml
535
536 nova:
537 compute:
538 ....
539 openssh:
540 stricthostkeychecking: True
541 discover_compute_hosts: True
542
Jiri Broulik0ce9fc92017-02-01 23:10:40 +0100543Client role
544-----------
545
OlgaGusarenko9dd01c92018-07-31 00:49:30 +0300546Nova configured with NFS:
Dmitry Stremkovskiy665c7282017-07-05 17:36:27 +0300547
548.. code-block:: yaml
549
550 nova:
551 compute:
552 instances_path: /mnt/nova/instances
553
554 linux:
555 storage:
556 enabled: true
557 mount:
558 nfs_nova:
559 enabled: true
560 path: ${nova:compute:instances_path}
561 device: 172.31.35.145:/data
562 file_system: nfs
563 opts: rw,vers=3
564
OlgaGusarenko9dd01c92018-07-31 00:49:30 +0300565Nova flavors:
Jiri Broulik0ce9fc92017-02-01 23:10:40 +0100566
567.. code-block:: yaml
568
569 nova:
570 client:
571 enabled: true
572 server:
573 identity:
574 flavor:
Jiri Broulik70d9e3f2017-02-15 18:37:13 +0100575 flavor1:
Jiri Broulik0ce9fc92017-02-01 23:10:40 +0100576 flavor_id: 10
577 ram: 4096
578 disk: 10
579 vcpus: 1
Jiri Broulik70d9e3f2017-02-15 18:37:13 +0100580 flavor2:
581 flavor_id: auto
582 ram: 4096
583 disk: 20
584 vcpus: 2
Jiri Broulik0ce9fc92017-02-01 23:10:40 +0100585 identity1:
586 flavor:
587 ...
588
OlgaGusarenko9dd01c92018-07-31 00:49:30 +0300589Availability zones:
Jiri Broulik70d9e3f2017-02-15 18:37:13 +0100590
591.. code-block:: yaml
592
593 nova:
594 client:
595 enabled: true
596 server:
597 identity:
598 availability_zones:
599 - availability_zone_01
600 - availability_zone_02
601
OlgaGusarenko9dd01c92018-07-31 00:49:30 +0300602Aggregates:
Damian Szeluga5dca0f02017-04-13 17:27:15 +0200603
604.. code-block:: yaml
605
606 nova:
607 client:
608 enabled: true
609 server:
610 identity:
611 aggregates:
612 - aggregate1
613 - aggregate2
614
OlgaGusarenko9dd01c92018-07-31 00:49:30 +0300615Upgrade levels:
Dmitry Stremkovskiy91f45852017-07-18 16:22:31 +0300616
617.. code-block:: yaml
618
619 nova:
620 controller:
621 upgrade_levels:
622 compute: juno
623
624 nova:
625 compute:
626 upgrade_levels:
627 compute: juno
628
Petr Jedinýd855ef22017-03-06 22:24:33 +0100629SR-IOV
Jakub Pavlik39a05942017-02-13 23:03:08 +0100630------
631
OlgaGusarenko9dd01c92018-07-31 00:49:30 +0300632Add ``PciPassthroughFilter`` into scheduler filters and NICs on
633specific compute nodes:
Jakub Pavlik39a05942017-02-13 23:03:08 +0100634
635.. code-block:: yaml
636
637 nova:
638 controller:
639 sriov: true
sandriichenko4fe321d2018-01-22 17:34:06 +0000640 scheduler_default_filters: "DifferentHostFilter,SameHostFilter,RetryFilter,AvailabilityZoneFilter,RamFilter,CoreFilter,DiskFilter,ComputeFilter,ComputeCapabilitiesFilter,ImagePropertiesFilter,ServerGroupAntiAffinityFilter,ServerGroupAffinityFilter,PciPassthroughFilter"
Jakub Pavlik39a05942017-02-13 23:03:08 +0100641
642 nova:
643 compute:
644 sriov:
645 nic_one:
646 devname: eth1
647 physical_network: physnet1
648
Oleh Hryhorovf5093b82018-10-17 11:16:08 +0000649.. note:: Parameters located under nova:compute:sriov:<nic_name> are copied to passthrough_whitelist parameter into
650 nova.conf file in appropriate format.
651
Jakub Pavlik26fb85c2017-02-16 22:29:22 +0100652CPU pinning & Hugepages
653-----------------------
654
OlgaGusarenko9dd01c92018-07-31 00:49:30 +0300655CPU pinning of virtual machine instances to dedicated physical
656CPU cores. Hugepages mount point for libvirt.
Jakub Pavlik26fb85c2017-02-16 22:29:22 +0100657
658.. code-block:: yaml
659
660 nova:
661 controller:
sandriichenko4fe321d2018-01-22 17:34:06 +0000662 scheduler_default_filters: "DifferentHostFilter,SameHostFilter,RetryFilter,AvailabilityZoneFilter,RamFilter,CoreFilter,DiskFilter,ComputeFilter,ComputeCapabilitiesFilter,ImagePropertiesFilter,ServerGroupAntiAffinityFilter,ServerGroupAffinityFilter,NUMATopologyFilter,AggregateInstanceExtraSpecsFilter"
Jakub Pavlik26fb85c2017-02-16 22:29:22 +0100663
664 nova:
665 compute:
666 vcpu_pin_set: 2,3,4,5
667 hugepages:
668 mount_points:
669 - path: /mnt/hugepages_1GB
670 - path: /mnt/hugepages_2MB
Jiri Broulik0ce9fc92017-02-01 23:10:40 +0100671
Michel Nederlof171c7ac2017-04-13 12:54:14 +0200672Custom Scheduler filters
673------------------------
674
OlgaGusarenko9dd01c92018-07-31 00:49:30 +0300675If you have a custom filter, that needs to be included in the
676scheduler, then you can include it like so:
Michel Nederlof171c7ac2017-04-13 12:54:14 +0200677
678.. code-block:: yaml
679
680 nova:
681 controller:
682 scheduler_custom_filters:
683 - my_custom_driver.nova.scheduler.filters.my_custom_filter.MyCustomFilter
684
685 # 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 +0000686 scheduler_default_filters: "DifferentHostFilter,SameHostFilter,RetryFilter,AvailabilityZoneFilter,RamFilter,CoreFilter,DiskFilter,ComputeFilter,ComputeCapabilitiesFilter,ImagePropertiesFilter,ServerGroupAntiAffinityFilter,ServerGroupAffinityFilter,PciPassthroughFilter,MyCustomFilter"
Michel Nederlof171c7ac2017-04-13 12:54:14 +0200687
Michael Polenchuk2bce2cb2018-09-17 16:05:43 +0400688 # Since Queens version a sequence could be used as well:
689 ~scheduler_default_filters:
690 - DifferentHostFilter
691 - SameHostFilter
692 ...
693 - MyCustomFilter
694
695
Michel Nederlofeb566f62017-04-21 15:37:47 +0200696Hardware Trip/Unmap Support
697---------------------------
698
OlgaGusarenko9dd01c92018-07-31 00:49:30 +0300699To enable TRIM support for ephemeral images (thru nova managed
700images), libvirt has this option:
Michel Nederlofeb566f62017-04-21 15:37:47 +0200701
702.. code-block:: yaml
703
704 nova:
705 compute:
706 libvirt:
707 hw_disk_discard: unmap
708
OlgaGusarenko9dd01c92018-07-31 00:49:30 +0300709To actually utilize this feature, the following metadata must be
710set on the image as well, so the SCSI unmap is supported:
Michel Nederlofeb566f62017-04-21 15:37:47 +0200711
712.. code-block:: bash
713
714 glance image-update --property hw_scsi_model=virtio-scsi <image>
715 glance image-update --property hw_disk_bus=scsi <image>
Filip Pytloun5bc9e9f2017-02-02 13:05:40 +0100716
Thom Gerdesf582f1e2017-05-02 18:05:50 +0000717Scheduler Host Manager
718----------------------
719
720Specify a custom host manager.
721
Thom Gerdesec00afd2017-04-07 18:06:59 +0000722libvirt CPU mode
723----------------
724
OlgaGusarenko9dd01c92018-07-31 00:49:30 +0300725Allow setting the model of CPU that is exposed to a VM. This
726allows for better support live migration between hypervisors with
727different hardware, among other things. Defaults to host-passthrough.
Jakub Pavlik7046b9c2017-09-19 12:04:19 +0200728
Thom Gerdesf582f1e2017-05-02 18:05:50 +0000729.. code-block:: yaml
730
731 nova:
732 controller:
733 scheduler_host_manager: ironic_host_manager
734
Thom Gerdesec00afd2017-04-07 18:06:59 +0000735 compute:
736 cpu_mode: host-model
737
Dzmitry Stremkouski7da9bf12018-04-25 22:30:37 +0200738Nova compute cpu model
739----------------------
740
741.. code-block:: yaml
742
743 nova:
744 compute:
745 cpu_mode: custom
746 libvirt:
747 cpu_model: IvyBridge
748
Oleksandr Pidrepnyief9fd782019-03-04 19:18:19 +0200749RNG (Random Number Generator) device path
750----------------------
751
752The path to an RNG (Random Number Generator) device that will be used
753as the source of entropy on the host.
754The recommended source of entropy is /dev/urandom.
755Permitted options are: /dev/random, /dev/urandom or /dev/hwrng.
756Default: /dev/urandom
757
758.. code-block:: yaml
759
760 nova:
761 controller:
762 libvirt:
763 rng_dev_path: /dev/random
764
765 compute:
766 libvirt:
767 rng_dev_path: /dev/random
768
Dzmitry Stremkouski7da9bf12018-04-25 22:30:37 +0200769
Michel Nederloff7eefb22017-07-10 11:14:33 +0200770Nova compute workarounds
771------------------------
772
OlgaGusarenko9dd01c92018-07-31 00:49:30 +0300773Live snapshotting is disabled by default in nova. To enable
774this, it needs a manual switch.
Michel Nederloff7eefb22017-07-10 11:14:33 +0200775
776From manual:
777
778.. code-block:: yaml
779
OlgaGusarenko9dd01c92018-07-31 00:49:30 +0300780 When using libvirt 1.2.2 live snapshots fail intermittently under load
781 (likely related to concurrent libvirt/qemu operations). This config
782 option provides a mechanism to disable live snapshot, in favor of cold
783 snapshot, while this is resolved. Cold snapshot causes an instance
784 outage while the guest is going through the snapshotting process.
785
786 For more information, refer to the bug report:
787
788 https://bugs.launchpad.net/nova/+bug/1334398
Michel Nederloff7eefb22017-07-10 11:14:33 +0200789
790Configurable pillar data:
791
792.. code-block:: yaml
793
794 nova:
795 compute:
Michel Nederlofe322ebb2017-07-10 12:29:21 +0200796 workaround:
Michel Nederloff7eefb22017-07-10 11:14:33 +0200797 disable_libvirt_livesnapshot: False
798
Michel Nederlofb51a5142017-06-27 08:31:35 +0200799Config drive options
800--------------------
801
OlgaGusarenko9dd01c92018-07-31 00:49:30 +0300802See example below on how to configure the options for the
803config drive:
Michel Nederlofb51a5142017-06-27 08:31:35 +0200804
805.. code-block:: yaml
806
807 nova:
808 compute:
809 config_drive:
810 forced: True # Default: True
811 cdrom: True # Default: False
812 format: iso9660 # Default: vfat
813 inject_password: False # Default: False
814
Michel Nederloff81919b2017-11-20 09:37:07 +0100815Number of concurrent live migrates
816----------------------------------
817
OlgaGusarenko9dd01c92018-07-31 00:49:30 +0300818Default is to have no concurrent live migrations (so 1
819live-migration at a time).
Michel Nederloff81919b2017-11-20 09:37:07 +0100820
OlgaGusarenko9dd01c92018-07-31 00:49:30 +0300821Excerpt from config options page
822https://docs.openstack.org/ocata/config-reference/compute/config-options.html:
Michel Nederloff81919b2017-11-20 09:37:07 +0100823
OlgaGusarenko9dd01c92018-07-31 00:49:30 +0300824Maximum number of live migrations to run concurrently. This limit is
825enforced to avoid outbound live migrations overwhelming the host/network
826and causing failures. It is not recommended that you change this unless
827you are very sure that doing so is safe and stable in your environment.
Michel Nederloff81919b2017-11-20 09:37:07 +0100828
OlgaGusarenko9dd01c92018-07-31 00:49:30 +0300829Possible values:
Michel Nederloff81919b2017-11-20 09:37:07 +0100830
OlgaGusarenko9dd01c92018-07-31 00:49:30 +0300831- 0 : treated as unlimited.
832- Negative value defaults to 0.
833- Any positive integer representing maximum number of live migrations
834 to run concurrently.
Michel Nederloff81919b2017-11-20 09:37:07 +0100835
836To configure this option:
837
838.. code-block:: yaml
839
840 nova:
841 compute:
842 max_concurrent_live_migrations: 1 # (1 is the default)
843
Sergio Lystopad9d31cba2018-05-15 11:29:11 +0300844Live migration with auto converge
845----------------------------------
846
OlgaGusarenko9dd01c92018-07-31 00:49:30 +0300847Auto converge throttles down CPU if a progress of on-going live
848migration is slow
849https://docs.openstack.org/ocata/config-reference/compute/config-options.html:
Sergio Lystopad9d31cba2018-05-15 11:29:11 +0300850
851.. code-block:: yaml
852
853 nova:
854 compute:
855 libvirt:
856 live_migration_permit_auto_converge: False # (False is the default)
857
858.. code-block:: yaml
859
860 nova:
861 controller:
862 libvirt:
863 live_migration_permit_auto_converge: False # (False is the default)
864
Dmitry Kalashnike58fe082017-12-01 16:31:14 +0400865Enhanced logging with logging.conf
866----------------------------------
867
OlgaGusarenko9dd01c92018-07-31 00:49:30 +0300868By default ``logging.conf`` is disabled.
Dmitry Kalashnike58fe082017-12-01 16:31:14 +0400869
870That is possible to enable per-binary logging.conf with new variables:
Dmitry Kalashnike58fe082017-12-01 16:31:14 +0400871
OlgaGusarenko9dd01c92018-07-31 00:49:30 +0300872* ``openstack_log_appender``
873 Set to true to enable log_config_append for all OpenStack services
874
875* ``openstack_fluentd_handler_enabled``
876 Set to true to enable FluentHandler for all Openstack services
877
878* ``openstack_ossyslog_handler_enabled``
879 Set to true to enable OSSysLogHandler for all Openstack services
880
881Only ``WatchedFileHandler``, ``OSSysLogHandler``, and ``FluentHandler``
882are available.
Dmitry Kalashnike58fe082017-12-01 16:31:14 +0400883
Dmitry Kalashnik8da249c2018-01-16 17:58:00 +0400884Also it is possible to configure this with pillar:
Dmitry Kalashnike58fe082017-12-01 16:31:14 +0400885
886.. code-block:: yaml
887
888 nova:
889 controller:
890 logging:
891 log_appender: true
892 log_handlers:
893 watchedfile:
894 enabled: true
895 fluentd:
896 enabled: true
Oleksii Chupryn99e35032018-02-06 01:59:40 +0200897 ossyslog:
898 enabled: true
Dmitry Kalashnike58fe082017-12-01 16:31:14 +0400899
900 compute:
901 logging:
902 log_appender: true
903 log_handlers:
904 watchedfile:
905 enabled: true
906 fluentd:
907 enabled: true
Oleksii Chupryn99e35032018-02-06 01:59:40 +0200908 ossyslog:
909 enabled: true
Thom Gerdesf582f1e2017-05-02 18:05:50 +0000910
Vasyl Saienko7243a952018-05-11 21:26:54 +0300911The log level might be configured per logger by using the
912following pillar structure:
913
914.. code-block:: yaml
915
916 nova:
917 compute:
918 logging:
919 loggers:
920 <logger_name>:
921 level: WARNING
922
923 nova:
924 compute:
925 logging:
926 loggers:
927 <logger_name>:
928 level: WARNING
929
Oleh Hryhorove38525d2018-05-15 08:58:59 +0000930Configure syslog parameters for libvirtd
931----------------------------------------
932
OlgaGusarenko9dd01c92018-07-31 00:49:30 +0300933To configure syslog parameters for libvirtd the below pillar
934structure should be used with values which are supported
Oleh Hryhorove38525d2018-05-15 08:58:59 +0000935by libvirtd. These values might be known from the documentation.
936
OlgaGusarenko9dd01c92018-07-31 00:49:30 +0300937.. code-block:: yaml
938
Oleh Hryhorove38525d2018-05-15 08:58:59 +0000939 nova:
940 compute:
941 libvirt:
942 logging:
943 level: 3
944 filters: '3:remote 4:event'
945 outputs: '3:syslog:libvirtd'
946 buffer_size: 64
947
OlgaGusarenko9dd01c92018-07-31 00:49:30 +0300948Logging controls:
Oleh Hryhorove38525d2018-05-15 08:58:59 +0000949
OlgaGusarenko9dd01c92018-07-31 00:49:30 +0300950Logging level: 4 errors, 3 warnings, 2 information, 1 debug
951basically 1 will log everything possible ``log_level = 3``
Oleh Hryhorove38525d2018-05-15 08:58:59 +0000952
OlgaGusarenko9dd01c92018-07-31 00:49:30 +0300953Logging filters:
Oleh Hryhorove38525d2018-05-15 08:58:59 +0000954
OlgaGusarenko9dd01c92018-07-31 00:49:30 +0300955A filter allows to select a different logging level for a given category
956of logs.
Oleh Hryhorove38525d2018-05-15 08:58:59 +0000957
OlgaGusarenko9dd01c92018-07-31 00:49:30 +0300958The format for a filter is one of:
Oleh Hryhorove38525d2018-05-15 08:58:59 +0000959
OlgaGusarenko9dd01c92018-07-31 00:49:30 +0300960* ``x:name``
961* ``x:+name``
962 where name is a string which is matched against source file name,
963 e.g., ``remote``, ``qemu``, or ``util/json``, the optional ``+`` prefix
964 tells libvirt to log stack trace for each message matching name,
965 and x is the minimal level where matching messages should be logged:
Oleh Hryhorove38525d2018-05-15 08:58:59 +0000966
OlgaGusarenko9dd01c92018-07-31 00:49:30 +0300967* ``1: DEBUG``
968* ``2: INFO``
969* ``3: WARNING``
970* ``4: ERROR``
971
972Multiple filter can be defined in a single @filters, they just
973need to be separated by spaces.
974
975For example, to only get warning or errors from the remote layer
976and only errors from the event layer: ``log_filters="3:remote 4:event``
977
978Logging outputs:
979
980An output is one of the places to save logging information
981The format for an output can be:
982
983* ``x:stderr``
984 Output goes to stderr
985
986* ``x:syslog:name``
987 Use syslog for the output and use the given name as the ident
988
989* ``x:file:file_path``
990 output to a file, with the given filepath
991
992 In all case the x prefix is the minimal level, acting as a filter
993
994* ``1: DEBUG``
995* ``2: INFO``
996* ``3: WARNING``
997* ``4: ERROR``
998
999Multiple output can be defined, they just need to be separated by spaces.
1000For example, to log all warnings and errors to syslog under the libvirt
1001dident: ``log_outputs="3:syslog:libvirtd``
1002
1003Log debug buffer size: default 64
1004The daemon keeps an internal debug log buffer which will be dumped
1005in case of crash or upon receiving a ``SIGUSR2`` signal. This setting
1006allows to override the default buffer size in kilobytes.
1007If value is ``0`` or less the debug log buffer is deactivated
1008``log_buffer_size = 64``
1009
1010To configure the logging parameters for QEMU, the below pillar
1011structure and logging parameters should be used:
1012
1013.. code-block:: yaml
1014
1015 nova:
1016 compute:
1017 qemu:
1018 logging:
1019 handler: logd
1020 virtlog:
1021 enabled: true
1022 level: 4
1023 filters: '3:remote 3:event'
1024 outputs: '4:syslog:virtlogd'
1025 max_clients: 512
1026 max_size: 2097100
1027 max_backups: 2
Oleh Hryhorove38525d2018-05-15 08:58:59 +00001028
Oleksandr Shyshko981b4fa2018-05-02 15:39:30 +03001029Inject password to VM
1030---------------------
1031
OlgaGusarenko9dd01c92018-07-31 00:49:30 +03001032By default nova blocks up any inject to VM because
1033``inject_partition`` param is equal to ``-2``.
1034If you want to inject password to VM, you will need to
1035define ``inject_partition`` greater or equal to ``-1`` and
1036define ``inject_password`` to ``True``
Oleksandr Shyshko981b4fa2018-05-02 15:39:30 +03001037
1038For example:
1039
OlgaGusarenko9dd01c92018-07-31 00:49:30 +03001040.. code-block:: yaml
1041
Oleksandr Shyshko981b4fa2018-05-02 15:39:30 +03001042 nova:
1043 compute:
1044 inject_partition: '-1'
1045 inject_password: True
1046
OlgaGusarenko9dd01c92018-07-31 00:49:30 +03001047Allow the injection of an admin password for instance only at
1048``create`` and ``rebuild`` process.
1049
1050There is no agent needed within the image to do this. If *libguestfs* is
1051available on the host, it will be used. Otherwise *nbd* is used. The file
1052system of the image will be mounted and the admin password, which is provided
1053in the REST API call will be injected as password for the root user. If no
1054root user is available, the instance won't be launched and an error is thrown.
1055Be aware that the injection is *not* possible when the instance gets launched
1056from a volume.
1057
1058Possible values:
1059
1060* ``True``
1061 Allows the injection
1062
1063* ``False`` (default)
1064 Disallows the injection. Any via the REST API provided
1065 admin password will be silently ignored.
1066
1067Related options:
1068
1069* ``inject_partition``
1070 Decides about the discovery and usage of the file system.
1071 It also can disable the injection at all.
1072 (boolean value)
Oleksandr Shyshko981b4fa2018-05-02 15:39:30 +03001073
1074You can read more about injecting the administrator password here:
OlgaGusarenko9dd01c92018-07-31 00:49:30 +03001075https://docs.openstack.org/nova/queens/admin/admin-password-injection.html
Oleksandr Shyshko981b4fa2018-05-02 15:39:30 +03001076
Oleksandr Shyshko1c020d12018-05-24 12:47:08 +03001077Enable libvirt control channel over TLS
OlgaGusarenko9dd01c92018-07-31 00:49:30 +03001078---------------------------------------
Oleksandr Shyshko1c020d12018-05-24 12:47:08 +03001079
1080By default TLS is disabled.
1081
OlgaGusarenko9dd01c92018-07-31 00:49:30 +03001082Enable TLS transport:
1083
1084.. code-block:: yaml
Oleksandr Shyshko1c020d12018-05-24 12:47:08 +03001085
1086 compute:
1087 libvirt:
1088 tls:
1089 enabled: True
1090
1091You able to set custom certificates in pillar:
1092
OlgaGusarenko9dd01c92018-07-31 00:49:30 +03001093.. code-block:: yaml
1094
Oleksandr Shyshko1c020d12018-05-24 12:47:08 +03001095 nova:
1096 compute:
1097 libvirt:
1098 tls:
1099 key: (certificate content)
1100 cert: (certificate content)
1101 cacert: (certificate content)
1102 client:
1103 key: (certificate content)
1104 cert: (certificate content)
1105
Dmitry Teselkin70862022019-04-18 16:43:50 +03001106It is possible to limit allowed SSL / TLS ciphers using libvirt's tls_priority:
1107
1108.. code-block:: yaml
1109
1110 nova:
1111 compute:
1112 libvirt:
1113 tls:
1114 priority: <TLS priority string>
1115
1116Example priority strings are:
1117
1118- The system imposed security level:
1119
1120.. code-block:: text
1121
1122 "SYSTEM"
1123
1124- The default priority without the HMAC-MD5:
1125
1126.. code-block:: text
1127
1128 "NORMAL:-MD5"
1129
1130- Specifying RSA with AES-128-CBC:
1131
1132.. code-block:: text
1133
1134 "NONE:+VERS-TLS-ALL:+MAC-ALL:+RSA:+AES-128-CBC:+SIGN-ALL:+COMP-NULL"
1135
1136- Specifying the defaults plus ARCFOUR-128:
1137
1138.. code-block:: text
1139
1140 "NORMAL:+ARCFOUR-128"
1141
1142- Enabling the 128-bit secure ciphers, while disabling TLS 1.0:
1143
1144.. code-block:: text
1145
1146 "SECURE128:-VERS-TLS1.0"
1147
1148- Enabling the 128-bit and 192-bit secure ciphers, while disabling all TLS
1149 versions except TLS 1.2:
1150
1151.. code-block:: text
1152
1153 "SECURE128:+SECURE192:-VERS-ALL:+VERS-TLS1.2"
1154
1155More on TLS Priority Strings:
1156
1157- https://gnutls.org/manual/html_node/Priority-Strings.html
1158
Vasyl Saienko11ac9732018-10-02 17:04:33 +00001159Controlling access by `tls_allowed_dn_list`.
1160Enable an access control list of client certificate Distinguished Names (DNs)
1161which can connect to the TLS port on this server. The default is that DNs are
1162not checked. This list may contain wildcards such as
1163"C=GB,ST=London,L=London,O=Libvirt Project,CN=*" See the POSIX fnmatch function
1164for the format of the wildcards.
1165Note that if this is an empty list, no client can connect.
1166Note also that GnuTLS returns DNs without spaces after commas between
1167the fields (and this is what we check against), but the openssl x509 tool
1168shows spaces.
1169
1170.. code-block:: yaml
1171
1172 nova:
1173 compute:
1174 libvirt:
1175 tls:
1176 tls_allowed_dn_list:
1177 host1:
1178 enabled: true
1179 value: 'C=foo,CN=cmp1'
1180 host2:
1181 enabled: true
1182 value: 'C=foo,CN=cmp2'
1183
1184
Oleksandr Shyshko1c020d12018-05-24 12:47:08 +03001185You can read more about live migration over TLS here:
OlgaGusarenko9dd01c92018-07-31 00:49:30 +03001186https://wiki.libvirt.org/page/TLSCreateServerCerts
Oleksandr Shyshko981b4fa2018-05-02 15:39:30 +03001187
Oleksandr Shyshko1195fca2018-07-09 18:22:59 +03001188Enable transport + authentication for VNC over TLS
1189---------------------
Oleksandr Shyshkod8337cf2018-07-11 17:55:58 +03001190# Only for Queens. Communication between noVNC proxy service and QEMU
Oleksandr Shyshko1195fca2018-07-09 18:22:59 +03001191
1192By default communication between nova-novncproxy and qemu service is unsecure.
1193
1194compute:
1195 qemu:
1196 vnc:
1197 tls:
1198 enabled: True
1199
1200controller:
1201 novncproxy:
Oleksandr Shyshkod8337cf2018-07-11 17:55:58 +03001202 # This section responsible for communication between noVNC proxy and client machine
Oleksandr Shyshko1195fca2018-07-09 18:22:59 +03001203 tls:
1204 enabled: True
Oleksandr Shyshkod8337cf2018-07-11 17:55:58 +03001205 # This section responsible for communication between nova-novncproxy and qemu service
1206 vencrypt:
1207 tls:
1208 enabled: True
Oleksandr Shyshko1195fca2018-07-09 18:22:59 +03001209
1210You able to set custom certificates in pillar:
1211
Oleksandr Shyshkod8337cf2018-07-11 17:55:58 +03001212nova:
1213 compute:
1214 qemu:
1215 vnc:
1216 tls:
1217 cacert (certificate content)
1218 cert (certificate content)
1219 key (certificate content)
1220
1221nova:
1222 controller:
1223 novncproxy:
1224 tls:
1225 server:
1226 cert (certificate content)
1227 key (certificate content)
1228 vencrypt:
1229 tls:
1230 cacert (certificate content)
1231 cert (certificate content)
1232 key (certificate content)
1233
1234
1235You can read more about it here:
1236 https://docs.openstack.org/nova/queens/admin/remote-console-access.html
1237
1238Enable communication between noVNC proxy and client machine over TLS
1239---------------------
1240
1241By default communication between noVNC proxy and client machine is unsecure.
1242
1243 controller:
1244 novncproxy:
1245 tls:
1246 enabled: True
Oleksandr Shyshko1195fca2018-07-09 18:22:59 +03001247
1248 nova:
1249 controller:
1250 novncproxy:
1251 tls:
Oleksandr Shyshkod8337cf2018-07-11 17:55:58 +03001252 server:
1253 cert (certificate content)
1254 key (certificate content)
Oleksandr Shyshko1195fca2018-07-09 18:22:59 +03001255
1256You can read more about it here:
Oleksandr Shyshkod8337cf2018-07-11 17:55:58 +03001257 https://docs.openstack.org/mitaka/config-reference/dashboard/configure.html
Oleksandr Shyshko1195fca2018-07-09 18:22:59 +03001258
Oleksandr Shyshko55eeac72018-08-03 18:23:28 +03001259Enable x509 and ssl communication between Nova and Galera cluster.
1260---------------------
1261By default communication between Nova and Galera is unsecure.
1262
Oleksandr Shyshkocbe87352018-09-07 13:42:57 +03001263nova:
1264 controller:
1265 database:
1266 x509:
1267 enabled: True
1268
Oleksandr Shyshko55eeac72018-08-03 18:23:28 +03001269You able to set custom certificates in pillar:
Oleksandr Shyshko55eeac72018-08-03 18:23:28 +03001270
1271nova:
1272 controller:
1273 database:
1274 x509:
Oleksandr Shyshkocbe87352018-09-07 13:42:57 +03001275 cacert: (certificate content)
1276 cert: (certificate content)
1277 key: (certificate content)
Oleksandr Shyshko55eeac72018-08-03 18:23:28 +03001278
1279You can read more about it here:
1280 https://docs.openstack.org/security-guide/databases/database-access-control.html
1281
Oleksandr Bryndzii687b6542019-02-20 15:51:15 +02001282Configure nova to use service user tokens:
1283========
1284Long-running operations such as live migration or snapshot can sometimes overrun the
1285expiry of the user token. In such cases, post operations such as cleaning up after a
1286live migration can fail when the nova-compute service needs to cleanup resources in
1287other services, such as in the block-storage (cinder) or networking (neutron) services.
1288
1289This patch enables nova to use service user tokens to supplement the regular user token
1290used to initiate the operation. The identity service (keystone) will then authenticate
1291a request using the service user token if the user token has already expired.
1292
1293.. code-block:: yaml
1294
1295 nova:
1296 controller:
1297 enabled: True
1298 ...
1299 service_user:
1300 enabled: True
1301 user_domain_id: default
1302 project_domain_id: default
1303 project_name: service
1304 username: nova
1305 password: pswd
1306
1307
obryndzii2ea61412019-01-31 00:55:56 +00001308Nova database connection setup:
1309========
1310
1311.. code-block:: yaml
1312
1313 nova:
1314 controller:
1315 enabled: True
1316 ...
1317 min_pool_size: 100
1318 max_pool_size: 700
1319 max_overflow: 100
1320 retry_interval: 5
1321 max_retries: '-1'
1322 db_max_retries: 3
1323 db_retry_interval: 1
1324 connection_debug: 10
1325 pool_timeout: 120
Oleksandr Bryndzii687b6542019-02-20 15:51:15 +02001326
Oleksandr Bryndziife715df2019-04-23 15:34:42 +03001327Change default resource quotas using configmap template settings
1328========
1329
1330.. code-block:: yaml
1331
1332 nova:
1333 controller:
1334 configmap:
1335 quota:
1336 instances: 10
1337 cores: 20
1338 ram: 51200
1339 metadata_items: 128
1340 injected_files: 5
1341 injected_file_content_bytes: 10240
1342 injected_file_path_length: 255
1343 key_pairs: 100
1344 server_groups: 10
1345 server_group_members: 10
1346 reservation_expire: 86400
1347 until_refresh: 0
1348 max_age: 0
1349
Oleh Hryhorov63ee8452018-08-14 09:16:02 +00001350Upgrades
1351========
1352
1353Each openstack formula provide set of phases (logical bloks) that will help to
1354build flexible upgrade orchestration logic for particular components. The list
1355of phases might and theirs descriptions are listed in table below:
1356
1357+-------------------------------+------------------------------------------------------+
1358| State | Description |
1359+===============================+======================================================+
1360| <app>.upgrade.service_running | Ensure that all services for particular application |
1361| | are enabled for autostart and running |
1362+-------------------------------+------------------------------------------------------+
1363| <app>.upgrade.service_stopped | Ensure that all services for particular application |
1364| | disabled for autostart and dead |
1365+-------------------------------+------------------------------------------------------+
1366| <app>.upgrade.pkgs_latest | Ensure that packages used by particular application |
1367| | are installed to latest available version. |
1368| | This will not upgrade data plane packages like qemu |
1369| | and openvswitch as usually minimal required version |
1370| | in openstack services is really old. The data plane |
1371| | packages should be upgraded separately by `apt-get |
1372| | upgrade` or `apt-get dist-upgrade` |
1373| | Applying this state will not autostart service. |
1374+-------------------------------+------------------------------------------------------+
1375| <app>.upgrade.render_config | Ensure configuration is rendered actual version. +
1376+-------------------------------+------------------------------------------------------+
1377| <app>.upgrade.pre | We assume this state is applied on all nodes in the |
1378| | cloud before running upgrade. |
1379| | Only non destructive actions will be applied during |
1380| | this phase. Perform service built in service check |
1381| | like (keystone-manage doctor and nova-status upgrade)|
1382+-------------------------------+------------------------------------------------------+
1383| <app>.upgrade.upgrade.pre | Mostly applicable for data plane nodes. During this |
1384| | phase resources will be gracefully removed from |
1385| | current node if it is allowed. Services for upgraded |
1386| | application will be set to admin disabled state to |
1387| | make sure node will not participate in resources |
1388| | scheduling. For example on gtw nodes this will set |
1389| | all agents to admin disable state and will move all |
1390| | routers to other agents. |
1391+-------------------------------+------------------------------------------------------+
1392| <app>.upgrade.upgrade | This state will basically upgrade application on |
1393| | particular target. Stop services, render |
1394| | configuration, install new packages, run offline |
1395| | dbsync (for ctl), start services. Data plane should |
1396| | not be affected, only OpenStack python services. |
1397+-------------------------------+------------------------------------------------------+
1398| <app>.upgrade.upgrade.post | Add services back to scheduling. |
1399+-------------------------------+------------------------------------------------------+
1400| <app>.upgrade.post | This phase should be launched only when upgrade of |
1401| | the cloud is completed. Cleanup temporary files, |
1402| | perform other post upgrade tasks. |
1403+-------------------------------+------------------------------------------------------+
1404| <app>.upgrade.verify | Here we will do basic health checks (API CRUD |
1405| | operations, verify do not have dead network |
1406| | agents/compute services) |
1407+-------------------------------+------------------------------------------------------+
Oleksandr Pidrepnyidabe8b22019-06-07 16:18:11 +03001408
1409
1410Don't manage services scheduling while upgrade
1411----------------------------------------------
1412For some special cases, don't manage services scheduling both enable and disable
1413before and after upgrade procedure.
1414
1415If 'manage_service_maintenance: true' or not present - default behavior, disable services
1416before upgrade and enable it after upgrade.
1417If 'manage_service_maintenance: false' - don't disable and don't enable upgraded services
1418scheduling before and after upgrade.
1419
1420.. code-block:: yaml
1421
1422 nova:
1423 upgrade:
1424 manage_service_maintenance: false