blob: 845b30a48a85b046b759b23240f992e41c4b1e50 [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
Dzmitry Stremkouski781f59e2020-01-30 18:29:29 +010036 use_cow_images: False
37 force_raw_images: True
38 snapshot_image_format: qcow2
39 images_type: default
Ivan Berezovskiyf1869a32019-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 Stremkouskifb2289a2019-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 Stremkouskib139f142019-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 Polreich65e2a142019-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
Mykyta Karpin5ef9f982019-02-07 18:40:00 +0200313 timeout_nbd: 10
314 heal_instance_info_cache_interval: 60
Dmitry Stremkovskiy2bcba8d2017-07-30 21:43:59 +0300315 cross_az_attach: false
Dmitry Stremkovskiy35e53b72017-07-29 12:50:39 +0300316 disk_cachemodes: network=writeback,block=none
Jiri Broulik70d9e3f2017-02-15 18:37:13 +0100317 availability_zone: availability_zone_01
Damian Szelugae1922412017-04-18 16:36:46 +0200318 aggregates:
319 - hosts_with_fc
320 - hosts_with_ssd
Filip Pytloun4a72d792015-10-06 16:28:32 +0200321 security_group: true
Petr Michalecf03e4882017-04-10 10:26:18 +0200322 resume_guests_state_on_host_boot: False
Michael Polenchuk159c2542018-06-09 15:31:51 +0400323 preallocate_images: space # Default is 'none'
Dmitry Stremkovskiy8a0ff512017-07-25 20:54:13 +0300324 my_ip: 10.1.0.16
Vasyl Saienko09b6ac32019-01-17 15:23:58 +0200325 vif_plugging_timeout: 300
326 vif_plugging_is_fatal: false
Ivan Berezovskiyf1869a32019-11-14 20:17:58 +0400327 concurrency:
328 lock_path: '/var/lib/nova/tmp'
Filip Pytloun4a72d792015-10-06 16:28:32 +0200329 bind:
330 vnc_address: 172.20.0.100
331 vnc_port: 6080
332 vnc_name: openstack.domain.com
333 vnc_protocol: http
334 database:
335 engine: mysql
336 host: 127.0.0.1
337 port: 3306
338 name: nova
339 user: nova
340 password: pwd
341 identity:
342 engine: keystone
343 host: 127.0.0.1
344 port: 35357
345 user: nova
346 password: pwd
347 tenant: service
348 message_queue:
349 engine: rabbitmq
350 host: 127.0.0.1
351 port: 5672
352 user: openstack
353 password: pwd
354 virtual_host: '/openstack'
355 image:
356 engine: glance
357 host: 127.0.0.1
358 port: 9292
Oleh Hryhorovf5093b82018-10-17 11:16:08 +0000359 pci:
360 alias:
361 alias1:
362 device_type: "type-PF"
363 name: "a1"
364 product_id: "154d"
365 vendor_id: "8086"
Oleksandr Pidrepnyi14f08272019-02-20 12:48:17 +0200366 passthrough_whitelist:
367 - vendor_id: "10de"
368 product_id: "1db4"
Filip Pytloun4a72d792015-10-06 16:28:32 +0200369 network:
370 engine: neutron
371 host: 127.0.0.1
372 port: 9696
373 identity:
374 engine: keystone
375 host: 127.0.0.1
376 port: 35357
377 user: neutron
378 password: pwd
379 tenant: service
380 qemu:
381 max_files: 4096
382 max_processes: 4096
Dmitry Stremkovskiy96281f52017-07-26 00:39:22 +0300383 host: node-12.domain.tld
Filip Pytloun4a72d792015-10-06 16:28:32 +0200384
Vasyl Saienkocab3a902018-07-12 13:17:17 +0300385Compute with vmware driver. Each vmware cluster requires a separate process of nova-compute.
386Each process should have uniq host identifier. However multiple computes might be running on
387single host. It is not recommended to have multiple computes running on different hosts that
388manage the same vmware cluster. To achive this pacemaker/corosync or keepalived might be used.
389
390.. code-block:: yaml
391
392 nova:
393 compute:
394 compute_driver: vmwareapi.VMwareVCDriver
395 vmware:
396 host_username: vmware
397 host_password: vmware
398 cluster_name: vmware_cluster01
399 host_ip: 1.2.3.4
400
OlgaGusarenko9dd01c92018-07-31 00:49:30 +0300401Group and user to be used for QEMU processes run by the system instance:
kkalynovskyif50f0c02017-12-12 17:52:57 +0200402
403.. code-block:: yaml
404
405 nova:
406 compute:
407 enabled: true
408 ...
409 qemu:
410 user: nova
411 group: cinder
412 dynamic_ownership: 1
413
OlgaGusarenko9dd01c92018-07-31 00:49:30 +0300414Group membership for user nova (upgrade related):
Dmitry Stremkovskiy3cd6ba82017-07-25 17:15:36 +0300415
416.. code-block:: yaml
417
418 nova:
419 compute:
420 enabled: true
421 ...
422 user:
423 groups:
424 - libvirt
Filip Pytloun4a72d792015-10-06 16:28:32 +0200425
OlgaGusarenko9dd01c92018-07-31 00:49:30 +0300426Nova services on compute node with OpenContrail:
Filip Pytloun4a72d792015-10-06 16:28:32 +0200427
428.. code-block:: yaml
429
430 nova:
431 compute:
432 enabled: true
433 ...
434 networking: contrail
435
Oleksandr Bryndziibb8abfe2018-09-28 22:21:43 +0000436Nova services on compute node with memcached caching and security strategy:
Filip Pytloun4a72d792015-10-06 16:28:32 +0200437
438.. code-block:: yaml
439
440 nova:
441 compute:
442 enabled: true
443 ...
444 cache:
445 engine: memcached
446 members:
447 - host: 127.0.0.1
448 port: 11211
449 - host: 127.0.0.1
450 port: 11211
Oleksandr Bryndziibb8abfe2018-09-28 22:21:43 +0000451 security:
452 enabled: true
453 strategy: ENCRYPT
454 secret_key: secret
Filip Pytloun4a72d792015-10-06 16:28:32 +0200455
OlgaGusarenko9dd01c92018-07-31 00:49:30 +0300456Client-side RabbitMQ HA setup:
Jiri Konecnye31f2c52016-04-14 17:16:02 +0200457
458.. code-block:: yaml
459
460 nova:
Kirill Bespalov64617172017-07-11 14:43:14 +0300461 compute:
Jiri Konecnye31f2c52016-04-14 17:16:02 +0200462 ....
463 message_queue:
464 engine: rabbitmq
465 members:
466 - host: 10.0.16.1
467 - host: 10.0.16.2
468 - host: 10.0.16.3
469 user: openstack
470 password: pwd
471 virtual_host: '/openstack'
472 ....
473
OlgaGusarenko9dd01c92018-07-31 00:49:30 +0300474Nova with ephemeral configured with Ceph:
maxstack39e6aca2016-05-04 13:50:13 +0000475
476.. code-block:: yaml
477
478 nova:
479 compute:
480 enabled: true
481 ...
482 ceph:
483 ephemeral: yes
484 rbd_pool: nova
485 rbd_user: nova
486 secret_uuid: 03006edd-d957-40a3-ac4c-26cd254b3731
Kalynovskyi0bc79692017-07-21 16:22:09 +0300487 ....
maxstack39e6aca2016-05-04 13:50:13 +0000488
OlgaGusarenko9dd01c92018-07-31 00:49:30 +0300489Nova with ephemeral configured with LVM:
Kalynovskyi0bc79692017-07-21 16:22:09 +0300490
491.. code-block:: yaml
492
493 nova:
494 compute:
495 enabled: true
496 ...
497 lvm:
498 ephemeral: yes
499 images_volume_group: nova_vg
500
501 linux:
502 storage:
503 lvm:
504 nova_vg:
505 name: nova_vg
506 devices:
507 - /dev/sdf
508 - /dev/sdd
509 - /dev/sdg
510 - /dev/sde
511 - /dev/sdc
512 - /dev/sdj
513 - /dev/sdh
maxstack39e6aca2016-05-04 13:50:13 +0000514
OlgaGusarenko9dd01c92018-07-31 00:49:30 +0300515Enable Barbican integration:
Oleg Iurchenko370c10d2017-10-19 14:03:37 +0300516
517.. code-block:: yaml
518
519 nova:
520 compute:
521 ....
522 barbican:
523 enabled: true
524
Oleksandr Pidrepnyi14f08272019-02-20 12:48:17 +0200525Define aliases for a PCI passthrough devices:
Oleh Hryhorovf5093b82018-10-17 11:16:08 +0000526.. code-block:: yaml
527
528 nova:
529 compute:
530 ...
531 pci:
532 alias:
533 alias1:
534 device_type: "type-PF"
535 name: "a1"
536 product_id: "154d"
537 vendor_id: "8086"
538
Oleksandr Pidrepnyi14f08272019-02-20 12:48:17 +0200539Define white list of PCI devices available to VMs:
540.. code-block:: yaml
541
542 nova:
543 compute:
544 ...
545 pci:
546 passthrough_whitelist:
547 - vendor_id: "10de"
548 product_id: "1db4"
549
OlgaGusarenko9dd01c92018-07-31 00:49:30 +0300550Nova metadata custom bindings:
Vasyl Saienko2d591282018-02-05 14:19:02 +0200551
552.. code-block:: yaml
553
554 nova:
555 controller:
556 enabled: true
557 ...
558 metadata:
559 bind:
560 address: 1.2.3.4
561 port: 8776
562
Oleh Hryhorov08482aa2018-11-19 14:07:47 +0200563Define multipath for nova compute:
564
565.. code-block:: yaml
566
567 nova:
568 compute:
569 ....
570 libvirt:
571 volume_use_multipath: True
572
Oleh Hryhorovce1f2142019-03-06 17:00:00 +0000573To disable or enable StrictHostKeyChecking and discover
574compute nodes fingerprints the below pillar should be used:
575
576.. code-block:: yaml
577
578 nova:
579 compute:
580 ....
581 openssh:
582 stricthostkeychecking: True
583 discover_compute_hosts: True
584
Jiri Broulik0ce9fc92017-02-01 23:10:40 +0100585Client role
586-----------
587
OlgaGusarenko9dd01c92018-07-31 00:49:30 +0300588Nova configured with NFS:
Dmitry Stremkovskiy665c7282017-07-05 17:36:27 +0300589
590.. code-block:: yaml
591
592 nova:
593 compute:
594 instances_path: /mnt/nova/instances
595
596 linux:
597 storage:
598 enabled: true
599 mount:
600 nfs_nova:
601 enabled: true
602 path: ${nova:compute:instances_path}
603 device: 172.31.35.145:/data
604 file_system: nfs
605 opts: rw,vers=3
606
OlgaGusarenko9dd01c92018-07-31 00:49:30 +0300607Nova flavors:
Jiri Broulik0ce9fc92017-02-01 23:10:40 +0100608
609.. code-block:: yaml
610
611 nova:
612 client:
613 enabled: true
614 server:
615 identity:
616 flavor:
Jiri Broulik70d9e3f2017-02-15 18:37:13 +0100617 flavor1:
Jiri Broulik0ce9fc92017-02-01 23:10:40 +0100618 flavor_id: 10
619 ram: 4096
620 disk: 10
621 vcpus: 1
Jiri Broulik70d9e3f2017-02-15 18:37:13 +0100622 flavor2:
623 flavor_id: auto
624 ram: 4096
625 disk: 20
626 vcpus: 2
Jiri Broulik0ce9fc92017-02-01 23:10:40 +0100627 identity1:
628 flavor:
629 ...
630
OlgaGusarenko9dd01c92018-07-31 00:49:30 +0300631Availability zones:
Jiri Broulik70d9e3f2017-02-15 18:37:13 +0100632
633.. code-block:: yaml
634
635 nova:
636 client:
637 enabled: true
638 server:
639 identity:
640 availability_zones:
641 - availability_zone_01
642 - availability_zone_02
643
OlgaGusarenko9dd01c92018-07-31 00:49:30 +0300644Aggregates:
Damian Szeluga5dca0f02017-04-13 17:27:15 +0200645
646.. code-block:: yaml
647
648 nova:
649 client:
650 enabled: true
651 server:
652 identity:
653 aggregates:
654 - aggregate1
655 - aggregate2
656
OlgaGusarenko9dd01c92018-07-31 00:49:30 +0300657Upgrade levels:
Dmitry Stremkovskiy91f45852017-07-18 16:22:31 +0300658
659.. code-block:: yaml
660
661 nova:
662 controller:
663 upgrade_levels:
664 compute: juno
665
666 nova:
667 compute:
668 upgrade_levels:
669 compute: juno
670
Petr Jedinýd855ef22017-03-06 22:24:33 +0100671SR-IOV
Jakub Pavlik39a05942017-02-13 23:03:08 +0100672------
673
OlgaGusarenko9dd01c92018-07-31 00:49:30 +0300674Add ``PciPassthroughFilter`` into scheduler filters and NICs on
675specific compute nodes:
Jakub Pavlik39a05942017-02-13 23:03:08 +0100676
677.. code-block:: yaml
678
679 nova:
680 controller:
681 sriov: true
sandriichenko4fe321d2018-01-22 17:34:06 +0000682 scheduler_default_filters: "DifferentHostFilter,SameHostFilter,RetryFilter,AvailabilityZoneFilter,RamFilter,CoreFilter,DiskFilter,ComputeFilter,ComputeCapabilitiesFilter,ImagePropertiesFilter,ServerGroupAntiAffinityFilter,ServerGroupAffinityFilter,PciPassthroughFilter"
Jakub Pavlik39a05942017-02-13 23:03:08 +0100683
684 nova:
685 compute:
686 sriov:
687 nic_one:
688 devname: eth1
689 physical_network: physnet1
690
Oleh Hryhorovf5093b82018-10-17 11:16:08 +0000691.. note:: Parameters located under nova:compute:sriov:<nic_name> are copied to passthrough_whitelist parameter into
692 nova.conf file in appropriate format.
693
Jakub Pavlik26fb85c2017-02-16 22:29:22 +0100694CPU pinning & Hugepages
695-----------------------
696
OlgaGusarenko9dd01c92018-07-31 00:49:30 +0300697CPU pinning of virtual machine instances to dedicated physical
698CPU cores. Hugepages mount point for libvirt.
Jakub Pavlik26fb85c2017-02-16 22:29:22 +0100699
700.. code-block:: yaml
701
702 nova:
703 controller:
sandriichenko4fe321d2018-01-22 17:34:06 +0000704 scheduler_default_filters: "DifferentHostFilter,SameHostFilter,RetryFilter,AvailabilityZoneFilter,RamFilter,CoreFilter,DiskFilter,ComputeFilter,ComputeCapabilitiesFilter,ImagePropertiesFilter,ServerGroupAntiAffinityFilter,ServerGroupAffinityFilter,NUMATopologyFilter,AggregateInstanceExtraSpecsFilter"
Jakub Pavlik26fb85c2017-02-16 22:29:22 +0100705
706 nova:
707 compute:
708 vcpu_pin_set: 2,3,4,5
709 hugepages:
710 mount_points:
711 - path: /mnt/hugepages_1GB
712 - path: /mnt/hugepages_2MB
Jiri Broulik0ce9fc92017-02-01 23:10:40 +0100713
Michel Nederlof171c7ac2017-04-13 12:54:14 +0200714Custom Scheduler filters
715------------------------
716
OlgaGusarenko9dd01c92018-07-31 00:49:30 +0300717If you have a custom filter, that needs to be included in the
718scheduler, then you can include it like so:
Michel Nederlof171c7ac2017-04-13 12:54:14 +0200719
720.. code-block:: yaml
721
722 nova:
723 controller:
724 scheduler_custom_filters:
725 - my_custom_driver.nova.scheduler.filters.my_custom_filter.MyCustomFilter
726
727 # 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 +0000728 scheduler_default_filters: "DifferentHostFilter,SameHostFilter,RetryFilter,AvailabilityZoneFilter,RamFilter,CoreFilter,DiskFilter,ComputeFilter,ComputeCapabilitiesFilter,ImagePropertiesFilter,ServerGroupAntiAffinityFilter,ServerGroupAffinityFilter,PciPassthroughFilter,MyCustomFilter"
Michel Nederlof171c7ac2017-04-13 12:54:14 +0200729
Michael Polenchuk2bce2cb2018-09-17 16:05:43 +0400730 # Since Queens version a sequence could be used as well:
731 ~scheduler_default_filters:
732 - DifferentHostFilter
733 - SameHostFilter
734 ...
735 - MyCustomFilter
736
737
Michel Nederlofeb566f62017-04-21 15:37:47 +0200738Hardware Trip/Unmap Support
739---------------------------
740
OlgaGusarenko9dd01c92018-07-31 00:49:30 +0300741To enable TRIM support for ephemeral images (thru nova managed
742images), libvirt has this option:
Michel Nederlofeb566f62017-04-21 15:37:47 +0200743
744.. code-block:: yaml
745
746 nova:
747 compute:
748 libvirt:
749 hw_disk_discard: unmap
750
OlgaGusarenko9dd01c92018-07-31 00:49:30 +0300751To actually utilize this feature, the following metadata must be
752set on the image as well, so the SCSI unmap is supported:
Michel Nederlofeb566f62017-04-21 15:37:47 +0200753
754.. code-block:: bash
755
756 glance image-update --property hw_scsi_model=virtio-scsi <image>
757 glance image-update --property hw_disk_bus=scsi <image>
Filip Pytloun5bc9e9f2017-02-02 13:05:40 +0100758
Thom Gerdesf582f1e2017-05-02 18:05:50 +0000759Scheduler Host Manager
760----------------------
761
762Specify a custom host manager.
763
Thom Gerdesec00afd2017-04-07 18:06:59 +0000764libvirt CPU mode
765----------------
766
OlgaGusarenko9dd01c92018-07-31 00:49:30 +0300767Allow setting the model of CPU that is exposed to a VM. This
768allows for better support live migration between hypervisors with
769different hardware, among other things. Defaults to host-passthrough.
Jakub Pavlik7046b9c2017-09-19 12:04:19 +0200770
Thom Gerdesf582f1e2017-05-02 18:05:50 +0000771.. code-block:: yaml
772
773 nova:
774 controller:
775 scheduler_host_manager: ironic_host_manager
776
Thom Gerdesec00afd2017-04-07 18:06:59 +0000777 compute:
778 cpu_mode: host-model
779
Dzmitry Stremkouski7da9bf12018-04-25 22:30:37 +0200780Nova compute cpu model
781----------------------
782
783.. code-block:: yaml
784
785 nova:
786 compute:
787 cpu_mode: custom
788 libvirt:
789 cpu_model: IvyBridge
790
Oleksandr Pidrepnyid9020082019-03-04 19:18:19 +0200791RNG (Random Number Generator) device path
792----------------------
793
794The path to an RNG (Random Number Generator) device that will be used
795as the source of entropy on the host.
796The recommended source of entropy is /dev/urandom.
797Permitted options are: /dev/random, /dev/urandom or /dev/hwrng.
798Default: /dev/urandom
799
800.. code-block:: yaml
801
802 nova:
803 controller:
804 libvirt:
805 rng_dev_path: /dev/random
806
807 compute:
808 libvirt:
809 rng_dev_path: /dev/random
810
Dzmitry Stremkouski7da9bf12018-04-25 22:30:37 +0200811
Michel Nederloff7eefb22017-07-10 11:14:33 +0200812Nova compute workarounds
813------------------------
814
OlgaGusarenko9dd01c92018-07-31 00:49:30 +0300815Live snapshotting is disabled by default in nova. To enable
816this, it needs a manual switch.
Michel Nederloff7eefb22017-07-10 11:14:33 +0200817
818From manual:
819
820.. code-block:: yaml
821
OlgaGusarenko9dd01c92018-07-31 00:49:30 +0300822 When using libvirt 1.2.2 live snapshots fail intermittently under load
823 (likely related to concurrent libvirt/qemu operations). This config
824 option provides a mechanism to disable live snapshot, in favor of cold
825 snapshot, while this is resolved. Cold snapshot causes an instance
826 outage while the guest is going through the snapshotting process.
827
828 For more information, refer to the bug report:
829
830 https://bugs.launchpad.net/nova/+bug/1334398
Michel Nederloff7eefb22017-07-10 11:14:33 +0200831
832Configurable pillar data:
833
834.. code-block:: yaml
835
836 nova:
837 compute:
Michel Nederlofe322ebb2017-07-10 12:29:21 +0200838 workaround:
Michel Nederloff7eefb22017-07-10 11:14:33 +0200839 disable_libvirt_livesnapshot: False
840
Michel Nederlofb51a5142017-06-27 08:31:35 +0200841Config drive options
842--------------------
843
OlgaGusarenko9dd01c92018-07-31 00:49:30 +0300844See example below on how to configure the options for the
845config drive:
Michel Nederlofb51a5142017-06-27 08:31:35 +0200846
847.. code-block:: yaml
848
849 nova:
850 compute:
851 config_drive:
852 forced: True # Default: True
853 cdrom: True # Default: False
854 format: iso9660 # Default: vfat
855 inject_password: False # Default: False
856
Michel Nederloff81919b2017-11-20 09:37:07 +0100857Number of concurrent live migrates
858----------------------------------
859
OlgaGusarenko9dd01c92018-07-31 00:49:30 +0300860Default is to have no concurrent live migrations (so 1
861live-migration at a time).
Michel Nederloff81919b2017-11-20 09:37:07 +0100862
OlgaGusarenko9dd01c92018-07-31 00:49:30 +0300863Excerpt from config options page
864https://docs.openstack.org/ocata/config-reference/compute/config-options.html:
Michel Nederloff81919b2017-11-20 09:37:07 +0100865
OlgaGusarenko9dd01c92018-07-31 00:49:30 +0300866Maximum number of live migrations to run concurrently. This limit is
867enforced to avoid outbound live migrations overwhelming the host/network
868and causing failures. It is not recommended that you change this unless
869you are very sure that doing so is safe and stable in your environment.
Michel Nederloff81919b2017-11-20 09:37:07 +0100870
OlgaGusarenko9dd01c92018-07-31 00:49:30 +0300871Possible values:
Michel Nederloff81919b2017-11-20 09:37:07 +0100872
OlgaGusarenko9dd01c92018-07-31 00:49:30 +0300873- 0 : treated as unlimited.
874- Negative value defaults to 0.
875- Any positive integer representing maximum number of live migrations
876 to run concurrently.
Michel Nederloff81919b2017-11-20 09:37:07 +0100877
878To configure this option:
879
880.. code-block:: yaml
881
882 nova:
883 compute:
884 max_concurrent_live_migrations: 1 # (1 is the default)
885
Sergio Lystopad9d31cba2018-05-15 11:29:11 +0300886Live migration with auto converge
887----------------------------------
888
OlgaGusarenko9dd01c92018-07-31 00:49:30 +0300889Auto converge throttles down CPU if a progress of on-going live
890migration is slow
891https://docs.openstack.org/ocata/config-reference/compute/config-options.html:
Sergio Lystopad9d31cba2018-05-15 11:29:11 +0300892
893.. code-block:: yaml
894
895 nova:
896 compute:
897 libvirt:
898 live_migration_permit_auto_converge: False # (False is the default)
899
900.. code-block:: yaml
901
902 nova:
903 controller:
904 libvirt:
905 live_migration_permit_auto_converge: False # (False is the default)
906
Dmitry Kalashnike58fe082017-12-01 16:31:14 +0400907Enhanced logging with logging.conf
908----------------------------------
909
OlgaGusarenko9dd01c92018-07-31 00:49:30 +0300910By default ``logging.conf`` is disabled.
Dmitry Kalashnike58fe082017-12-01 16:31:14 +0400911
912That is possible to enable per-binary logging.conf with new variables:
Dmitry Kalashnike58fe082017-12-01 16:31:14 +0400913
OlgaGusarenko9dd01c92018-07-31 00:49:30 +0300914* ``openstack_log_appender``
915 Set to true to enable log_config_append for all OpenStack services
916
917* ``openstack_fluentd_handler_enabled``
918 Set to true to enable FluentHandler for all Openstack services
919
920* ``openstack_ossyslog_handler_enabled``
921 Set to true to enable OSSysLogHandler for all Openstack services
922
923Only ``WatchedFileHandler``, ``OSSysLogHandler``, and ``FluentHandler``
924are available.
Dmitry Kalashnike58fe082017-12-01 16:31:14 +0400925
Dmitry Kalashnik8da249c2018-01-16 17:58:00 +0400926Also it is possible to configure this with pillar:
Dmitry Kalashnike58fe082017-12-01 16:31:14 +0400927
928.. code-block:: yaml
929
930 nova:
931 controller:
932 logging:
933 log_appender: true
934 log_handlers:
935 watchedfile:
936 enabled: true
937 fluentd:
938 enabled: true
Oleksii Chupryn99e35032018-02-06 01:59:40 +0200939 ossyslog:
940 enabled: true
Dmitry Kalashnike58fe082017-12-01 16:31:14 +0400941
942 compute:
943 logging:
944 log_appender: true
945 log_handlers:
946 watchedfile:
947 enabled: true
948 fluentd:
949 enabled: true
Oleksii Chupryn99e35032018-02-06 01:59:40 +0200950 ossyslog:
951 enabled: true
Thom Gerdesf582f1e2017-05-02 18:05:50 +0000952
Vasyl Saienko7243a952018-05-11 21:26:54 +0300953The log level might be configured per logger by using the
954following pillar structure:
955
956.. code-block:: yaml
957
958 nova:
959 compute:
960 logging:
961 loggers:
962 <logger_name>:
963 level: WARNING
964
965 nova:
966 compute:
967 logging:
968 loggers:
969 <logger_name>:
970 level: WARNING
971
Oleh Hryhorove38525d2018-05-15 08:58:59 +0000972Configure syslog parameters for libvirtd
973----------------------------------------
974
OlgaGusarenko9dd01c92018-07-31 00:49:30 +0300975To configure syslog parameters for libvirtd the below pillar
976structure should be used with values which are supported
Oleh Hryhorove38525d2018-05-15 08:58:59 +0000977by libvirtd. These values might be known from the documentation.
978
OlgaGusarenko9dd01c92018-07-31 00:49:30 +0300979.. code-block:: yaml
980
Oleh Hryhorove38525d2018-05-15 08:58:59 +0000981 nova:
982 compute:
983 libvirt:
984 logging:
985 level: 3
986 filters: '3:remote 4:event'
987 outputs: '3:syslog:libvirtd'
988 buffer_size: 64
989
OlgaGusarenko9dd01c92018-07-31 00:49:30 +0300990Logging controls:
Oleh Hryhorove38525d2018-05-15 08:58:59 +0000991
OlgaGusarenko9dd01c92018-07-31 00:49:30 +0300992Logging level: 4 errors, 3 warnings, 2 information, 1 debug
993basically 1 will log everything possible ``log_level = 3``
Oleh Hryhorove38525d2018-05-15 08:58:59 +0000994
OlgaGusarenko9dd01c92018-07-31 00:49:30 +0300995Logging filters:
Oleh Hryhorove38525d2018-05-15 08:58:59 +0000996
OlgaGusarenko9dd01c92018-07-31 00:49:30 +0300997A filter allows to select a different logging level for a given category
998of logs.
Oleh Hryhorove38525d2018-05-15 08:58:59 +0000999
OlgaGusarenko9dd01c92018-07-31 00:49:30 +03001000The format for a filter is one of:
Oleh Hryhorove38525d2018-05-15 08:58:59 +00001001
OlgaGusarenko9dd01c92018-07-31 00:49:30 +03001002* ``x:name``
1003* ``x:+name``
1004 where name is a string which is matched against source file name,
1005 e.g., ``remote``, ``qemu``, or ``util/json``, the optional ``+`` prefix
1006 tells libvirt to log stack trace for each message matching name,
1007 and x is the minimal level where matching messages should be logged:
Oleh Hryhorove38525d2018-05-15 08:58:59 +00001008
OlgaGusarenko9dd01c92018-07-31 00:49:30 +03001009* ``1: DEBUG``
1010* ``2: INFO``
1011* ``3: WARNING``
1012* ``4: ERROR``
1013
1014Multiple filter can be defined in a single @filters, they just
1015need to be separated by spaces.
1016
1017For example, to only get warning or errors from the remote layer
1018and only errors from the event layer: ``log_filters="3:remote 4:event``
1019
1020Logging outputs:
1021
1022An output is one of the places to save logging information
1023The format for an output can be:
1024
1025* ``x:stderr``
1026 Output goes to stderr
1027
1028* ``x:syslog:name``
1029 Use syslog for the output and use the given name as the ident
1030
1031* ``x:file:file_path``
1032 output to a file, with the given filepath
1033
1034 In all case the x prefix is the minimal level, acting as a filter
1035
1036* ``1: DEBUG``
1037* ``2: INFO``
1038* ``3: WARNING``
1039* ``4: ERROR``
1040
1041Multiple output can be defined, they just need to be separated by spaces.
1042For example, to log all warnings and errors to syslog under the libvirt
1043dident: ``log_outputs="3:syslog:libvirtd``
1044
1045Log debug buffer size: default 64
1046The daemon keeps an internal debug log buffer which will be dumped
1047in case of crash or upon receiving a ``SIGUSR2`` signal. This setting
1048allows to override the default buffer size in kilobytes.
1049If value is ``0`` or less the debug log buffer is deactivated
1050``log_buffer_size = 64``
1051
1052To configure the logging parameters for QEMU, the below pillar
1053structure and logging parameters should be used:
1054
1055.. code-block:: yaml
1056
1057 nova:
1058 compute:
1059 qemu:
1060 logging:
1061 handler: logd
1062 virtlog:
1063 enabled: true
1064 level: 4
1065 filters: '3:remote 3:event'
1066 outputs: '4:syslog:virtlogd'
1067 max_clients: 512
1068 max_size: 2097100
1069 max_backups: 2
Oleh Hryhorove38525d2018-05-15 08:58:59 +00001070
Oleksandr Shyshko981b4fa2018-05-02 15:39:30 +03001071Inject password to VM
1072---------------------
1073
OlgaGusarenko9dd01c92018-07-31 00:49:30 +03001074By default nova blocks up any inject to VM because
1075``inject_partition`` param is equal to ``-2``.
1076If you want to inject password to VM, you will need to
1077define ``inject_partition`` greater or equal to ``-1`` and
1078define ``inject_password`` to ``True``
Oleksandr Shyshko981b4fa2018-05-02 15:39:30 +03001079
1080For example:
1081
OlgaGusarenko9dd01c92018-07-31 00:49:30 +03001082.. code-block:: yaml
1083
Oleksandr Shyshko981b4fa2018-05-02 15:39:30 +03001084 nova:
1085 compute:
1086 inject_partition: '-1'
1087 inject_password: True
1088
OlgaGusarenko9dd01c92018-07-31 00:49:30 +03001089Allow the injection of an admin password for instance only at
1090``create`` and ``rebuild`` process.
1091
1092There is no agent needed within the image to do this. If *libguestfs* is
1093available on the host, it will be used. Otherwise *nbd* is used. The file
1094system of the image will be mounted and the admin password, which is provided
1095in the REST API call will be injected as password for the root user. If no
1096root user is available, the instance won't be launched and an error is thrown.
1097Be aware that the injection is *not* possible when the instance gets launched
1098from a volume.
1099
1100Possible values:
1101
1102* ``True``
1103 Allows the injection
1104
1105* ``False`` (default)
1106 Disallows the injection. Any via the REST API provided
1107 admin password will be silently ignored.
1108
1109Related options:
1110
1111* ``inject_partition``
1112 Decides about the discovery and usage of the file system.
1113 It also can disable the injection at all.
1114 (boolean value)
Oleksandr Shyshko981b4fa2018-05-02 15:39:30 +03001115
1116You can read more about injecting the administrator password here:
OlgaGusarenko9dd01c92018-07-31 00:49:30 +03001117https://docs.openstack.org/nova/queens/admin/admin-password-injection.html
Oleksandr Shyshko981b4fa2018-05-02 15:39:30 +03001118
Oleksandr Shyshko1c020d12018-05-24 12:47:08 +03001119Enable libvirt control channel over TLS
OlgaGusarenko9dd01c92018-07-31 00:49:30 +03001120---------------------------------------
Oleksandr Shyshko1c020d12018-05-24 12:47:08 +03001121
1122By default TLS is disabled.
1123
OlgaGusarenko9dd01c92018-07-31 00:49:30 +03001124Enable TLS transport:
1125
1126.. code-block:: yaml
Oleksandr Shyshko1c020d12018-05-24 12:47:08 +03001127
1128 compute:
1129 libvirt:
1130 tls:
1131 enabled: True
1132
1133You able to set custom certificates in pillar:
1134
OlgaGusarenko9dd01c92018-07-31 00:49:30 +03001135.. code-block:: yaml
1136
Oleksandr Shyshko1c020d12018-05-24 12:47:08 +03001137 nova:
1138 compute:
1139 libvirt:
1140 tls:
1141 key: (certificate content)
1142 cert: (certificate content)
1143 cacert: (certificate content)
1144 client:
1145 key: (certificate content)
1146 cert: (certificate content)
1147
Dmitry Teselkin77d9dac2019-04-18 16:43:50 +03001148It is possible to limit allowed SSL / TLS ciphers using libvirt's tls_priority:
1149
1150.. code-block:: yaml
1151
1152 nova:
1153 compute:
1154 libvirt:
1155 tls:
1156 priority: <TLS priority string>
1157
1158Example priority strings are:
1159
1160- The system imposed security level:
1161
1162.. code-block:: text
1163
1164 "SYSTEM"
1165
1166- The default priority without the HMAC-MD5:
1167
1168.. code-block:: text
1169
1170 "NORMAL:-MD5"
1171
1172- Specifying RSA with AES-128-CBC:
1173
1174.. code-block:: text
1175
1176 "NONE:+VERS-TLS-ALL:+MAC-ALL:+RSA:+AES-128-CBC:+SIGN-ALL:+COMP-NULL"
1177
1178- Specifying the defaults plus ARCFOUR-128:
1179
1180.. code-block:: text
1181
1182 "NORMAL:+ARCFOUR-128"
1183
1184- Enabling the 128-bit secure ciphers, while disabling TLS 1.0:
1185
1186.. code-block:: text
1187
1188 "SECURE128:-VERS-TLS1.0"
1189
1190- Enabling the 128-bit and 192-bit secure ciphers, while disabling all TLS
1191 versions except TLS 1.2:
1192
1193.. code-block:: text
1194
1195 "SECURE128:+SECURE192:-VERS-ALL:+VERS-TLS1.2"
1196
1197More on TLS Priority Strings:
1198
1199- https://gnutls.org/manual/html_node/Priority-Strings.html
1200
Vasyl Saienko11ac9732018-10-02 17:04:33 +00001201Controlling access by `tls_allowed_dn_list`.
1202Enable an access control list of client certificate Distinguished Names (DNs)
1203which can connect to the TLS port on this server. The default is that DNs are
1204not checked. This list may contain wildcards such as
1205"C=GB,ST=London,L=London,O=Libvirt Project,CN=*" See the POSIX fnmatch function
1206for the format of the wildcards.
1207Note that if this is an empty list, no client can connect.
1208Note also that GnuTLS returns DNs without spaces after commas between
1209the fields (and this is what we check against), but the openssl x509 tool
1210shows spaces.
1211
1212.. code-block:: yaml
1213
1214 nova:
1215 compute:
1216 libvirt:
1217 tls:
1218 tls_allowed_dn_list:
1219 host1:
1220 enabled: true
1221 value: 'C=foo,CN=cmp1'
1222 host2:
1223 enabled: true
1224 value: 'C=foo,CN=cmp2'
1225
1226
Oleksandr Shyshko1c020d12018-05-24 12:47:08 +03001227You can read more about live migration over TLS here:
OlgaGusarenko9dd01c92018-07-31 00:49:30 +03001228https://wiki.libvirt.org/page/TLSCreateServerCerts
Oleksandr Shyshko981b4fa2018-05-02 15:39:30 +03001229
Oleksandr Shyshko1195fca2018-07-09 18:22:59 +03001230Enable transport + authentication for VNC over TLS
1231---------------------
Oleksandr Shyshkod8337cf2018-07-11 17:55:58 +03001232# Only for Queens. Communication between noVNC proxy service and QEMU
Oleksandr Shyshko1195fca2018-07-09 18:22:59 +03001233
1234By default communication between nova-novncproxy and qemu service is unsecure.
1235
1236compute:
1237 qemu:
1238 vnc:
1239 tls:
1240 enabled: True
1241
1242controller:
1243 novncproxy:
Oleksandr Shyshkod8337cf2018-07-11 17:55:58 +03001244 # This section responsible for communication between noVNC proxy and client machine
Oleksandr Shyshko1195fca2018-07-09 18:22:59 +03001245 tls:
1246 enabled: True
Oleksandr Shyshkod8337cf2018-07-11 17:55:58 +03001247 # This section responsible for communication between nova-novncproxy and qemu service
1248 vencrypt:
1249 tls:
1250 enabled: True
Oleksandr Shyshko1195fca2018-07-09 18:22:59 +03001251
1252You able to set custom certificates in pillar:
1253
Oleksandr Shyshkod8337cf2018-07-11 17:55:58 +03001254nova:
1255 compute:
1256 qemu:
1257 vnc:
1258 tls:
1259 cacert (certificate content)
1260 cert (certificate content)
1261 key (certificate content)
1262
1263nova:
1264 controller:
1265 novncproxy:
1266 tls:
1267 server:
1268 cert (certificate content)
1269 key (certificate content)
1270 vencrypt:
1271 tls:
1272 cacert (certificate content)
1273 cert (certificate content)
1274 key (certificate content)
1275
1276
1277You can read more about it here:
1278 https://docs.openstack.org/nova/queens/admin/remote-console-access.html
1279
1280Enable communication between noVNC proxy and client machine over TLS
1281---------------------
1282
1283By default communication between noVNC proxy and client machine is unsecure.
1284
1285 controller:
1286 novncproxy:
1287 tls:
1288 enabled: True
Oleksandr Shyshko1195fca2018-07-09 18:22:59 +03001289
1290 nova:
1291 controller:
1292 novncproxy:
1293 tls:
Oleksandr Shyshkod8337cf2018-07-11 17:55:58 +03001294 server:
1295 cert (certificate content)
1296 key (certificate content)
Oleksandr Shyshko1195fca2018-07-09 18:22:59 +03001297
1298You can read more about it here:
Oleksandr Shyshkod8337cf2018-07-11 17:55:58 +03001299 https://docs.openstack.org/mitaka/config-reference/dashboard/configure.html
Oleksandr Shyshko1195fca2018-07-09 18:22:59 +03001300
Oleksandr Shyshko55eeac72018-08-03 18:23:28 +03001301Enable x509 and ssl communication between Nova and Galera cluster.
1302---------------------
1303By default communication between Nova and Galera is unsecure.
1304
Oleksandr Shyshkocbe87352018-09-07 13:42:57 +03001305nova:
1306 controller:
1307 database:
1308 x509:
1309 enabled: True
1310
Oleksandr Shyshko55eeac72018-08-03 18:23:28 +03001311You able to set custom certificates in pillar:
Oleksandr Shyshko55eeac72018-08-03 18:23:28 +03001312
1313nova:
1314 controller:
1315 database:
1316 x509:
Oleksandr Shyshkocbe87352018-09-07 13:42:57 +03001317 cacert: (certificate content)
1318 cert: (certificate content)
1319 key: (certificate content)
Oleksandr Shyshko55eeac72018-08-03 18:23:28 +03001320
1321You can read more about it here:
1322 https://docs.openstack.org/security-guide/databases/database-access-control.html
1323
Oleksandr Shyshkod96a0992019-03-29 11:18:25 +00001324Define config option which allows to use nova-api service behind proxy.(Only Mitaka)
1325---------------------
1326The HTTP Header that will be used to determine what the original request protocol
1327scheme was, even if it was hidden by a SSL termination proxy.
1328
1329 nova:
1330 controller:
1331 secure_proxy_ssl_header: HTTP_X_FORWARDED_PROTO
1332
1333You can read more about it here:
1334 https://docs.openstack.org/mitaka/config-reference/compute/config-options.html
1335
obryndziif7957912019-01-31 00:55:56 +00001336Nova database connection setup:
1337========
1338
1339.. code-block:: yaml
1340
1341 nova:
1342 controller:
1343 enabled: True
1344 ...
1345 database:
1346 idle_timeout: 180
1347 min_pool_size: 100
1348 max_pool_size: 700
1349 max_overflow: 100
1350 retry_interval: 5
1351 max_retries: '-1'
1352 db_max_retries: 3
1353 db_retry_interval: 1
1354 connection_debug: 10
1355 pool_timeout: 120
1356
Oleksandr Bryndzii6d821f52019-02-20 15:51:15 +02001357
1358Configure nova to use service user tokens:
1359========
1360Long-running operations such as live migration or snapshot can sometimes overrun the
1361expiry of the user token. In such cases, post operations such as cleaning up after a
1362live migration can fail when the nova-compute service needs to cleanup resources in
1363other services, such as in the block-storage (cinder) or networking (neutron) services.
1364
1365This patch enables nova to use service user tokens to supplement the regular user token
1366used to initiate the operation. The identity service (keystone) will then authenticate
1367a request using the service user token if the user token has already expired.
1368
1369.. code-block:: yaml
1370
1371 nova:
1372 controller:
1373 enabled: True
1374 ...
1375 service_user:
1376 enabled: True
1377 user_domain_id: default
1378 project_domain_id: default
1379 project_name: service
1380 username: nova
1381 password: pswd
1382
Oleksandr Bryndzii6af347b2019-04-23 15:34:42 +03001383Change default resource quotas using configmap template settings
1384========
1385
1386.. code-block:: yaml
1387
1388 nova:
1389 controller:
1390 configmap:
1391 quota:
1392 instances: 10
1393 cores: 20
1394 ram: 51200
1395 metadata_items: 128
1396 injected_files: 5
1397 injected_file_content_bytes: 10240
1398 injected_file_path_length: 255
1399 key_pairs: 100
1400 server_groups: 10
1401 server_group_members: 10
1402 reservation_expire: 86400
1403 until_refresh: 0
1404 max_age: 0
1405
Oleh Hryhorov63ee8452018-08-14 09:16:02 +00001406Upgrades
1407========
1408
1409Each openstack formula provide set of phases (logical bloks) that will help to
1410build flexible upgrade orchestration logic for particular components. The list
1411of phases might and theirs descriptions are listed in table below:
1412
1413+-------------------------------+------------------------------------------------------+
1414| State | Description |
1415+===============================+======================================================+
1416| <app>.upgrade.service_running | Ensure that all services for particular application |
1417| | are enabled for autostart and running |
1418+-------------------------------+------------------------------------------------------+
1419| <app>.upgrade.service_stopped | Ensure that all services for particular application |
1420| | disabled for autostart and dead |
1421+-------------------------------+------------------------------------------------------+
1422| <app>.upgrade.pkgs_latest | Ensure that packages used by particular application |
1423| | are installed to latest available version. |
1424| | This will not upgrade data plane packages like qemu |
1425| | and openvswitch as usually minimal required version |
1426| | in openstack services is really old. The data plane |
1427| | packages should be upgraded separately by `apt-get |
1428| | upgrade` or `apt-get dist-upgrade` |
1429| | Applying this state will not autostart service. |
1430+-------------------------------+------------------------------------------------------+
1431| <app>.upgrade.render_config | Ensure configuration is rendered actual version. +
1432+-------------------------------+------------------------------------------------------+
1433| <app>.upgrade.pre | We assume this state is applied on all nodes in the |
1434| | cloud before running upgrade. |
1435| | Only non destructive actions will be applied during |
1436| | this phase. Perform service built in service check |
1437| | like (keystone-manage doctor and nova-status upgrade)|
1438+-------------------------------+------------------------------------------------------+
1439| <app>.upgrade.upgrade.pre | Mostly applicable for data plane nodes. During this |
1440| | phase resources will be gracefully removed from |
1441| | current node if it is allowed. Services for upgraded |
1442| | application will be set to admin disabled state to |
1443| | make sure node will not participate in resources |
1444| | scheduling. For example on gtw nodes this will set |
1445| | all agents to admin disable state and will move all |
1446| | routers to other agents. |
1447+-------------------------------+------------------------------------------------------+
1448| <app>.upgrade.upgrade | This state will basically upgrade application on |
1449| | particular target. Stop services, render |
1450| | configuration, install new packages, run offline |
1451| | dbsync (for ctl), start services. Data plane should |
1452| | not be affected, only OpenStack python services. |
1453+-------------------------------+------------------------------------------------------+
1454| <app>.upgrade.upgrade.post | Add services back to scheduling. |
1455+-------------------------------+------------------------------------------------------+
1456| <app>.upgrade.post | This phase should be launched only when upgrade of |
1457| | the cloud is completed. Cleanup temporary files, |
1458| | perform other post upgrade tasks. |
1459+-------------------------------+------------------------------------------------------+
1460| <app>.upgrade.verify | Here we will do basic health checks (API CRUD |
1461| | operations, verify do not have dead network |
1462| | agents/compute services) |
1463+-------------------------------+------------------------------------------------------+
Oleksandr Pidrepnyi60df8722019-06-07 16:18:11 +03001464
1465
1466Don't manage services scheduling while upgrade
1467----------------------------------------------
1468For some special cases, don't manage services scheduling both enable and disable
1469before and after upgrade procedure.
1470
1471If 'manage_service_maintenance: true' or not present - default behavior, disable services
1472before upgrade and enable it after upgrade.
1473If 'manage_service_maintenance: false' - don't disable and don't enable upgraded services
1474scheduling before and after upgrade.
1475
1476.. code-block:: yaml
1477
1478 nova:
1479 upgrade:
1480 manage_service_maintenance: false