blob: 02d0279d0fc13cd294cabc38c2e405aadf24ef81 [file] [log] [blame]
Filip Pytloun4a72d792015-10-06 16:28:32 +02001
Aleš Komárek72152852017-04-11 13:48:48 +02002============
OlgaGusarenko9dd01c92018-07-31 00:49:30 +03003Usage
Aleš Komárek72152852017-04-11 13:48:48 +02004============
Filip Pytloun4a72d792015-10-06 16:28:32 +02005
Jakub Pavlikfcf34f82016-05-20 09:35:51 +02006OpenStack Nova provides a cloud computing fabric controller, supporting a wide
7variety of virtualization technologies, including KVM, Xen, LXC, VMware, and
8more. In addition to its native API, it includes compatibility with the
9commonly encountered Amazon EC2 and S3 APIs.
Filip Pytloun4a72d792015-10-06 16:28:32 +020010
Aleš Komárek72152852017-04-11 13:48:48 +020011Sample Pillars
Filip Pytloun4a72d792015-10-06 16:28:32 +020012==============
13
14Controller nodes
15----------------
16
OlgaGusarenko9dd01c92018-07-31 00:49:30 +030017Nova services on the controller node:
Filip Pytloun4a72d792015-10-06 16:28:32 +020018
19.. code-block:: yaml
20
21 nova:
22 controller:
23 version: juno
24 enabled: true
25 security_group: true
Lachlan Evensonb72de502016-01-20 15:34:04 -080026 cpu_allocation_ratio: 8.0
27 ram_allocation_ratio: 1.0
Jiri Konecny9344a372016-03-21 19:25:48 +010028 disk_allocation_ratio: 1.0
Dmitry Stremkovskiy2bcba8d2017-07-30 21:43:59 +030029 cross_az_attach: false
Jiri Konecnyb5a80e42016-03-22 11:51:01 +010030 workers: 8
Jakub Pavlik617a8962016-09-04 18:50:06 +020031 report_interval: 60
Michel Nederlof8ff99332017-10-23 14:29:15 +020032 dhcp_domain: novalocal
Vasyl Saienko09b6ac32019-01-17 15:23:58 +020033 vif_plugging_timeout: 300
34 vif_plugging_is_fatal: false
Vasyl Saienko2adac3f2019-02-18 12:32:52 +020035 instance_build_timeout: 600
sgarbuzcc02c7f2018-10-25 14:29:30 +030036 consoleauth:
37 token_ttl: 600
Filip Pytloun4a72d792015-10-06 16:28:32 +020038 bind:
39 public_address: 10.0.0.122
40 public_name: openstack.domain.com
41 novncproxy_port: 6080
42 database:
43 engine: mysql
44 host: 127.0.0.1
45 port: 3306
46 name: nova
47 user: nova
48 password: pwd
49 identity:
50 engine: keystone
51 host: 127.0.0.1
52 port: 35357
53 user: nova
54 password: pwd
55 tenant: service
Dzmitry Stremkouskifb2289a2019-05-26 01:20:42 +020056 interface: internal
57 valid_interfaces:
58 - internal
Filip Pytloun4a72d792015-10-06 16:28:32 +020059 message_queue:
60 engine: rabbitmq
61 host: 127.0.0.1
62 port: 5672
63 user: openstack
64 password: pwd
65 virtual_host: '/openstack'
Oleh Hryhorovf5093b82018-10-17 11:16:08 +000066 pci:
67 alias:
68 alias1:
69 device_type: "type-PF"
70 name: "a1"
71 product_id: "154d"
72 vendor_id: "8086"
Filip Pytloun4a72d792015-10-06 16:28:32 +020073 network:
74 engine: neutron
75 host: 127.0.0.1
76 port: 9696
Jakub Pavlik617a8962016-09-04 18:50:06 +020077 extension_sync_interval: 600
Filip Pytloun4a72d792015-10-06 16:28:32 +020078 identity:
79 engine: keystone
80 host: 127.0.0.1
81 port: 35357
82 user: neutron
83 password: pwd
84 tenant: service
85 metadata:
86 password: password
Petr Michalecaa23dc02016-11-29 16:30:25 +010087 audit:
88 enabled: false
Simon Pasquier8683b7a2017-02-03 16:00:16 +010089 osapi_max_limit: 500
Oleg Iurchenko370c10d2017-10-19 14:03:37 +030090 barbican:
91 enabled: true
Filip Pytloun4a72d792015-10-06 16:28:32 +020092
OlgaGusarenko9dd01c92018-07-31 00:49:30 +030093Nova services from custom package repository:
Filip Pytloun4a72d792015-10-06 16:28:32 +020094
95.. code-block:: yaml
96
97 nova:
98 controller:
99 version: juno
100 source:
101 engine: pkg
102 address: http://...
103 ....
104
OlgaGusarenko9dd01c92018-07-31 00:49:30 +0300105Client-side RabbitMQ HA setup:
Jiri Konecnye31f2c52016-04-14 17:16:02 +0200106
107.. code-block:: yaml
108
109 nova:
110 controller:
111 ....
112 message_queue:
113 engine: rabbitmq
114 members:
115 - host: 10.0.16.1
116 - host: 10.0.16.2
117 - host: 10.0.16.3
118 user: openstack
119 password: pwd
120 virtual_host: '/openstack'
121 ....
122
OlgaGusarenko9dd01c92018-07-31 00:49:30 +0300123Enable auditing filter, i.e: CADF:
Petr Michalecaa23dc02016-11-29 16:30:25 +0100124
125.. code-block:: yaml
126
127 nova:
128 controller:
Simon Pasquier6a3c8f72016-12-19 15:37:24 +0100129 audit:
Petr Michalecaa23dc02016-11-29 16:30:25 +0100130 enabled: true
131 ....
132 filter_factory: 'keystonemiddleware.audit:filter_factory'
133 map_file: '/etc/pycadf/nova_api_audit_map.conf'
134 ....
135
OlgaGusarenko9dd01c92018-07-31 00:49:30 +0300136Enable CORS parameters:
Ondrej Smola25b53cb2017-04-28 10:56:19 +0200137
138.. code-block:: yaml
139
140 nova:
141 controller:
142 cors:
143 allowed_origin: https:localhost.local,http:localhost.local
144 expose_headers: X-Auth-Token,X-Openstack-Request-Id,X-Subject-Token
145 allow_methods: GET,PUT,POST,DELETE,PATCH
146 allow_headers: X-Auth-Token,X-Openstack-Request-Id,X-Subject-Token
147 allow_credentials: True
148 max_age: 86400
149
OlgaGusarenko9dd01c92018-07-31 00:49:30 +0300150Configuration of the ``policy.json`` file:
Dmitry Ukov3562a082017-05-04 00:00:48 +0400151
152.. code-block:: yaml
153
154 nova:
155 controller:
156 ....
157 policy:
158 context_is_admin: 'role:admin or role:administrator'
159 'compute:create': 'rule:admin_or_owner'
160 # Add key without value to remove line from policy.json
161 'compute:create:attach_network':
Ondrej Smola25b53cb2017-04-28 10:56:19 +0200162
OlgaGusarenko9dd01c92018-07-31 00:49:30 +0300163Enable Barbican integration:
Oleg Iurchenko370c10d2017-10-19 14:03:37 +0300164
165.. code-block:: yaml
166
167 nova:
168 controller:
169 ....
170 barbican:
171 enabled: true
172
Oleh Hryhorovf5093b82018-10-17 11:16:08 +0000173Define aliases for PCI devices:
174.. code-block:: yaml
175
176 nova:
177 controller:
178 ...
179 pci:
180 alias:
181 alias1:
182 device_type: "type-PF"
183 name: "a1"
184 product_id: "154d"
185 vendor_id: "8086"
186
Jiri Broulik789179a2018-02-13 16:16:46 +0100187Enable cells update:
188
OlgaGusarenko9dd01c92018-07-31 00:49:30 +0300189.. note:: Useful when upgrading Openstack. To update cells to test
190 sync db agains duplicated production database.
Jiri Broulik789179a2018-02-13 16:16:46 +0100191
192.. code-block:: yaml
193
194 nova:
195 controller:
196 update_cells: true
197
Dzmitry Stremkouskib139f142019-11-03 10:36:46 +0100198Increase number of chunks for online db migrations:
199
200.. note:: This only should be done in offline as large number of
201 rows locked by this process may cause service outage, which
202 may not be expected.
203
204.. code-block:: yaml
205
206 nova:
207 controller:
208 db_migrations:
209 max_count: 5000000
Kirill Bespalov64617172017-07-11 14:43:14 +0300210
Kirill Bespalova0eaca72017-11-20 13:40:42 +0300211Configuring TLS communications
212------------------------------
Kirill Bespalov64617172017-07-11 14:43:14 +0300213
OlgaGusarenko9dd01c92018-07-31 00:49:30 +0300214.. note:: By default system wide installed CA certs are used,
215 so ``cacert_file`` param is optional, as well as ``cacert``.
Kirill Bespalova0eaca72017-11-20 13:40:42 +0300216
217- **RabbitMQ TLS**
Kirill Bespalov64617172017-07-11 14:43:14 +0300218
OlgaGusarenko9dd01c92018-07-31 00:49:30 +0300219 .. code-block:: yaml
Kirill Bespalov64617172017-07-11 14:43:14 +0300220
OlgaGusarenko9dd01c92018-07-31 00:49:30 +0300221 nova:
222 compute:
223 message_queue:
224 port: 5671
225 ssl:
226 enabled: True
227 (optional) cacert: cert body if the cacert_file does not exists
228 (optional) cacert_file: /etc/openstack/rabbitmq-ca.pem
229 (optional) version: TLSv1_2
Kirill Bespalov64617172017-07-11 14:43:14 +0300230
Kirill Bespalova0eaca72017-11-20 13:40:42 +0300231- **MySQL TLS**
Kirill Bespalov64617172017-07-11 14:43:14 +0300232
OlgaGusarenko9dd01c92018-07-31 00:49:30 +0300233 .. code-block:: yaml
Kirill Bespalov64617172017-07-11 14:43:14 +0300234
OlgaGusarenko9dd01c92018-07-31 00:49:30 +0300235 nova:
236 controller:
237 database:
238 ssl:
239 enabled: True
240 (optional) cacert: cert body if the cacert_file does not exists
241 (optional) cacert_file: /etc/openstack/mysql-ca.pem
Kirill Bespalov64617172017-07-11 14:43:14 +0300242
Kirill Bespalova0eaca72017-11-20 13:40:42 +0300243- **Openstack HTTPS API**
244
OlgaGusarenko9dd01c92018-07-31 00:49:30 +0300245 Set the ``https`` as protocol at ``nova:compute`` and
246 ``nova:controller`` sections :
Kirill Bespalova0eaca72017-11-20 13:40:42 +0300247
OlgaGusarenko9dd01c92018-07-31 00:49:30 +0300248 .. code-block:: yaml
Kirill Bespalov64617172017-07-11 14:43:14 +0300249
OlgaGusarenko9dd01c92018-07-31 00:49:30 +0300250 nova:
251 controller :
252 identity:
253 protocol: https
254 (optional) cacert_file: /etc/openstack/proxy.pem
255 network:
256 protocol: https
257 (optional) cacert_file: /etc/openstack/proxy.pem
258 glance:
259 protocol: https
260 (optional) cacert_file: /etc/openstack/proxy.pem
Kirill Bespalov64617172017-07-11 14:43:14 +0300261
OlgaGusarenko9dd01c92018-07-31 00:49:30 +0300262 .. code-block:: yaml
Kirill Bespalov64617172017-07-11 14:43:14 +0300263
OlgaGusarenko9dd01c92018-07-31 00:49:30 +0300264 nova:
265 compute:
266 identity:
267 protocol: https
268 (optional) cacert_file: /etc/openstack/proxy.pem
269 network:
270 protocol: https
271 (optional) cacert_file: /etc/openstack/proxy.pem
272 image:
273 protocol: https
274 (optional) cacert_file: /etc/openstack/proxy.pem
275 ironic:
276 protocol: https
277 (optional) cacert_file: /etc/openstack/proxy.pem
Kirill Bespalov64617172017-07-11 14:43:14 +0300278
OlgaGusarenko9dd01c92018-07-31 00:49:30 +0300279.. note:: Barbican, Cinder, and placement url endpoints are discovering
280 using service catalog.
Kirill Bespalov64617172017-07-11 14:43:14 +0300281
Filip Pytloun4a72d792015-10-06 16:28:32 +0200282Compute nodes
283-------------
284
OlgaGusarenko9dd01c92018-07-31 00:49:30 +0300285Nova controller services on compute node:
Filip Pytloun4a72d792015-10-06 16:28:32 +0200286
287.. code-block:: yaml
288
289 nova:
290 compute:
291 version: juno
292 enabled: true
Mykyta Karpin5ef9f982019-02-07 18:40:00 +0200293 timeout_nbd: 10
294 heal_instance_info_cache_interval: 60
Dmitry Stremkovskiy2bcba8d2017-07-30 21:43:59 +0300295 cross_az_attach: false
Dmitry Stremkovskiy35e53b72017-07-29 12:50:39 +0300296 disk_cachemodes: network=writeback,block=none
Jiri Broulik70d9e3f2017-02-15 18:37:13 +0100297 availability_zone: availability_zone_01
Damian Szelugae1922412017-04-18 16:36:46 +0200298 aggregates:
299 - hosts_with_fc
300 - hosts_with_ssd
Filip Pytloun4a72d792015-10-06 16:28:32 +0200301 security_group: true
Petr Michalecf03e4882017-04-10 10:26:18 +0200302 resume_guests_state_on_host_boot: False
Michael Polenchuk159c2542018-06-09 15:31:51 +0400303 preallocate_images: space # Default is 'none'
Dmitry Stremkovskiy8a0ff512017-07-25 20:54:13 +0300304 my_ip: 10.1.0.16
Vasyl Saienko09b6ac32019-01-17 15:23:58 +0200305 vif_plugging_timeout: 300
306 vif_plugging_is_fatal: false
Filip Pytloun4a72d792015-10-06 16:28:32 +0200307 bind:
308 vnc_address: 172.20.0.100
309 vnc_port: 6080
310 vnc_name: openstack.domain.com
311 vnc_protocol: http
312 database:
313 engine: mysql
314 host: 127.0.0.1
315 port: 3306
316 name: nova
317 user: nova
318 password: pwd
319 identity:
320 engine: keystone
321 host: 127.0.0.1
322 port: 35357
323 user: nova
324 password: pwd
325 tenant: service
326 message_queue:
327 engine: rabbitmq
328 host: 127.0.0.1
329 port: 5672
330 user: openstack
331 password: pwd
332 virtual_host: '/openstack'
333 image:
334 engine: glance
335 host: 127.0.0.1
336 port: 9292
Oleh Hryhorovf5093b82018-10-17 11:16:08 +0000337 pci:
338 alias:
339 alias1:
340 device_type: "type-PF"
341 name: "a1"
342 product_id: "154d"
343 vendor_id: "8086"
Oleksandr Pidrepnyi14f08272019-02-20 12:48:17 +0200344 passthrough_whitelist:
345 - vendor_id: "10de"
346 product_id: "1db4"
Filip Pytloun4a72d792015-10-06 16:28:32 +0200347 network:
348 engine: neutron
349 host: 127.0.0.1
350 port: 9696
351 identity:
352 engine: keystone
353 host: 127.0.0.1
354 port: 35357
355 user: neutron
356 password: pwd
357 tenant: service
358 qemu:
359 max_files: 4096
360 max_processes: 4096
Dmitry Stremkovskiy96281f52017-07-26 00:39:22 +0300361 host: node-12.domain.tld
Filip Pytloun4a72d792015-10-06 16:28:32 +0200362
Vasyl Saienkocab3a902018-07-12 13:17:17 +0300363Compute with vmware driver. Each vmware cluster requires a separate process of nova-compute.
364Each process should have uniq host identifier. However multiple computes might be running on
365single host. It is not recommended to have multiple computes running on different hosts that
366manage the same vmware cluster. To achive this pacemaker/corosync or keepalived might be used.
367
368.. code-block:: yaml
369
370 nova:
371 compute:
372 compute_driver: vmwareapi.VMwareVCDriver
373 vmware:
374 host_username: vmware
375 host_password: vmware
376 cluster_name: vmware_cluster01
377 host_ip: 1.2.3.4
378
OlgaGusarenko9dd01c92018-07-31 00:49:30 +0300379Group and user to be used for QEMU processes run by the system instance:
kkalynovskyif50f0c02017-12-12 17:52:57 +0200380
381.. code-block:: yaml
382
383 nova:
384 compute:
385 enabled: true
386 ...
387 qemu:
388 user: nova
389 group: cinder
390 dynamic_ownership: 1
391
OlgaGusarenko9dd01c92018-07-31 00:49:30 +0300392Group membership for user nova (upgrade related):
Dmitry Stremkovskiy3cd6ba82017-07-25 17:15:36 +0300393
394.. code-block:: yaml
395
396 nova:
397 compute:
398 enabled: true
399 ...
400 user:
401 groups:
402 - libvirt
Filip Pytloun4a72d792015-10-06 16:28:32 +0200403
OlgaGusarenko9dd01c92018-07-31 00:49:30 +0300404Nova services on compute node with OpenContrail:
Filip Pytloun4a72d792015-10-06 16:28:32 +0200405
406.. code-block:: yaml
407
408 nova:
409 compute:
410 enabled: true
411 ...
412 networking: contrail
413
Oleksandr Bryndziibb8abfe2018-09-28 22:21:43 +0000414Nova services on compute node with memcached caching and security strategy:
Filip Pytloun4a72d792015-10-06 16:28:32 +0200415
416.. code-block:: yaml
417
418 nova:
419 compute:
420 enabled: true
421 ...
422 cache:
423 engine: memcached
424 members:
425 - host: 127.0.0.1
426 port: 11211
427 - host: 127.0.0.1
428 port: 11211
Oleksandr Bryndziibb8abfe2018-09-28 22:21:43 +0000429 security:
430 enabled: true
431 strategy: ENCRYPT
432 secret_key: secret
Filip Pytloun4a72d792015-10-06 16:28:32 +0200433
OlgaGusarenko9dd01c92018-07-31 00:49:30 +0300434Client-side RabbitMQ HA setup:
Jiri Konecnye31f2c52016-04-14 17:16:02 +0200435
436.. code-block:: yaml
437
438 nova:
Kirill Bespalov64617172017-07-11 14:43:14 +0300439 compute:
Jiri Konecnye31f2c52016-04-14 17:16:02 +0200440 ....
441 message_queue:
442 engine: rabbitmq
443 members:
444 - host: 10.0.16.1
445 - host: 10.0.16.2
446 - host: 10.0.16.3
447 user: openstack
448 password: pwd
449 virtual_host: '/openstack'
450 ....
451
OlgaGusarenko9dd01c92018-07-31 00:49:30 +0300452Nova with ephemeral configured with Ceph:
maxstack39e6aca2016-05-04 13:50:13 +0000453
454.. code-block:: yaml
455
456 nova:
457 compute:
458 enabled: true
459 ...
460 ceph:
461 ephemeral: yes
462 rbd_pool: nova
463 rbd_user: nova
464 secret_uuid: 03006edd-d957-40a3-ac4c-26cd254b3731
Kalynovskyi0bc79692017-07-21 16:22:09 +0300465 ....
maxstack39e6aca2016-05-04 13:50:13 +0000466
OlgaGusarenko9dd01c92018-07-31 00:49:30 +0300467Nova with ephemeral configured with LVM:
Kalynovskyi0bc79692017-07-21 16:22:09 +0300468
469.. code-block:: yaml
470
471 nova:
472 compute:
473 enabled: true
474 ...
475 lvm:
476 ephemeral: yes
477 images_volume_group: nova_vg
478
479 linux:
480 storage:
481 lvm:
482 nova_vg:
483 name: nova_vg
484 devices:
485 - /dev/sdf
486 - /dev/sdd
487 - /dev/sdg
488 - /dev/sde
489 - /dev/sdc
490 - /dev/sdj
491 - /dev/sdh
maxstack39e6aca2016-05-04 13:50:13 +0000492
OlgaGusarenko9dd01c92018-07-31 00:49:30 +0300493Enable Barbican integration:
Oleg Iurchenko370c10d2017-10-19 14:03:37 +0300494
495.. code-block:: yaml
496
497 nova:
498 compute:
499 ....
500 barbican:
501 enabled: true
502
Oleksandr Pidrepnyi14f08272019-02-20 12:48:17 +0200503Define aliases for a PCI passthrough devices:
Oleh Hryhorovf5093b82018-10-17 11:16:08 +0000504.. code-block:: yaml
505
506 nova:
507 compute:
508 ...
509 pci:
510 alias:
511 alias1:
512 device_type: "type-PF"
513 name: "a1"
514 product_id: "154d"
515 vendor_id: "8086"
516
Oleksandr Pidrepnyi14f08272019-02-20 12:48:17 +0200517Define white list of PCI devices available to VMs:
518.. code-block:: yaml
519
520 nova:
521 compute:
522 ...
523 pci:
524 passthrough_whitelist:
525 - vendor_id: "10de"
526 product_id: "1db4"
527
OlgaGusarenko9dd01c92018-07-31 00:49:30 +0300528Nova metadata custom bindings:
Vasyl Saienko2d591282018-02-05 14:19:02 +0200529
530.. code-block:: yaml
531
532 nova:
533 controller:
534 enabled: true
535 ...
536 metadata:
537 bind:
538 address: 1.2.3.4
539 port: 8776
540
Oleh Hryhorov08482aa2018-11-19 14:07:47 +0200541Define multipath for nova compute:
542
543.. code-block:: yaml
544
545 nova:
546 compute:
547 ....
548 libvirt:
549 volume_use_multipath: True
550
Oleh Hryhorovce1f2142019-03-06 17:00:00 +0000551To disable or enable StrictHostKeyChecking and discover
552compute nodes fingerprints the below pillar should be used:
553
554.. code-block:: yaml
555
556 nova:
557 compute:
558 ....
559 openssh:
560 stricthostkeychecking: True
561 discover_compute_hosts: True
562
Jiri Broulik0ce9fc92017-02-01 23:10:40 +0100563Client role
564-----------
565
OlgaGusarenko9dd01c92018-07-31 00:49:30 +0300566Nova configured with NFS:
Dmitry Stremkovskiy665c7282017-07-05 17:36:27 +0300567
568.. code-block:: yaml
569
570 nova:
571 compute:
572 instances_path: /mnt/nova/instances
573
574 linux:
575 storage:
576 enabled: true
577 mount:
578 nfs_nova:
579 enabled: true
580 path: ${nova:compute:instances_path}
581 device: 172.31.35.145:/data
582 file_system: nfs
583 opts: rw,vers=3
584
OlgaGusarenko9dd01c92018-07-31 00:49:30 +0300585Nova flavors:
Jiri Broulik0ce9fc92017-02-01 23:10:40 +0100586
587.. code-block:: yaml
588
589 nova:
590 client:
591 enabled: true
592 server:
593 identity:
594 flavor:
Jiri Broulik70d9e3f2017-02-15 18:37:13 +0100595 flavor1:
Jiri Broulik0ce9fc92017-02-01 23:10:40 +0100596 flavor_id: 10
597 ram: 4096
598 disk: 10
599 vcpus: 1
Jiri Broulik70d9e3f2017-02-15 18:37:13 +0100600 flavor2:
601 flavor_id: auto
602 ram: 4096
603 disk: 20
604 vcpus: 2
Jiri Broulik0ce9fc92017-02-01 23:10:40 +0100605 identity1:
606 flavor:
607 ...
608
OlgaGusarenko9dd01c92018-07-31 00:49:30 +0300609Availability zones:
Jiri Broulik70d9e3f2017-02-15 18:37:13 +0100610
611.. code-block:: yaml
612
613 nova:
614 client:
615 enabled: true
616 server:
617 identity:
618 availability_zones:
619 - availability_zone_01
620 - availability_zone_02
621
OlgaGusarenko9dd01c92018-07-31 00:49:30 +0300622Aggregates:
Damian Szeluga5dca0f02017-04-13 17:27:15 +0200623
624.. code-block:: yaml
625
626 nova:
627 client:
628 enabled: true
629 server:
630 identity:
631 aggregates:
632 - aggregate1
633 - aggregate2
634
OlgaGusarenko9dd01c92018-07-31 00:49:30 +0300635Upgrade levels:
Dmitry Stremkovskiy91f45852017-07-18 16:22:31 +0300636
637.. code-block:: yaml
638
639 nova:
640 controller:
641 upgrade_levels:
642 compute: juno
643
644 nova:
645 compute:
646 upgrade_levels:
647 compute: juno
648
Petr Jedinýd855ef22017-03-06 22:24:33 +0100649SR-IOV
Jakub Pavlik39a05942017-02-13 23:03:08 +0100650------
651
OlgaGusarenko9dd01c92018-07-31 00:49:30 +0300652Add ``PciPassthroughFilter`` into scheduler filters and NICs on
653specific compute nodes:
Jakub Pavlik39a05942017-02-13 23:03:08 +0100654
655.. code-block:: yaml
656
657 nova:
658 controller:
659 sriov: true
sandriichenko4fe321d2018-01-22 17:34:06 +0000660 scheduler_default_filters: "DifferentHostFilter,SameHostFilter,RetryFilter,AvailabilityZoneFilter,RamFilter,CoreFilter,DiskFilter,ComputeFilter,ComputeCapabilitiesFilter,ImagePropertiesFilter,ServerGroupAntiAffinityFilter,ServerGroupAffinityFilter,PciPassthroughFilter"
Jakub Pavlik39a05942017-02-13 23:03:08 +0100661
662 nova:
663 compute:
664 sriov:
665 nic_one:
666 devname: eth1
667 physical_network: physnet1
668
Oleh Hryhorovf5093b82018-10-17 11:16:08 +0000669.. note:: Parameters located under nova:compute:sriov:<nic_name> are copied to passthrough_whitelist parameter into
670 nova.conf file in appropriate format.
671
Jakub Pavlik26fb85c2017-02-16 22:29:22 +0100672CPU pinning & Hugepages
673-----------------------
674
OlgaGusarenko9dd01c92018-07-31 00:49:30 +0300675CPU pinning of virtual machine instances to dedicated physical
676CPU cores. Hugepages mount point for libvirt.
Jakub Pavlik26fb85c2017-02-16 22:29:22 +0100677
678.. code-block:: yaml
679
680 nova:
681 controller:
sandriichenko4fe321d2018-01-22 17:34:06 +0000682 scheduler_default_filters: "DifferentHostFilter,SameHostFilter,RetryFilter,AvailabilityZoneFilter,RamFilter,CoreFilter,DiskFilter,ComputeFilter,ComputeCapabilitiesFilter,ImagePropertiesFilter,ServerGroupAntiAffinityFilter,ServerGroupAffinityFilter,NUMATopologyFilter,AggregateInstanceExtraSpecsFilter"
Jakub Pavlik26fb85c2017-02-16 22:29:22 +0100683
684 nova:
685 compute:
686 vcpu_pin_set: 2,3,4,5
687 hugepages:
688 mount_points:
689 - path: /mnt/hugepages_1GB
690 - path: /mnt/hugepages_2MB
Jiri Broulik0ce9fc92017-02-01 23:10:40 +0100691
Michel Nederlof171c7ac2017-04-13 12:54:14 +0200692Custom Scheduler filters
693------------------------
694
OlgaGusarenko9dd01c92018-07-31 00:49:30 +0300695If you have a custom filter, that needs to be included in the
696scheduler, then you can include it like so:
Michel Nederlof171c7ac2017-04-13 12:54:14 +0200697
698.. code-block:: yaml
699
700 nova:
701 controller:
702 scheduler_custom_filters:
703 - my_custom_driver.nova.scheduler.filters.my_custom_filter.MyCustomFilter
704
705 # 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 +0000706 scheduler_default_filters: "DifferentHostFilter,SameHostFilter,RetryFilter,AvailabilityZoneFilter,RamFilter,CoreFilter,DiskFilter,ComputeFilter,ComputeCapabilitiesFilter,ImagePropertiesFilter,ServerGroupAntiAffinityFilter,ServerGroupAffinityFilter,PciPassthroughFilter,MyCustomFilter"
Michel Nederlof171c7ac2017-04-13 12:54:14 +0200707
Michael Polenchuk2bce2cb2018-09-17 16:05:43 +0400708 # Since Queens version a sequence could be used as well:
709 ~scheduler_default_filters:
710 - DifferentHostFilter
711 - SameHostFilter
712 ...
713 - MyCustomFilter
714
715
Michel Nederlofeb566f62017-04-21 15:37:47 +0200716Hardware Trip/Unmap Support
717---------------------------
718
OlgaGusarenko9dd01c92018-07-31 00:49:30 +0300719To enable TRIM support for ephemeral images (thru nova managed
720images), libvirt has this option:
Michel Nederlofeb566f62017-04-21 15:37:47 +0200721
722.. code-block:: yaml
723
724 nova:
725 compute:
726 libvirt:
727 hw_disk_discard: unmap
728
OlgaGusarenko9dd01c92018-07-31 00:49:30 +0300729To actually utilize this feature, the following metadata must be
730set on the image as well, so the SCSI unmap is supported:
Michel Nederlofeb566f62017-04-21 15:37:47 +0200731
732.. code-block:: bash
733
734 glance image-update --property hw_scsi_model=virtio-scsi <image>
735 glance image-update --property hw_disk_bus=scsi <image>
Filip Pytloun5bc9e9f2017-02-02 13:05:40 +0100736
Thom Gerdesf582f1e2017-05-02 18:05:50 +0000737Scheduler Host Manager
738----------------------
739
740Specify a custom host manager.
741
Thom Gerdesec00afd2017-04-07 18:06:59 +0000742libvirt CPU mode
743----------------
744
OlgaGusarenko9dd01c92018-07-31 00:49:30 +0300745Allow setting the model of CPU that is exposed to a VM. This
746allows for better support live migration between hypervisors with
747different hardware, among other things. Defaults to host-passthrough.
Jakub Pavlik7046b9c2017-09-19 12:04:19 +0200748
Thom Gerdesf582f1e2017-05-02 18:05:50 +0000749.. code-block:: yaml
750
751 nova:
752 controller:
753 scheduler_host_manager: ironic_host_manager
754
Thom Gerdesec00afd2017-04-07 18:06:59 +0000755 compute:
756 cpu_mode: host-model
757
Dzmitry Stremkouski7da9bf12018-04-25 22:30:37 +0200758Nova compute cpu model
759----------------------
760
761.. code-block:: yaml
762
763 nova:
764 compute:
765 cpu_mode: custom
766 libvirt:
767 cpu_model: IvyBridge
768
Oleksandr Pidrepnyid9020082019-03-04 19:18:19 +0200769RNG (Random Number Generator) device path
770----------------------
771
772The path to an RNG (Random Number Generator) device that will be used
773as the source of entropy on the host.
774The recommended source of entropy is /dev/urandom.
775Permitted options are: /dev/random, /dev/urandom or /dev/hwrng.
776Default: /dev/urandom
777
778.. code-block:: yaml
779
780 nova:
781 controller:
782 libvirt:
783 rng_dev_path: /dev/random
784
785 compute:
786 libvirt:
787 rng_dev_path: /dev/random
788
Dzmitry Stremkouski7da9bf12018-04-25 22:30:37 +0200789
Michel Nederloff7eefb22017-07-10 11:14:33 +0200790Nova compute workarounds
791------------------------
792
OlgaGusarenko9dd01c92018-07-31 00:49:30 +0300793Live snapshotting is disabled by default in nova. To enable
794this, it needs a manual switch.
Michel Nederloff7eefb22017-07-10 11:14:33 +0200795
796From manual:
797
798.. code-block:: yaml
799
OlgaGusarenko9dd01c92018-07-31 00:49:30 +0300800 When using libvirt 1.2.2 live snapshots fail intermittently under load
801 (likely related to concurrent libvirt/qemu operations). This config
802 option provides a mechanism to disable live snapshot, in favor of cold
803 snapshot, while this is resolved. Cold snapshot causes an instance
804 outage while the guest is going through the snapshotting process.
805
806 For more information, refer to the bug report:
807
808 https://bugs.launchpad.net/nova/+bug/1334398
Michel Nederloff7eefb22017-07-10 11:14:33 +0200809
810Configurable pillar data:
811
812.. code-block:: yaml
813
814 nova:
815 compute:
Michel Nederlofe322ebb2017-07-10 12:29:21 +0200816 workaround:
Michel Nederloff7eefb22017-07-10 11:14:33 +0200817 disable_libvirt_livesnapshot: False
818
Michel Nederlofb51a5142017-06-27 08:31:35 +0200819Config drive options
820--------------------
821
OlgaGusarenko9dd01c92018-07-31 00:49:30 +0300822See example below on how to configure the options for the
823config drive:
Michel Nederlofb51a5142017-06-27 08:31:35 +0200824
825.. code-block:: yaml
826
827 nova:
828 compute:
829 config_drive:
830 forced: True # Default: True
831 cdrom: True # Default: False
832 format: iso9660 # Default: vfat
833 inject_password: False # Default: False
834
Michel Nederloff81919b2017-11-20 09:37:07 +0100835Number of concurrent live migrates
836----------------------------------
837
OlgaGusarenko9dd01c92018-07-31 00:49:30 +0300838Default is to have no concurrent live migrations (so 1
839live-migration at a time).
Michel Nederloff81919b2017-11-20 09:37:07 +0100840
OlgaGusarenko9dd01c92018-07-31 00:49:30 +0300841Excerpt from config options page
842https://docs.openstack.org/ocata/config-reference/compute/config-options.html:
Michel Nederloff81919b2017-11-20 09:37:07 +0100843
OlgaGusarenko9dd01c92018-07-31 00:49:30 +0300844Maximum number of live migrations to run concurrently. This limit is
845enforced to avoid outbound live migrations overwhelming the host/network
846and causing failures. It is not recommended that you change this unless
847you are very sure that doing so is safe and stable in your environment.
Michel Nederloff81919b2017-11-20 09:37:07 +0100848
OlgaGusarenko9dd01c92018-07-31 00:49:30 +0300849Possible values:
Michel Nederloff81919b2017-11-20 09:37:07 +0100850
OlgaGusarenko9dd01c92018-07-31 00:49:30 +0300851- 0 : treated as unlimited.
852- Negative value defaults to 0.
853- Any positive integer representing maximum number of live migrations
854 to run concurrently.
Michel Nederloff81919b2017-11-20 09:37:07 +0100855
856To configure this option:
857
858.. code-block:: yaml
859
860 nova:
861 compute:
862 max_concurrent_live_migrations: 1 # (1 is the default)
863
Sergio Lystopad9d31cba2018-05-15 11:29:11 +0300864Live migration with auto converge
865----------------------------------
866
OlgaGusarenko9dd01c92018-07-31 00:49:30 +0300867Auto converge throttles down CPU if a progress of on-going live
868migration is slow
869https://docs.openstack.org/ocata/config-reference/compute/config-options.html:
Sergio Lystopad9d31cba2018-05-15 11:29:11 +0300870
871.. code-block:: yaml
872
873 nova:
874 compute:
875 libvirt:
876 live_migration_permit_auto_converge: False # (False is the default)
877
878.. code-block:: yaml
879
880 nova:
881 controller:
882 libvirt:
883 live_migration_permit_auto_converge: False # (False is the default)
884
Dmitry Kalashnike58fe082017-12-01 16:31:14 +0400885Enhanced logging with logging.conf
886----------------------------------
887
OlgaGusarenko9dd01c92018-07-31 00:49:30 +0300888By default ``logging.conf`` is disabled.
Dmitry Kalashnike58fe082017-12-01 16:31:14 +0400889
890That is possible to enable per-binary logging.conf with new variables:
Dmitry Kalashnike58fe082017-12-01 16:31:14 +0400891
OlgaGusarenko9dd01c92018-07-31 00:49:30 +0300892* ``openstack_log_appender``
893 Set to true to enable log_config_append for all OpenStack services
894
895* ``openstack_fluentd_handler_enabled``
896 Set to true to enable FluentHandler for all Openstack services
897
898* ``openstack_ossyslog_handler_enabled``
899 Set to true to enable OSSysLogHandler for all Openstack services
900
901Only ``WatchedFileHandler``, ``OSSysLogHandler``, and ``FluentHandler``
902are available.
Dmitry Kalashnike58fe082017-12-01 16:31:14 +0400903
Dmitry Kalashnik8da249c2018-01-16 17:58:00 +0400904Also it is possible to configure this with pillar:
Dmitry Kalashnike58fe082017-12-01 16:31:14 +0400905
906.. code-block:: yaml
907
908 nova:
909 controller:
910 logging:
911 log_appender: true
912 log_handlers:
913 watchedfile:
914 enabled: true
915 fluentd:
916 enabled: true
Oleksii Chupryn99e35032018-02-06 01:59:40 +0200917 ossyslog:
918 enabled: true
Dmitry Kalashnike58fe082017-12-01 16:31:14 +0400919
920 compute:
921 logging:
922 log_appender: true
923 log_handlers:
924 watchedfile:
925 enabled: true
926 fluentd:
927 enabled: true
Oleksii Chupryn99e35032018-02-06 01:59:40 +0200928 ossyslog:
929 enabled: true
Thom Gerdesf582f1e2017-05-02 18:05:50 +0000930
Vasyl Saienko7243a952018-05-11 21:26:54 +0300931The log level might be configured per logger by using the
932following pillar structure:
933
934.. code-block:: yaml
935
936 nova:
937 compute:
938 logging:
939 loggers:
940 <logger_name>:
941 level: WARNING
942
943 nova:
944 compute:
945 logging:
946 loggers:
947 <logger_name>:
948 level: WARNING
949
Oleh Hryhorove38525d2018-05-15 08:58:59 +0000950Configure syslog parameters for libvirtd
951----------------------------------------
952
OlgaGusarenko9dd01c92018-07-31 00:49:30 +0300953To configure syslog parameters for libvirtd the below pillar
954structure should be used with values which are supported
Oleh Hryhorove38525d2018-05-15 08:58:59 +0000955by libvirtd. These values might be known from the documentation.
956
OlgaGusarenko9dd01c92018-07-31 00:49:30 +0300957.. code-block:: yaml
958
Oleh Hryhorove38525d2018-05-15 08:58:59 +0000959 nova:
960 compute:
961 libvirt:
962 logging:
963 level: 3
964 filters: '3:remote 4:event'
965 outputs: '3:syslog:libvirtd'
966 buffer_size: 64
967
OlgaGusarenko9dd01c92018-07-31 00:49:30 +0300968Logging controls:
Oleh Hryhorove38525d2018-05-15 08:58:59 +0000969
OlgaGusarenko9dd01c92018-07-31 00:49:30 +0300970Logging level: 4 errors, 3 warnings, 2 information, 1 debug
971basically 1 will log everything possible ``log_level = 3``
Oleh Hryhorove38525d2018-05-15 08:58:59 +0000972
OlgaGusarenko9dd01c92018-07-31 00:49:30 +0300973Logging filters:
Oleh Hryhorove38525d2018-05-15 08:58:59 +0000974
OlgaGusarenko9dd01c92018-07-31 00:49:30 +0300975A filter allows to select a different logging level for a given category
976of logs.
Oleh Hryhorove38525d2018-05-15 08:58:59 +0000977
OlgaGusarenko9dd01c92018-07-31 00:49:30 +0300978The format for a filter is one of:
Oleh Hryhorove38525d2018-05-15 08:58:59 +0000979
OlgaGusarenko9dd01c92018-07-31 00:49:30 +0300980* ``x:name``
981* ``x:+name``
982 where name is a string which is matched against source file name,
983 e.g., ``remote``, ``qemu``, or ``util/json``, the optional ``+`` prefix
984 tells libvirt to log stack trace for each message matching name,
985 and x is the minimal level where matching messages should be logged:
Oleh Hryhorove38525d2018-05-15 08:58:59 +0000986
OlgaGusarenko9dd01c92018-07-31 00:49:30 +0300987* ``1: DEBUG``
988* ``2: INFO``
989* ``3: WARNING``
990* ``4: ERROR``
991
992Multiple filter can be defined in a single @filters, they just
993need to be separated by spaces.
994
995For example, to only get warning or errors from the remote layer
996and only errors from the event layer: ``log_filters="3:remote 4:event``
997
998Logging outputs:
999
1000An output is one of the places to save logging information
1001The format for an output can be:
1002
1003* ``x:stderr``
1004 Output goes to stderr
1005
1006* ``x:syslog:name``
1007 Use syslog for the output and use the given name as the ident
1008
1009* ``x:file:file_path``
1010 output to a file, with the given filepath
1011
1012 In all case the x prefix is the minimal level, acting as a filter
1013
1014* ``1: DEBUG``
1015* ``2: INFO``
1016* ``3: WARNING``
1017* ``4: ERROR``
1018
1019Multiple output can be defined, they just need to be separated by spaces.
1020For example, to log all warnings and errors to syslog under the libvirt
1021dident: ``log_outputs="3:syslog:libvirtd``
1022
1023Log debug buffer size: default 64
1024The daemon keeps an internal debug log buffer which will be dumped
1025in case of crash or upon receiving a ``SIGUSR2`` signal. This setting
1026allows to override the default buffer size in kilobytes.
1027If value is ``0`` or less the debug log buffer is deactivated
1028``log_buffer_size = 64``
1029
1030To configure the logging parameters for QEMU, the below pillar
1031structure and logging parameters should be used:
1032
1033.. code-block:: yaml
1034
1035 nova:
1036 compute:
1037 qemu:
1038 logging:
1039 handler: logd
1040 virtlog:
1041 enabled: true
1042 level: 4
1043 filters: '3:remote 3:event'
1044 outputs: '4:syslog:virtlogd'
1045 max_clients: 512
1046 max_size: 2097100
1047 max_backups: 2
Oleh Hryhorove38525d2018-05-15 08:58:59 +00001048
Oleksandr Shyshko981b4fa2018-05-02 15:39:30 +03001049Inject password to VM
1050---------------------
1051
OlgaGusarenko9dd01c92018-07-31 00:49:30 +03001052By default nova blocks up any inject to VM because
1053``inject_partition`` param is equal to ``-2``.
1054If you want to inject password to VM, you will need to
1055define ``inject_partition`` greater or equal to ``-1`` and
1056define ``inject_password`` to ``True``
Oleksandr Shyshko981b4fa2018-05-02 15:39:30 +03001057
1058For example:
1059
OlgaGusarenko9dd01c92018-07-31 00:49:30 +03001060.. code-block:: yaml
1061
Oleksandr Shyshko981b4fa2018-05-02 15:39:30 +03001062 nova:
1063 compute:
1064 inject_partition: '-1'
1065 inject_password: True
1066
OlgaGusarenko9dd01c92018-07-31 00:49:30 +03001067Allow the injection of an admin password for instance only at
1068``create`` and ``rebuild`` process.
1069
1070There is no agent needed within the image to do this. If *libguestfs* is
1071available on the host, it will be used. Otherwise *nbd* is used. The file
1072system of the image will be mounted and the admin password, which is provided
1073in the REST API call will be injected as password for the root user. If no
1074root user is available, the instance won't be launched and an error is thrown.
1075Be aware that the injection is *not* possible when the instance gets launched
1076from a volume.
1077
1078Possible values:
1079
1080* ``True``
1081 Allows the injection
1082
1083* ``False`` (default)
1084 Disallows the injection. Any via the REST API provided
1085 admin password will be silently ignored.
1086
1087Related options:
1088
1089* ``inject_partition``
1090 Decides about the discovery and usage of the file system.
1091 It also can disable the injection at all.
1092 (boolean value)
Oleksandr Shyshko981b4fa2018-05-02 15:39:30 +03001093
1094You can read more about injecting the administrator password here:
OlgaGusarenko9dd01c92018-07-31 00:49:30 +03001095https://docs.openstack.org/nova/queens/admin/admin-password-injection.html
Oleksandr Shyshko981b4fa2018-05-02 15:39:30 +03001096
Oleksandr Shyshko1c020d12018-05-24 12:47:08 +03001097Enable libvirt control channel over TLS
OlgaGusarenko9dd01c92018-07-31 00:49:30 +03001098---------------------------------------
Oleksandr Shyshko1c020d12018-05-24 12:47:08 +03001099
1100By default TLS is disabled.
1101
OlgaGusarenko9dd01c92018-07-31 00:49:30 +03001102Enable TLS transport:
1103
1104.. code-block:: yaml
Oleksandr Shyshko1c020d12018-05-24 12:47:08 +03001105
1106 compute:
1107 libvirt:
1108 tls:
1109 enabled: True
1110
1111You able to set custom certificates in pillar:
1112
OlgaGusarenko9dd01c92018-07-31 00:49:30 +03001113.. code-block:: yaml
1114
Oleksandr Shyshko1c020d12018-05-24 12:47:08 +03001115 nova:
1116 compute:
1117 libvirt:
1118 tls:
1119 key: (certificate content)
1120 cert: (certificate content)
1121 cacert: (certificate content)
1122 client:
1123 key: (certificate content)
1124 cert: (certificate content)
1125
Dmitry Teselkin77d9dac2019-04-18 16:43:50 +03001126It is possible to limit allowed SSL / TLS ciphers using libvirt's tls_priority:
1127
1128.. code-block:: yaml
1129
1130 nova:
1131 compute:
1132 libvirt:
1133 tls:
1134 priority: <TLS priority string>
1135
1136Example priority strings are:
1137
1138- The system imposed security level:
1139
1140.. code-block:: text
1141
1142 "SYSTEM"
1143
1144- The default priority without the HMAC-MD5:
1145
1146.. code-block:: text
1147
1148 "NORMAL:-MD5"
1149
1150- Specifying RSA with AES-128-CBC:
1151
1152.. code-block:: text
1153
1154 "NONE:+VERS-TLS-ALL:+MAC-ALL:+RSA:+AES-128-CBC:+SIGN-ALL:+COMP-NULL"
1155
1156- Specifying the defaults plus ARCFOUR-128:
1157
1158.. code-block:: text
1159
1160 "NORMAL:+ARCFOUR-128"
1161
1162- Enabling the 128-bit secure ciphers, while disabling TLS 1.0:
1163
1164.. code-block:: text
1165
1166 "SECURE128:-VERS-TLS1.0"
1167
1168- Enabling the 128-bit and 192-bit secure ciphers, while disabling all TLS
1169 versions except TLS 1.2:
1170
1171.. code-block:: text
1172
1173 "SECURE128:+SECURE192:-VERS-ALL:+VERS-TLS1.2"
1174
1175More on TLS Priority Strings:
1176
1177- https://gnutls.org/manual/html_node/Priority-Strings.html
1178
Vasyl Saienko11ac9732018-10-02 17:04:33 +00001179Controlling access by `tls_allowed_dn_list`.
1180Enable an access control list of client certificate Distinguished Names (DNs)
1181which can connect to the TLS port on this server. The default is that DNs are
1182not checked. This list may contain wildcards such as
1183"C=GB,ST=London,L=London,O=Libvirt Project,CN=*" See the POSIX fnmatch function
1184for the format of the wildcards.
1185Note that if this is an empty list, no client can connect.
1186Note also that GnuTLS returns DNs without spaces after commas between
1187the fields (and this is what we check against), but the openssl x509 tool
1188shows spaces.
1189
1190.. code-block:: yaml
1191
1192 nova:
1193 compute:
1194 libvirt:
1195 tls:
1196 tls_allowed_dn_list:
1197 host1:
1198 enabled: true
1199 value: 'C=foo,CN=cmp1'
1200 host2:
1201 enabled: true
1202 value: 'C=foo,CN=cmp2'
1203
1204
Oleksandr Shyshko1c020d12018-05-24 12:47:08 +03001205You can read more about live migration over TLS here:
OlgaGusarenko9dd01c92018-07-31 00:49:30 +03001206https://wiki.libvirt.org/page/TLSCreateServerCerts
Oleksandr Shyshko981b4fa2018-05-02 15:39:30 +03001207
Oleksandr Shyshko1195fca2018-07-09 18:22:59 +03001208Enable transport + authentication for VNC over TLS
1209---------------------
Oleksandr Shyshkod8337cf2018-07-11 17:55:58 +03001210# Only for Queens. Communication between noVNC proxy service and QEMU
Oleksandr Shyshko1195fca2018-07-09 18:22:59 +03001211
1212By default communication between nova-novncproxy and qemu service is unsecure.
1213
1214compute:
1215 qemu:
1216 vnc:
1217 tls:
1218 enabled: True
1219
1220controller:
1221 novncproxy:
Oleksandr Shyshkod8337cf2018-07-11 17:55:58 +03001222 # This section responsible for communication between noVNC proxy and client machine
Oleksandr Shyshko1195fca2018-07-09 18:22:59 +03001223 tls:
1224 enabled: True
Oleksandr Shyshkod8337cf2018-07-11 17:55:58 +03001225 # This section responsible for communication between nova-novncproxy and qemu service
1226 vencrypt:
1227 tls:
1228 enabled: True
Oleksandr Shyshko1195fca2018-07-09 18:22:59 +03001229
1230You able to set custom certificates in pillar:
1231
Oleksandr Shyshkod8337cf2018-07-11 17:55:58 +03001232nova:
1233 compute:
1234 qemu:
1235 vnc:
1236 tls:
1237 cacert (certificate content)
1238 cert (certificate content)
1239 key (certificate content)
1240
1241nova:
1242 controller:
1243 novncproxy:
1244 tls:
1245 server:
1246 cert (certificate content)
1247 key (certificate content)
1248 vencrypt:
1249 tls:
1250 cacert (certificate content)
1251 cert (certificate content)
1252 key (certificate content)
1253
1254
1255You can read more about it here:
1256 https://docs.openstack.org/nova/queens/admin/remote-console-access.html
1257
1258Enable communication between noVNC proxy and client machine over TLS
1259---------------------
1260
1261By default communication between noVNC proxy and client machine is unsecure.
1262
1263 controller:
1264 novncproxy:
1265 tls:
1266 enabled: True
Oleksandr Shyshko1195fca2018-07-09 18:22:59 +03001267
1268 nova:
1269 controller:
1270 novncproxy:
1271 tls:
Oleksandr Shyshkod8337cf2018-07-11 17:55:58 +03001272 server:
1273 cert (certificate content)
1274 key (certificate content)
Oleksandr Shyshko1195fca2018-07-09 18:22:59 +03001275
1276You can read more about it here:
Oleksandr Shyshkod8337cf2018-07-11 17:55:58 +03001277 https://docs.openstack.org/mitaka/config-reference/dashboard/configure.html
Oleksandr Shyshko1195fca2018-07-09 18:22:59 +03001278
Oleksandr Shyshko55eeac72018-08-03 18:23:28 +03001279Enable x509 and ssl communication between Nova and Galera cluster.
1280---------------------
1281By default communication between Nova and Galera is unsecure.
1282
Oleksandr Shyshkocbe87352018-09-07 13:42:57 +03001283nova:
1284 controller:
1285 database:
1286 x509:
1287 enabled: True
1288
Oleksandr Shyshko55eeac72018-08-03 18:23:28 +03001289You able to set custom certificates in pillar:
Oleksandr Shyshko55eeac72018-08-03 18:23:28 +03001290
1291nova:
1292 controller:
1293 database:
1294 x509:
Oleksandr Shyshkocbe87352018-09-07 13:42:57 +03001295 cacert: (certificate content)
1296 cert: (certificate content)
1297 key: (certificate content)
Oleksandr Shyshko55eeac72018-08-03 18:23:28 +03001298
1299You can read more about it here:
1300 https://docs.openstack.org/security-guide/databases/database-access-control.html
1301
Oleksandr Shyshkod96a0992019-03-29 11:18:25 +00001302Define config option which allows to use nova-api service behind proxy.(Only Mitaka)
1303---------------------
1304The HTTP Header that will be used to determine what the original request protocol
1305scheme was, even if it was hidden by a SSL termination proxy.
1306
1307 nova:
1308 controller:
1309 secure_proxy_ssl_header: HTTP_X_FORWARDED_PROTO
1310
1311You can read more about it here:
1312 https://docs.openstack.org/mitaka/config-reference/compute/config-options.html
1313
obryndziif7957912019-01-31 00:55:56 +00001314Nova database connection setup:
1315========
1316
1317.. code-block:: yaml
1318
1319 nova:
1320 controller:
1321 enabled: True
1322 ...
1323 database:
1324 idle_timeout: 180
1325 min_pool_size: 100
1326 max_pool_size: 700
1327 max_overflow: 100
1328 retry_interval: 5
1329 max_retries: '-1'
1330 db_max_retries: 3
1331 db_retry_interval: 1
1332 connection_debug: 10
1333 pool_timeout: 120
1334
Oleksandr Bryndzii6d821f52019-02-20 15:51:15 +02001335
1336Configure nova to use service user tokens:
1337========
1338Long-running operations such as live migration or snapshot can sometimes overrun the
1339expiry of the user token. In such cases, post operations such as cleaning up after a
1340live migration can fail when the nova-compute service needs to cleanup resources in
1341other services, such as in the block-storage (cinder) or networking (neutron) services.
1342
1343This patch enables nova to use service user tokens to supplement the regular user token
1344used to initiate the operation. The identity service (keystone) will then authenticate
1345a request using the service user token if the user token has already expired.
1346
1347.. code-block:: yaml
1348
1349 nova:
1350 controller:
1351 enabled: True
1352 ...
1353 service_user:
1354 enabled: True
1355 user_domain_id: default
1356 project_domain_id: default
1357 project_name: service
1358 username: nova
1359 password: pswd
1360
Oleksandr Bryndzii6af347b2019-04-23 15:34:42 +03001361Change default resource quotas using configmap template settings
1362========
1363
1364.. code-block:: yaml
1365
1366 nova:
1367 controller:
1368 configmap:
1369 quota:
1370 instances: 10
1371 cores: 20
1372 ram: 51200
1373 metadata_items: 128
1374 injected_files: 5
1375 injected_file_content_bytes: 10240
1376 injected_file_path_length: 255
1377 key_pairs: 100
1378 server_groups: 10
1379 server_group_members: 10
1380 reservation_expire: 86400
1381 until_refresh: 0
1382 max_age: 0
1383
Oleh Hryhorov63ee8452018-08-14 09:16:02 +00001384Upgrades
1385========
1386
1387Each openstack formula provide set of phases (logical bloks) that will help to
1388build flexible upgrade orchestration logic for particular components. The list
1389of phases might and theirs descriptions are listed in table below:
1390
1391+-------------------------------+------------------------------------------------------+
1392| State | Description |
1393+===============================+======================================================+
1394| <app>.upgrade.service_running | Ensure that all services for particular application |
1395| | are enabled for autostart and running |
1396+-------------------------------+------------------------------------------------------+
1397| <app>.upgrade.service_stopped | Ensure that all services for particular application |
1398| | disabled for autostart and dead |
1399+-------------------------------+------------------------------------------------------+
1400| <app>.upgrade.pkgs_latest | Ensure that packages used by particular application |
1401| | are installed to latest available version. |
1402| | This will not upgrade data plane packages like qemu |
1403| | and openvswitch as usually minimal required version |
1404| | in openstack services is really old. The data plane |
1405| | packages should be upgraded separately by `apt-get |
1406| | upgrade` or `apt-get dist-upgrade` |
1407| | Applying this state will not autostart service. |
1408+-------------------------------+------------------------------------------------------+
1409| <app>.upgrade.render_config | Ensure configuration is rendered actual version. +
1410+-------------------------------+------------------------------------------------------+
1411| <app>.upgrade.pre | We assume this state is applied on all nodes in the |
1412| | cloud before running upgrade. |
1413| | Only non destructive actions will be applied during |
1414| | this phase. Perform service built in service check |
1415| | like (keystone-manage doctor and nova-status upgrade)|
1416+-------------------------------+------------------------------------------------------+
1417| <app>.upgrade.upgrade.pre | Mostly applicable for data plane nodes. During this |
1418| | phase resources will be gracefully removed from |
1419| | current node if it is allowed. Services for upgraded |
1420| | application will be set to admin disabled state to |
1421| | make sure node will not participate in resources |
1422| | scheduling. For example on gtw nodes this will set |
1423| | all agents to admin disable state and will move all |
1424| | routers to other agents. |
1425+-------------------------------+------------------------------------------------------+
1426| <app>.upgrade.upgrade | This state will basically upgrade application on |
1427| | particular target. Stop services, render |
1428| | configuration, install new packages, run offline |
1429| | dbsync (for ctl), start services. Data plane should |
1430| | not be affected, only OpenStack python services. |
1431+-------------------------------+------------------------------------------------------+
1432| <app>.upgrade.upgrade.post | Add services back to scheduling. |
1433+-------------------------------+------------------------------------------------------+
1434| <app>.upgrade.post | This phase should be launched only when upgrade of |
1435| | the cloud is completed. Cleanup temporary files, |
1436| | perform other post upgrade tasks. |
1437+-------------------------------+------------------------------------------------------+
1438| <app>.upgrade.verify | Here we will do basic health checks (API CRUD |
1439| | operations, verify do not have dead network |
1440| | agents/compute services) |
1441+-------------------------------+------------------------------------------------------+
Oleksandr Pidrepnyi60df8722019-06-07 16:18:11 +03001442
1443
1444Don't manage services scheduling while upgrade
1445----------------------------------------------
1446For some special cases, don't manage services scheduling both enable and disable
1447before and after upgrade procedure.
1448
1449If 'manage_service_maintenance: true' or not present - default behavior, disable services
1450before upgrade and enable it after upgrade.
1451If 'manage_service_maintenance: false' - don't disable and don't enable upgraded services
1452scheduling before and after upgrade.
1453
1454.. code-block:: yaml
1455
1456 nova:
1457 upgrade:
1458 manage_service_maintenance: false