blob: 27d6dd785db3394c0a7adc0944c379a17c35673c [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
56 message_queue:
57 engine: rabbitmq
58 host: 127.0.0.1
59 port: 5672
60 user: openstack
61 password: pwd
62 virtual_host: '/openstack'
Oleh Hryhorovf5093b82018-10-17 11:16:08 +000063 pci:
64 alias:
65 alias1:
66 device_type: "type-PF"
67 name: "a1"
68 product_id: "154d"
69 vendor_id: "8086"
Filip Pytloun4a72d792015-10-06 16:28:32 +020070 network:
71 engine: neutron
72 host: 127.0.0.1
73 port: 9696
Jakub Pavlik617a8962016-09-04 18:50:06 +020074 extension_sync_interval: 600
Filip Pytloun4a72d792015-10-06 16:28:32 +020075 identity:
76 engine: keystone
77 host: 127.0.0.1
78 port: 35357
79 user: neutron
80 password: pwd
81 tenant: service
82 metadata:
83 password: password
Petr Michalecaa23dc02016-11-29 16:30:25 +010084 audit:
85 enabled: false
Simon Pasquier8683b7a2017-02-03 16:00:16 +010086 osapi_max_limit: 500
Oleg Iurchenko370c10d2017-10-19 14:03:37 +030087 barbican:
88 enabled: true
Filip Pytloun4a72d792015-10-06 16:28:32 +020089
OlgaGusarenko9dd01c92018-07-31 00:49:30 +030090Nova services from custom package repository:
Filip Pytloun4a72d792015-10-06 16:28:32 +020091
92.. code-block:: yaml
93
94 nova:
95 controller:
96 version: juno
97 source:
98 engine: pkg
99 address: http://...
100 ....
101
OlgaGusarenko9dd01c92018-07-31 00:49:30 +0300102Client-side RabbitMQ HA setup:
Jiri Konecnye31f2c52016-04-14 17:16:02 +0200103
104.. code-block:: yaml
105
106 nova:
107 controller:
108 ....
109 message_queue:
110 engine: rabbitmq
111 members:
112 - host: 10.0.16.1
113 - host: 10.0.16.2
114 - host: 10.0.16.3
115 user: openstack
116 password: pwd
117 virtual_host: '/openstack'
118 ....
119
OlgaGusarenko9dd01c92018-07-31 00:49:30 +0300120Enable auditing filter, i.e: CADF:
Petr Michalecaa23dc02016-11-29 16:30:25 +0100121
122.. code-block:: yaml
123
124 nova:
125 controller:
Simon Pasquier6a3c8f72016-12-19 15:37:24 +0100126 audit:
Petr Michalecaa23dc02016-11-29 16:30:25 +0100127 enabled: true
128 ....
129 filter_factory: 'keystonemiddleware.audit:filter_factory'
130 map_file: '/etc/pycadf/nova_api_audit_map.conf'
131 ....
132
OlgaGusarenko9dd01c92018-07-31 00:49:30 +0300133Enable CORS parameters:
Ondrej Smola25b53cb2017-04-28 10:56:19 +0200134
135.. code-block:: yaml
136
137 nova:
138 controller:
139 cors:
140 allowed_origin: https:localhost.local,http:localhost.local
141 expose_headers: X-Auth-Token,X-Openstack-Request-Id,X-Subject-Token
142 allow_methods: GET,PUT,POST,DELETE,PATCH
143 allow_headers: X-Auth-Token,X-Openstack-Request-Id,X-Subject-Token
144 allow_credentials: True
145 max_age: 86400
146
OlgaGusarenko9dd01c92018-07-31 00:49:30 +0300147Configuration of the ``policy.json`` file:
Dmitry Ukov3562a082017-05-04 00:00:48 +0400148
149.. code-block:: yaml
150
151 nova:
152 controller:
153 ....
154 policy:
155 context_is_admin: 'role:admin or role:administrator'
156 'compute:create': 'rule:admin_or_owner'
157 # Add key without value to remove line from policy.json
158 'compute:create:attach_network':
Ondrej Smola25b53cb2017-04-28 10:56:19 +0200159
OlgaGusarenko9dd01c92018-07-31 00:49:30 +0300160Enable Barbican integration:
Oleg Iurchenko370c10d2017-10-19 14:03:37 +0300161
162.. code-block:: yaml
163
164 nova:
165 controller:
166 ....
167 barbican:
168 enabled: true
169
Oleh Hryhorovf5093b82018-10-17 11:16:08 +0000170Define aliases for PCI devices:
171.. code-block:: yaml
172
173 nova:
174 controller:
175 ...
176 pci:
177 alias:
178 alias1:
179 device_type: "type-PF"
180 name: "a1"
181 product_id: "154d"
182 vendor_id: "8086"
183
Jiri Broulik789179a2018-02-13 16:16:46 +0100184Enable cells update:
185
OlgaGusarenko9dd01c92018-07-31 00:49:30 +0300186.. note:: Useful when upgrading Openstack. To update cells to test
187 sync db agains duplicated production database.
Jiri Broulik789179a2018-02-13 16:16:46 +0100188
189.. code-block:: yaml
190
191 nova:
192 controller:
193 update_cells: true
194
Kirill Bespalov64617172017-07-11 14:43:14 +0300195
Kirill Bespalova0eaca72017-11-20 13:40:42 +0300196Configuring TLS communications
197------------------------------
Kirill Bespalov64617172017-07-11 14:43:14 +0300198
OlgaGusarenko9dd01c92018-07-31 00:49:30 +0300199.. note:: By default system wide installed CA certs are used,
200 so ``cacert_file`` param is optional, as well as ``cacert``.
Kirill Bespalova0eaca72017-11-20 13:40:42 +0300201
202- **RabbitMQ TLS**
Kirill Bespalov64617172017-07-11 14:43:14 +0300203
OlgaGusarenko9dd01c92018-07-31 00:49:30 +0300204 .. code-block:: yaml
Kirill Bespalov64617172017-07-11 14:43:14 +0300205
OlgaGusarenko9dd01c92018-07-31 00:49:30 +0300206 nova:
207 compute:
208 message_queue:
209 port: 5671
210 ssl:
211 enabled: True
212 (optional) cacert: cert body if the cacert_file does not exists
213 (optional) cacert_file: /etc/openstack/rabbitmq-ca.pem
214 (optional) version: TLSv1_2
Kirill Bespalov64617172017-07-11 14:43:14 +0300215
Kirill Bespalova0eaca72017-11-20 13:40:42 +0300216- **MySQL TLS**
Kirill Bespalov64617172017-07-11 14:43:14 +0300217
OlgaGusarenko9dd01c92018-07-31 00:49:30 +0300218 .. code-block:: yaml
Kirill Bespalov64617172017-07-11 14:43:14 +0300219
OlgaGusarenko9dd01c92018-07-31 00:49:30 +0300220 nova:
221 controller:
222 database:
223 ssl:
224 enabled: True
225 (optional) cacert: cert body if the cacert_file does not exists
226 (optional) cacert_file: /etc/openstack/mysql-ca.pem
Kirill Bespalov64617172017-07-11 14:43:14 +0300227
Kirill Bespalova0eaca72017-11-20 13:40:42 +0300228- **Openstack HTTPS API**
229
OlgaGusarenko9dd01c92018-07-31 00:49:30 +0300230 Set the ``https`` as protocol at ``nova:compute`` and
231 ``nova:controller`` sections :
Kirill Bespalova0eaca72017-11-20 13:40:42 +0300232
OlgaGusarenko9dd01c92018-07-31 00:49:30 +0300233 .. code-block:: yaml
Kirill Bespalov64617172017-07-11 14:43:14 +0300234
OlgaGusarenko9dd01c92018-07-31 00:49:30 +0300235 nova:
236 controller :
237 identity:
238 protocol: https
239 (optional) cacert_file: /etc/openstack/proxy.pem
240 network:
241 protocol: https
242 (optional) cacert_file: /etc/openstack/proxy.pem
243 glance:
244 protocol: https
245 (optional) cacert_file: /etc/openstack/proxy.pem
Kirill Bespalov64617172017-07-11 14:43:14 +0300246
OlgaGusarenko9dd01c92018-07-31 00:49:30 +0300247 .. code-block:: yaml
Kirill Bespalov64617172017-07-11 14:43:14 +0300248
OlgaGusarenko9dd01c92018-07-31 00:49:30 +0300249 nova:
250 compute:
251 identity:
252 protocol: https
253 (optional) cacert_file: /etc/openstack/proxy.pem
254 network:
255 protocol: https
256 (optional) cacert_file: /etc/openstack/proxy.pem
257 image:
258 protocol: https
259 (optional) cacert_file: /etc/openstack/proxy.pem
260 ironic:
261 protocol: https
262 (optional) cacert_file: /etc/openstack/proxy.pem
Kirill Bespalov64617172017-07-11 14:43:14 +0300263
OlgaGusarenko9dd01c92018-07-31 00:49:30 +0300264.. note:: Barbican, Cinder, and placement url endpoints are discovering
265 using service catalog.
Kirill Bespalov64617172017-07-11 14:43:14 +0300266
Filip Pytloun4a72d792015-10-06 16:28:32 +0200267Compute nodes
268-------------
269
OlgaGusarenko9dd01c92018-07-31 00:49:30 +0300270Nova controller services on compute node:
Filip Pytloun4a72d792015-10-06 16:28:32 +0200271
272.. code-block:: yaml
273
274 nova:
275 compute:
276 version: juno
277 enabled: true
Mykyta Karpin5ef9f982019-02-07 18:40:00 +0200278 timeout_nbd: 10
279 heal_instance_info_cache_interval: 60
Dmitry Stremkovskiy2bcba8d2017-07-30 21:43:59 +0300280 cross_az_attach: false
Dmitry Stremkovskiy35e53b72017-07-29 12:50:39 +0300281 disk_cachemodes: network=writeback,block=none
Jiri Broulik70d9e3f2017-02-15 18:37:13 +0100282 availability_zone: availability_zone_01
Damian Szelugae1922412017-04-18 16:36:46 +0200283 aggregates:
284 - hosts_with_fc
285 - hosts_with_ssd
Filip Pytloun4a72d792015-10-06 16:28:32 +0200286 security_group: true
Petr Michalecf03e4882017-04-10 10:26:18 +0200287 resume_guests_state_on_host_boot: False
Michael Polenchuk159c2542018-06-09 15:31:51 +0400288 preallocate_images: space # Default is 'none'
Dmitry Stremkovskiy8a0ff512017-07-25 20:54:13 +0300289 my_ip: 10.1.0.16
Vasyl Saienko09b6ac32019-01-17 15:23:58 +0200290 vif_plugging_timeout: 300
291 vif_plugging_is_fatal: false
Filip Pytloun4a72d792015-10-06 16:28:32 +0200292 bind:
293 vnc_address: 172.20.0.100
294 vnc_port: 6080
295 vnc_name: openstack.domain.com
296 vnc_protocol: http
297 database:
298 engine: mysql
299 host: 127.0.0.1
300 port: 3306
301 name: nova
302 user: nova
303 password: pwd
304 identity:
305 engine: keystone
306 host: 127.0.0.1
307 port: 35357
308 user: nova
309 password: pwd
310 tenant: service
311 message_queue:
312 engine: rabbitmq
313 host: 127.0.0.1
314 port: 5672
315 user: openstack
316 password: pwd
317 virtual_host: '/openstack'
318 image:
319 engine: glance
320 host: 127.0.0.1
321 port: 9292
Oleh Hryhorovf5093b82018-10-17 11:16:08 +0000322 pci:
323 alias:
324 alias1:
325 device_type: "type-PF"
326 name: "a1"
327 product_id: "154d"
328 vendor_id: "8086"
Oleksandr Pidrepnyi14f08272019-02-20 12:48:17 +0200329 passthrough_whitelist:
330 - vendor_id: "10de"
331 product_id: "1db4"
Filip Pytloun4a72d792015-10-06 16:28:32 +0200332 network:
333 engine: neutron
334 host: 127.0.0.1
335 port: 9696
336 identity:
337 engine: keystone
338 host: 127.0.0.1
339 port: 35357
340 user: neutron
341 password: pwd
342 tenant: service
343 qemu:
344 max_files: 4096
345 max_processes: 4096
Dmitry Stremkovskiy96281f52017-07-26 00:39:22 +0300346 host: node-12.domain.tld
Filip Pytloun4a72d792015-10-06 16:28:32 +0200347
Vasyl Saienkocab3a902018-07-12 13:17:17 +0300348Compute with vmware driver. Each vmware cluster requires a separate process of nova-compute.
349Each process should have uniq host identifier. However multiple computes might be running on
350single host. It is not recommended to have multiple computes running on different hosts that
351manage the same vmware cluster. To achive this pacemaker/corosync or keepalived might be used.
352
353.. code-block:: yaml
354
355 nova:
356 compute:
357 compute_driver: vmwareapi.VMwareVCDriver
358 vmware:
359 host_username: vmware
360 host_password: vmware
361 cluster_name: vmware_cluster01
362 host_ip: 1.2.3.4
363
OlgaGusarenko9dd01c92018-07-31 00:49:30 +0300364Group and user to be used for QEMU processes run by the system instance:
kkalynovskyif50f0c02017-12-12 17:52:57 +0200365
366.. code-block:: yaml
367
368 nova:
369 compute:
370 enabled: true
371 ...
372 qemu:
373 user: nova
374 group: cinder
375 dynamic_ownership: 1
376
OlgaGusarenko9dd01c92018-07-31 00:49:30 +0300377Group membership for user nova (upgrade related):
Dmitry Stremkovskiy3cd6ba82017-07-25 17:15:36 +0300378
379.. code-block:: yaml
380
381 nova:
382 compute:
383 enabled: true
384 ...
385 user:
386 groups:
387 - libvirt
Filip Pytloun4a72d792015-10-06 16:28:32 +0200388
OlgaGusarenko9dd01c92018-07-31 00:49:30 +0300389Nova services on compute node with OpenContrail:
Filip Pytloun4a72d792015-10-06 16:28:32 +0200390
391.. code-block:: yaml
392
393 nova:
394 compute:
395 enabled: true
396 ...
397 networking: contrail
398
Oleksandr Bryndziibb8abfe2018-09-28 22:21:43 +0000399Nova services on compute node with memcached caching and security strategy:
Filip Pytloun4a72d792015-10-06 16:28:32 +0200400
401.. code-block:: yaml
402
403 nova:
404 compute:
405 enabled: true
406 ...
407 cache:
408 engine: memcached
409 members:
410 - host: 127.0.0.1
411 port: 11211
412 - host: 127.0.0.1
413 port: 11211
Oleksandr Bryndziibb8abfe2018-09-28 22:21:43 +0000414 security:
415 enabled: true
416 strategy: ENCRYPT
417 secret_key: secret
Filip Pytloun4a72d792015-10-06 16:28:32 +0200418
OlgaGusarenko9dd01c92018-07-31 00:49:30 +0300419Client-side RabbitMQ HA setup:
Jiri Konecnye31f2c52016-04-14 17:16:02 +0200420
421.. code-block:: yaml
422
423 nova:
Kirill Bespalov64617172017-07-11 14:43:14 +0300424 compute:
Jiri Konecnye31f2c52016-04-14 17:16:02 +0200425 ....
426 message_queue:
427 engine: rabbitmq
428 members:
429 - host: 10.0.16.1
430 - host: 10.0.16.2
431 - host: 10.0.16.3
432 user: openstack
433 password: pwd
434 virtual_host: '/openstack'
435 ....
436
OlgaGusarenko9dd01c92018-07-31 00:49:30 +0300437Nova with ephemeral configured with Ceph:
maxstack39e6aca2016-05-04 13:50:13 +0000438
439.. code-block:: yaml
440
441 nova:
442 compute:
443 enabled: true
444 ...
445 ceph:
446 ephemeral: yes
447 rbd_pool: nova
448 rbd_user: nova
449 secret_uuid: 03006edd-d957-40a3-ac4c-26cd254b3731
Kalynovskyi0bc79692017-07-21 16:22:09 +0300450 ....
maxstack39e6aca2016-05-04 13:50:13 +0000451
OlgaGusarenko9dd01c92018-07-31 00:49:30 +0300452Nova with ephemeral configured with LVM:
Kalynovskyi0bc79692017-07-21 16:22:09 +0300453
454.. code-block:: yaml
455
456 nova:
457 compute:
458 enabled: true
459 ...
460 lvm:
461 ephemeral: yes
462 images_volume_group: nova_vg
463
464 linux:
465 storage:
466 lvm:
467 nova_vg:
468 name: nova_vg
469 devices:
470 - /dev/sdf
471 - /dev/sdd
472 - /dev/sdg
473 - /dev/sde
474 - /dev/sdc
475 - /dev/sdj
476 - /dev/sdh
maxstack39e6aca2016-05-04 13:50:13 +0000477
OlgaGusarenko9dd01c92018-07-31 00:49:30 +0300478Enable Barbican integration:
Oleg Iurchenko370c10d2017-10-19 14:03:37 +0300479
480.. code-block:: yaml
481
482 nova:
483 compute:
484 ....
485 barbican:
486 enabled: true
487
Oleksandr Pidrepnyi14f08272019-02-20 12:48:17 +0200488Define aliases for a PCI passthrough devices:
Oleh Hryhorovf5093b82018-10-17 11:16:08 +0000489.. code-block:: yaml
490
491 nova:
492 compute:
493 ...
494 pci:
495 alias:
496 alias1:
497 device_type: "type-PF"
498 name: "a1"
499 product_id: "154d"
500 vendor_id: "8086"
501
Oleksandr Pidrepnyi14f08272019-02-20 12:48:17 +0200502Define white list of PCI devices available to VMs:
503.. code-block:: yaml
504
505 nova:
506 compute:
507 ...
508 pci:
509 passthrough_whitelist:
510 - vendor_id: "10de"
511 product_id: "1db4"
512
OlgaGusarenko9dd01c92018-07-31 00:49:30 +0300513Nova metadata custom bindings:
Vasyl Saienko2d591282018-02-05 14:19:02 +0200514
515.. code-block:: yaml
516
517 nova:
518 controller:
519 enabled: true
520 ...
521 metadata:
522 bind:
523 address: 1.2.3.4
524 port: 8776
525
Oleh Hryhorov08482aa2018-11-19 14:07:47 +0200526Define multipath for nova compute:
527
528.. code-block:: yaml
529
530 nova:
531 compute:
532 ....
533 libvirt:
534 volume_use_multipath: True
535
Oleh Hryhorovce1f2142019-03-06 17:00:00 +0000536To disable or enable StrictHostKeyChecking and discover
537compute nodes fingerprints the below pillar should be used:
538
539.. code-block:: yaml
540
541 nova:
542 compute:
543 ....
544 openssh:
545 stricthostkeychecking: True
546 discover_compute_hosts: True
547
Jiri Broulik0ce9fc92017-02-01 23:10:40 +0100548Client role
549-----------
550
OlgaGusarenko9dd01c92018-07-31 00:49:30 +0300551Nova configured with NFS:
Dmitry Stremkovskiy665c7282017-07-05 17:36:27 +0300552
553.. code-block:: yaml
554
555 nova:
556 compute:
557 instances_path: /mnt/nova/instances
558
559 linux:
560 storage:
561 enabled: true
562 mount:
563 nfs_nova:
564 enabled: true
565 path: ${nova:compute:instances_path}
566 device: 172.31.35.145:/data
567 file_system: nfs
568 opts: rw,vers=3
569
OlgaGusarenko9dd01c92018-07-31 00:49:30 +0300570Nova flavors:
Jiri Broulik0ce9fc92017-02-01 23:10:40 +0100571
572.. code-block:: yaml
573
574 nova:
575 client:
576 enabled: true
577 server:
578 identity:
579 flavor:
Jiri Broulik70d9e3f2017-02-15 18:37:13 +0100580 flavor1:
Jiri Broulik0ce9fc92017-02-01 23:10:40 +0100581 flavor_id: 10
582 ram: 4096
583 disk: 10
584 vcpus: 1
Jiri Broulik70d9e3f2017-02-15 18:37:13 +0100585 flavor2:
586 flavor_id: auto
587 ram: 4096
588 disk: 20
589 vcpus: 2
Jiri Broulik0ce9fc92017-02-01 23:10:40 +0100590 identity1:
591 flavor:
592 ...
593
OlgaGusarenko9dd01c92018-07-31 00:49:30 +0300594Availability zones:
Jiri Broulik70d9e3f2017-02-15 18:37:13 +0100595
596.. code-block:: yaml
597
598 nova:
599 client:
600 enabled: true
601 server:
602 identity:
603 availability_zones:
604 - availability_zone_01
605 - availability_zone_02
606
OlgaGusarenko9dd01c92018-07-31 00:49:30 +0300607Aggregates:
Damian Szeluga5dca0f02017-04-13 17:27:15 +0200608
609.. code-block:: yaml
610
611 nova:
612 client:
613 enabled: true
614 server:
615 identity:
616 aggregates:
617 - aggregate1
618 - aggregate2
619
OlgaGusarenko9dd01c92018-07-31 00:49:30 +0300620Upgrade levels:
Dmitry Stremkovskiy91f45852017-07-18 16:22:31 +0300621
622.. code-block:: yaml
623
624 nova:
625 controller:
626 upgrade_levels:
627 compute: juno
628
629 nova:
630 compute:
631 upgrade_levels:
632 compute: juno
633
Petr Jedinýd855ef22017-03-06 22:24:33 +0100634SR-IOV
Jakub Pavlik39a05942017-02-13 23:03:08 +0100635------
636
OlgaGusarenko9dd01c92018-07-31 00:49:30 +0300637Add ``PciPassthroughFilter`` into scheduler filters and NICs on
638specific compute nodes:
Jakub Pavlik39a05942017-02-13 23:03:08 +0100639
640.. code-block:: yaml
641
642 nova:
643 controller:
644 sriov: true
sandriichenko4fe321d2018-01-22 17:34:06 +0000645 scheduler_default_filters: "DifferentHostFilter,SameHostFilter,RetryFilter,AvailabilityZoneFilter,RamFilter,CoreFilter,DiskFilter,ComputeFilter,ComputeCapabilitiesFilter,ImagePropertiesFilter,ServerGroupAntiAffinityFilter,ServerGroupAffinityFilter,PciPassthroughFilter"
Jakub Pavlik39a05942017-02-13 23:03:08 +0100646
647 nova:
648 compute:
649 sriov:
650 nic_one:
651 devname: eth1
652 physical_network: physnet1
653
Oleh Hryhorovf5093b82018-10-17 11:16:08 +0000654.. note:: Parameters located under nova:compute:sriov:<nic_name> are copied to passthrough_whitelist parameter into
655 nova.conf file in appropriate format.
656
Jakub Pavlik26fb85c2017-02-16 22:29:22 +0100657CPU pinning & Hugepages
658-----------------------
659
OlgaGusarenko9dd01c92018-07-31 00:49:30 +0300660CPU pinning of virtual machine instances to dedicated physical
661CPU cores. Hugepages mount point for libvirt.
Jakub Pavlik26fb85c2017-02-16 22:29:22 +0100662
663.. code-block:: yaml
664
665 nova:
666 controller:
sandriichenko4fe321d2018-01-22 17:34:06 +0000667 scheduler_default_filters: "DifferentHostFilter,SameHostFilter,RetryFilter,AvailabilityZoneFilter,RamFilter,CoreFilter,DiskFilter,ComputeFilter,ComputeCapabilitiesFilter,ImagePropertiesFilter,ServerGroupAntiAffinityFilter,ServerGroupAffinityFilter,NUMATopologyFilter,AggregateInstanceExtraSpecsFilter"
Jakub Pavlik26fb85c2017-02-16 22:29:22 +0100668
669 nova:
670 compute:
671 vcpu_pin_set: 2,3,4,5
672 hugepages:
673 mount_points:
674 - path: /mnt/hugepages_1GB
675 - path: /mnt/hugepages_2MB
Jiri Broulik0ce9fc92017-02-01 23:10:40 +0100676
Michel Nederlof171c7ac2017-04-13 12:54:14 +0200677Custom Scheduler filters
678------------------------
679
OlgaGusarenko9dd01c92018-07-31 00:49:30 +0300680If you have a custom filter, that needs to be included in the
681scheduler, then you can include it like so:
Michel Nederlof171c7ac2017-04-13 12:54:14 +0200682
683.. code-block:: yaml
684
685 nova:
686 controller:
687 scheduler_custom_filters:
688 - my_custom_driver.nova.scheduler.filters.my_custom_filter.MyCustomFilter
689
690 # 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 +0000691 scheduler_default_filters: "DifferentHostFilter,SameHostFilter,RetryFilter,AvailabilityZoneFilter,RamFilter,CoreFilter,DiskFilter,ComputeFilter,ComputeCapabilitiesFilter,ImagePropertiesFilter,ServerGroupAntiAffinityFilter,ServerGroupAffinityFilter,PciPassthroughFilter,MyCustomFilter"
Michel Nederlof171c7ac2017-04-13 12:54:14 +0200692
Michael Polenchuk2bce2cb2018-09-17 16:05:43 +0400693 # Since Queens version a sequence could be used as well:
694 ~scheduler_default_filters:
695 - DifferentHostFilter
696 - SameHostFilter
697 ...
698 - MyCustomFilter
699
700
Michel Nederlofeb566f62017-04-21 15:37:47 +0200701Hardware Trip/Unmap Support
702---------------------------
703
OlgaGusarenko9dd01c92018-07-31 00:49:30 +0300704To enable TRIM support for ephemeral images (thru nova managed
705images), libvirt has this option:
Michel Nederlofeb566f62017-04-21 15:37:47 +0200706
707.. code-block:: yaml
708
709 nova:
710 compute:
711 libvirt:
712 hw_disk_discard: unmap
713
OlgaGusarenko9dd01c92018-07-31 00:49:30 +0300714To actually utilize this feature, the following metadata must be
715set on the image as well, so the SCSI unmap is supported:
Michel Nederlofeb566f62017-04-21 15:37:47 +0200716
717.. code-block:: bash
718
719 glance image-update --property hw_scsi_model=virtio-scsi <image>
720 glance image-update --property hw_disk_bus=scsi <image>
Filip Pytloun5bc9e9f2017-02-02 13:05:40 +0100721
Thom Gerdesf582f1e2017-05-02 18:05:50 +0000722Scheduler Host Manager
723----------------------
724
725Specify a custom host manager.
726
Thom Gerdesec00afd2017-04-07 18:06:59 +0000727libvirt CPU mode
728----------------
729
OlgaGusarenko9dd01c92018-07-31 00:49:30 +0300730Allow setting the model of CPU that is exposed to a VM. This
731allows for better support live migration between hypervisors with
732different hardware, among other things. Defaults to host-passthrough.
Jakub Pavlik7046b9c2017-09-19 12:04:19 +0200733
Thom Gerdesf582f1e2017-05-02 18:05:50 +0000734.. code-block:: yaml
735
736 nova:
737 controller:
738 scheduler_host_manager: ironic_host_manager
739
Thom Gerdesec00afd2017-04-07 18:06:59 +0000740 compute:
741 cpu_mode: host-model
742
Dzmitry Stremkouski7da9bf12018-04-25 22:30:37 +0200743Nova compute cpu model
744----------------------
745
746.. code-block:: yaml
747
748 nova:
749 compute:
750 cpu_mode: custom
751 libvirt:
752 cpu_model: IvyBridge
753
Oleksandr Pidrepnyid9020082019-03-04 19:18:19 +0200754RNG (Random Number Generator) device path
755----------------------
756
757The path to an RNG (Random Number Generator) device that will be used
758as the source of entropy on the host.
759The recommended source of entropy is /dev/urandom.
760Permitted options are: /dev/random, /dev/urandom or /dev/hwrng.
761Default: /dev/urandom
762
763.. code-block:: yaml
764
765 nova:
766 controller:
767 libvirt:
768 rng_dev_path: /dev/random
769
770 compute:
771 libvirt:
772 rng_dev_path: /dev/random
773
Dzmitry Stremkouski7da9bf12018-04-25 22:30:37 +0200774
Michel Nederloff7eefb22017-07-10 11:14:33 +0200775Nova compute workarounds
776------------------------
777
OlgaGusarenko9dd01c92018-07-31 00:49:30 +0300778Live snapshotting is disabled by default in nova. To enable
779this, it needs a manual switch.
Michel Nederloff7eefb22017-07-10 11:14:33 +0200780
781From manual:
782
783.. code-block:: yaml
784
OlgaGusarenko9dd01c92018-07-31 00:49:30 +0300785 When using libvirt 1.2.2 live snapshots fail intermittently under load
786 (likely related to concurrent libvirt/qemu operations). This config
787 option provides a mechanism to disable live snapshot, in favor of cold
788 snapshot, while this is resolved. Cold snapshot causes an instance
789 outage while the guest is going through the snapshotting process.
790
791 For more information, refer to the bug report:
792
793 https://bugs.launchpad.net/nova/+bug/1334398
Michel Nederloff7eefb22017-07-10 11:14:33 +0200794
795Configurable pillar data:
796
797.. code-block:: yaml
798
799 nova:
800 compute:
Michel Nederlofe322ebb2017-07-10 12:29:21 +0200801 workaround:
Michel Nederloff7eefb22017-07-10 11:14:33 +0200802 disable_libvirt_livesnapshot: False
803
Michel Nederlofb51a5142017-06-27 08:31:35 +0200804Config drive options
805--------------------
806
OlgaGusarenko9dd01c92018-07-31 00:49:30 +0300807See example below on how to configure the options for the
808config drive:
Michel Nederlofb51a5142017-06-27 08:31:35 +0200809
810.. code-block:: yaml
811
812 nova:
813 compute:
814 config_drive:
815 forced: True # Default: True
816 cdrom: True # Default: False
817 format: iso9660 # Default: vfat
818 inject_password: False # Default: False
819
Michel Nederloff81919b2017-11-20 09:37:07 +0100820Number of concurrent live migrates
821----------------------------------
822
OlgaGusarenko9dd01c92018-07-31 00:49:30 +0300823Default is to have no concurrent live migrations (so 1
824live-migration at a time).
Michel Nederloff81919b2017-11-20 09:37:07 +0100825
OlgaGusarenko9dd01c92018-07-31 00:49:30 +0300826Excerpt from config options page
827https://docs.openstack.org/ocata/config-reference/compute/config-options.html:
Michel Nederloff81919b2017-11-20 09:37:07 +0100828
OlgaGusarenko9dd01c92018-07-31 00:49:30 +0300829Maximum number of live migrations to run concurrently. This limit is
830enforced to avoid outbound live migrations overwhelming the host/network
831and causing failures. It is not recommended that you change this unless
832you are very sure that doing so is safe and stable in your environment.
Michel Nederloff81919b2017-11-20 09:37:07 +0100833
OlgaGusarenko9dd01c92018-07-31 00:49:30 +0300834Possible values:
Michel Nederloff81919b2017-11-20 09:37:07 +0100835
OlgaGusarenko9dd01c92018-07-31 00:49:30 +0300836- 0 : treated as unlimited.
837- Negative value defaults to 0.
838- Any positive integer representing maximum number of live migrations
839 to run concurrently.
Michel Nederloff81919b2017-11-20 09:37:07 +0100840
841To configure this option:
842
843.. code-block:: yaml
844
845 nova:
846 compute:
847 max_concurrent_live_migrations: 1 # (1 is the default)
848
Sergio Lystopad9d31cba2018-05-15 11:29:11 +0300849Live migration with auto converge
850----------------------------------
851
OlgaGusarenko9dd01c92018-07-31 00:49:30 +0300852Auto converge throttles down CPU if a progress of on-going live
853migration is slow
854https://docs.openstack.org/ocata/config-reference/compute/config-options.html:
Sergio Lystopad9d31cba2018-05-15 11:29:11 +0300855
856.. code-block:: yaml
857
858 nova:
859 compute:
860 libvirt:
861 live_migration_permit_auto_converge: False # (False is the default)
862
863.. code-block:: yaml
864
865 nova:
866 controller:
867 libvirt:
868 live_migration_permit_auto_converge: False # (False is the default)
869
Dmitry Kalashnike58fe082017-12-01 16:31:14 +0400870Enhanced logging with logging.conf
871----------------------------------
872
OlgaGusarenko9dd01c92018-07-31 00:49:30 +0300873By default ``logging.conf`` is disabled.
Dmitry Kalashnike58fe082017-12-01 16:31:14 +0400874
875That is possible to enable per-binary logging.conf with new variables:
Dmitry Kalashnike58fe082017-12-01 16:31:14 +0400876
OlgaGusarenko9dd01c92018-07-31 00:49:30 +0300877* ``openstack_log_appender``
878 Set to true to enable log_config_append for all OpenStack services
879
880* ``openstack_fluentd_handler_enabled``
881 Set to true to enable FluentHandler for all Openstack services
882
883* ``openstack_ossyslog_handler_enabled``
884 Set to true to enable OSSysLogHandler for all Openstack services
885
886Only ``WatchedFileHandler``, ``OSSysLogHandler``, and ``FluentHandler``
887are available.
Dmitry Kalashnike58fe082017-12-01 16:31:14 +0400888
Dmitry Kalashnik8da249c2018-01-16 17:58:00 +0400889Also it is possible to configure this with pillar:
Dmitry Kalashnike58fe082017-12-01 16:31:14 +0400890
891.. code-block:: yaml
892
893 nova:
894 controller:
895 logging:
896 log_appender: true
897 log_handlers:
898 watchedfile:
899 enabled: true
900 fluentd:
901 enabled: true
Oleksii Chupryn99e35032018-02-06 01:59:40 +0200902 ossyslog:
903 enabled: true
Dmitry Kalashnike58fe082017-12-01 16:31:14 +0400904
905 compute:
906 logging:
907 log_appender: true
908 log_handlers:
909 watchedfile:
910 enabled: true
911 fluentd:
912 enabled: true
Oleksii Chupryn99e35032018-02-06 01:59:40 +0200913 ossyslog:
914 enabled: true
Thom Gerdesf582f1e2017-05-02 18:05:50 +0000915
Vasyl Saienko7243a952018-05-11 21:26:54 +0300916The log level might be configured per logger by using the
917following pillar structure:
918
919.. code-block:: yaml
920
921 nova:
922 compute:
923 logging:
924 loggers:
925 <logger_name>:
926 level: WARNING
927
928 nova:
929 compute:
930 logging:
931 loggers:
932 <logger_name>:
933 level: WARNING
934
Oleh Hryhorove38525d2018-05-15 08:58:59 +0000935Configure syslog parameters for libvirtd
936----------------------------------------
937
OlgaGusarenko9dd01c92018-07-31 00:49:30 +0300938To configure syslog parameters for libvirtd the below pillar
939structure should be used with values which are supported
Oleh Hryhorove38525d2018-05-15 08:58:59 +0000940by libvirtd. These values might be known from the documentation.
941
OlgaGusarenko9dd01c92018-07-31 00:49:30 +0300942.. code-block:: yaml
943
Oleh Hryhorove38525d2018-05-15 08:58:59 +0000944 nova:
945 compute:
946 libvirt:
947 logging:
948 level: 3
949 filters: '3:remote 4:event'
950 outputs: '3:syslog:libvirtd'
951 buffer_size: 64
952
OlgaGusarenko9dd01c92018-07-31 00:49:30 +0300953Logging controls:
Oleh Hryhorove38525d2018-05-15 08:58:59 +0000954
OlgaGusarenko9dd01c92018-07-31 00:49:30 +0300955Logging level: 4 errors, 3 warnings, 2 information, 1 debug
956basically 1 will log everything possible ``log_level = 3``
Oleh Hryhorove38525d2018-05-15 08:58:59 +0000957
OlgaGusarenko9dd01c92018-07-31 00:49:30 +0300958Logging filters:
Oleh Hryhorove38525d2018-05-15 08:58:59 +0000959
OlgaGusarenko9dd01c92018-07-31 00:49:30 +0300960A filter allows to select a different logging level for a given category
961of logs.
Oleh Hryhorove38525d2018-05-15 08:58:59 +0000962
OlgaGusarenko9dd01c92018-07-31 00:49:30 +0300963The format for a filter is one of:
Oleh Hryhorove38525d2018-05-15 08:58:59 +0000964
OlgaGusarenko9dd01c92018-07-31 00:49:30 +0300965* ``x:name``
966* ``x:+name``
967 where name is a string which is matched against source file name,
968 e.g., ``remote``, ``qemu``, or ``util/json``, the optional ``+`` prefix
969 tells libvirt to log stack trace for each message matching name,
970 and x is the minimal level where matching messages should be logged:
Oleh Hryhorove38525d2018-05-15 08:58:59 +0000971
OlgaGusarenko9dd01c92018-07-31 00:49:30 +0300972* ``1: DEBUG``
973* ``2: INFO``
974* ``3: WARNING``
975* ``4: ERROR``
976
977Multiple filter can be defined in a single @filters, they just
978need to be separated by spaces.
979
980For example, to only get warning or errors from the remote layer
981and only errors from the event layer: ``log_filters="3:remote 4:event``
982
983Logging outputs:
984
985An output is one of the places to save logging information
986The format for an output can be:
987
988* ``x:stderr``
989 Output goes to stderr
990
991* ``x:syslog:name``
992 Use syslog for the output and use the given name as the ident
993
994* ``x:file:file_path``
995 output to a file, with the given filepath
996
997 In all case the x prefix is the minimal level, acting as a filter
998
999* ``1: DEBUG``
1000* ``2: INFO``
1001* ``3: WARNING``
1002* ``4: ERROR``
1003
1004Multiple output can be defined, they just need to be separated by spaces.
1005For example, to log all warnings and errors to syslog under the libvirt
1006dident: ``log_outputs="3:syslog:libvirtd``
1007
1008Log debug buffer size: default 64
1009The daemon keeps an internal debug log buffer which will be dumped
1010in case of crash or upon receiving a ``SIGUSR2`` signal. This setting
1011allows to override the default buffer size in kilobytes.
1012If value is ``0`` or less the debug log buffer is deactivated
1013``log_buffer_size = 64``
1014
1015To configure the logging parameters for QEMU, the below pillar
1016structure and logging parameters should be used:
1017
1018.. code-block:: yaml
1019
1020 nova:
1021 compute:
1022 qemu:
1023 logging:
1024 handler: logd
1025 virtlog:
1026 enabled: true
1027 level: 4
1028 filters: '3:remote 3:event'
1029 outputs: '4:syslog:virtlogd'
1030 max_clients: 512
1031 max_size: 2097100
1032 max_backups: 2
Oleh Hryhorove38525d2018-05-15 08:58:59 +00001033
Oleksandr Shyshko981b4fa2018-05-02 15:39:30 +03001034Inject password to VM
1035---------------------
1036
OlgaGusarenko9dd01c92018-07-31 00:49:30 +03001037By default nova blocks up any inject to VM because
1038``inject_partition`` param is equal to ``-2``.
1039If you want to inject password to VM, you will need to
1040define ``inject_partition`` greater or equal to ``-1`` and
1041define ``inject_password`` to ``True``
Oleksandr Shyshko981b4fa2018-05-02 15:39:30 +03001042
1043For example:
1044
OlgaGusarenko9dd01c92018-07-31 00:49:30 +03001045.. code-block:: yaml
1046
Oleksandr Shyshko981b4fa2018-05-02 15:39:30 +03001047 nova:
1048 compute:
1049 inject_partition: '-1'
1050 inject_password: True
1051
OlgaGusarenko9dd01c92018-07-31 00:49:30 +03001052Allow the injection of an admin password for instance only at
1053``create`` and ``rebuild`` process.
1054
1055There is no agent needed within the image to do this. If *libguestfs* is
1056available on the host, it will be used. Otherwise *nbd* is used. The file
1057system of the image will be mounted and the admin password, which is provided
1058in the REST API call will be injected as password for the root user. If no
1059root user is available, the instance won't be launched and an error is thrown.
1060Be aware that the injection is *not* possible when the instance gets launched
1061from a volume.
1062
1063Possible values:
1064
1065* ``True``
1066 Allows the injection
1067
1068* ``False`` (default)
1069 Disallows the injection. Any via the REST API provided
1070 admin password will be silently ignored.
1071
1072Related options:
1073
1074* ``inject_partition``
1075 Decides about the discovery and usage of the file system.
1076 It also can disable the injection at all.
1077 (boolean value)
Oleksandr Shyshko981b4fa2018-05-02 15:39:30 +03001078
1079You can read more about injecting the administrator password here:
OlgaGusarenko9dd01c92018-07-31 00:49:30 +03001080https://docs.openstack.org/nova/queens/admin/admin-password-injection.html
Oleksandr Shyshko981b4fa2018-05-02 15:39:30 +03001081
Oleksandr Shyshko1c020d12018-05-24 12:47:08 +03001082Enable libvirt control channel over TLS
OlgaGusarenko9dd01c92018-07-31 00:49:30 +03001083---------------------------------------
Oleksandr Shyshko1c020d12018-05-24 12:47:08 +03001084
1085By default TLS is disabled.
1086
OlgaGusarenko9dd01c92018-07-31 00:49:30 +03001087Enable TLS transport:
1088
1089.. code-block:: yaml
Oleksandr Shyshko1c020d12018-05-24 12:47:08 +03001090
1091 compute:
1092 libvirt:
1093 tls:
1094 enabled: True
1095
1096You able to set custom certificates in pillar:
1097
OlgaGusarenko9dd01c92018-07-31 00:49:30 +03001098.. code-block:: yaml
1099
Oleksandr Shyshko1c020d12018-05-24 12:47:08 +03001100 nova:
1101 compute:
1102 libvirt:
1103 tls:
1104 key: (certificate content)
1105 cert: (certificate content)
1106 cacert: (certificate content)
1107 client:
1108 key: (certificate content)
1109 cert: (certificate content)
1110
Dmitry Teselkin77d9dac2019-04-18 16:43:50 +03001111It is possible to limit allowed SSL / TLS ciphers using libvirt's tls_priority:
1112
1113.. code-block:: yaml
1114
1115 nova:
1116 compute:
1117 libvirt:
1118 tls:
1119 priority: <TLS priority string>
1120
1121Example priority strings are:
1122
1123- The system imposed security level:
1124
1125.. code-block:: text
1126
1127 "SYSTEM"
1128
1129- The default priority without the HMAC-MD5:
1130
1131.. code-block:: text
1132
1133 "NORMAL:-MD5"
1134
1135- Specifying RSA with AES-128-CBC:
1136
1137.. code-block:: text
1138
1139 "NONE:+VERS-TLS-ALL:+MAC-ALL:+RSA:+AES-128-CBC:+SIGN-ALL:+COMP-NULL"
1140
1141- Specifying the defaults plus ARCFOUR-128:
1142
1143.. code-block:: text
1144
1145 "NORMAL:+ARCFOUR-128"
1146
1147- Enabling the 128-bit secure ciphers, while disabling TLS 1.0:
1148
1149.. code-block:: text
1150
1151 "SECURE128:-VERS-TLS1.0"
1152
1153- Enabling the 128-bit and 192-bit secure ciphers, while disabling all TLS
1154 versions except TLS 1.2:
1155
1156.. code-block:: text
1157
1158 "SECURE128:+SECURE192:-VERS-ALL:+VERS-TLS1.2"
1159
1160More on TLS Priority Strings:
1161
1162- https://gnutls.org/manual/html_node/Priority-Strings.html
1163
Vasyl Saienko11ac9732018-10-02 17:04:33 +00001164Controlling access by `tls_allowed_dn_list`.
1165Enable an access control list of client certificate Distinguished Names (DNs)
1166which can connect to the TLS port on this server. The default is that DNs are
1167not checked. This list may contain wildcards such as
1168"C=GB,ST=London,L=London,O=Libvirt Project,CN=*" See the POSIX fnmatch function
1169for the format of the wildcards.
1170Note that if this is an empty list, no client can connect.
1171Note also that GnuTLS returns DNs without spaces after commas between
1172the fields (and this is what we check against), but the openssl x509 tool
1173shows spaces.
1174
1175.. code-block:: yaml
1176
1177 nova:
1178 compute:
1179 libvirt:
1180 tls:
1181 tls_allowed_dn_list:
1182 host1:
1183 enabled: true
1184 value: 'C=foo,CN=cmp1'
1185 host2:
1186 enabled: true
1187 value: 'C=foo,CN=cmp2'
1188
1189
Oleksandr Shyshko1c020d12018-05-24 12:47:08 +03001190You can read more about live migration over TLS here:
OlgaGusarenko9dd01c92018-07-31 00:49:30 +03001191https://wiki.libvirt.org/page/TLSCreateServerCerts
Oleksandr Shyshko981b4fa2018-05-02 15:39:30 +03001192
Oleksandr Shyshko1195fca2018-07-09 18:22:59 +03001193Enable transport + authentication for VNC over TLS
1194---------------------
Oleksandr Shyshkod8337cf2018-07-11 17:55:58 +03001195# Only for Queens. Communication between noVNC proxy service and QEMU
Oleksandr Shyshko1195fca2018-07-09 18:22:59 +03001196
1197By default communication between nova-novncproxy and qemu service is unsecure.
1198
1199compute:
1200 qemu:
1201 vnc:
1202 tls:
1203 enabled: True
1204
1205controller:
1206 novncproxy:
Oleksandr Shyshkod8337cf2018-07-11 17:55:58 +03001207 # This section responsible for communication between noVNC proxy and client machine
Oleksandr Shyshko1195fca2018-07-09 18:22:59 +03001208 tls:
1209 enabled: True
Oleksandr Shyshkod8337cf2018-07-11 17:55:58 +03001210 # This section responsible for communication between nova-novncproxy and qemu service
1211 vencrypt:
1212 tls:
1213 enabled: True
Oleksandr Shyshko1195fca2018-07-09 18:22:59 +03001214
1215You able to set custom certificates in pillar:
1216
Oleksandr Shyshkod8337cf2018-07-11 17:55:58 +03001217nova:
1218 compute:
1219 qemu:
1220 vnc:
1221 tls:
1222 cacert (certificate content)
1223 cert (certificate content)
1224 key (certificate content)
1225
1226nova:
1227 controller:
1228 novncproxy:
1229 tls:
1230 server:
1231 cert (certificate content)
1232 key (certificate content)
1233 vencrypt:
1234 tls:
1235 cacert (certificate content)
1236 cert (certificate content)
1237 key (certificate content)
1238
1239
1240You can read more about it here:
1241 https://docs.openstack.org/nova/queens/admin/remote-console-access.html
1242
1243Enable communication between noVNC proxy and client machine over TLS
1244---------------------
1245
1246By default communication between noVNC proxy and client machine is unsecure.
1247
1248 controller:
1249 novncproxy:
1250 tls:
1251 enabled: True
Oleksandr Shyshko1195fca2018-07-09 18:22:59 +03001252
1253 nova:
1254 controller:
1255 novncproxy:
1256 tls:
Oleksandr Shyshkod8337cf2018-07-11 17:55:58 +03001257 server:
1258 cert (certificate content)
1259 key (certificate content)
Oleksandr Shyshko1195fca2018-07-09 18:22:59 +03001260
1261You can read more about it here:
Oleksandr Shyshkod8337cf2018-07-11 17:55:58 +03001262 https://docs.openstack.org/mitaka/config-reference/dashboard/configure.html
Oleksandr Shyshko1195fca2018-07-09 18:22:59 +03001263
Oleksandr Shyshko55eeac72018-08-03 18:23:28 +03001264Enable x509 and ssl communication between Nova and Galera cluster.
1265---------------------
1266By default communication between Nova and Galera is unsecure.
1267
Oleksandr Shyshkocbe87352018-09-07 13:42:57 +03001268nova:
1269 controller:
1270 database:
1271 x509:
1272 enabled: True
1273
Oleksandr Shyshko55eeac72018-08-03 18:23:28 +03001274You able to set custom certificates in pillar:
Oleksandr Shyshko55eeac72018-08-03 18:23:28 +03001275
1276nova:
1277 controller:
1278 database:
1279 x509:
Oleksandr Shyshkocbe87352018-09-07 13:42:57 +03001280 cacert: (certificate content)
1281 cert: (certificate content)
1282 key: (certificate content)
Oleksandr Shyshko55eeac72018-08-03 18:23:28 +03001283
1284You can read more about it here:
1285 https://docs.openstack.org/security-guide/databases/database-access-control.html
1286
Oleksandr Shyshkod96a0992019-03-29 11:18:25 +00001287Define config option which allows to use nova-api service behind proxy.(Only Mitaka)
1288---------------------
1289The HTTP Header that will be used to determine what the original request protocol
1290scheme was, even if it was hidden by a SSL termination proxy.
1291
1292 nova:
1293 controller:
1294 secure_proxy_ssl_header: HTTP_X_FORWARDED_PROTO
1295
1296You can read more about it here:
1297 https://docs.openstack.org/mitaka/config-reference/compute/config-options.html
1298
obryndziif7957912019-01-31 00:55:56 +00001299Nova database connection setup:
1300========
1301
1302.. code-block:: yaml
1303
1304 nova:
1305 controller:
1306 enabled: True
1307 ...
1308 database:
1309 idle_timeout: 180
1310 min_pool_size: 100
1311 max_pool_size: 700
1312 max_overflow: 100
1313 retry_interval: 5
1314 max_retries: '-1'
1315 db_max_retries: 3
1316 db_retry_interval: 1
1317 connection_debug: 10
1318 pool_timeout: 120
1319
Oleksandr Bryndzii6d821f52019-02-20 15:51:15 +02001320
1321Configure nova to use service user tokens:
1322========
1323Long-running operations such as live migration or snapshot can sometimes overrun the
1324expiry of the user token. In such cases, post operations such as cleaning up after a
1325live migration can fail when the nova-compute service needs to cleanup resources in
1326other services, such as in the block-storage (cinder) or networking (neutron) services.
1327
1328This patch enables nova to use service user tokens to supplement the regular user token
1329used to initiate the operation. The identity service (keystone) will then authenticate
1330a request using the service user token if the user token has already expired.
1331
1332.. code-block:: yaml
1333
1334 nova:
1335 controller:
1336 enabled: True
1337 ...
1338 service_user:
1339 enabled: True
1340 user_domain_id: default
1341 project_domain_id: default
1342 project_name: service
1343 username: nova
1344 password: pswd
1345
Oleh Hryhorov63ee8452018-08-14 09:16:02 +00001346Upgrades
1347========
1348
1349Each openstack formula provide set of phases (logical bloks) that will help to
1350build flexible upgrade orchestration logic for particular components. The list
1351of phases might and theirs descriptions are listed in table below:
1352
1353+-------------------------------+------------------------------------------------------+
1354| State | Description |
1355+===============================+======================================================+
1356| <app>.upgrade.service_running | Ensure that all services for particular application |
1357| | are enabled for autostart and running |
1358+-------------------------------+------------------------------------------------------+
1359| <app>.upgrade.service_stopped | Ensure that all services for particular application |
1360| | disabled for autostart and dead |
1361+-------------------------------+------------------------------------------------------+
1362| <app>.upgrade.pkgs_latest | Ensure that packages used by particular application |
1363| | are installed to latest available version. |
1364| | This will not upgrade data plane packages like qemu |
1365| | and openvswitch as usually minimal required version |
1366| | in openstack services is really old. The data plane |
1367| | packages should be upgraded separately by `apt-get |
1368| | upgrade` or `apt-get dist-upgrade` |
1369| | Applying this state will not autostart service. |
1370+-------------------------------+------------------------------------------------------+
1371| <app>.upgrade.render_config | Ensure configuration is rendered actual version. +
1372+-------------------------------+------------------------------------------------------+
1373| <app>.upgrade.pre | We assume this state is applied on all nodes in the |
1374| | cloud before running upgrade. |
1375| | Only non destructive actions will be applied during |
1376| | this phase. Perform service built in service check |
1377| | like (keystone-manage doctor and nova-status upgrade)|
1378+-------------------------------+------------------------------------------------------+
1379| <app>.upgrade.upgrade.pre | Mostly applicable for data plane nodes. During this |
1380| | phase resources will be gracefully removed from |
1381| | current node if it is allowed. Services for upgraded |
1382| | application will be set to admin disabled state to |
1383| | make sure node will not participate in resources |
1384| | scheduling. For example on gtw nodes this will set |
1385| | all agents to admin disable state and will move all |
1386| | routers to other agents. |
1387+-------------------------------+------------------------------------------------------+
1388| <app>.upgrade.upgrade | This state will basically upgrade application on |
1389| | particular target. Stop services, render |
1390| | configuration, install new packages, run offline |
1391| | dbsync (for ctl), start services. Data plane should |
1392| | not be affected, only OpenStack python services. |
1393+-------------------------------+------------------------------------------------------+
1394| <app>.upgrade.upgrade.post | Add services back to scheduling. |
1395+-------------------------------+------------------------------------------------------+
1396| <app>.upgrade.post | This phase should be launched only when upgrade of |
1397| | the cloud is completed. Cleanup temporary files, |
1398| | perform other post upgrade tasks. |
1399+-------------------------------+------------------------------------------------------+
1400| <app>.upgrade.verify | Here we will do basic health checks (API CRUD |
1401| | operations, verify do not have dead network |
1402| | agents/compute services) |
1403+-------------------------------+------------------------------------------------------+