blob: 793f8cda4e3f06b0c725cb9a1602661c7dbdc749 [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
Dzmitry Stremkouskife346fc2020-01-30 18:29:29 +010033 vif_plugging_timeout: 300
34 vif_plugging_is_fatal: false
35 instance_build_timeout: 600
36 use_cow_images: False
37 force_raw_images: True
38 snapshot_image_format: qcow2
39 images_type: default
Ivan Berezovskiy689e6ea2019-11-14 20:17:58 +040040 concurrency:
41 lock_path: '/var/lib/nova/tmp'
sgarbuzcc02c7f2018-10-25 14:29:30 +030042 consoleauth:
43 token_ttl: 600
Filip Pytloun4a72d792015-10-06 16:28:32 +020044 bind:
45 public_address: 10.0.0.122
46 public_name: openstack.domain.com
47 novncproxy_port: 6080
48 database:
49 engine: mysql
50 host: 127.0.0.1
51 port: 3306
52 name: nova
53 user: nova
54 password: pwd
55 identity:
56 engine: keystone
57 host: 127.0.0.1
58 port: 35357
59 user: nova
60 password: pwd
61 tenant: service
Dzmitry Stremkouski9f743222019-05-26 01:20:42 +020062 interface: internal
63 valid_interfaces:
64 - internal
Filip Pytloun4a72d792015-10-06 16:28:32 +020065 message_queue:
66 engine: rabbitmq
67 host: 127.0.0.1
68 port: 5672
69 user: openstack
70 password: pwd
71 virtual_host: '/openstack'
Oleh Hryhorovf5093b82018-10-17 11:16:08 +000072 pci:
73 alias:
74 alias1:
75 device_type: "type-PF"
76 name: "a1"
77 product_id: "154d"
78 vendor_id: "8086"
Filip Pytloun4a72d792015-10-06 16:28:32 +020079 network:
80 engine: neutron
81 host: 127.0.0.1
82 port: 9696
Jakub Pavlik617a8962016-09-04 18:50:06 +020083 extension_sync_interval: 600
Filip Pytloun4a72d792015-10-06 16:28:32 +020084 identity:
85 engine: keystone
86 host: 127.0.0.1
87 port: 35357
88 user: neutron
89 password: pwd
90 tenant: service
91 metadata:
92 password: password
Petr Michalecaa23dc02016-11-29 16:30:25 +010093 audit:
94 enabled: false
Simon Pasquier8683b7a2017-02-03 16:00:16 +010095 osapi_max_limit: 500
Oleg Iurchenko370c10d2017-10-19 14:03:37 +030096 barbican:
97 enabled: true
Filip Pytloun4a72d792015-10-06 16:28:32 +020098
OlgaGusarenko9dd01c92018-07-31 00:49:30 +030099Nova services from custom package repository:
Filip Pytloun4a72d792015-10-06 16:28:32 +0200100
101.. code-block:: yaml
102
103 nova:
104 controller:
105 version: juno
106 source:
107 engine: pkg
108 address: http://...
109 ....
110
OlgaGusarenko9dd01c92018-07-31 00:49:30 +0300111Client-side RabbitMQ HA setup:
Jiri Konecnye31f2c52016-04-14 17:16:02 +0200112
113.. code-block:: yaml
114
115 nova:
116 controller:
117 ....
118 message_queue:
119 engine: rabbitmq
120 members:
121 - host: 10.0.16.1
122 - host: 10.0.16.2
123 - host: 10.0.16.3
124 user: openstack
125 password: pwd
126 virtual_host: '/openstack'
127 ....
128
OlgaGusarenko9dd01c92018-07-31 00:49:30 +0300129Enable auditing filter, i.e: CADF:
Petr Michalecaa23dc02016-11-29 16:30:25 +0100130
131.. code-block:: yaml
132
133 nova:
134 controller:
Simon Pasquier6a3c8f72016-12-19 15:37:24 +0100135 audit:
Petr Michalecaa23dc02016-11-29 16:30:25 +0100136 enabled: true
137 ....
138 filter_factory: 'keystonemiddleware.audit:filter_factory'
139 map_file: '/etc/pycadf/nova_api_audit_map.conf'
140 ....
141
OlgaGusarenko9dd01c92018-07-31 00:49:30 +0300142Enable CORS parameters:
Ondrej Smola25b53cb2017-04-28 10:56:19 +0200143
144.. code-block:: yaml
145
146 nova:
147 controller:
148 cors:
149 allowed_origin: https:localhost.local,http:localhost.local
150 expose_headers: X-Auth-Token,X-Openstack-Request-Id,X-Subject-Token
151 allow_methods: GET,PUT,POST,DELETE,PATCH
152 allow_headers: X-Auth-Token,X-Openstack-Request-Id,X-Subject-Token
153 allow_credentials: True
154 max_age: 86400
155
OlgaGusarenko9dd01c92018-07-31 00:49:30 +0300156Configuration of the ``policy.json`` file:
Dmitry Ukov3562a082017-05-04 00:00:48 +0400157
158.. code-block:: yaml
159
160 nova:
161 controller:
162 ....
163 policy:
164 context_is_admin: 'role:admin or role:administrator'
165 'compute:create': 'rule:admin_or_owner'
166 # Add key without value to remove line from policy.json
167 'compute:create:attach_network':
Ondrej Smola25b53cb2017-04-28 10:56:19 +0200168
OlgaGusarenko9dd01c92018-07-31 00:49:30 +0300169Enable Barbican integration:
Oleg Iurchenko370c10d2017-10-19 14:03:37 +0300170
171.. code-block:: yaml
172
173 nova:
174 controller:
175 ....
176 barbican:
177 enabled: true
178
Oleh Hryhorovf5093b82018-10-17 11:16:08 +0000179Define aliases for PCI devices:
180.. code-block:: yaml
181
182 nova:
183 controller:
184 ...
185 pci:
186 alias:
187 alias1:
188 device_type: "type-PF"
189 name: "a1"
190 product_id: "154d"
191 vendor_id: "8086"
192
Jiri Broulik789179a2018-02-13 16:16:46 +0100193Enable cells update:
194
OlgaGusarenko9dd01c92018-07-31 00:49:30 +0300195.. note:: Useful when upgrading Openstack. To update cells to test
196 sync db agains duplicated production database.
Jiri Broulik789179a2018-02-13 16:16:46 +0100197
198.. code-block:: yaml
199
200 nova:
201 controller:
202 update_cells: true
203
Dzmitry Stremkouskif8497672019-11-03 10:36:46 +0100204Increase number of chunks for online db migrations:
205
206.. note:: This only should be done in offline as large number of
207 rows locked by this process may cause service outage, which
208 may not be expected.
209
210.. code-block:: yaml
211
212 nova:
213 controller:
214 db_migrations:
215 max_count: 5000000
Kirill Bespalov64617172017-07-11 14:43:14 +0300216
Kirill Bespalova0eaca72017-11-20 13:40:42 +0300217Configuring TLS communications
218------------------------------
Kirill Bespalov64617172017-07-11 14:43:14 +0300219
OlgaGusarenko9dd01c92018-07-31 00:49:30 +0300220.. note:: By default system wide installed CA certs are used,
221 so ``cacert_file`` param is optional, as well as ``cacert``.
Kirill Bespalova0eaca72017-11-20 13:40:42 +0300222
223- **RabbitMQ TLS**
Kirill Bespalov64617172017-07-11 14:43:14 +0300224
OlgaGusarenko9dd01c92018-07-31 00:49:30 +0300225 .. code-block:: yaml
Kirill Bespalov64617172017-07-11 14:43:14 +0300226
OlgaGusarenko9dd01c92018-07-31 00:49:30 +0300227 nova:
228 compute:
229 message_queue:
230 port: 5671
231 ssl:
232 enabled: True
233 (optional) cacert: cert body if the cacert_file does not exists
234 (optional) cacert_file: /etc/openstack/rabbitmq-ca.pem
235 (optional) version: TLSv1_2
Kirill Bespalov64617172017-07-11 14:43:14 +0300236
Kirill Bespalova0eaca72017-11-20 13:40:42 +0300237- **MySQL TLS**
Kirill Bespalov64617172017-07-11 14:43:14 +0300238
OlgaGusarenko9dd01c92018-07-31 00:49:30 +0300239 .. code-block:: yaml
Kirill Bespalov64617172017-07-11 14:43:14 +0300240
OlgaGusarenko9dd01c92018-07-31 00:49:30 +0300241 nova:
242 controller:
243 database:
244 ssl:
245 enabled: True
246 (optional) cacert: cert body if the cacert_file does not exists
247 (optional) cacert_file: /etc/openstack/mysql-ca.pem
Kirill Bespalov64617172017-07-11 14:43:14 +0300248
Kirill Bespalova0eaca72017-11-20 13:40:42 +0300249- **Openstack HTTPS API**
250
OlgaGusarenko9dd01c92018-07-31 00:49:30 +0300251 Set the ``https`` as protocol at ``nova:compute`` and
252 ``nova:controller`` sections :
Kirill Bespalova0eaca72017-11-20 13:40:42 +0300253
OlgaGusarenko9dd01c92018-07-31 00:49:30 +0300254 .. code-block:: yaml
Kirill Bespalov64617172017-07-11 14:43:14 +0300255
OlgaGusarenko9dd01c92018-07-31 00:49:30 +0300256 nova:
257 controller :
258 identity:
259 protocol: https
260 (optional) cacert_file: /etc/openstack/proxy.pem
261 network:
262 protocol: https
263 (optional) cacert_file: /etc/openstack/proxy.pem
264 glance:
265 protocol: https
266 (optional) cacert_file: /etc/openstack/proxy.pem
Kirill Bespalov64617172017-07-11 14:43:14 +0300267
OlgaGusarenko9dd01c92018-07-31 00:49:30 +0300268 .. code-block:: yaml
Kirill Bespalov64617172017-07-11 14:43:14 +0300269
OlgaGusarenko9dd01c92018-07-31 00:49:30 +0300270 nova:
271 compute:
272 identity:
273 protocol: https
274 (optional) cacert_file: /etc/openstack/proxy.pem
275 network:
276 protocol: https
277 (optional) cacert_file: /etc/openstack/proxy.pem
278 image:
279 protocol: https
280 (optional) cacert_file: /etc/openstack/proxy.pem
281 ironic:
282 protocol: https
283 (optional) cacert_file: /etc/openstack/proxy.pem
Kirill Bespalov64617172017-07-11 14:43:14 +0300284
OlgaGusarenko9dd01c92018-07-31 00:49:30 +0300285.. note:: Barbican, Cinder, and placement url endpoints are discovering
286 using service catalog.
Kirill Bespalov64617172017-07-11 14:43:14 +0300287
Martin Polreichdbf4f142019-12-17 14:19:44 +0100288Change default service policy configuration:
289--------------------------------------------
290
291.. code-block:: yaml
292
293 nova:
294 controller:
295 policy:
296 'context_is_admin': 'role:admin or role:administrator'
297 'compute:create': 'rule:admin_or_owner'
298 # Add key without value to remove line from policy.json
299 'compute:create:attach_network':
300
301
Filip Pytloun4a72d792015-10-06 16:28:32 +0200302Compute nodes
303-------------
304
OlgaGusarenko9dd01c92018-07-31 00:49:30 +0300305Nova controller services on compute node:
Filip Pytloun4a72d792015-10-06 16:28:32 +0200306
307.. code-block:: yaml
308
309 nova:
310 compute:
311 version: juno
312 enabled: true
Dmitry Stremkovskiy2bcba8d2017-07-30 21:43:59 +0300313 cross_az_attach: false
Dmitry Stremkovskiy35e53b72017-07-29 12:50:39 +0300314 disk_cachemodes: network=writeback,block=none
Jiri Broulik70d9e3f2017-02-15 18:37:13 +0100315 availability_zone: availability_zone_01
Damian Szelugae1922412017-04-18 16:36:46 +0200316 aggregates:
317 - hosts_with_fc
318 - hosts_with_ssd
Filip Pytloun4a72d792015-10-06 16:28:32 +0200319 security_group: true
Petr Michalecf03e4882017-04-10 10:26:18 +0200320 resume_guests_state_on_host_boot: False
Michael Polenchuk159c2542018-06-09 15:31:51 +0400321 preallocate_images: space # Default is 'none'
Dmitry Stremkovskiy8a0ff512017-07-25 20:54:13 +0300322 my_ip: 10.1.0.16
Ivan Berezovskiy689e6ea2019-11-14 20:17:58 +0400323 concurrency:
324 lock_path: '/var/lib/nova/tmp'
Filip Pytloun4a72d792015-10-06 16:28:32 +0200325 bind:
326 vnc_address: 172.20.0.100
327 vnc_port: 6080
328 vnc_name: openstack.domain.com
329 vnc_protocol: http
330 database:
331 engine: mysql
332 host: 127.0.0.1
333 port: 3306
334 name: nova
335 user: nova
336 password: pwd
337 identity:
338 engine: keystone
339 host: 127.0.0.1
340 port: 35357
341 user: nova
342 password: pwd
343 tenant: service
344 message_queue:
345 engine: rabbitmq
346 host: 127.0.0.1
347 port: 5672
348 user: openstack
349 password: pwd
350 virtual_host: '/openstack'
351 image:
352 engine: glance
353 host: 127.0.0.1
354 port: 9292
Oleh Hryhorovf5093b82018-10-17 11:16:08 +0000355 pci:
356 alias:
357 alias1:
358 device_type: "type-PF"
359 name: "a1"
360 product_id: "154d"
361 vendor_id: "8086"
Filip Pytloun4a72d792015-10-06 16:28:32 +0200362 network:
363 engine: neutron
364 host: 127.0.0.1
365 port: 9696
366 identity:
367 engine: keystone
368 host: 127.0.0.1
369 port: 35357
370 user: neutron
371 password: pwd
372 tenant: service
373 qemu:
374 max_files: 4096
375 max_processes: 4096
Dmitry Stremkovskiy96281f52017-07-26 00:39:22 +0300376 host: node-12.domain.tld
Filip Pytloun4a72d792015-10-06 16:28:32 +0200377
Vasyl Saienkocab3a902018-07-12 13:17:17 +0300378Compute with vmware driver. Each vmware cluster requires a separate process of nova-compute.
379Each process should have uniq host identifier. However multiple computes might be running on
380single host. It is not recommended to have multiple computes running on different hosts that
381manage the same vmware cluster. To achive this pacemaker/corosync or keepalived might be used.
382
383.. code-block:: yaml
384
385 nova:
386 compute:
387 compute_driver: vmwareapi.VMwareVCDriver
388 vmware:
389 host_username: vmware
390 host_password: vmware
391 cluster_name: vmware_cluster01
392 host_ip: 1.2.3.4
393
OlgaGusarenko9dd01c92018-07-31 00:49:30 +0300394Group and user to be used for QEMU processes run by the system instance:
kkalynovskyif50f0c02017-12-12 17:52:57 +0200395
396.. code-block:: yaml
397
398 nova:
399 compute:
400 enabled: true
401 ...
402 qemu:
403 user: nova
404 group: cinder
405 dynamic_ownership: 1
406
OlgaGusarenko9dd01c92018-07-31 00:49:30 +0300407Group membership for user nova (upgrade related):
Dmitry Stremkovskiy3cd6ba82017-07-25 17:15:36 +0300408
409.. code-block:: yaml
410
411 nova:
412 compute:
413 enabled: true
414 ...
415 user:
416 groups:
417 - libvirt
Filip Pytloun4a72d792015-10-06 16:28:32 +0200418
OlgaGusarenko9dd01c92018-07-31 00:49:30 +0300419Nova services on compute node with OpenContrail:
Filip Pytloun4a72d792015-10-06 16:28:32 +0200420
421.. code-block:: yaml
422
423 nova:
424 compute:
425 enabled: true
426 ...
427 networking: contrail
428
Oleksandr Bryndziibb8abfe2018-09-28 22:21:43 +0000429Nova services on compute node with memcached caching and security strategy:
Filip Pytloun4a72d792015-10-06 16:28:32 +0200430
431.. code-block:: yaml
432
433 nova:
434 compute:
435 enabled: true
436 ...
437 cache:
438 engine: memcached
439 members:
440 - host: 127.0.0.1
441 port: 11211
442 - host: 127.0.0.1
443 port: 11211
Oleksandr Bryndziibb8abfe2018-09-28 22:21:43 +0000444 security:
445 enabled: true
446 strategy: ENCRYPT
447 secret_key: secret
Filip Pytloun4a72d792015-10-06 16:28:32 +0200448
OlgaGusarenko9dd01c92018-07-31 00:49:30 +0300449Client-side RabbitMQ HA setup:
Jiri Konecnye31f2c52016-04-14 17:16:02 +0200450
451.. code-block:: yaml
452
453 nova:
Kirill Bespalov64617172017-07-11 14:43:14 +0300454 compute:
Jiri Konecnye31f2c52016-04-14 17:16:02 +0200455 ....
456 message_queue:
457 engine: rabbitmq
458 members:
459 - host: 10.0.16.1
460 - host: 10.0.16.2
461 - host: 10.0.16.3
462 user: openstack
463 password: pwd
464 virtual_host: '/openstack'
465 ....
466
OlgaGusarenko9dd01c92018-07-31 00:49:30 +0300467Nova with ephemeral configured with Ceph:
maxstack39e6aca2016-05-04 13:50:13 +0000468
469.. code-block:: yaml
470
471 nova:
472 compute:
473 enabled: true
474 ...
475 ceph:
476 ephemeral: yes
477 rbd_pool: nova
478 rbd_user: nova
479 secret_uuid: 03006edd-d957-40a3-ac4c-26cd254b3731
Kalynovskyi0bc79692017-07-21 16:22:09 +0300480 ....
maxstack39e6aca2016-05-04 13:50:13 +0000481
OlgaGusarenko9dd01c92018-07-31 00:49:30 +0300482Nova with ephemeral configured with LVM:
Kalynovskyi0bc79692017-07-21 16:22:09 +0300483
484.. code-block:: yaml
485
486 nova:
487 compute:
488 enabled: true
489 ...
490 lvm:
491 ephemeral: yes
492 images_volume_group: nova_vg
493
494 linux:
495 storage:
496 lvm:
497 nova_vg:
498 name: nova_vg
499 devices:
500 - /dev/sdf
501 - /dev/sdd
502 - /dev/sdg
503 - /dev/sde
504 - /dev/sdc
505 - /dev/sdj
506 - /dev/sdh
maxstack39e6aca2016-05-04 13:50:13 +0000507
OlgaGusarenko9dd01c92018-07-31 00:49:30 +0300508Enable Barbican integration:
Oleg Iurchenko370c10d2017-10-19 14:03:37 +0300509
510.. code-block:: yaml
511
512 nova:
513 compute:
514 ....
515 barbican:
516 enabled: true
517
Oleh Hryhorovf5093b82018-10-17 11:16:08 +0000518Define aliases for PCI devices:
519.. code-block:: yaml
520
521 nova:
522 compute:
523 ...
524 pci:
525 alias:
526 alias1:
527 device_type: "type-PF"
528 name: "a1"
529 product_id: "154d"
530 vendor_id: "8086"
531
OlgaGusarenko9dd01c92018-07-31 00:49:30 +0300532Nova metadata custom bindings:
Vasyl Saienko2d591282018-02-05 14:19:02 +0200533
534.. code-block:: yaml
535
536 nova:
537 controller:
538 enabled: true
539 ...
540 metadata:
541 bind:
542 address: 1.2.3.4
543 port: 8776
544
Oleh Hryhorov08482aa2018-11-19 14:07:47 +0200545Define multipath for nova compute:
546
547.. code-block:: yaml
548
549 nova:
550 compute:
551 ....
552 libvirt:
553 volume_use_multipath: True
554
Oleh Hryhorov5add3b22019-03-06 17:00:00 +0000555To disable or enable StrictHostKeyChecking and discover
556compute nodes fingerprints the below pillar should be used:
557
558.. code-block:: yaml
559
560 nova:
561 compute:
562 ....
563 openssh:
564 stricthostkeychecking: True
565 discover_compute_hosts: True
566
Jiri Broulik0ce9fc92017-02-01 23:10:40 +0100567Client role
568-----------
569
OlgaGusarenko9dd01c92018-07-31 00:49:30 +0300570Nova configured with NFS:
Dmitry Stremkovskiy665c7282017-07-05 17:36:27 +0300571
572.. code-block:: yaml
573
574 nova:
575 compute:
576 instances_path: /mnt/nova/instances
577
578 linux:
579 storage:
580 enabled: true
581 mount:
582 nfs_nova:
583 enabled: true
584 path: ${nova:compute:instances_path}
585 device: 172.31.35.145:/data
586 file_system: nfs
587 opts: rw,vers=3
588
OlgaGusarenko9dd01c92018-07-31 00:49:30 +0300589Nova flavors:
Jiri Broulik0ce9fc92017-02-01 23:10:40 +0100590
591.. code-block:: yaml
592
593 nova:
594 client:
595 enabled: true
596 server:
597 identity:
598 flavor:
Jiri Broulik70d9e3f2017-02-15 18:37:13 +0100599 flavor1:
Jiri Broulik0ce9fc92017-02-01 23:10:40 +0100600 flavor_id: 10
601 ram: 4096
602 disk: 10
603 vcpus: 1
Jiri Broulik70d9e3f2017-02-15 18:37:13 +0100604 flavor2:
605 flavor_id: auto
606 ram: 4096
607 disk: 20
608 vcpus: 2
Jiri Broulik0ce9fc92017-02-01 23:10:40 +0100609 identity1:
610 flavor:
611 ...
612
OlgaGusarenko9dd01c92018-07-31 00:49:30 +0300613Availability zones:
Jiri Broulik70d9e3f2017-02-15 18:37:13 +0100614
615.. code-block:: yaml
616
617 nova:
618 client:
619 enabled: true
620 server:
621 identity:
622 availability_zones:
623 - availability_zone_01
624 - availability_zone_02
625
OlgaGusarenko9dd01c92018-07-31 00:49:30 +0300626Aggregates:
Damian Szeluga5dca0f02017-04-13 17:27:15 +0200627
628.. code-block:: yaml
629
630 nova:
631 client:
632 enabled: true
633 server:
634 identity:
635 aggregates:
636 - aggregate1
637 - aggregate2
638
OlgaGusarenko9dd01c92018-07-31 00:49:30 +0300639Upgrade levels:
Dmitry Stremkovskiy91f45852017-07-18 16:22:31 +0300640
641.. code-block:: yaml
642
643 nova:
644 controller:
645 upgrade_levels:
646 compute: juno
647
648 nova:
649 compute:
650 upgrade_levels:
651 compute: juno
652
Petr Jedinýd855ef22017-03-06 22:24:33 +0100653SR-IOV
Jakub Pavlik39a05942017-02-13 23:03:08 +0100654------
655
OlgaGusarenko9dd01c92018-07-31 00:49:30 +0300656Add ``PciPassthroughFilter`` into scheduler filters and NICs on
657specific compute nodes:
Jakub Pavlik39a05942017-02-13 23:03:08 +0100658
659.. code-block:: yaml
660
661 nova:
662 controller:
663 sriov: true
sandriichenko4fe321d2018-01-22 17:34:06 +0000664 scheduler_default_filters: "DifferentHostFilter,SameHostFilter,RetryFilter,AvailabilityZoneFilter,RamFilter,CoreFilter,DiskFilter,ComputeFilter,ComputeCapabilitiesFilter,ImagePropertiesFilter,ServerGroupAntiAffinityFilter,ServerGroupAffinityFilter,PciPassthroughFilter"
Jakub Pavlik39a05942017-02-13 23:03:08 +0100665
666 nova:
667 compute:
668 sriov:
669 nic_one:
670 devname: eth1
671 physical_network: physnet1
672
Oleh Hryhorovf5093b82018-10-17 11:16:08 +0000673.. note:: Parameters located under nova:compute:sriov:<nic_name> are copied to passthrough_whitelist parameter into
674 nova.conf file in appropriate format.
675
Jakub Pavlik26fb85c2017-02-16 22:29:22 +0100676CPU pinning & Hugepages
677-----------------------
678
OlgaGusarenko9dd01c92018-07-31 00:49:30 +0300679CPU pinning of virtual machine instances to dedicated physical
680CPU cores. Hugepages mount point for libvirt.
Jakub Pavlik26fb85c2017-02-16 22:29:22 +0100681
682.. code-block:: yaml
683
684 nova:
685 controller:
sandriichenko4fe321d2018-01-22 17:34:06 +0000686 scheduler_default_filters: "DifferentHostFilter,SameHostFilter,RetryFilter,AvailabilityZoneFilter,RamFilter,CoreFilter,DiskFilter,ComputeFilter,ComputeCapabilitiesFilter,ImagePropertiesFilter,ServerGroupAntiAffinityFilter,ServerGroupAffinityFilter,NUMATopologyFilter,AggregateInstanceExtraSpecsFilter"
Jakub Pavlik26fb85c2017-02-16 22:29:22 +0100687
688 nova:
689 compute:
690 vcpu_pin_set: 2,3,4,5
691 hugepages:
692 mount_points:
693 - path: /mnt/hugepages_1GB
694 - path: /mnt/hugepages_2MB
Jiri Broulik0ce9fc92017-02-01 23:10:40 +0100695
Michel Nederlof171c7ac2017-04-13 12:54:14 +0200696Custom Scheduler filters
697------------------------
698
OlgaGusarenko9dd01c92018-07-31 00:49:30 +0300699If you have a custom filter, that needs to be included in the
700scheduler, then you can include it like so:
Michel Nederlof171c7ac2017-04-13 12:54:14 +0200701
702.. code-block:: yaml
703
704 nova:
705 controller:
706 scheduler_custom_filters:
707 - my_custom_driver.nova.scheduler.filters.my_custom_filter.MyCustomFilter
708
709 # 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 +0000710 scheduler_default_filters: "DifferentHostFilter,SameHostFilter,RetryFilter,AvailabilityZoneFilter,RamFilter,CoreFilter,DiskFilter,ComputeFilter,ComputeCapabilitiesFilter,ImagePropertiesFilter,ServerGroupAntiAffinityFilter,ServerGroupAffinityFilter,PciPassthroughFilter,MyCustomFilter"
Michel Nederlof171c7ac2017-04-13 12:54:14 +0200711
Michael Polenchuk2bce2cb2018-09-17 16:05:43 +0400712 # Since Queens version a sequence could be used as well:
713 ~scheduler_default_filters:
714 - DifferentHostFilter
715 - SameHostFilter
716 ...
717 - MyCustomFilter
718
719
Michel Nederlofeb566f62017-04-21 15:37:47 +0200720Hardware Trip/Unmap Support
721---------------------------
722
OlgaGusarenko9dd01c92018-07-31 00:49:30 +0300723To enable TRIM support for ephemeral images (thru nova managed
724images), libvirt has this option:
Michel Nederlofeb566f62017-04-21 15:37:47 +0200725
726.. code-block:: yaml
727
728 nova:
729 compute:
730 libvirt:
731 hw_disk_discard: unmap
732
OlgaGusarenko9dd01c92018-07-31 00:49:30 +0300733To actually utilize this feature, the following metadata must be
734set on the image as well, so the SCSI unmap is supported:
Michel Nederlofeb566f62017-04-21 15:37:47 +0200735
736.. code-block:: bash
737
738 glance image-update --property hw_scsi_model=virtio-scsi <image>
739 glance image-update --property hw_disk_bus=scsi <image>
Filip Pytloun5bc9e9f2017-02-02 13:05:40 +0100740
Thom Gerdesf582f1e2017-05-02 18:05:50 +0000741Scheduler Host Manager
742----------------------
743
744Specify a custom host manager.
745
Thom Gerdesec00afd2017-04-07 18:06:59 +0000746libvirt CPU mode
747----------------
748
OlgaGusarenko9dd01c92018-07-31 00:49:30 +0300749Allow setting the model of CPU that is exposed to a VM. This
750allows for better support live migration between hypervisors with
751different hardware, among other things. Defaults to host-passthrough.
Jakub Pavlik7046b9c2017-09-19 12:04:19 +0200752
Thom Gerdesf582f1e2017-05-02 18:05:50 +0000753.. code-block:: yaml
754
755 nova:
756 controller:
757 scheduler_host_manager: ironic_host_manager
758
Thom Gerdesec00afd2017-04-07 18:06:59 +0000759 compute:
760 cpu_mode: host-model
761
Dzmitry Stremkouski7da9bf12018-04-25 22:30:37 +0200762Nova compute cpu model
763----------------------
764
765.. code-block:: yaml
766
767 nova:
768 compute:
769 cpu_mode: custom
770 libvirt:
771 cpu_model: IvyBridge
772
Oleksandr Pidrepnyief9fd782019-03-04 19:18:19 +0200773RNG (Random Number Generator) device path
774----------------------
775
776The path to an RNG (Random Number Generator) device that will be used
777as the source of entropy on the host.
778The recommended source of entropy is /dev/urandom.
779Permitted options are: /dev/random, /dev/urandom or /dev/hwrng.
780Default: /dev/urandom
781
782.. code-block:: yaml
783
784 nova:
785 controller:
786 libvirt:
787 rng_dev_path: /dev/random
788
789 compute:
790 libvirt:
791 rng_dev_path: /dev/random
792
Dzmitry Stremkouski7da9bf12018-04-25 22:30:37 +0200793
Michel Nederloff7eefb22017-07-10 11:14:33 +0200794Nova compute workarounds
795------------------------
796
OlgaGusarenko9dd01c92018-07-31 00:49:30 +0300797Live snapshotting is disabled by default in nova. To enable
798this, it needs a manual switch.
Michel Nederloff7eefb22017-07-10 11:14:33 +0200799
800From manual:
801
802.. code-block:: yaml
803
OlgaGusarenko9dd01c92018-07-31 00:49:30 +0300804 When using libvirt 1.2.2 live snapshots fail intermittently under load
805 (likely related to concurrent libvirt/qemu operations). This config
806 option provides a mechanism to disable live snapshot, in favor of cold
807 snapshot, while this is resolved. Cold snapshot causes an instance
808 outage while the guest is going through the snapshotting process.
809
810 For more information, refer to the bug report:
811
812 https://bugs.launchpad.net/nova/+bug/1334398
Michel Nederloff7eefb22017-07-10 11:14:33 +0200813
814Configurable pillar data:
815
816.. code-block:: yaml
817
818 nova:
819 compute:
Michel Nederlofe322ebb2017-07-10 12:29:21 +0200820 workaround:
Michel Nederloff7eefb22017-07-10 11:14:33 +0200821 disable_libvirt_livesnapshot: False
822
Michel Nederlofb51a5142017-06-27 08:31:35 +0200823Config drive options
824--------------------
825
OlgaGusarenko9dd01c92018-07-31 00:49:30 +0300826See example below on how to configure the options for the
827config drive:
Michel Nederlofb51a5142017-06-27 08:31:35 +0200828
829.. code-block:: yaml
830
831 nova:
832 compute:
833 config_drive:
834 forced: True # Default: True
835 cdrom: True # Default: False
836 format: iso9660 # Default: vfat
837 inject_password: False # Default: False
838
Michel Nederloff81919b2017-11-20 09:37:07 +0100839Number of concurrent live migrates
840----------------------------------
841
OlgaGusarenko9dd01c92018-07-31 00:49:30 +0300842Default is to have no concurrent live migrations (so 1
843live-migration at a time).
Michel Nederloff81919b2017-11-20 09:37:07 +0100844
OlgaGusarenko9dd01c92018-07-31 00:49:30 +0300845Excerpt from config options page
846https://docs.openstack.org/ocata/config-reference/compute/config-options.html:
Michel Nederloff81919b2017-11-20 09:37:07 +0100847
OlgaGusarenko9dd01c92018-07-31 00:49:30 +0300848Maximum number of live migrations to run concurrently. This limit is
849enforced to avoid outbound live migrations overwhelming the host/network
850and causing failures. It is not recommended that you change this unless
851you are very sure that doing so is safe and stable in your environment.
Michel Nederloff81919b2017-11-20 09:37:07 +0100852
OlgaGusarenko9dd01c92018-07-31 00:49:30 +0300853Possible values:
Michel Nederloff81919b2017-11-20 09:37:07 +0100854
OlgaGusarenko9dd01c92018-07-31 00:49:30 +0300855- 0 : treated as unlimited.
856- Negative value defaults to 0.
857- Any positive integer representing maximum number of live migrations
858 to run concurrently.
Michel Nederloff81919b2017-11-20 09:37:07 +0100859
860To configure this option:
861
862.. code-block:: yaml
863
864 nova:
865 compute:
866 max_concurrent_live_migrations: 1 # (1 is the default)
867
Sergio Lystopad9d31cba2018-05-15 11:29:11 +0300868Live migration with auto converge
869----------------------------------
870
OlgaGusarenko9dd01c92018-07-31 00:49:30 +0300871Auto converge throttles down CPU if a progress of on-going live
872migration is slow
873https://docs.openstack.org/ocata/config-reference/compute/config-options.html:
Sergio Lystopad9d31cba2018-05-15 11:29:11 +0300874
875.. code-block:: yaml
876
877 nova:
878 compute:
879 libvirt:
880 live_migration_permit_auto_converge: False # (False is the default)
881
882.. code-block:: yaml
883
884 nova:
885 controller:
886 libvirt:
887 live_migration_permit_auto_converge: False # (False is the default)
888
Dmitry Kalashnike58fe082017-12-01 16:31:14 +0400889Enhanced logging with logging.conf
890----------------------------------
891
OlgaGusarenko9dd01c92018-07-31 00:49:30 +0300892By default ``logging.conf`` is disabled.
Dmitry Kalashnike58fe082017-12-01 16:31:14 +0400893
894That is possible to enable per-binary logging.conf with new variables:
Dmitry Kalashnike58fe082017-12-01 16:31:14 +0400895
OlgaGusarenko9dd01c92018-07-31 00:49:30 +0300896* ``openstack_log_appender``
897 Set to true to enable log_config_append for all OpenStack services
898
899* ``openstack_fluentd_handler_enabled``
900 Set to true to enable FluentHandler for all Openstack services
901
902* ``openstack_ossyslog_handler_enabled``
903 Set to true to enable OSSysLogHandler for all Openstack services
904
905Only ``WatchedFileHandler``, ``OSSysLogHandler``, and ``FluentHandler``
906are available.
Dmitry Kalashnike58fe082017-12-01 16:31:14 +0400907
Dmitry Kalashnik8da249c2018-01-16 17:58:00 +0400908Also it is possible to configure this with pillar:
Dmitry Kalashnike58fe082017-12-01 16:31:14 +0400909
910.. code-block:: yaml
911
912 nova:
913 controller:
914 logging:
915 log_appender: true
916 log_handlers:
917 watchedfile:
918 enabled: true
919 fluentd:
920 enabled: true
Oleksii Chupryn99e35032018-02-06 01:59:40 +0200921 ossyslog:
922 enabled: true
Dmitry Kalashnike58fe082017-12-01 16:31:14 +0400923
924 compute:
925 logging:
926 log_appender: true
927 log_handlers:
928 watchedfile:
929 enabled: true
930 fluentd:
931 enabled: true
Oleksii Chupryn99e35032018-02-06 01:59:40 +0200932 ossyslog:
933 enabled: true
Thom Gerdesf582f1e2017-05-02 18:05:50 +0000934
Vasyl Saienko7243a952018-05-11 21:26:54 +0300935The log level might be configured per logger by using the
936following pillar structure:
937
938.. code-block:: yaml
939
940 nova:
941 compute:
942 logging:
943 loggers:
944 <logger_name>:
945 level: WARNING
946
947 nova:
948 compute:
949 logging:
950 loggers:
951 <logger_name>:
952 level: WARNING
953
Oleh Hryhorove38525d2018-05-15 08:58:59 +0000954Configure syslog parameters for libvirtd
955----------------------------------------
956
OlgaGusarenko9dd01c92018-07-31 00:49:30 +0300957To configure syslog parameters for libvirtd the below pillar
958structure should be used with values which are supported
Oleh Hryhorove38525d2018-05-15 08:58:59 +0000959by libvirtd. These values might be known from the documentation.
960
OlgaGusarenko9dd01c92018-07-31 00:49:30 +0300961.. code-block:: yaml
962
Oleh Hryhorove38525d2018-05-15 08:58:59 +0000963 nova:
964 compute:
965 libvirt:
966 logging:
967 level: 3
968 filters: '3:remote 4:event'
969 outputs: '3:syslog:libvirtd'
970 buffer_size: 64
971
OlgaGusarenko9dd01c92018-07-31 00:49:30 +0300972Logging controls:
Oleh Hryhorove38525d2018-05-15 08:58:59 +0000973
OlgaGusarenko9dd01c92018-07-31 00:49:30 +0300974Logging level: 4 errors, 3 warnings, 2 information, 1 debug
975basically 1 will log everything possible ``log_level = 3``
Oleh Hryhorove38525d2018-05-15 08:58:59 +0000976
OlgaGusarenko9dd01c92018-07-31 00:49:30 +0300977Logging filters:
Oleh Hryhorove38525d2018-05-15 08:58:59 +0000978
OlgaGusarenko9dd01c92018-07-31 00:49:30 +0300979A filter allows to select a different logging level for a given category
980of logs.
Oleh Hryhorove38525d2018-05-15 08:58:59 +0000981
OlgaGusarenko9dd01c92018-07-31 00:49:30 +0300982The format for a filter is one of:
Oleh Hryhorove38525d2018-05-15 08:58:59 +0000983
OlgaGusarenko9dd01c92018-07-31 00:49:30 +0300984* ``x:name``
985* ``x:+name``
986 where name is a string which is matched against source file name,
987 e.g., ``remote``, ``qemu``, or ``util/json``, the optional ``+`` prefix
988 tells libvirt to log stack trace for each message matching name,
989 and x is the minimal level where matching messages should be logged:
Oleh Hryhorove38525d2018-05-15 08:58:59 +0000990
OlgaGusarenko9dd01c92018-07-31 00:49:30 +0300991* ``1: DEBUG``
992* ``2: INFO``
993* ``3: WARNING``
994* ``4: ERROR``
995
996Multiple filter can be defined in a single @filters, they just
997need to be separated by spaces.
998
999For example, to only get warning or errors from the remote layer
1000and only errors from the event layer: ``log_filters="3:remote 4:event``
1001
1002Logging outputs:
1003
1004An output is one of the places to save logging information
1005The format for an output can be:
1006
1007* ``x:stderr``
1008 Output goes to stderr
1009
1010* ``x:syslog:name``
1011 Use syslog for the output and use the given name as the ident
1012
1013* ``x:file:file_path``
1014 output to a file, with the given filepath
1015
1016 In all case the x prefix is the minimal level, acting as a filter
1017
1018* ``1: DEBUG``
1019* ``2: INFO``
1020* ``3: WARNING``
1021* ``4: ERROR``
1022
1023Multiple output can be defined, they just need to be separated by spaces.
1024For example, to log all warnings and errors to syslog under the libvirt
1025dident: ``log_outputs="3:syslog:libvirtd``
1026
1027Log debug buffer size: default 64
1028The daemon keeps an internal debug log buffer which will be dumped
1029in case of crash or upon receiving a ``SIGUSR2`` signal. This setting
1030allows to override the default buffer size in kilobytes.
1031If value is ``0`` or less the debug log buffer is deactivated
1032``log_buffer_size = 64``
1033
1034To configure the logging parameters for QEMU, the below pillar
1035structure and logging parameters should be used:
1036
1037.. code-block:: yaml
1038
1039 nova:
1040 compute:
1041 qemu:
1042 logging:
1043 handler: logd
1044 virtlog:
1045 enabled: true
1046 level: 4
1047 filters: '3:remote 3:event'
1048 outputs: '4:syslog:virtlogd'
1049 max_clients: 512
1050 max_size: 2097100
1051 max_backups: 2
Oleh Hryhorove38525d2018-05-15 08:58:59 +00001052
Oleksandr Shyshko981b4fa2018-05-02 15:39:30 +03001053Inject password to VM
1054---------------------
1055
OlgaGusarenko9dd01c92018-07-31 00:49:30 +03001056By default nova blocks up any inject to VM because
1057``inject_partition`` param is equal to ``-2``.
1058If you want to inject password to VM, you will need to
1059define ``inject_partition`` greater or equal to ``-1`` and
1060define ``inject_password`` to ``True``
Oleksandr Shyshko981b4fa2018-05-02 15:39:30 +03001061
1062For example:
1063
OlgaGusarenko9dd01c92018-07-31 00:49:30 +03001064.. code-block:: yaml
1065
Oleksandr Shyshko981b4fa2018-05-02 15:39:30 +03001066 nova:
1067 compute:
1068 inject_partition: '-1'
1069 inject_password: True
1070
OlgaGusarenko9dd01c92018-07-31 00:49:30 +03001071Allow the injection of an admin password for instance only at
1072``create`` and ``rebuild`` process.
1073
1074There is no agent needed within the image to do this. If *libguestfs* is
1075available on the host, it will be used. Otherwise *nbd* is used. The file
1076system of the image will be mounted and the admin password, which is provided
1077in the REST API call will be injected as password for the root user. If no
1078root user is available, the instance won't be launched and an error is thrown.
1079Be aware that the injection is *not* possible when the instance gets launched
1080from a volume.
1081
1082Possible values:
1083
1084* ``True``
1085 Allows the injection
1086
1087* ``False`` (default)
1088 Disallows the injection. Any via the REST API provided
1089 admin password will be silently ignored.
1090
1091Related options:
1092
1093* ``inject_partition``
1094 Decides about the discovery and usage of the file system.
1095 It also can disable the injection at all.
1096 (boolean value)
Oleksandr Shyshko981b4fa2018-05-02 15:39:30 +03001097
1098You can read more about injecting the administrator password here:
OlgaGusarenko9dd01c92018-07-31 00:49:30 +03001099https://docs.openstack.org/nova/queens/admin/admin-password-injection.html
Oleksandr Shyshko981b4fa2018-05-02 15:39:30 +03001100
Oleksandr Shyshko1c020d12018-05-24 12:47:08 +03001101Enable libvirt control channel over TLS
OlgaGusarenko9dd01c92018-07-31 00:49:30 +03001102---------------------------------------
Oleksandr Shyshko1c020d12018-05-24 12:47:08 +03001103
1104By default TLS is disabled.
1105
OlgaGusarenko9dd01c92018-07-31 00:49:30 +03001106Enable TLS transport:
1107
1108.. code-block:: yaml
Oleksandr Shyshko1c020d12018-05-24 12:47:08 +03001109
1110 compute:
1111 libvirt:
1112 tls:
1113 enabled: True
1114
1115You able to set custom certificates in pillar:
1116
OlgaGusarenko9dd01c92018-07-31 00:49:30 +03001117.. code-block:: yaml
1118
Oleksandr Shyshko1c020d12018-05-24 12:47:08 +03001119 nova:
1120 compute:
1121 libvirt:
1122 tls:
1123 key: (certificate content)
1124 cert: (certificate content)
1125 cacert: (certificate content)
1126 client:
1127 key: (certificate content)
1128 cert: (certificate content)
1129
Dmitry Teselkin70862022019-04-18 16:43:50 +03001130It is possible to limit allowed SSL / TLS ciphers using libvirt's tls_priority:
1131
1132.. code-block:: yaml
1133
1134 nova:
1135 compute:
1136 libvirt:
1137 tls:
1138 priority: <TLS priority string>
1139
1140Example priority strings are:
1141
1142- The system imposed security level:
1143
1144.. code-block:: text
1145
1146 "SYSTEM"
1147
1148- The default priority without the HMAC-MD5:
1149
1150.. code-block:: text
1151
1152 "NORMAL:-MD5"
1153
1154- Specifying RSA with AES-128-CBC:
1155
1156.. code-block:: text
1157
1158 "NONE:+VERS-TLS-ALL:+MAC-ALL:+RSA:+AES-128-CBC:+SIGN-ALL:+COMP-NULL"
1159
1160- Specifying the defaults plus ARCFOUR-128:
1161
1162.. code-block:: text
1163
1164 "NORMAL:+ARCFOUR-128"
1165
1166- Enabling the 128-bit secure ciphers, while disabling TLS 1.0:
1167
1168.. code-block:: text
1169
1170 "SECURE128:-VERS-TLS1.0"
1171
1172- Enabling the 128-bit and 192-bit secure ciphers, while disabling all TLS
1173 versions except TLS 1.2:
1174
1175.. code-block:: text
1176
1177 "SECURE128:+SECURE192:-VERS-ALL:+VERS-TLS1.2"
1178
1179More on TLS Priority Strings:
1180
1181- https://gnutls.org/manual/html_node/Priority-Strings.html
1182
Vasyl Saienko11ac9732018-10-02 17:04:33 +00001183Controlling access by `tls_allowed_dn_list`.
1184Enable an access control list of client certificate Distinguished Names (DNs)
1185which can connect to the TLS port on this server. The default is that DNs are
1186not checked. This list may contain wildcards such as
1187"C=GB,ST=London,L=London,O=Libvirt Project,CN=*" See the POSIX fnmatch function
1188for the format of the wildcards.
1189Note that if this is an empty list, no client can connect.
1190Note also that GnuTLS returns DNs without spaces after commas between
1191the fields (and this is what we check against), but the openssl x509 tool
1192shows spaces.
1193
1194.. code-block:: yaml
1195
1196 nova:
1197 compute:
1198 libvirt:
1199 tls:
1200 tls_allowed_dn_list:
1201 host1:
1202 enabled: true
1203 value: 'C=foo,CN=cmp1'
1204 host2:
1205 enabled: true
1206 value: 'C=foo,CN=cmp2'
1207
1208
Oleksandr Shyshko1c020d12018-05-24 12:47:08 +03001209You can read more about live migration over TLS here:
OlgaGusarenko9dd01c92018-07-31 00:49:30 +03001210https://wiki.libvirt.org/page/TLSCreateServerCerts
Oleksandr Shyshko981b4fa2018-05-02 15:39:30 +03001211
Oleksandr Shyshko1195fca2018-07-09 18:22:59 +03001212Enable transport + authentication for VNC over TLS
1213---------------------
Oleksandr Shyshkod8337cf2018-07-11 17:55:58 +03001214# Only for Queens. Communication between noVNC proxy service and QEMU
Oleksandr Shyshko1195fca2018-07-09 18:22:59 +03001215
1216By default communication between nova-novncproxy and qemu service is unsecure.
1217
1218compute:
1219 qemu:
1220 vnc:
1221 tls:
1222 enabled: True
1223
1224controller:
1225 novncproxy:
Oleksandr Shyshkod8337cf2018-07-11 17:55:58 +03001226 # This section responsible for communication between noVNC proxy and client machine
Oleksandr Shyshko1195fca2018-07-09 18:22:59 +03001227 tls:
1228 enabled: True
Oleksandr Shyshkod8337cf2018-07-11 17:55:58 +03001229 # This section responsible for communication between nova-novncproxy and qemu service
1230 vencrypt:
1231 tls:
1232 enabled: True
Oleksandr Shyshko1195fca2018-07-09 18:22:59 +03001233
1234You able to set custom certificates in pillar:
1235
Oleksandr Shyshkod8337cf2018-07-11 17:55:58 +03001236nova:
1237 compute:
1238 qemu:
1239 vnc:
1240 tls:
1241 cacert (certificate content)
1242 cert (certificate content)
1243 key (certificate content)
1244
1245nova:
1246 controller:
1247 novncproxy:
1248 tls:
1249 server:
1250 cert (certificate content)
1251 key (certificate content)
1252 vencrypt:
1253 tls:
1254 cacert (certificate content)
1255 cert (certificate content)
1256 key (certificate content)
1257
1258
1259You can read more about it here:
1260 https://docs.openstack.org/nova/queens/admin/remote-console-access.html
1261
1262Enable communication between noVNC proxy and client machine over TLS
1263---------------------
1264
1265By default communication between noVNC proxy and client machine is unsecure.
1266
1267 controller:
1268 novncproxy:
1269 tls:
1270 enabled: True
Oleksandr Shyshko1195fca2018-07-09 18:22:59 +03001271
1272 nova:
1273 controller:
1274 novncproxy:
1275 tls:
Oleksandr Shyshkod8337cf2018-07-11 17:55:58 +03001276 server:
1277 cert (certificate content)
1278 key (certificate content)
Oleksandr Shyshko1195fca2018-07-09 18:22:59 +03001279
1280You can read more about it here:
Oleksandr Shyshkod8337cf2018-07-11 17:55:58 +03001281 https://docs.openstack.org/mitaka/config-reference/dashboard/configure.html
Oleksandr Shyshko1195fca2018-07-09 18:22:59 +03001282
Oleksandr Shyshko55eeac72018-08-03 18:23:28 +03001283Enable x509 and ssl communication between Nova and Galera cluster.
1284---------------------
1285By default communication between Nova and Galera is unsecure.
1286
Oleksandr Shyshkocbe87352018-09-07 13:42:57 +03001287nova:
1288 controller:
1289 database:
1290 x509:
1291 enabled: True
1292
Oleksandr Shyshko55eeac72018-08-03 18:23:28 +03001293You able to set custom certificates in pillar:
Oleksandr Shyshko55eeac72018-08-03 18:23:28 +03001294
1295nova:
1296 controller:
1297 database:
1298 x509:
Oleksandr Shyshkocbe87352018-09-07 13:42:57 +03001299 cacert: (certificate content)
1300 cert: (certificate content)
1301 key: (certificate content)
Oleksandr Shyshko55eeac72018-08-03 18:23:28 +03001302
1303You can read more about it here:
1304 https://docs.openstack.org/security-guide/databases/database-access-control.html
1305
Oleksandr Bryndzii687b6542019-02-20 15:51:15 +02001306Configure nova to use service user tokens:
1307========
1308Long-running operations such as live migration or snapshot can sometimes overrun the
1309expiry of the user token. In such cases, post operations such as cleaning up after a
1310live migration can fail when the nova-compute service needs to cleanup resources in
1311other services, such as in the block-storage (cinder) or networking (neutron) services.
1312
1313This patch enables nova to use service user tokens to supplement the regular user token
1314used to initiate the operation. The identity service (keystone) will then authenticate
1315a request using the service user token if the user token has already expired.
1316
1317.. code-block:: yaml
1318
1319 nova:
1320 controller:
1321 enabled: True
1322 ...
1323 service_user:
1324 enabled: True
1325 user_domain_id: default
1326 project_domain_id: default
1327 project_name: service
1328 username: nova
1329 password: pswd
1330
1331
obryndzii2ea61412019-01-31 00:55:56 +00001332Nova database connection setup:
1333========
1334
1335.. code-block:: yaml
1336
1337 nova:
1338 controller:
1339 enabled: True
1340 ...
1341 min_pool_size: 100
1342 max_pool_size: 700
1343 max_overflow: 100
1344 retry_interval: 5
1345 max_retries: '-1'
1346 db_max_retries: 3
1347 db_retry_interval: 1
1348 connection_debug: 10
1349 pool_timeout: 120
Oleksandr Bryndzii687b6542019-02-20 15:51:15 +02001350
Oleksandr Bryndziife715df2019-04-23 15:34:42 +03001351Change default resource quotas using configmap template settings
1352========
1353
1354.. code-block:: yaml
1355
1356 nova:
1357 controller:
1358 configmap:
1359 quota:
1360 instances: 10
1361 cores: 20
1362 ram: 51200
1363 metadata_items: 128
1364 injected_files: 5
1365 injected_file_content_bytes: 10240
1366 injected_file_path_length: 255
1367 key_pairs: 100
1368 server_groups: 10
1369 server_group_members: 10
1370 reservation_expire: 86400
1371 until_refresh: 0
1372 max_age: 0
1373
Oleh Hryhorov63ee8452018-08-14 09:16:02 +00001374Upgrades
1375========
1376
1377Each openstack formula provide set of phases (logical bloks) that will help to
1378build flexible upgrade orchestration logic for particular components. The list
1379of phases might and theirs descriptions are listed in table below:
1380
1381+-------------------------------+------------------------------------------------------+
1382| State | Description |
1383+===============================+======================================================+
1384| <app>.upgrade.service_running | Ensure that all services for particular application |
1385| | are enabled for autostart and running |
1386+-------------------------------+------------------------------------------------------+
1387| <app>.upgrade.service_stopped | Ensure that all services for particular application |
1388| | disabled for autostart and dead |
1389+-------------------------------+------------------------------------------------------+
1390| <app>.upgrade.pkgs_latest | Ensure that packages used by particular application |
1391| | are installed to latest available version. |
1392| | This will not upgrade data plane packages like qemu |
1393| | and openvswitch as usually minimal required version |
1394| | in openstack services is really old. The data plane |
1395| | packages should be upgraded separately by `apt-get |
1396| | upgrade` or `apt-get dist-upgrade` |
1397| | Applying this state will not autostart service. |
1398+-------------------------------+------------------------------------------------------+
1399| <app>.upgrade.render_config | Ensure configuration is rendered actual version. +
1400+-------------------------------+------------------------------------------------------+
1401| <app>.upgrade.pre | We assume this state is applied on all nodes in the |
1402| | cloud before running upgrade. |
1403| | Only non destructive actions will be applied during |
1404| | this phase. Perform service built in service check |
1405| | like (keystone-manage doctor and nova-status upgrade)|
1406+-------------------------------+------------------------------------------------------+
1407| <app>.upgrade.upgrade.pre | Mostly applicable for data plane nodes. During this |
1408| | phase resources will be gracefully removed from |
1409| | current node if it is allowed. Services for upgraded |
1410| | application will be set to admin disabled state to |
1411| | make sure node will not participate in resources |
1412| | scheduling. For example on gtw nodes this will set |
1413| | all agents to admin disable state and will move all |
1414| | routers to other agents. |
1415+-------------------------------+------------------------------------------------------+
1416| <app>.upgrade.upgrade | This state will basically upgrade application on |
1417| | particular target. Stop services, render |
1418| | configuration, install new packages, run offline |
1419| | dbsync (for ctl), start services. Data plane should |
1420| | not be affected, only OpenStack python services. |
1421+-------------------------------+------------------------------------------------------+
1422| <app>.upgrade.upgrade.post | Add services back to scheduling. |
1423+-------------------------------+------------------------------------------------------+
1424| <app>.upgrade.post | This phase should be launched only when upgrade of |
1425| | the cloud is completed. Cleanup temporary files, |
1426| | perform other post upgrade tasks. |
1427+-------------------------------+------------------------------------------------------+
1428| <app>.upgrade.verify | Here we will do basic health checks (API CRUD |
1429| | operations, verify do not have dead network |
1430| | agents/compute services) |
1431+-------------------------------+------------------------------------------------------+
Oleksandr Pidrepnyidabe8b22019-06-07 16:18:11 +03001432
1433
1434Don't manage services scheduling while upgrade
1435----------------------------------------------
1436For some special cases, don't manage services scheduling both enable and disable
1437before and after upgrade procedure.
1438
1439If 'manage_service_maintenance: true' or not present - default behavior, disable services
1440before upgrade and enable it after upgrade.
1441If 'manage_service_maintenance: false' - don't disable and don't enable upgraded services
1442scheduling before and after upgrade.
1443
1444.. code-block:: yaml
1445
1446 nova:
1447 upgrade:
1448 manage_service_maintenance: false