blob: 948f8ec64aa51de0e56ef9b42105e1811e337643 [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
sgarbuzcc02c7f2018-10-25 14:29:30 +030033 consoleauth:
34 token_ttl: 600
Filip Pytloun4a72d792015-10-06 16:28:32 +020035 bind:
36 public_address: 10.0.0.122
37 public_name: openstack.domain.com
38 novncproxy_port: 6080
39 database:
40 engine: mysql
41 host: 127.0.0.1
42 port: 3306
43 name: nova
44 user: nova
45 password: pwd
46 identity:
47 engine: keystone
48 host: 127.0.0.1
49 port: 35357
50 user: nova
51 password: pwd
52 tenant: service
53 message_queue:
54 engine: rabbitmq
55 host: 127.0.0.1
56 port: 5672
57 user: openstack
58 password: pwd
59 virtual_host: '/openstack'
Oleh Hryhorovf5093b82018-10-17 11:16:08 +000060 pci:
61 alias:
62 alias1:
63 device_type: "type-PF"
64 name: "a1"
65 product_id: "154d"
66 vendor_id: "8086"
Filip Pytloun4a72d792015-10-06 16:28:32 +020067 network:
68 engine: neutron
69 host: 127.0.0.1
70 port: 9696
Jakub Pavlik617a8962016-09-04 18:50:06 +020071 extension_sync_interval: 600
Filip Pytloun4a72d792015-10-06 16:28:32 +020072 identity:
73 engine: keystone
74 host: 127.0.0.1
75 port: 35357
76 user: neutron
77 password: pwd
78 tenant: service
79 metadata:
80 password: password
Petr Michalecaa23dc02016-11-29 16:30:25 +010081 audit:
82 enabled: false
Simon Pasquier8683b7a2017-02-03 16:00:16 +010083 osapi_max_limit: 500
Oleg Iurchenko370c10d2017-10-19 14:03:37 +030084 barbican:
85 enabled: true
Filip Pytloun4a72d792015-10-06 16:28:32 +020086
OlgaGusarenko9dd01c92018-07-31 00:49:30 +030087Nova services from custom package repository:
Filip Pytloun4a72d792015-10-06 16:28:32 +020088
89.. code-block:: yaml
90
91 nova:
92 controller:
93 version: juno
94 source:
95 engine: pkg
96 address: http://...
97 ....
98
OlgaGusarenko9dd01c92018-07-31 00:49:30 +030099Client-side RabbitMQ HA setup:
Jiri Konecnye31f2c52016-04-14 17:16:02 +0200100
101.. code-block:: yaml
102
103 nova:
104 controller:
105 ....
106 message_queue:
107 engine: rabbitmq
108 members:
109 - host: 10.0.16.1
110 - host: 10.0.16.2
111 - host: 10.0.16.3
112 user: openstack
113 password: pwd
114 virtual_host: '/openstack'
115 ....
116
OlgaGusarenko9dd01c92018-07-31 00:49:30 +0300117Enable auditing filter, i.e: CADF:
Petr Michalecaa23dc02016-11-29 16:30:25 +0100118
119.. code-block:: yaml
120
121 nova:
122 controller:
Simon Pasquier6a3c8f72016-12-19 15:37:24 +0100123 audit:
Petr Michalecaa23dc02016-11-29 16:30:25 +0100124 enabled: true
125 ....
126 filter_factory: 'keystonemiddleware.audit:filter_factory'
127 map_file: '/etc/pycadf/nova_api_audit_map.conf'
128 ....
129
OlgaGusarenko9dd01c92018-07-31 00:49:30 +0300130Enable CORS parameters:
Ondrej Smola25b53cb2017-04-28 10:56:19 +0200131
132.. code-block:: yaml
133
134 nova:
135 controller:
136 cors:
137 allowed_origin: https:localhost.local,http:localhost.local
138 expose_headers: X-Auth-Token,X-Openstack-Request-Id,X-Subject-Token
139 allow_methods: GET,PUT,POST,DELETE,PATCH
140 allow_headers: X-Auth-Token,X-Openstack-Request-Id,X-Subject-Token
141 allow_credentials: True
142 max_age: 86400
143
OlgaGusarenko9dd01c92018-07-31 00:49:30 +0300144Configuration of the ``policy.json`` file:
Dmitry Ukov3562a082017-05-04 00:00:48 +0400145
146.. code-block:: yaml
147
148 nova:
149 controller:
150 ....
151 policy:
152 context_is_admin: 'role:admin or role:administrator'
153 'compute:create': 'rule:admin_or_owner'
154 # Add key without value to remove line from policy.json
155 'compute:create:attach_network':
Ondrej Smola25b53cb2017-04-28 10:56:19 +0200156
OlgaGusarenko9dd01c92018-07-31 00:49:30 +0300157Enable Barbican integration:
Oleg Iurchenko370c10d2017-10-19 14:03:37 +0300158
159.. code-block:: yaml
160
161 nova:
162 controller:
163 ....
164 barbican:
165 enabled: true
166
Oleh Hryhorovf5093b82018-10-17 11:16:08 +0000167Define aliases for PCI devices:
168.. code-block:: yaml
169
170 nova:
171 controller:
172 ...
173 pci:
174 alias:
175 alias1:
176 device_type: "type-PF"
177 name: "a1"
178 product_id: "154d"
179 vendor_id: "8086"
180
Jiri Broulik789179a2018-02-13 16:16:46 +0100181Enable cells update:
182
OlgaGusarenko9dd01c92018-07-31 00:49:30 +0300183.. note:: Useful when upgrading Openstack. To update cells to test
184 sync db agains duplicated production database.
Jiri Broulik789179a2018-02-13 16:16:46 +0100185
186.. code-block:: yaml
187
188 nova:
189 controller:
190 update_cells: true
191
Kirill Bespalov64617172017-07-11 14:43:14 +0300192
Kirill Bespalova0eaca72017-11-20 13:40:42 +0300193Configuring TLS communications
194------------------------------
Kirill Bespalov64617172017-07-11 14:43:14 +0300195
OlgaGusarenko9dd01c92018-07-31 00:49:30 +0300196.. note:: By default system wide installed CA certs are used,
197 so ``cacert_file`` param is optional, as well as ``cacert``.
Kirill Bespalova0eaca72017-11-20 13:40:42 +0300198
199- **RabbitMQ TLS**
Kirill Bespalov64617172017-07-11 14:43:14 +0300200
OlgaGusarenko9dd01c92018-07-31 00:49:30 +0300201 .. code-block:: yaml
Kirill Bespalov64617172017-07-11 14:43:14 +0300202
OlgaGusarenko9dd01c92018-07-31 00:49:30 +0300203 nova:
204 compute:
205 message_queue:
206 port: 5671
207 ssl:
208 enabled: True
209 (optional) cacert: cert body if the cacert_file does not exists
210 (optional) cacert_file: /etc/openstack/rabbitmq-ca.pem
211 (optional) version: TLSv1_2
Kirill Bespalov64617172017-07-11 14:43:14 +0300212
Kirill Bespalova0eaca72017-11-20 13:40:42 +0300213- **MySQL TLS**
Kirill Bespalov64617172017-07-11 14:43:14 +0300214
OlgaGusarenko9dd01c92018-07-31 00:49:30 +0300215 .. code-block:: yaml
Kirill Bespalov64617172017-07-11 14:43:14 +0300216
OlgaGusarenko9dd01c92018-07-31 00:49:30 +0300217 nova:
218 controller:
219 database:
220 ssl:
221 enabled: True
222 (optional) cacert: cert body if the cacert_file does not exists
223 (optional) cacert_file: /etc/openstack/mysql-ca.pem
Kirill Bespalov64617172017-07-11 14:43:14 +0300224
Kirill Bespalova0eaca72017-11-20 13:40:42 +0300225- **Openstack HTTPS API**
226
OlgaGusarenko9dd01c92018-07-31 00:49:30 +0300227 Set the ``https`` as protocol at ``nova:compute`` and
228 ``nova:controller`` sections :
Kirill Bespalova0eaca72017-11-20 13:40:42 +0300229
OlgaGusarenko9dd01c92018-07-31 00:49:30 +0300230 .. code-block:: yaml
Kirill Bespalov64617172017-07-11 14:43:14 +0300231
OlgaGusarenko9dd01c92018-07-31 00:49:30 +0300232 nova:
233 controller :
234 identity:
235 protocol: https
236 (optional) cacert_file: /etc/openstack/proxy.pem
237 network:
238 protocol: https
239 (optional) cacert_file: /etc/openstack/proxy.pem
240 glance:
241 protocol: https
242 (optional) cacert_file: /etc/openstack/proxy.pem
Kirill Bespalov64617172017-07-11 14:43:14 +0300243
OlgaGusarenko9dd01c92018-07-31 00:49:30 +0300244 .. code-block:: yaml
Kirill Bespalov64617172017-07-11 14:43:14 +0300245
OlgaGusarenko9dd01c92018-07-31 00:49:30 +0300246 nova:
247 compute:
248 identity:
249 protocol: https
250 (optional) cacert_file: /etc/openstack/proxy.pem
251 network:
252 protocol: https
253 (optional) cacert_file: /etc/openstack/proxy.pem
254 image:
255 protocol: https
256 (optional) cacert_file: /etc/openstack/proxy.pem
257 ironic:
258 protocol: https
259 (optional) cacert_file: /etc/openstack/proxy.pem
Kirill Bespalov64617172017-07-11 14:43:14 +0300260
OlgaGusarenko9dd01c92018-07-31 00:49:30 +0300261.. note:: Barbican, Cinder, and placement url endpoints are discovering
262 using service catalog.
Kirill Bespalov64617172017-07-11 14:43:14 +0300263
Filip Pytloun4a72d792015-10-06 16:28:32 +0200264Compute nodes
265-------------
266
OlgaGusarenko9dd01c92018-07-31 00:49:30 +0300267Nova controller services on compute node:
Filip Pytloun4a72d792015-10-06 16:28:32 +0200268
269.. code-block:: yaml
270
271 nova:
272 compute:
273 version: juno
274 enabled: true
Dmitry Stremkovskiy2bcba8d2017-07-30 21:43:59 +0300275 cross_az_attach: false
Dmitry Stremkovskiy35e53b72017-07-29 12:50:39 +0300276 disk_cachemodes: network=writeback,block=none
Jiri Broulik70d9e3f2017-02-15 18:37:13 +0100277 availability_zone: availability_zone_01
Damian Szelugae1922412017-04-18 16:36:46 +0200278 aggregates:
279 - hosts_with_fc
280 - hosts_with_ssd
Filip Pytloun4a72d792015-10-06 16:28:32 +0200281 security_group: true
Petr Michalecf03e4882017-04-10 10:26:18 +0200282 resume_guests_state_on_host_boot: False
Michael Polenchuk159c2542018-06-09 15:31:51 +0400283 preallocate_images: space # Default is 'none'
Dmitry Stremkovskiy8a0ff512017-07-25 20:54:13 +0300284 my_ip: 10.1.0.16
Filip Pytloun4a72d792015-10-06 16:28:32 +0200285 bind:
286 vnc_address: 172.20.0.100
287 vnc_port: 6080
288 vnc_name: openstack.domain.com
289 vnc_protocol: http
290 database:
291 engine: mysql
292 host: 127.0.0.1
293 port: 3306
294 name: nova
295 user: nova
296 password: pwd
297 identity:
298 engine: keystone
299 host: 127.0.0.1
300 port: 35357
301 user: nova
302 password: pwd
303 tenant: service
304 message_queue:
305 engine: rabbitmq
306 host: 127.0.0.1
307 port: 5672
308 user: openstack
309 password: pwd
310 virtual_host: '/openstack'
311 image:
312 engine: glance
313 host: 127.0.0.1
314 port: 9292
Oleh Hryhorovf5093b82018-10-17 11:16:08 +0000315 pci:
316 alias:
317 alias1:
318 device_type: "type-PF"
319 name: "a1"
320 product_id: "154d"
321 vendor_id: "8086"
Filip Pytloun4a72d792015-10-06 16:28:32 +0200322 network:
323 engine: neutron
324 host: 127.0.0.1
325 port: 9696
326 identity:
327 engine: keystone
328 host: 127.0.0.1
329 port: 35357
330 user: neutron
331 password: pwd
332 tenant: service
333 qemu:
334 max_files: 4096
335 max_processes: 4096
Dmitry Stremkovskiy96281f52017-07-26 00:39:22 +0300336 host: node-12.domain.tld
Filip Pytloun4a72d792015-10-06 16:28:32 +0200337
Vasyl Saienkocab3a902018-07-12 13:17:17 +0300338Compute with vmware driver. Each vmware cluster requires a separate process of nova-compute.
339Each process should have uniq host identifier. However multiple computes might be running on
340single host. It is not recommended to have multiple computes running on different hosts that
341manage the same vmware cluster. To achive this pacemaker/corosync or keepalived might be used.
342
343.. code-block:: yaml
344
345 nova:
346 compute:
347 compute_driver: vmwareapi.VMwareVCDriver
348 vmware:
349 host_username: vmware
350 host_password: vmware
351 cluster_name: vmware_cluster01
352 host_ip: 1.2.3.4
353
OlgaGusarenko9dd01c92018-07-31 00:49:30 +0300354Group and user to be used for QEMU processes run by the system instance:
kkalynovskyif50f0c02017-12-12 17:52:57 +0200355
356.. code-block:: yaml
357
358 nova:
359 compute:
360 enabled: true
361 ...
362 qemu:
363 user: nova
364 group: cinder
365 dynamic_ownership: 1
366
OlgaGusarenko9dd01c92018-07-31 00:49:30 +0300367Group membership for user nova (upgrade related):
Dmitry Stremkovskiy3cd6ba82017-07-25 17:15:36 +0300368
369.. code-block:: yaml
370
371 nova:
372 compute:
373 enabled: true
374 ...
375 user:
376 groups:
377 - libvirt
Filip Pytloun4a72d792015-10-06 16:28:32 +0200378
OlgaGusarenko9dd01c92018-07-31 00:49:30 +0300379Nova services on compute node with OpenContrail:
Filip Pytloun4a72d792015-10-06 16:28:32 +0200380
381.. code-block:: yaml
382
383 nova:
384 compute:
385 enabled: true
386 ...
387 networking: contrail
388
Oleksandr Bryndziibb8abfe2018-09-28 22:21:43 +0000389Nova services on compute node with memcached caching and security strategy:
Filip Pytloun4a72d792015-10-06 16:28:32 +0200390
391.. code-block:: yaml
392
393 nova:
394 compute:
395 enabled: true
396 ...
397 cache:
398 engine: memcached
399 members:
400 - host: 127.0.0.1
401 port: 11211
402 - host: 127.0.0.1
403 port: 11211
Oleksandr Bryndziibb8abfe2018-09-28 22:21:43 +0000404 security:
405 enabled: true
406 strategy: ENCRYPT
407 secret_key: secret
Filip Pytloun4a72d792015-10-06 16:28:32 +0200408
OlgaGusarenko9dd01c92018-07-31 00:49:30 +0300409Client-side RabbitMQ HA setup:
Jiri Konecnye31f2c52016-04-14 17:16:02 +0200410
411.. code-block:: yaml
412
413 nova:
Kirill Bespalov64617172017-07-11 14:43:14 +0300414 compute:
Jiri Konecnye31f2c52016-04-14 17:16:02 +0200415 ....
416 message_queue:
417 engine: rabbitmq
418 members:
419 - host: 10.0.16.1
420 - host: 10.0.16.2
421 - host: 10.0.16.3
422 user: openstack
423 password: pwd
424 virtual_host: '/openstack'
425 ....
426
OlgaGusarenko9dd01c92018-07-31 00:49:30 +0300427Nova with ephemeral configured with Ceph:
maxstack39e6aca2016-05-04 13:50:13 +0000428
429.. code-block:: yaml
430
431 nova:
432 compute:
433 enabled: true
434 ...
435 ceph:
436 ephemeral: yes
437 rbd_pool: nova
438 rbd_user: nova
439 secret_uuid: 03006edd-d957-40a3-ac4c-26cd254b3731
Kalynovskyi0bc79692017-07-21 16:22:09 +0300440 ....
maxstack39e6aca2016-05-04 13:50:13 +0000441
OlgaGusarenko9dd01c92018-07-31 00:49:30 +0300442Nova with ephemeral configured with LVM:
Kalynovskyi0bc79692017-07-21 16:22:09 +0300443
444.. code-block:: yaml
445
446 nova:
447 compute:
448 enabled: true
449 ...
450 lvm:
451 ephemeral: yes
452 images_volume_group: nova_vg
453
454 linux:
455 storage:
456 lvm:
457 nova_vg:
458 name: nova_vg
459 devices:
460 - /dev/sdf
461 - /dev/sdd
462 - /dev/sdg
463 - /dev/sde
464 - /dev/sdc
465 - /dev/sdj
466 - /dev/sdh
maxstack39e6aca2016-05-04 13:50:13 +0000467
OlgaGusarenko9dd01c92018-07-31 00:49:30 +0300468Enable Barbican integration:
Oleg Iurchenko370c10d2017-10-19 14:03:37 +0300469
470.. code-block:: yaml
471
472 nova:
473 compute:
474 ....
475 barbican:
476 enabled: true
477
Oleh Hryhorovf5093b82018-10-17 11:16:08 +0000478Define aliases for PCI devices:
479.. code-block:: yaml
480
481 nova:
482 compute:
483 ...
484 pci:
485 alias:
486 alias1:
487 device_type: "type-PF"
488 name: "a1"
489 product_id: "154d"
490 vendor_id: "8086"
491
OlgaGusarenko9dd01c92018-07-31 00:49:30 +0300492Nova metadata custom bindings:
Vasyl Saienko2d591282018-02-05 14:19:02 +0200493
494.. code-block:: yaml
495
496 nova:
497 controller:
498 enabled: true
499 ...
500 metadata:
501 bind:
502 address: 1.2.3.4
503 port: 8776
504
Oleh Hryhorov08482aa2018-11-19 14:07:47 +0200505Define multipath for nova compute:
506
507.. code-block:: yaml
508
509 nova:
510 compute:
511 ....
512 libvirt:
513 volume_use_multipath: True
514
Jiri Broulik0ce9fc92017-02-01 23:10:40 +0100515Client role
516-----------
517
OlgaGusarenko9dd01c92018-07-31 00:49:30 +0300518Nova configured with NFS:
Dmitry Stremkovskiy665c7282017-07-05 17:36:27 +0300519
520.. code-block:: yaml
521
522 nova:
523 compute:
524 instances_path: /mnt/nova/instances
525
526 linux:
527 storage:
528 enabled: true
529 mount:
530 nfs_nova:
531 enabled: true
532 path: ${nova:compute:instances_path}
533 device: 172.31.35.145:/data
534 file_system: nfs
535 opts: rw,vers=3
536
OlgaGusarenko9dd01c92018-07-31 00:49:30 +0300537Nova flavors:
Jiri Broulik0ce9fc92017-02-01 23:10:40 +0100538
539.. code-block:: yaml
540
541 nova:
542 client:
543 enabled: true
544 server:
545 identity:
546 flavor:
Jiri Broulik70d9e3f2017-02-15 18:37:13 +0100547 flavor1:
Jiri Broulik0ce9fc92017-02-01 23:10:40 +0100548 flavor_id: 10
549 ram: 4096
550 disk: 10
551 vcpus: 1
Jiri Broulik70d9e3f2017-02-15 18:37:13 +0100552 flavor2:
553 flavor_id: auto
554 ram: 4096
555 disk: 20
556 vcpus: 2
Jiri Broulik0ce9fc92017-02-01 23:10:40 +0100557 identity1:
558 flavor:
559 ...
560
OlgaGusarenko9dd01c92018-07-31 00:49:30 +0300561Availability zones:
Jiri Broulik70d9e3f2017-02-15 18:37:13 +0100562
563.. code-block:: yaml
564
565 nova:
566 client:
567 enabled: true
568 server:
569 identity:
570 availability_zones:
571 - availability_zone_01
572 - availability_zone_02
573
OlgaGusarenko9dd01c92018-07-31 00:49:30 +0300574Aggregates:
Damian Szeluga5dca0f02017-04-13 17:27:15 +0200575
576.. code-block:: yaml
577
578 nova:
579 client:
580 enabled: true
581 server:
582 identity:
583 aggregates:
584 - aggregate1
585 - aggregate2
586
OlgaGusarenko9dd01c92018-07-31 00:49:30 +0300587Upgrade levels:
Dmitry Stremkovskiy91f45852017-07-18 16:22:31 +0300588
589.. code-block:: yaml
590
591 nova:
592 controller:
593 upgrade_levels:
594 compute: juno
595
596 nova:
597 compute:
598 upgrade_levels:
599 compute: juno
600
Petr Jedinýd855ef22017-03-06 22:24:33 +0100601SR-IOV
Jakub Pavlik39a05942017-02-13 23:03:08 +0100602------
603
OlgaGusarenko9dd01c92018-07-31 00:49:30 +0300604Add ``PciPassthroughFilter`` into scheduler filters and NICs on
605specific compute nodes:
Jakub Pavlik39a05942017-02-13 23:03:08 +0100606
607.. code-block:: yaml
608
609 nova:
610 controller:
611 sriov: true
sandriichenko4fe321d2018-01-22 17:34:06 +0000612 scheduler_default_filters: "DifferentHostFilter,SameHostFilter,RetryFilter,AvailabilityZoneFilter,RamFilter,CoreFilter,DiskFilter,ComputeFilter,ComputeCapabilitiesFilter,ImagePropertiesFilter,ServerGroupAntiAffinityFilter,ServerGroupAffinityFilter,PciPassthroughFilter"
Jakub Pavlik39a05942017-02-13 23:03:08 +0100613
614 nova:
615 compute:
616 sriov:
617 nic_one:
618 devname: eth1
619 physical_network: physnet1
620
Oleh Hryhorovf5093b82018-10-17 11:16:08 +0000621.. note:: Parameters located under nova:compute:sriov:<nic_name> are copied to passthrough_whitelist parameter into
622 nova.conf file in appropriate format.
623
Jakub Pavlik26fb85c2017-02-16 22:29:22 +0100624CPU pinning & Hugepages
625-----------------------
626
OlgaGusarenko9dd01c92018-07-31 00:49:30 +0300627CPU pinning of virtual machine instances to dedicated physical
628CPU cores. Hugepages mount point for libvirt.
Jakub Pavlik26fb85c2017-02-16 22:29:22 +0100629
630.. code-block:: yaml
631
632 nova:
633 controller:
sandriichenko4fe321d2018-01-22 17:34:06 +0000634 scheduler_default_filters: "DifferentHostFilter,SameHostFilter,RetryFilter,AvailabilityZoneFilter,RamFilter,CoreFilter,DiskFilter,ComputeFilter,ComputeCapabilitiesFilter,ImagePropertiesFilter,ServerGroupAntiAffinityFilter,ServerGroupAffinityFilter,NUMATopologyFilter,AggregateInstanceExtraSpecsFilter"
Jakub Pavlik26fb85c2017-02-16 22:29:22 +0100635
636 nova:
637 compute:
638 vcpu_pin_set: 2,3,4,5
639 hugepages:
640 mount_points:
641 - path: /mnt/hugepages_1GB
642 - path: /mnt/hugepages_2MB
Jiri Broulik0ce9fc92017-02-01 23:10:40 +0100643
Michel Nederlof171c7ac2017-04-13 12:54:14 +0200644Custom Scheduler filters
645------------------------
646
OlgaGusarenko9dd01c92018-07-31 00:49:30 +0300647If you have a custom filter, that needs to be included in the
648scheduler, then you can include it like so:
Michel Nederlof171c7ac2017-04-13 12:54:14 +0200649
650.. code-block:: yaml
651
652 nova:
653 controller:
654 scheduler_custom_filters:
655 - my_custom_driver.nova.scheduler.filters.my_custom_filter.MyCustomFilter
656
657 # 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 +0000658 scheduler_default_filters: "DifferentHostFilter,SameHostFilter,RetryFilter,AvailabilityZoneFilter,RamFilter,CoreFilter,DiskFilter,ComputeFilter,ComputeCapabilitiesFilter,ImagePropertiesFilter,ServerGroupAntiAffinityFilter,ServerGroupAffinityFilter,PciPassthroughFilter,MyCustomFilter"
Michel Nederlof171c7ac2017-04-13 12:54:14 +0200659
Michael Polenchuk2bce2cb2018-09-17 16:05:43 +0400660 # Since Queens version a sequence could be used as well:
661 ~scheduler_default_filters:
662 - DifferentHostFilter
663 - SameHostFilter
664 ...
665 - MyCustomFilter
666
667
Michel Nederlofeb566f62017-04-21 15:37:47 +0200668Hardware Trip/Unmap Support
669---------------------------
670
OlgaGusarenko9dd01c92018-07-31 00:49:30 +0300671To enable TRIM support for ephemeral images (thru nova managed
672images), libvirt has this option:
Michel Nederlofeb566f62017-04-21 15:37:47 +0200673
674.. code-block:: yaml
675
676 nova:
677 compute:
678 libvirt:
679 hw_disk_discard: unmap
680
OlgaGusarenko9dd01c92018-07-31 00:49:30 +0300681To actually utilize this feature, the following metadata must be
682set on the image as well, so the SCSI unmap is supported:
Michel Nederlofeb566f62017-04-21 15:37:47 +0200683
684.. code-block:: bash
685
686 glance image-update --property hw_scsi_model=virtio-scsi <image>
687 glance image-update --property hw_disk_bus=scsi <image>
Filip Pytloun5bc9e9f2017-02-02 13:05:40 +0100688
Thom Gerdesf582f1e2017-05-02 18:05:50 +0000689Scheduler Host Manager
690----------------------
691
692Specify a custom host manager.
693
Thom Gerdesec00afd2017-04-07 18:06:59 +0000694libvirt CPU mode
695----------------
696
OlgaGusarenko9dd01c92018-07-31 00:49:30 +0300697Allow setting the model of CPU that is exposed to a VM. This
698allows for better support live migration between hypervisors with
699different hardware, among other things. Defaults to host-passthrough.
Jakub Pavlik7046b9c2017-09-19 12:04:19 +0200700
Thom Gerdesf582f1e2017-05-02 18:05:50 +0000701.. code-block:: yaml
702
703 nova:
704 controller:
705 scheduler_host_manager: ironic_host_manager
706
Thom Gerdesec00afd2017-04-07 18:06:59 +0000707 compute:
708 cpu_mode: host-model
709
Dzmitry Stremkouski7da9bf12018-04-25 22:30:37 +0200710Nova compute cpu model
711----------------------
712
713.. code-block:: yaml
714
715 nova:
716 compute:
717 cpu_mode: custom
718 libvirt:
719 cpu_model: IvyBridge
720
721
Michel Nederloff7eefb22017-07-10 11:14:33 +0200722Nova compute workarounds
723------------------------
724
OlgaGusarenko9dd01c92018-07-31 00:49:30 +0300725Live snapshotting is disabled by default in nova. To enable
726this, it needs a manual switch.
Michel Nederloff7eefb22017-07-10 11:14:33 +0200727
728From manual:
729
730.. code-block:: yaml
731
OlgaGusarenko9dd01c92018-07-31 00:49:30 +0300732 When using libvirt 1.2.2 live snapshots fail intermittently under load
733 (likely related to concurrent libvirt/qemu operations). This config
734 option provides a mechanism to disable live snapshot, in favor of cold
735 snapshot, while this is resolved. Cold snapshot causes an instance
736 outage while the guest is going through the snapshotting process.
737
738 For more information, refer to the bug report:
739
740 https://bugs.launchpad.net/nova/+bug/1334398
Michel Nederloff7eefb22017-07-10 11:14:33 +0200741
742Configurable pillar data:
743
744.. code-block:: yaml
745
746 nova:
747 compute:
Michel Nederlofe322ebb2017-07-10 12:29:21 +0200748 workaround:
Michel Nederloff7eefb22017-07-10 11:14:33 +0200749 disable_libvirt_livesnapshot: False
750
Michel Nederlofb51a5142017-06-27 08:31:35 +0200751Config drive options
752--------------------
753
OlgaGusarenko9dd01c92018-07-31 00:49:30 +0300754See example below on how to configure the options for the
755config drive:
Michel Nederlofb51a5142017-06-27 08:31:35 +0200756
757.. code-block:: yaml
758
759 nova:
760 compute:
761 config_drive:
762 forced: True # Default: True
763 cdrom: True # Default: False
764 format: iso9660 # Default: vfat
765 inject_password: False # Default: False
766
Michel Nederloff81919b2017-11-20 09:37:07 +0100767Number of concurrent live migrates
768----------------------------------
769
OlgaGusarenko9dd01c92018-07-31 00:49:30 +0300770Default is to have no concurrent live migrations (so 1
771live-migration at a time).
Michel Nederloff81919b2017-11-20 09:37:07 +0100772
OlgaGusarenko9dd01c92018-07-31 00:49:30 +0300773Excerpt from config options page
774https://docs.openstack.org/ocata/config-reference/compute/config-options.html:
Michel Nederloff81919b2017-11-20 09:37:07 +0100775
OlgaGusarenko9dd01c92018-07-31 00:49:30 +0300776Maximum number of live migrations to run concurrently. This limit is
777enforced to avoid outbound live migrations overwhelming the host/network
778and causing failures. It is not recommended that you change this unless
779you are very sure that doing so is safe and stable in your environment.
Michel Nederloff81919b2017-11-20 09:37:07 +0100780
OlgaGusarenko9dd01c92018-07-31 00:49:30 +0300781Possible values:
Michel Nederloff81919b2017-11-20 09:37:07 +0100782
OlgaGusarenko9dd01c92018-07-31 00:49:30 +0300783- 0 : treated as unlimited.
784- Negative value defaults to 0.
785- Any positive integer representing maximum number of live migrations
786 to run concurrently.
Michel Nederloff81919b2017-11-20 09:37:07 +0100787
788To configure this option:
789
790.. code-block:: yaml
791
792 nova:
793 compute:
794 max_concurrent_live_migrations: 1 # (1 is the default)
795
Sergio Lystopad9d31cba2018-05-15 11:29:11 +0300796Live migration with auto converge
797----------------------------------
798
OlgaGusarenko9dd01c92018-07-31 00:49:30 +0300799Auto converge throttles down CPU if a progress of on-going live
800migration is slow
801https://docs.openstack.org/ocata/config-reference/compute/config-options.html:
Sergio Lystopad9d31cba2018-05-15 11:29:11 +0300802
803.. code-block:: yaml
804
805 nova:
806 compute:
807 libvirt:
808 live_migration_permit_auto_converge: False # (False is the default)
809
810.. code-block:: yaml
811
812 nova:
813 controller:
814 libvirt:
815 live_migration_permit_auto_converge: False # (False is the default)
816
Dmitry Kalashnike58fe082017-12-01 16:31:14 +0400817Enhanced logging with logging.conf
818----------------------------------
819
OlgaGusarenko9dd01c92018-07-31 00:49:30 +0300820By default ``logging.conf`` is disabled.
Dmitry Kalashnike58fe082017-12-01 16:31:14 +0400821
822That is possible to enable per-binary logging.conf with new variables:
Dmitry Kalashnike58fe082017-12-01 16:31:14 +0400823
OlgaGusarenko9dd01c92018-07-31 00:49:30 +0300824* ``openstack_log_appender``
825 Set to true to enable log_config_append for all OpenStack services
826
827* ``openstack_fluentd_handler_enabled``
828 Set to true to enable FluentHandler for all Openstack services
829
830* ``openstack_ossyslog_handler_enabled``
831 Set to true to enable OSSysLogHandler for all Openstack services
832
833Only ``WatchedFileHandler``, ``OSSysLogHandler``, and ``FluentHandler``
834are available.
Dmitry Kalashnike58fe082017-12-01 16:31:14 +0400835
Dmitry Kalashnik8da249c2018-01-16 17:58:00 +0400836Also it is possible to configure this with pillar:
Dmitry Kalashnike58fe082017-12-01 16:31:14 +0400837
838.. code-block:: yaml
839
840 nova:
841 controller:
842 logging:
843 log_appender: true
844 log_handlers:
845 watchedfile:
846 enabled: true
847 fluentd:
848 enabled: true
Oleksii Chupryn99e35032018-02-06 01:59:40 +0200849 ossyslog:
850 enabled: true
Dmitry Kalashnike58fe082017-12-01 16:31:14 +0400851
852 compute:
853 logging:
854 log_appender: true
855 log_handlers:
856 watchedfile:
857 enabled: true
858 fluentd:
859 enabled: true
Oleksii Chupryn99e35032018-02-06 01:59:40 +0200860 ossyslog:
861 enabled: true
Thom Gerdesf582f1e2017-05-02 18:05:50 +0000862
Vasyl Saienko7243a952018-05-11 21:26:54 +0300863The log level might be configured per logger by using the
864following pillar structure:
865
866.. code-block:: yaml
867
868 nova:
869 compute:
870 logging:
871 loggers:
872 <logger_name>:
873 level: WARNING
874
875 nova:
876 compute:
877 logging:
878 loggers:
879 <logger_name>:
880 level: WARNING
881
Oleh Hryhorove38525d2018-05-15 08:58:59 +0000882Configure syslog parameters for libvirtd
883----------------------------------------
884
OlgaGusarenko9dd01c92018-07-31 00:49:30 +0300885To configure syslog parameters for libvirtd the below pillar
886structure should be used with values which are supported
Oleh Hryhorove38525d2018-05-15 08:58:59 +0000887by libvirtd. These values might be known from the documentation.
888
OlgaGusarenko9dd01c92018-07-31 00:49:30 +0300889.. code-block:: yaml
890
Oleh Hryhorove38525d2018-05-15 08:58:59 +0000891 nova:
892 compute:
893 libvirt:
894 logging:
895 level: 3
896 filters: '3:remote 4:event'
897 outputs: '3:syslog:libvirtd'
898 buffer_size: 64
899
OlgaGusarenko9dd01c92018-07-31 00:49:30 +0300900Logging controls:
Oleh Hryhorove38525d2018-05-15 08:58:59 +0000901
OlgaGusarenko9dd01c92018-07-31 00:49:30 +0300902Logging level: 4 errors, 3 warnings, 2 information, 1 debug
903basically 1 will log everything possible ``log_level = 3``
Oleh Hryhorove38525d2018-05-15 08:58:59 +0000904
OlgaGusarenko9dd01c92018-07-31 00:49:30 +0300905Logging filters:
Oleh Hryhorove38525d2018-05-15 08:58:59 +0000906
OlgaGusarenko9dd01c92018-07-31 00:49:30 +0300907A filter allows to select a different logging level for a given category
908of logs.
Oleh Hryhorove38525d2018-05-15 08:58:59 +0000909
OlgaGusarenko9dd01c92018-07-31 00:49:30 +0300910The format for a filter is one of:
Oleh Hryhorove38525d2018-05-15 08:58:59 +0000911
OlgaGusarenko9dd01c92018-07-31 00:49:30 +0300912* ``x:name``
913* ``x:+name``
914 where name is a string which is matched against source file name,
915 e.g., ``remote``, ``qemu``, or ``util/json``, the optional ``+`` prefix
916 tells libvirt to log stack trace for each message matching name,
917 and x is the minimal level where matching messages should be logged:
Oleh Hryhorove38525d2018-05-15 08:58:59 +0000918
OlgaGusarenko9dd01c92018-07-31 00:49:30 +0300919* ``1: DEBUG``
920* ``2: INFO``
921* ``3: WARNING``
922* ``4: ERROR``
923
924Multiple filter can be defined in a single @filters, they just
925need to be separated by spaces.
926
927For example, to only get warning or errors from the remote layer
928and only errors from the event layer: ``log_filters="3:remote 4:event``
929
930Logging outputs:
931
932An output is one of the places to save logging information
933The format for an output can be:
934
935* ``x:stderr``
936 Output goes to stderr
937
938* ``x:syslog:name``
939 Use syslog for the output and use the given name as the ident
940
941* ``x:file:file_path``
942 output to a file, with the given filepath
943
944 In all case the x prefix is the minimal level, acting as a filter
945
946* ``1: DEBUG``
947* ``2: INFO``
948* ``3: WARNING``
949* ``4: ERROR``
950
951Multiple output can be defined, they just need to be separated by spaces.
952For example, to log all warnings and errors to syslog under the libvirt
953dident: ``log_outputs="3:syslog:libvirtd``
954
955Log debug buffer size: default 64
956The daemon keeps an internal debug log buffer which will be dumped
957in case of crash or upon receiving a ``SIGUSR2`` signal. This setting
958allows to override the default buffer size in kilobytes.
959If value is ``0`` or less the debug log buffer is deactivated
960``log_buffer_size = 64``
961
962To configure the logging parameters for QEMU, the below pillar
963structure and logging parameters should be used:
964
965.. code-block:: yaml
966
967 nova:
968 compute:
969 qemu:
970 logging:
971 handler: logd
972 virtlog:
973 enabled: true
974 level: 4
975 filters: '3:remote 3:event'
976 outputs: '4:syslog:virtlogd'
977 max_clients: 512
978 max_size: 2097100
979 max_backups: 2
Oleh Hryhorove38525d2018-05-15 08:58:59 +0000980
Oleksandr Shyshko981b4fa2018-05-02 15:39:30 +0300981Inject password to VM
982---------------------
983
OlgaGusarenko9dd01c92018-07-31 00:49:30 +0300984By default nova blocks up any inject to VM because
985``inject_partition`` param is equal to ``-2``.
986If you want to inject password to VM, you will need to
987define ``inject_partition`` greater or equal to ``-1`` and
988define ``inject_password`` to ``True``
Oleksandr Shyshko981b4fa2018-05-02 15:39:30 +0300989
990For example:
991
OlgaGusarenko9dd01c92018-07-31 00:49:30 +0300992.. code-block:: yaml
993
Oleksandr Shyshko981b4fa2018-05-02 15:39:30 +0300994 nova:
995 compute:
996 inject_partition: '-1'
997 inject_password: True
998
OlgaGusarenko9dd01c92018-07-31 00:49:30 +0300999Allow the injection of an admin password for instance only at
1000``create`` and ``rebuild`` process.
1001
1002There is no agent needed within the image to do this. If *libguestfs* is
1003available on the host, it will be used. Otherwise *nbd* is used. The file
1004system of the image will be mounted and the admin password, which is provided
1005in the REST API call will be injected as password for the root user. If no
1006root user is available, the instance won't be launched and an error is thrown.
1007Be aware that the injection is *not* possible when the instance gets launched
1008from a volume.
1009
1010Possible values:
1011
1012* ``True``
1013 Allows the injection
1014
1015* ``False`` (default)
1016 Disallows the injection. Any via the REST API provided
1017 admin password will be silently ignored.
1018
1019Related options:
1020
1021* ``inject_partition``
1022 Decides about the discovery and usage of the file system.
1023 It also can disable the injection at all.
1024 (boolean value)
Oleksandr Shyshko981b4fa2018-05-02 15:39:30 +03001025
1026You can read more about injecting the administrator password here:
OlgaGusarenko9dd01c92018-07-31 00:49:30 +03001027https://docs.openstack.org/nova/queens/admin/admin-password-injection.html
Oleksandr Shyshko981b4fa2018-05-02 15:39:30 +03001028
Oleksandr Shyshko1c020d12018-05-24 12:47:08 +03001029Enable libvirt control channel over TLS
OlgaGusarenko9dd01c92018-07-31 00:49:30 +03001030---------------------------------------
Oleksandr Shyshko1c020d12018-05-24 12:47:08 +03001031
1032By default TLS is disabled.
1033
OlgaGusarenko9dd01c92018-07-31 00:49:30 +03001034Enable TLS transport:
1035
1036.. code-block:: yaml
Oleksandr Shyshko1c020d12018-05-24 12:47:08 +03001037
1038 compute:
1039 libvirt:
1040 tls:
1041 enabled: True
1042
1043You able to set custom certificates in pillar:
1044
OlgaGusarenko9dd01c92018-07-31 00:49:30 +03001045.. code-block:: yaml
1046
Oleksandr Shyshko1c020d12018-05-24 12:47:08 +03001047 nova:
1048 compute:
1049 libvirt:
1050 tls:
1051 key: (certificate content)
1052 cert: (certificate content)
1053 cacert: (certificate content)
1054 client:
1055 key: (certificate content)
1056 cert: (certificate content)
1057
Vasyl Saienko11ac9732018-10-02 17:04:33 +00001058Controlling access by `tls_allowed_dn_list`.
1059Enable an access control list of client certificate Distinguished Names (DNs)
1060which can connect to the TLS port on this server. The default is that DNs are
1061not checked. This list may contain wildcards such as
1062"C=GB,ST=London,L=London,O=Libvirt Project,CN=*" See the POSIX fnmatch function
1063for the format of the wildcards.
1064Note that if this is an empty list, no client can connect.
1065Note also that GnuTLS returns DNs without spaces after commas between
1066the fields (and this is what we check against), but the openssl x509 tool
1067shows spaces.
1068
1069.. code-block:: yaml
1070
1071 nova:
1072 compute:
1073 libvirt:
1074 tls:
1075 tls_allowed_dn_list:
1076 host1:
1077 enabled: true
1078 value: 'C=foo,CN=cmp1'
1079 host2:
1080 enabled: true
1081 value: 'C=foo,CN=cmp2'
1082
1083
Oleksandr Shyshko1c020d12018-05-24 12:47:08 +03001084You can read more about live migration over TLS here:
OlgaGusarenko9dd01c92018-07-31 00:49:30 +03001085https://wiki.libvirt.org/page/TLSCreateServerCerts
Oleksandr Shyshko981b4fa2018-05-02 15:39:30 +03001086
Oleksandr Shyshko1195fca2018-07-09 18:22:59 +03001087Enable transport + authentication for VNC over TLS
1088---------------------
Oleksandr Shyshkod8337cf2018-07-11 17:55:58 +03001089# Only for Queens. Communication between noVNC proxy service and QEMU
Oleksandr Shyshko1195fca2018-07-09 18:22:59 +03001090
1091By default communication between nova-novncproxy and qemu service is unsecure.
1092
1093compute:
1094 qemu:
1095 vnc:
1096 tls:
1097 enabled: True
1098
1099controller:
1100 novncproxy:
Oleksandr Shyshkod8337cf2018-07-11 17:55:58 +03001101 # This section responsible for communication between noVNC proxy and client machine
Oleksandr Shyshko1195fca2018-07-09 18:22:59 +03001102 tls:
1103 enabled: True
Oleksandr Shyshkod8337cf2018-07-11 17:55:58 +03001104 # This section responsible for communication between nova-novncproxy and qemu service
1105 vencrypt:
1106 tls:
1107 enabled: True
Oleksandr Shyshko1195fca2018-07-09 18:22:59 +03001108
1109You able to set custom certificates in pillar:
1110
Oleksandr Shyshkod8337cf2018-07-11 17:55:58 +03001111nova:
1112 compute:
1113 qemu:
1114 vnc:
1115 tls:
1116 cacert (certificate content)
1117 cert (certificate content)
1118 key (certificate content)
1119
1120nova:
1121 controller:
1122 novncproxy:
1123 tls:
1124 server:
1125 cert (certificate content)
1126 key (certificate content)
1127 vencrypt:
1128 tls:
1129 cacert (certificate content)
1130 cert (certificate content)
1131 key (certificate content)
1132
1133
1134You can read more about it here:
1135 https://docs.openstack.org/nova/queens/admin/remote-console-access.html
1136
1137Enable communication between noVNC proxy and client machine over TLS
1138---------------------
1139
1140By default communication between noVNC proxy and client machine is unsecure.
1141
1142 controller:
1143 novncproxy:
1144 tls:
1145 enabled: True
Oleksandr Shyshko1195fca2018-07-09 18:22:59 +03001146
1147 nova:
1148 controller:
1149 novncproxy:
1150 tls:
Oleksandr Shyshkod8337cf2018-07-11 17:55:58 +03001151 server:
1152 cert (certificate content)
1153 key (certificate content)
Oleksandr Shyshko1195fca2018-07-09 18:22:59 +03001154
1155You can read more about it here:
Oleksandr Shyshkod8337cf2018-07-11 17:55:58 +03001156 https://docs.openstack.org/mitaka/config-reference/dashboard/configure.html
Oleksandr Shyshko1195fca2018-07-09 18:22:59 +03001157
Oleksandr Shyshko55eeac72018-08-03 18:23:28 +03001158Enable x509 and ssl communication between Nova and Galera cluster.
1159---------------------
1160By default communication between Nova and Galera is unsecure.
1161
Oleksandr Shyshkocbe87352018-09-07 13:42:57 +03001162nova:
1163 controller:
1164 database:
1165 x509:
1166 enabled: True
1167
Oleksandr Shyshko55eeac72018-08-03 18:23:28 +03001168You able to set custom certificates in pillar:
Oleksandr Shyshko55eeac72018-08-03 18:23:28 +03001169
1170nova:
1171 controller:
1172 database:
1173 x509:
Oleksandr Shyshkocbe87352018-09-07 13:42:57 +03001174 cacert: (certificate content)
1175 cert: (certificate content)
1176 key: (certificate content)
Oleksandr Shyshko55eeac72018-08-03 18:23:28 +03001177
1178You can read more about it here:
1179 https://docs.openstack.org/security-guide/databases/database-access-control.html
1180
Oleh Hryhorov63ee8452018-08-14 09:16:02 +00001181Upgrades
1182========
1183
1184Each openstack formula provide set of phases (logical bloks) that will help to
1185build flexible upgrade orchestration logic for particular components. The list
1186of phases might and theirs descriptions are listed in table below:
1187
1188+-------------------------------+------------------------------------------------------+
1189| State | Description |
1190+===============================+======================================================+
1191| <app>.upgrade.service_running | Ensure that all services for particular application |
1192| | are enabled for autostart and running |
1193+-------------------------------+------------------------------------------------------+
1194| <app>.upgrade.service_stopped | Ensure that all services for particular application |
1195| | disabled for autostart and dead |
1196+-------------------------------+------------------------------------------------------+
1197| <app>.upgrade.pkgs_latest | Ensure that packages used by particular application |
1198| | are installed to latest available version. |
1199| | This will not upgrade data plane packages like qemu |
1200| | and openvswitch as usually minimal required version |
1201| | in openstack services is really old. The data plane |
1202| | packages should be upgraded separately by `apt-get |
1203| | upgrade` or `apt-get dist-upgrade` |
1204| | Applying this state will not autostart service. |
1205+-------------------------------+------------------------------------------------------+
1206| <app>.upgrade.render_config | Ensure configuration is rendered actual version. +
1207+-------------------------------+------------------------------------------------------+
1208| <app>.upgrade.pre | We assume this state is applied on all nodes in the |
1209| | cloud before running upgrade. |
1210| | Only non destructive actions will be applied during |
1211| | this phase. Perform service built in service check |
1212| | like (keystone-manage doctor and nova-status upgrade)|
1213+-------------------------------+------------------------------------------------------+
1214| <app>.upgrade.upgrade.pre | Mostly applicable for data plane nodes. During this |
1215| | phase resources will be gracefully removed from |
1216| | current node if it is allowed. Services for upgraded |
1217| | application will be set to admin disabled state to |
1218| | make sure node will not participate in resources |
1219| | scheduling. For example on gtw nodes this will set |
1220| | all agents to admin disable state and will move all |
1221| | routers to other agents. |
1222+-------------------------------+------------------------------------------------------+
1223| <app>.upgrade.upgrade | This state will basically upgrade application on |
1224| | particular target. Stop services, render |
1225| | configuration, install new packages, run offline |
1226| | dbsync (for ctl), start services. Data plane should |
1227| | not be affected, only OpenStack python services. |
1228+-------------------------------+------------------------------------------------------+
1229| <app>.upgrade.upgrade.post | Add services back to scheduling. |
1230+-------------------------------+------------------------------------------------------+
1231| <app>.upgrade.post | This phase should be launched only when upgrade of |
1232| | the cloud is completed. Cleanup temporary files, |
1233| | perform other post upgrade tasks. |
1234+-------------------------------+------------------------------------------------------+
1235| <app>.upgrade.verify | Here we will do basic health checks (API CRUD |
1236| | operations, verify do not have dead network |
1237| | agents/compute services) |
1238+-------------------------------+------------------------------------------------------+
1239
Filip Pytloun5bc9e9f2017-02-02 13:05:40 +01001240Documentation and Bugs
1241======================
1242
OlgaGusarenko9dd01c92018-07-31 00:49:30 +03001243* http://salt-formulas.readthedocs.io/
1244 Learn how to install and update salt-formulas
Filip Pytloun5bc9e9f2017-02-02 13:05:40 +01001245
OlgaGusarenko9dd01c92018-07-31 00:49:30 +03001246* https://github.com/salt-formulas/salt-formula-nova/issues
1247 In the unfortunate event that bugs are discovered, report the issue to the
1248 appropriate issue tracker. Use the Github issue tracker for a specific salt
1249 formula
Filip Pytloun5bc9e9f2017-02-02 13:05:40 +01001250
OlgaGusarenko9dd01c92018-07-31 00:49:30 +03001251* https://launchpad.net/salt-formulas
1252 For feature requests, bug reports, or blueprints affecting the entire
1253 ecosystem, use the Launchpad salt-formulas project
Filip Pytloun5bc9e9f2017-02-02 13:05:40 +01001254
OlgaGusarenko9dd01c92018-07-31 00:49:30 +03001255* https://launchpad.net/~salt-formulas-users
1256 Join the salt-formulas-users team and subscribe to mailing list if required
Filip Pytloun5bc9e9f2017-02-02 13:05:40 +01001257
OlgaGusarenko9dd01c92018-07-31 00:49:30 +03001258* https://github.com/salt-formulas/salt-formula-nova
1259 Develop the salt-formulas projects in the master branch and then submit pull
1260 requests against a specific formula
Filip Pytloun5bc9e9f2017-02-02 13:05:40 +01001261
OlgaGusarenko9dd01c92018-07-31 00:49:30 +03001262* #salt-formulas @ irc.freenode.net
1263 Use this IRC channel in case of any questions or feedback which is always
1264 welcome