blob: bd4d1b5ec78407629fd3110c31dfe125ccb0666e [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
Kirill Bespalov64617172017-07-11 14:43:14 +0300198
Kirill Bespalova0eaca72017-11-20 13:40:42 +0300199Configuring TLS communications
200------------------------------
Kirill Bespalov64617172017-07-11 14:43:14 +0300201
OlgaGusarenko9dd01c92018-07-31 00:49:30 +0300202.. note:: By default system wide installed CA certs are used,
203 so ``cacert_file`` param is optional, as well as ``cacert``.
Kirill Bespalova0eaca72017-11-20 13:40:42 +0300204
205- **RabbitMQ TLS**
Kirill Bespalov64617172017-07-11 14:43:14 +0300206
OlgaGusarenko9dd01c92018-07-31 00:49:30 +0300207 .. code-block:: yaml
Kirill Bespalov64617172017-07-11 14:43:14 +0300208
OlgaGusarenko9dd01c92018-07-31 00:49:30 +0300209 nova:
210 compute:
211 message_queue:
212 port: 5671
213 ssl:
214 enabled: True
215 (optional) cacert: cert body if the cacert_file does not exists
216 (optional) cacert_file: /etc/openstack/rabbitmq-ca.pem
217 (optional) version: TLSv1_2
Kirill Bespalov64617172017-07-11 14:43:14 +0300218
Kirill Bespalova0eaca72017-11-20 13:40:42 +0300219- **MySQL TLS**
Kirill Bespalov64617172017-07-11 14:43:14 +0300220
OlgaGusarenko9dd01c92018-07-31 00:49:30 +0300221 .. code-block:: yaml
Kirill Bespalov64617172017-07-11 14:43:14 +0300222
OlgaGusarenko9dd01c92018-07-31 00:49:30 +0300223 nova:
224 controller:
225 database:
226 ssl:
227 enabled: True
228 (optional) cacert: cert body if the cacert_file does not exists
229 (optional) cacert_file: /etc/openstack/mysql-ca.pem
Kirill Bespalov64617172017-07-11 14:43:14 +0300230
Kirill Bespalova0eaca72017-11-20 13:40:42 +0300231- **Openstack HTTPS API**
232
OlgaGusarenko9dd01c92018-07-31 00:49:30 +0300233 Set the ``https`` as protocol at ``nova:compute`` and
234 ``nova:controller`` sections :
Kirill Bespalova0eaca72017-11-20 13:40:42 +0300235
OlgaGusarenko9dd01c92018-07-31 00:49:30 +0300236 .. code-block:: yaml
Kirill Bespalov64617172017-07-11 14:43:14 +0300237
OlgaGusarenko9dd01c92018-07-31 00:49:30 +0300238 nova:
239 controller :
240 identity:
241 protocol: https
242 (optional) cacert_file: /etc/openstack/proxy.pem
243 network:
244 protocol: https
245 (optional) cacert_file: /etc/openstack/proxy.pem
246 glance:
247 protocol: https
248 (optional) cacert_file: /etc/openstack/proxy.pem
Kirill Bespalov64617172017-07-11 14:43:14 +0300249
OlgaGusarenko9dd01c92018-07-31 00:49:30 +0300250 .. code-block:: yaml
Kirill Bespalov64617172017-07-11 14:43:14 +0300251
OlgaGusarenko9dd01c92018-07-31 00:49:30 +0300252 nova:
253 compute:
254 identity:
255 protocol: https
256 (optional) cacert_file: /etc/openstack/proxy.pem
257 network:
258 protocol: https
259 (optional) cacert_file: /etc/openstack/proxy.pem
260 image:
261 protocol: https
262 (optional) cacert_file: /etc/openstack/proxy.pem
263 ironic:
264 protocol: https
265 (optional) cacert_file: /etc/openstack/proxy.pem
Kirill Bespalov64617172017-07-11 14:43:14 +0300266
OlgaGusarenko9dd01c92018-07-31 00:49:30 +0300267.. note:: Barbican, Cinder, and placement url endpoints are discovering
268 using service catalog.
Kirill Bespalov64617172017-07-11 14:43:14 +0300269
Filip Pytloun4a72d792015-10-06 16:28:32 +0200270Compute nodes
271-------------
272
OlgaGusarenko9dd01c92018-07-31 00:49:30 +0300273Nova controller services on compute node:
Filip Pytloun4a72d792015-10-06 16:28:32 +0200274
275.. code-block:: yaml
276
277 nova:
278 compute:
279 version: juno
280 enabled: true
Mykyta Karpin5ef9f982019-02-07 18:40:00 +0200281 timeout_nbd: 10
282 heal_instance_info_cache_interval: 60
Dmitry Stremkovskiy2bcba8d2017-07-30 21:43:59 +0300283 cross_az_attach: false
Dmitry Stremkovskiy35e53b72017-07-29 12:50:39 +0300284 disk_cachemodes: network=writeback,block=none
Jiri Broulik70d9e3f2017-02-15 18:37:13 +0100285 availability_zone: availability_zone_01
Damian Szelugae1922412017-04-18 16:36:46 +0200286 aggregates:
287 - hosts_with_fc
288 - hosts_with_ssd
Filip Pytloun4a72d792015-10-06 16:28:32 +0200289 security_group: true
Petr Michalecf03e4882017-04-10 10:26:18 +0200290 resume_guests_state_on_host_boot: False
Michael Polenchuk159c2542018-06-09 15:31:51 +0400291 preallocate_images: space # Default is 'none'
Dmitry Stremkovskiy8a0ff512017-07-25 20:54:13 +0300292 my_ip: 10.1.0.16
Vasyl Saienko09b6ac32019-01-17 15:23:58 +0200293 vif_plugging_timeout: 300
294 vif_plugging_is_fatal: false
Filip Pytloun4a72d792015-10-06 16:28:32 +0200295 bind:
296 vnc_address: 172.20.0.100
297 vnc_port: 6080
298 vnc_name: openstack.domain.com
299 vnc_protocol: http
300 database:
301 engine: mysql
302 host: 127.0.0.1
303 port: 3306
304 name: nova
305 user: nova
306 password: pwd
307 identity:
308 engine: keystone
309 host: 127.0.0.1
310 port: 35357
311 user: nova
312 password: pwd
313 tenant: service
314 message_queue:
315 engine: rabbitmq
316 host: 127.0.0.1
317 port: 5672
318 user: openstack
319 password: pwd
320 virtual_host: '/openstack'
321 image:
322 engine: glance
323 host: 127.0.0.1
324 port: 9292
Oleh Hryhorovf5093b82018-10-17 11:16:08 +0000325 pci:
326 alias:
327 alias1:
328 device_type: "type-PF"
329 name: "a1"
330 product_id: "154d"
331 vendor_id: "8086"
Oleksandr Pidrepnyi14f08272019-02-20 12:48:17 +0200332 passthrough_whitelist:
333 - vendor_id: "10de"
334 product_id: "1db4"
Filip Pytloun4a72d792015-10-06 16:28:32 +0200335 network:
336 engine: neutron
337 host: 127.0.0.1
338 port: 9696
339 identity:
340 engine: keystone
341 host: 127.0.0.1
342 port: 35357
343 user: neutron
344 password: pwd
345 tenant: service
346 qemu:
347 max_files: 4096
348 max_processes: 4096
Dmitry Stremkovskiy96281f52017-07-26 00:39:22 +0300349 host: node-12.domain.tld
Filip Pytloun4a72d792015-10-06 16:28:32 +0200350
Vasyl Saienkocab3a902018-07-12 13:17:17 +0300351Compute with vmware driver. Each vmware cluster requires a separate process of nova-compute.
352Each process should have uniq host identifier. However multiple computes might be running on
353single host. It is not recommended to have multiple computes running on different hosts that
354manage the same vmware cluster. To achive this pacemaker/corosync or keepalived might be used.
355
356.. code-block:: yaml
357
358 nova:
359 compute:
360 compute_driver: vmwareapi.VMwareVCDriver
361 vmware:
362 host_username: vmware
363 host_password: vmware
364 cluster_name: vmware_cluster01
365 host_ip: 1.2.3.4
366
OlgaGusarenko9dd01c92018-07-31 00:49:30 +0300367Group and user to be used for QEMU processes run by the system instance:
kkalynovskyif50f0c02017-12-12 17:52:57 +0200368
369.. code-block:: yaml
370
371 nova:
372 compute:
373 enabled: true
374 ...
375 qemu:
376 user: nova
377 group: cinder
378 dynamic_ownership: 1
379
OlgaGusarenko9dd01c92018-07-31 00:49:30 +0300380Group membership for user nova (upgrade related):
Dmitry Stremkovskiy3cd6ba82017-07-25 17:15:36 +0300381
382.. code-block:: yaml
383
384 nova:
385 compute:
386 enabled: true
387 ...
388 user:
389 groups:
390 - libvirt
Filip Pytloun4a72d792015-10-06 16:28:32 +0200391
OlgaGusarenko9dd01c92018-07-31 00:49:30 +0300392Nova services on compute node with OpenContrail:
Filip Pytloun4a72d792015-10-06 16:28:32 +0200393
394.. code-block:: yaml
395
396 nova:
397 compute:
398 enabled: true
399 ...
400 networking: contrail
401
Oleksandr Bryndziibb8abfe2018-09-28 22:21:43 +0000402Nova services on compute node with memcached caching and security strategy:
Filip Pytloun4a72d792015-10-06 16:28:32 +0200403
404.. code-block:: yaml
405
406 nova:
407 compute:
408 enabled: true
409 ...
410 cache:
411 engine: memcached
412 members:
413 - host: 127.0.0.1
414 port: 11211
415 - host: 127.0.0.1
416 port: 11211
Oleksandr Bryndziibb8abfe2018-09-28 22:21:43 +0000417 security:
418 enabled: true
419 strategy: ENCRYPT
420 secret_key: secret
Filip Pytloun4a72d792015-10-06 16:28:32 +0200421
OlgaGusarenko9dd01c92018-07-31 00:49:30 +0300422Client-side RabbitMQ HA setup:
Jiri Konecnye31f2c52016-04-14 17:16:02 +0200423
424.. code-block:: yaml
425
426 nova:
Kirill Bespalov64617172017-07-11 14:43:14 +0300427 compute:
Jiri Konecnye31f2c52016-04-14 17:16:02 +0200428 ....
429 message_queue:
430 engine: rabbitmq
431 members:
432 - host: 10.0.16.1
433 - host: 10.0.16.2
434 - host: 10.0.16.3
435 user: openstack
436 password: pwd
437 virtual_host: '/openstack'
438 ....
439
OlgaGusarenko9dd01c92018-07-31 00:49:30 +0300440Nova with ephemeral configured with Ceph:
maxstack39e6aca2016-05-04 13:50:13 +0000441
442.. code-block:: yaml
443
444 nova:
445 compute:
446 enabled: true
447 ...
448 ceph:
449 ephemeral: yes
450 rbd_pool: nova
451 rbd_user: nova
452 secret_uuid: 03006edd-d957-40a3-ac4c-26cd254b3731
Kalynovskyi0bc79692017-07-21 16:22:09 +0300453 ....
maxstack39e6aca2016-05-04 13:50:13 +0000454
OlgaGusarenko9dd01c92018-07-31 00:49:30 +0300455Nova with ephemeral configured with LVM:
Kalynovskyi0bc79692017-07-21 16:22:09 +0300456
457.. code-block:: yaml
458
459 nova:
460 compute:
461 enabled: true
462 ...
463 lvm:
464 ephemeral: yes
465 images_volume_group: nova_vg
466
467 linux:
468 storage:
469 lvm:
470 nova_vg:
471 name: nova_vg
472 devices:
473 - /dev/sdf
474 - /dev/sdd
475 - /dev/sdg
476 - /dev/sde
477 - /dev/sdc
478 - /dev/sdj
479 - /dev/sdh
maxstack39e6aca2016-05-04 13:50:13 +0000480
OlgaGusarenko9dd01c92018-07-31 00:49:30 +0300481Enable Barbican integration:
Oleg Iurchenko370c10d2017-10-19 14:03:37 +0300482
483.. code-block:: yaml
484
485 nova:
486 compute:
487 ....
488 barbican:
489 enabled: true
490
Oleksandr Pidrepnyi14f08272019-02-20 12:48:17 +0200491Define aliases for a PCI passthrough devices:
Oleh Hryhorovf5093b82018-10-17 11:16:08 +0000492.. code-block:: yaml
493
494 nova:
495 compute:
496 ...
497 pci:
498 alias:
499 alias1:
500 device_type: "type-PF"
501 name: "a1"
502 product_id: "154d"
503 vendor_id: "8086"
504
Oleksandr Pidrepnyi14f08272019-02-20 12:48:17 +0200505Define white list of PCI devices available to VMs:
506.. code-block:: yaml
507
508 nova:
509 compute:
510 ...
511 pci:
512 passthrough_whitelist:
513 - vendor_id: "10de"
514 product_id: "1db4"
515
OlgaGusarenko9dd01c92018-07-31 00:49:30 +0300516Nova metadata custom bindings:
Vasyl Saienko2d591282018-02-05 14:19:02 +0200517
518.. code-block:: yaml
519
520 nova:
521 controller:
522 enabled: true
523 ...
524 metadata:
525 bind:
526 address: 1.2.3.4
527 port: 8776
528
Oleh Hryhorov08482aa2018-11-19 14:07:47 +0200529Define multipath for nova compute:
530
531.. code-block:: yaml
532
533 nova:
534 compute:
535 ....
536 libvirt:
537 volume_use_multipath: True
538
Oleh Hryhorovce1f2142019-03-06 17:00:00 +0000539To disable or enable StrictHostKeyChecking and discover
540compute nodes fingerprints the below pillar should be used:
541
542.. code-block:: yaml
543
544 nova:
545 compute:
546 ....
547 openssh:
548 stricthostkeychecking: True
549 discover_compute_hosts: True
550
Jiri Broulik0ce9fc92017-02-01 23:10:40 +0100551Client role
552-----------
553
OlgaGusarenko9dd01c92018-07-31 00:49:30 +0300554Nova configured with NFS:
Dmitry Stremkovskiy665c7282017-07-05 17:36:27 +0300555
556.. code-block:: yaml
557
558 nova:
559 compute:
560 instances_path: /mnt/nova/instances
561
562 linux:
563 storage:
564 enabled: true
565 mount:
566 nfs_nova:
567 enabled: true
568 path: ${nova:compute:instances_path}
569 device: 172.31.35.145:/data
570 file_system: nfs
571 opts: rw,vers=3
572
OlgaGusarenko9dd01c92018-07-31 00:49:30 +0300573Nova flavors:
Jiri Broulik0ce9fc92017-02-01 23:10:40 +0100574
575.. code-block:: yaml
576
577 nova:
578 client:
579 enabled: true
580 server:
581 identity:
582 flavor:
Jiri Broulik70d9e3f2017-02-15 18:37:13 +0100583 flavor1:
Jiri Broulik0ce9fc92017-02-01 23:10:40 +0100584 flavor_id: 10
585 ram: 4096
586 disk: 10
587 vcpus: 1
Jiri Broulik70d9e3f2017-02-15 18:37:13 +0100588 flavor2:
589 flavor_id: auto
590 ram: 4096
591 disk: 20
592 vcpus: 2
Jiri Broulik0ce9fc92017-02-01 23:10:40 +0100593 identity1:
594 flavor:
595 ...
596
OlgaGusarenko9dd01c92018-07-31 00:49:30 +0300597Availability zones:
Jiri Broulik70d9e3f2017-02-15 18:37:13 +0100598
599.. code-block:: yaml
600
601 nova:
602 client:
603 enabled: true
604 server:
605 identity:
606 availability_zones:
607 - availability_zone_01
608 - availability_zone_02
609
OlgaGusarenko9dd01c92018-07-31 00:49:30 +0300610Aggregates:
Damian Szeluga5dca0f02017-04-13 17:27:15 +0200611
612.. code-block:: yaml
613
614 nova:
615 client:
616 enabled: true
617 server:
618 identity:
619 aggregates:
620 - aggregate1
621 - aggregate2
622
OlgaGusarenko9dd01c92018-07-31 00:49:30 +0300623Upgrade levels:
Dmitry Stremkovskiy91f45852017-07-18 16:22:31 +0300624
625.. code-block:: yaml
626
627 nova:
628 controller:
629 upgrade_levels:
630 compute: juno
631
632 nova:
633 compute:
634 upgrade_levels:
635 compute: juno
636
Petr Jedinýd855ef22017-03-06 22:24:33 +0100637SR-IOV
Jakub Pavlik39a05942017-02-13 23:03:08 +0100638------
639
OlgaGusarenko9dd01c92018-07-31 00:49:30 +0300640Add ``PciPassthroughFilter`` into scheduler filters and NICs on
641specific compute nodes:
Jakub Pavlik39a05942017-02-13 23:03:08 +0100642
643.. code-block:: yaml
644
645 nova:
646 controller:
647 sriov: true
sandriichenko4fe321d2018-01-22 17:34:06 +0000648 scheduler_default_filters: "DifferentHostFilter,SameHostFilter,RetryFilter,AvailabilityZoneFilter,RamFilter,CoreFilter,DiskFilter,ComputeFilter,ComputeCapabilitiesFilter,ImagePropertiesFilter,ServerGroupAntiAffinityFilter,ServerGroupAffinityFilter,PciPassthroughFilter"
Jakub Pavlik39a05942017-02-13 23:03:08 +0100649
650 nova:
651 compute:
652 sriov:
653 nic_one:
654 devname: eth1
655 physical_network: physnet1
656
Oleh Hryhorovf5093b82018-10-17 11:16:08 +0000657.. note:: Parameters located under nova:compute:sriov:<nic_name> are copied to passthrough_whitelist parameter into
658 nova.conf file in appropriate format.
659
Jakub Pavlik26fb85c2017-02-16 22:29:22 +0100660CPU pinning & Hugepages
661-----------------------
662
OlgaGusarenko9dd01c92018-07-31 00:49:30 +0300663CPU pinning of virtual machine instances to dedicated physical
664CPU cores. Hugepages mount point for libvirt.
Jakub Pavlik26fb85c2017-02-16 22:29:22 +0100665
666.. code-block:: yaml
667
668 nova:
669 controller:
sandriichenko4fe321d2018-01-22 17:34:06 +0000670 scheduler_default_filters: "DifferentHostFilter,SameHostFilter,RetryFilter,AvailabilityZoneFilter,RamFilter,CoreFilter,DiskFilter,ComputeFilter,ComputeCapabilitiesFilter,ImagePropertiesFilter,ServerGroupAntiAffinityFilter,ServerGroupAffinityFilter,NUMATopologyFilter,AggregateInstanceExtraSpecsFilter"
Jakub Pavlik26fb85c2017-02-16 22:29:22 +0100671
672 nova:
673 compute:
674 vcpu_pin_set: 2,3,4,5
675 hugepages:
676 mount_points:
677 - path: /mnt/hugepages_1GB
678 - path: /mnt/hugepages_2MB
Jiri Broulik0ce9fc92017-02-01 23:10:40 +0100679
Michel Nederlof171c7ac2017-04-13 12:54:14 +0200680Custom Scheduler filters
681------------------------
682
OlgaGusarenko9dd01c92018-07-31 00:49:30 +0300683If you have a custom filter, that needs to be included in the
684scheduler, then you can include it like so:
Michel Nederlof171c7ac2017-04-13 12:54:14 +0200685
686.. code-block:: yaml
687
688 nova:
689 controller:
690 scheduler_custom_filters:
691 - my_custom_driver.nova.scheduler.filters.my_custom_filter.MyCustomFilter
692
693 # 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 +0000694 scheduler_default_filters: "DifferentHostFilter,SameHostFilter,RetryFilter,AvailabilityZoneFilter,RamFilter,CoreFilter,DiskFilter,ComputeFilter,ComputeCapabilitiesFilter,ImagePropertiesFilter,ServerGroupAntiAffinityFilter,ServerGroupAffinityFilter,PciPassthroughFilter,MyCustomFilter"
Michel Nederlof171c7ac2017-04-13 12:54:14 +0200695
Michael Polenchuk2bce2cb2018-09-17 16:05:43 +0400696 # Since Queens version a sequence could be used as well:
697 ~scheduler_default_filters:
698 - DifferentHostFilter
699 - SameHostFilter
700 ...
701 - MyCustomFilter
702
703
Michel Nederlofeb566f62017-04-21 15:37:47 +0200704Hardware Trip/Unmap Support
705---------------------------
706
OlgaGusarenko9dd01c92018-07-31 00:49:30 +0300707To enable TRIM support for ephemeral images (thru nova managed
708images), libvirt has this option:
Michel Nederlofeb566f62017-04-21 15:37:47 +0200709
710.. code-block:: yaml
711
712 nova:
713 compute:
714 libvirt:
715 hw_disk_discard: unmap
716
OlgaGusarenko9dd01c92018-07-31 00:49:30 +0300717To actually utilize this feature, the following metadata must be
718set on the image as well, so the SCSI unmap is supported:
Michel Nederlofeb566f62017-04-21 15:37:47 +0200719
720.. code-block:: bash
721
722 glance image-update --property hw_scsi_model=virtio-scsi <image>
723 glance image-update --property hw_disk_bus=scsi <image>
Filip Pytloun5bc9e9f2017-02-02 13:05:40 +0100724
Thom Gerdesf582f1e2017-05-02 18:05:50 +0000725Scheduler Host Manager
726----------------------
727
728Specify a custom host manager.
729
Thom Gerdesec00afd2017-04-07 18:06:59 +0000730libvirt CPU mode
731----------------
732
OlgaGusarenko9dd01c92018-07-31 00:49:30 +0300733Allow setting the model of CPU that is exposed to a VM. This
734allows for better support live migration between hypervisors with
735different hardware, among other things. Defaults to host-passthrough.
Jakub Pavlik7046b9c2017-09-19 12:04:19 +0200736
Thom Gerdesf582f1e2017-05-02 18:05:50 +0000737.. code-block:: yaml
738
739 nova:
740 controller:
741 scheduler_host_manager: ironic_host_manager
742
Thom Gerdesec00afd2017-04-07 18:06:59 +0000743 compute:
744 cpu_mode: host-model
745
Dzmitry Stremkouski7da9bf12018-04-25 22:30:37 +0200746Nova compute cpu model
747----------------------
748
749.. code-block:: yaml
750
751 nova:
752 compute:
753 cpu_mode: custom
754 libvirt:
755 cpu_model: IvyBridge
756
Oleksandr Pidrepnyid9020082019-03-04 19:18:19 +0200757RNG (Random Number Generator) device path
758----------------------
759
760The path to an RNG (Random Number Generator) device that will be used
761as the source of entropy on the host.
762The recommended source of entropy is /dev/urandom.
763Permitted options are: /dev/random, /dev/urandom or /dev/hwrng.
764Default: /dev/urandom
765
766.. code-block:: yaml
767
768 nova:
769 controller:
770 libvirt:
771 rng_dev_path: /dev/random
772
773 compute:
774 libvirt:
775 rng_dev_path: /dev/random
776
Dzmitry Stremkouski7da9bf12018-04-25 22:30:37 +0200777
Michel Nederloff7eefb22017-07-10 11:14:33 +0200778Nova compute workarounds
779------------------------
780
OlgaGusarenko9dd01c92018-07-31 00:49:30 +0300781Live snapshotting is disabled by default in nova. To enable
782this, it needs a manual switch.
Michel Nederloff7eefb22017-07-10 11:14:33 +0200783
784From manual:
785
786.. code-block:: yaml
787
OlgaGusarenko9dd01c92018-07-31 00:49:30 +0300788 When using libvirt 1.2.2 live snapshots fail intermittently under load
789 (likely related to concurrent libvirt/qemu operations). This config
790 option provides a mechanism to disable live snapshot, in favor of cold
791 snapshot, while this is resolved. Cold snapshot causes an instance
792 outage while the guest is going through the snapshotting process.
793
794 For more information, refer to the bug report:
795
796 https://bugs.launchpad.net/nova/+bug/1334398
Michel Nederloff7eefb22017-07-10 11:14:33 +0200797
798Configurable pillar data:
799
800.. code-block:: yaml
801
802 nova:
803 compute:
Michel Nederlofe322ebb2017-07-10 12:29:21 +0200804 workaround:
Michel Nederloff7eefb22017-07-10 11:14:33 +0200805 disable_libvirt_livesnapshot: False
806
Michel Nederlofb51a5142017-06-27 08:31:35 +0200807Config drive options
808--------------------
809
OlgaGusarenko9dd01c92018-07-31 00:49:30 +0300810See example below on how to configure the options for the
811config drive:
Michel Nederlofb51a5142017-06-27 08:31:35 +0200812
813.. code-block:: yaml
814
815 nova:
816 compute:
817 config_drive:
818 forced: True # Default: True
819 cdrom: True # Default: False
820 format: iso9660 # Default: vfat
821 inject_password: False # Default: False
822
Michel Nederloff81919b2017-11-20 09:37:07 +0100823Number of concurrent live migrates
824----------------------------------
825
OlgaGusarenko9dd01c92018-07-31 00:49:30 +0300826Default is to have no concurrent live migrations (so 1
827live-migration at a time).
Michel Nederloff81919b2017-11-20 09:37:07 +0100828
OlgaGusarenko9dd01c92018-07-31 00:49:30 +0300829Excerpt from config options page
830https://docs.openstack.org/ocata/config-reference/compute/config-options.html:
Michel Nederloff81919b2017-11-20 09:37:07 +0100831
OlgaGusarenko9dd01c92018-07-31 00:49:30 +0300832Maximum number of live migrations to run concurrently. This limit is
833enforced to avoid outbound live migrations overwhelming the host/network
834and causing failures. It is not recommended that you change this unless
835you are very sure that doing so is safe and stable in your environment.
Michel Nederloff81919b2017-11-20 09:37:07 +0100836
OlgaGusarenko9dd01c92018-07-31 00:49:30 +0300837Possible values:
Michel Nederloff81919b2017-11-20 09:37:07 +0100838
OlgaGusarenko9dd01c92018-07-31 00:49:30 +0300839- 0 : treated as unlimited.
840- Negative value defaults to 0.
841- Any positive integer representing maximum number of live migrations
842 to run concurrently.
Michel Nederloff81919b2017-11-20 09:37:07 +0100843
844To configure this option:
845
846.. code-block:: yaml
847
848 nova:
849 compute:
850 max_concurrent_live_migrations: 1 # (1 is the default)
851
Sergio Lystopad9d31cba2018-05-15 11:29:11 +0300852Live migration with auto converge
853----------------------------------
854
OlgaGusarenko9dd01c92018-07-31 00:49:30 +0300855Auto converge throttles down CPU if a progress of on-going live
856migration is slow
857https://docs.openstack.org/ocata/config-reference/compute/config-options.html:
Sergio Lystopad9d31cba2018-05-15 11:29:11 +0300858
859.. code-block:: yaml
860
861 nova:
862 compute:
863 libvirt:
864 live_migration_permit_auto_converge: False # (False is the default)
865
866.. code-block:: yaml
867
868 nova:
869 controller:
870 libvirt:
871 live_migration_permit_auto_converge: False # (False is the default)
872
Dmitry Kalashnike58fe082017-12-01 16:31:14 +0400873Enhanced logging with logging.conf
874----------------------------------
875
OlgaGusarenko9dd01c92018-07-31 00:49:30 +0300876By default ``logging.conf`` is disabled.
Dmitry Kalashnike58fe082017-12-01 16:31:14 +0400877
878That is possible to enable per-binary logging.conf with new variables:
Dmitry Kalashnike58fe082017-12-01 16:31:14 +0400879
OlgaGusarenko9dd01c92018-07-31 00:49:30 +0300880* ``openstack_log_appender``
881 Set to true to enable log_config_append for all OpenStack services
882
883* ``openstack_fluentd_handler_enabled``
884 Set to true to enable FluentHandler for all Openstack services
885
886* ``openstack_ossyslog_handler_enabled``
887 Set to true to enable OSSysLogHandler for all Openstack services
888
889Only ``WatchedFileHandler``, ``OSSysLogHandler``, and ``FluentHandler``
890are available.
Dmitry Kalashnike58fe082017-12-01 16:31:14 +0400891
Dmitry Kalashnik8da249c2018-01-16 17:58:00 +0400892Also it is possible to configure this with pillar:
Dmitry Kalashnike58fe082017-12-01 16:31:14 +0400893
894.. code-block:: yaml
895
896 nova:
897 controller:
898 logging:
899 log_appender: true
900 log_handlers:
901 watchedfile:
902 enabled: true
903 fluentd:
904 enabled: true
Oleksii Chupryn99e35032018-02-06 01:59:40 +0200905 ossyslog:
906 enabled: true
Dmitry Kalashnike58fe082017-12-01 16:31:14 +0400907
908 compute:
909 logging:
910 log_appender: true
911 log_handlers:
912 watchedfile:
913 enabled: true
914 fluentd:
915 enabled: true
Oleksii Chupryn99e35032018-02-06 01:59:40 +0200916 ossyslog:
917 enabled: true
Thom Gerdesf582f1e2017-05-02 18:05:50 +0000918
Vasyl Saienko7243a952018-05-11 21:26:54 +0300919The log level might be configured per logger by using the
920following pillar structure:
921
922.. code-block:: yaml
923
924 nova:
925 compute:
926 logging:
927 loggers:
928 <logger_name>:
929 level: WARNING
930
931 nova:
932 compute:
933 logging:
934 loggers:
935 <logger_name>:
936 level: WARNING
937
Oleh Hryhorove38525d2018-05-15 08:58:59 +0000938Configure syslog parameters for libvirtd
939----------------------------------------
940
OlgaGusarenko9dd01c92018-07-31 00:49:30 +0300941To configure syslog parameters for libvirtd the below pillar
942structure should be used with values which are supported
Oleh Hryhorove38525d2018-05-15 08:58:59 +0000943by libvirtd. These values might be known from the documentation.
944
OlgaGusarenko9dd01c92018-07-31 00:49:30 +0300945.. code-block:: yaml
946
Oleh Hryhorove38525d2018-05-15 08:58:59 +0000947 nova:
948 compute:
949 libvirt:
950 logging:
951 level: 3
952 filters: '3:remote 4:event'
953 outputs: '3:syslog:libvirtd'
954 buffer_size: 64
955
OlgaGusarenko9dd01c92018-07-31 00:49:30 +0300956Logging controls:
Oleh Hryhorove38525d2018-05-15 08:58:59 +0000957
OlgaGusarenko9dd01c92018-07-31 00:49:30 +0300958Logging level: 4 errors, 3 warnings, 2 information, 1 debug
959basically 1 will log everything possible ``log_level = 3``
Oleh Hryhorove38525d2018-05-15 08:58:59 +0000960
OlgaGusarenko9dd01c92018-07-31 00:49:30 +0300961Logging filters:
Oleh Hryhorove38525d2018-05-15 08:58:59 +0000962
OlgaGusarenko9dd01c92018-07-31 00:49:30 +0300963A filter allows to select a different logging level for a given category
964of logs.
Oleh Hryhorove38525d2018-05-15 08:58:59 +0000965
OlgaGusarenko9dd01c92018-07-31 00:49:30 +0300966The format for a filter is one of:
Oleh Hryhorove38525d2018-05-15 08:58:59 +0000967
OlgaGusarenko9dd01c92018-07-31 00:49:30 +0300968* ``x:name``
969* ``x:+name``
970 where name is a string which is matched against source file name,
971 e.g., ``remote``, ``qemu``, or ``util/json``, the optional ``+`` prefix
972 tells libvirt to log stack trace for each message matching name,
973 and x is the minimal level where matching messages should be logged:
Oleh Hryhorove38525d2018-05-15 08:58:59 +0000974
OlgaGusarenko9dd01c92018-07-31 00:49:30 +0300975* ``1: DEBUG``
976* ``2: INFO``
977* ``3: WARNING``
978* ``4: ERROR``
979
980Multiple filter can be defined in a single @filters, they just
981need to be separated by spaces.
982
983For example, to only get warning or errors from the remote layer
984and only errors from the event layer: ``log_filters="3:remote 4:event``
985
986Logging outputs:
987
988An output is one of the places to save logging information
989The format for an output can be:
990
991* ``x:stderr``
992 Output goes to stderr
993
994* ``x:syslog:name``
995 Use syslog for the output and use the given name as the ident
996
997* ``x:file:file_path``
998 output to a file, with the given filepath
999
1000 In all case the x prefix is the minimal level, acting as a filter
1001
1002* ``1: DEBUG``
1003* ``2: INFO``
1004* ``3: WARNING``
1005* ``4: ERROR``
1006
1007Multiple output can be defined, they just need to be separated by spaces.
1008For example, to log all warnings and errors to syslog under the libvirt
1009dident: ``log_outputs="3:syslog:libvirtd``
1010
1011Log debug buffer size: default 64
1012The daemon keeps an internal debug log buffer which will be dumped
1013in case of crash or upon receiving a ``SIGUSR2`` signal. This setting
1014allows to override the default buffer size in kilobytes.
1015If value is ``0`` or less the debug log buffer is deactivated
1016``log_buffer_size = 64``
1017
1018To configure the logging parameters for QEMU, the below pillar
1019structure and logging parameters should be used:
1020
1021.. code-block:: yaml
1022
1023 nova:
1024 compute:
1025 qemu:
1026 logging:
1027 handler: logd
1028 virtlog:
1029 enabled: true
1030 level: 4
1031 filters: '3:remote 3:event'
1032 outputs: '4:syslog:virtlogd'
1033 max_clients: 512
1034 max_size: 2097100
1035 max_backups: 2
Oleh Hryhorove38525d2018-05-15 08:58:59 +00001036
Oleksandr Shyshko981b4fa2018-05-02 15:39:30 +03001037Inject password to VM
1038---------------------
1039
OlgaGusarenko9dd01c92018-07-31 00:49:30 +03001040By default nova blocks up any inject to VM because
1041``inject_partition`` param is equal to ``-2``.
1042If you want to inject password to VM, you will need to
1043define ``inject_partition`` greater or equal to ``-1`` and
1044define ``inject_password`` to ``True``
Oleksandr Shyshko981b4fa2018-05-02 15:39:30 +03001045
1046For example:
1047
OlgaGusarenko9dd01c92018-07-31 00:49:30 +03001048.. code-block:: yaml
1049
Oleksandr Shyshko981b4fa2018-05-02 15:39:30 +03001050 nova:
1051 compute:
1052 inject_partition: '-1'
1053 inject_password: True
1054
OlgaGusarenko9dd01c92018-07-31 00:49:30 +03001055Allow the injection of an admin password for instance only at
1056``create`` and ``rebuild`` process.
1057
1058There is no agent needed within the image to do this. If *libguestfs* is
1059available on the host, it will be used. Otherwise *nbd* is used. The file
1060system of the image will be mounted and the admin password, which is provided
1061in the REST API call will be injected as password for the root user. If no
1062root user is available, the instance won't be launched and an error is thrown.
1063Be aware that the injection is *not* possible when the instance gets launched
1064from a volume.
1065
1066Possible values:
1067
1068* ``True``
1069 Allows the injection
1070
1071* ``False`` (default)
1072 Disallows the injection. Any via the REST API provided
1073 admin password will be silently ignored.
1074
1075Related options:
1076
1077* ``inject_partition``
1078 Decides about the discovery and usage of the file system.
1079 It also can disable the injection at all.
1080 (boolean value)
Oleksandr Shyshko981b4fa2018-05-02 15:39:30 +03001081
1082You can read more about injecting the administrator password here:
OlgaGusarenko9dd01c92018-07-31 00:49:30 +03001083https://docs.openstack.org/nova/queens/admin/admin-password-injection.html
Oleksandr Shyshko981b4fa2018-05-02 15:39:30 +03001084
Oleksandr Shyshko1c020d12018-05-24 12:47:08 +03001085Enable libvirt control channel over TLS
OlgaGusarenko9dd01c92018-07-31 00:49:30 +03001086---------------------------------------
Oleksandr Shyshko1c020d12018-05-24 12:47:08 +03001087
1088By default TLS is disabled.
1089
OlgaGusarenko9dd01c92018-07-31 00:49:30 +03001090Enable TLS transport:
1091
1092.. code-block:: yaml
Oleksandr Shyshko1c020d12018-05-24 12:47:08 +03001093
1094 compute:
1095 libvirt:
1096 tls:
1097 enabled: True
1098
1099You able to set custom certificates in pillar:
1100
OlgaGusarenko9dd01c92018-07-31 00:49:30 +03001101.. code-block:: yaml
1102
Oleksandr Shyshko1c020d12018-05-24 12:47:08 +03001103 nova:
1104 compute:
1105 libvirt:
1106 tls:
1107 key: (certificate content)
1108 cert: (certificate content)
1109 cacert: (certificate content)
1110 client:
1111 key: (certificate content)
1112 cert: (certificate content)
1113
Dmitry Teselkin77d9dac2019-04-18 16:43:50 +03001114It is possible to limit allowed SSL / TLS ciphers using libvirt's tls_priority:
1115
1116.. code-block:: yaml
1117
1118 nova:
1119 compute:
1120 libvirt:
1121 tls:
1122 priority: <TLS priority string>
1123
1124Example priority strings are:
1125
1126- The system imposed security level:
1127
1128.. code-block:: text
1129
1130 "SYSTEM"
1131
1132- The default priority without the HMAC-MD5:
1133
1134.. code-block:: text
1135
1136 "NORMAL:-MD5"
1137
1138- Specifying RSA with AES-128-CBC:
1139
1140.. code-block:: text
1141
1142 "NONE:+VERS-TLS-ALL:+MAC-ALL:+RSA:+AES-128-CBC:+SIGN-ALL:+COMP-NULL"
1143
1144- Specifying the defaults plus ARCFOUR-128:
1145
1146.. code-block:: text
1147
1148 "NORMAL:+ARCFOUR-128"
1149
1150- Enabling the 128-bit secure ciphers, while disabling TLS 1.0:
1151
1152.. code-block:: text
1153
1154 "SECURE128:-VERS-TLS1.0"
1155
1156- Enabling the 128-bit and 192-bit secure ciphers, while disabling all TLS
1157 versions except TLS 1.2:
1158
1159.. code-block:: text
1160
1161 "SECURE128:+SECURE192:-VERS-ALL:+VERS-TLS1.2"
1162
1163More on TLS Priority Strings:
1164
1165- https://gnutls.org/manual/html_node/Priority-Strings.html
1166
Vasyl Saienko11ac9732018-10-02 17:04:33 +00001167Controlling access by `tls_allowed_dn_list`.
1168Enable an access control list of client certificate Distinguished Names (DNs)
1169which can connect to the TLS port on this server. The default is that DNs are
1170not checked. This list may contain wildcards such as
1171"C=GB,ST=London,L=London,O=Libvirt Project,CN=*" See the POSIX fnmatch function
1172for the format of the wildcards.
1173Note that if this is an empty list, no client can connect.
1174Note also that GnuTLS returns DNs without spaces after commas between
1175the fields (and this is what we check against), but the openssl x509 tool
1176shows spaces.
1177
1178.. code-block:: yaml
1179
1180 nova:
1181 compute:
1182 libvirt:
1183 tls:
1184 tls_allowed_dn_list:
1185 host1:
1186 enabled: true
1187 value: 'C=foo,CN=cmp1'
1188 host2:
1189 enabled: true
1190 value: 'C=foo,CN=cmp2'
1191
1192
Oleksandr Shyshko1c020d12018-05-24 12:47:08 +03001193You can read more about live migration over TLS here:
OlgaGusarenko9dd01c92018-07-31 00:49:30 +03001194https://wiki.libvirt.org/page/TLSCreateServerCerts
Oleksandr Shyshko981b4fa2018-05-02 15:39:30 +03001195
Oleksandr Shyshko1195fca2018-07-09 18:22:59 +03001196Enable transport + authentication for VNC over TLS
1197---------------------
Oleksandr Shyshkod8337cf2018-07-11 17:55:58 +03001198# Only for Queens. Communication between noVNC proxy service and QEMU
Oleksandr Shyshko1195fca2018-07-09 18:22:59 +03001199
1200By default communication between nova-novncproxy and qemu service is unsecure.
1201
1202compute:
1203 qemu:
1204 vnc:
1205 tls:
1206 enabled: True
1207
1208controller:
1209 novncproxy:
Oleksandr Shyshkod8337cf2018-07-11 17:55:58 +03001210 # This section responsible for communication between noVNC proxy and client machine
Oleksandr Shyshko1195fca2018-07-09 18:22:59 +03001211 tls:
1212 enabled: True
Oleksandr Shyshkod8337cf2018-07-11 17:55:58 +03001213 # This section responsible for communication between nova-novncproxy and qemu service
1214 vencrypt:
1215 tls:
1216 enabled: True
Oleksandr Shyshko1195fca2018-07-09 18:22:59 +03001217
1218You able to set custom certificates in pillar:
1219
Oleksandr Shyshkod8337cf2018-07-11 17:55:58 +03001220nova:
1221 compute:
1222 qemu:
1223 vnc:
1224 tls:
1225 cacert (certificate content)
1226 cert (certificate content)
1227 key (certificate content)
1228
1229nova:
1230 controller:
1231 novncproxy:
1232 tls:
1233 server:
1234 cert (certificate content)
1235 key (certificate content)
1236 vencrypt:
1237 tls:
1238 cacert (certificate content)
1239 cert (certificate content)
1240 key (certificate content)
1241
1242
1243You can read more about it here:
1244 https://docs.openstack.org/nova/queens/admin/remote-console-access.html
1245
1246Enable communication between noVNC proxy and client machine over TLS
1247---------------------
1248
1249By default communication between noVNC proxy and client machine is unsecure.
1250
1251 controller:
1252 novncproxy:
1253 tls:
1254 enabled: True
Oleksandr Shyshko1195fca2018-07-09 18:22:59 +03001255
1256 nova:
1257 controller:
1258 novncproxy:
1259 tls:
Oleksandr Shyshkod8337cf2018-07-11 17:55:58 +03001260 server:
1261 cert (certificate content)
1262 key (certificate content)
Oleksandr Shyshko1195fca2018-07-09 18:22:59 +03001263
1264You can read more about it here:
Oleksandr Shyshkod8337cf2018-07-11 17:55:58 +03001265 https://docs.openstack.org/mitaka/config-reference/dashboard/configure.html
Oleksandr Shyshko1195fca2018-07-09 18:22:59 +03001266
Oleksandr Shyshko55eeac72018-08-03 18:23:28 +03001267Enable x509 and ssl communication between Nova and Galera cluster.
1268---------------------
1269By default communication between Nova and Galera is unsecure.
1270
Oleksandr Shyshkocbe87352018-09-07 13:42:57 +03001271nova:
1272 controller:
1273 database:
1274 x509:
1275 enabled: True
1276
Oleksandr Shyshko55eeac72018-08-03 18:23:28 +03001277You able to set custom certificates in pillar:
Oleksandr Shyshko55eeac72018-08-03 18:23:28 +03001278
1279nova:
1280 controller:
1281 database:
1282 x509:
Oleksandr Shyshkocbe87352018-09-07 13:42:57 +03001283 cacert: (certificate content)
1284 cert: (certificate content)
1285 key: (certificate content)
Oleksandr Shyshko55eeac72018-08-03 18:23:28 +03001286
1287You can read more about it here:
1288 https://docs.openstack.org/security-guide/databases/database-access-control.html
1289
Oleksandr Shyshkod96a0992019-03-29 11:18:25 +00001290Define config option which allows to use nova-api service behind proxy.(Only Mitaka)
1291---------------------
1292The HTTP Header that will be used to determine what the original request protocol
1293scheme was, even if it was hidden by a SSL termination proxy.
1294
1295 nova:
1296 controller:
1297 secure_proxy_ssl_header: HTTP_X_FORWARDED_PROTO
1298
1299You can read more about it here:
1300 https://docs.openstack.org/mitaka/config-reference/compute/config-options.html
1301
obryndziif7957912019-01-31 00:55:56 +00001302Nova database connection setup:
1303========
1304
1305.. code-block:: yaml
1306
1307 nova:
1308 controller:
1309 enabled: True
1310 ...
1311 database:
1312 idle_timeout: 180
1313 min_pool_size: 100
1314 max_pool_size: 700
1315 max_overflow: 100
1316 retry_interval: 5
1317 max_retries: '-1'
1318 db_max_retries: 3
1319 db_retry_interval: 1
1320 connection_debug: 10
1321 pool_timeout: 120
1322
Oleksandr Bryndzii6d821f52019-02-20 15:51:15 +02001323
1324Configure nova to use service user tokens:
1325========
1326Long-running operations such as live migration or snapshot can sometimes overrun the
1327expiry of the user token. In such cases, post operations such as cleaning up after a
1328live migration can fail when the nova-compute service needs to cleanup resources in
1329other services, such as in the block-storage (cinder) or networking (neutron) services.
1330
1331This patch enables nova to use service user tokens to supplement the regular user token
1332used to initiate the operation. The identity service (keystone) will then authenticate
1333a request using the service user token if the user token has already expired.
1334
1335.. code-block:: yaml
1336
1337 nova:
1338 controller:
1339 enabled: True
1340 ...
1341 service_user:
1342 enabled: True
1343 user_domain_id: default
1344 project_domain_id: default
1345 project_name: service
1346 username: nova
1347 password: pswd
1348
Oleksandr Bryndzii6af347b2019-04-23 15:34:42 +03001349Change default resource quotas using configmap template settings
1350========
1351
1352.. code-block:: yaml
1353
1354 nova:
1355 controller:
1356 configmap:
1357 quota:
1358 instances: 10
1359 cores: 20
1360 ram: 51200
1361 metadata_items: 128
1362 injected_files: 5
1363 injected_file_content_bytes: 10240
1364 injected_file_path_length: 255
1365 key_pairs: 100
1366 server_groups: 10
1367 server_group_members: 10
1368 reservation_expire: 86400
1369 until_refresh: 0
1370 max_age: 0
1371
Oleh Hryhorov63ee8452018-08-14 09:16:02 +00001372Upgrades
1373========
1374
1375Each openstack formula provide set of phases (logical bloks) that will help to
1376build flexible upgrade orchestration logic for particular components. The list
1377of phases might and theirs descriptions are listed in table below:
1378
1379+-------------------------------+------------------------------------------------------+
1380| State | Description |
1381+===============================+======================================================+
1382| <app>.upgrade.service_running | Ensure that all services for particular application |
1383| | are enabled for autostart and running |
1384+-------------------------------+------------------------------------------------------+
1385| <app>.upgrade.service_stopped | Ensure that all services for particular application |
1386| | disabled for autostart and dead |
1387+-------------------------------+------------------------------------------------------+
1388| <app>.upgrade.pkgs_latest | Ensure that packages used by particular application |
1389| | are installed to latest available version. |
1390| | This will not upgrade data plane packages like qemu |
1391| | and openvswitch as usually minimal required version |
1392| | in openstack services is really old. The data plane |
1393| | packages should be upgraded separately by `apt-get |
1394| | upgrade` or `apt-get dist-upgrade` |
1395| | Applying this state will not autostart service. |
1396+-------------------------------+------------------------------------------------------+
1397| <app>.upgrade.render_config | Ensure configuration is rendered actual version. +
1398+-------------------------------+------------------------------------------------------+
1399| <app>.upgrade.pre | We assume this state is applied on all nodes in the |
1400| | cloud before running upgrade. |
1401| | Only non destructive actions will be applied during |
1402| | this phase. Perform service built in service check |
1403| | like (keystone-manage doctor and nova-status upgrade)|
1404+-------------------------------+------------------------------------------------------+
1405| <app>.upgrade.upgrade.pre | Mostly applicable for data plane nodes. During this |
1406| | phase resources will be gracefully removed from |
1407| | current node if it is allowed. Services for upgraded |
1408| | application will be set to admin disabled state to |
1409| | make sure node will not participate in resources |
1410| | scheduling. For example on gtw nodes this will set |
1411| | all agents to admin disable state and will move all |
1412| | routers to other agents. |
1413+-------------------------------+------------------------------------------------------+
1414| <app>.upgrade.upgrade | This state will basically upgrade application on |
1415| | particular target. Stop services, render |
1416| | configuration, install new packages, run offline |
1417| | dbsync (for ctl), start services. Data plane should |
1418| | not be affected, only OpenStack python services. |
1419+-------------------------------+------------------------------------------------------+
1420| <app>.upgrade.upgrade.post | Add services back to scheduling. |
1421+-------------------------------+------------------------------------------------------+
1422| <app>.upgrade.post | This phase should be launched only when upgrade of |
1423| | the cloud is completed. Cleanup temporary files, |
1424| | perform other post upgrade tasks. |
1425+-------------------------------+------------------------------------------------------+
1426| <app>.upgrade.verify | Here we will do basic health checks (API CRUD |
1427| | operations, verify do not have dead network |
1428| | agents/compute services) |
1429+-------------------------------+------------------------------------------------------+