| Filip Pytloun | 4a72d79 | 2015-10-06 16:28:32 +0200 | [diff] [blame] | 1 |  | 
| Aleš Komárek | 7215285 | 2017-04-11 13:48:48 +0200 | [diff] [blame] | 2 | ============ | 
| OlgaGusarenko | 9dd01c9 | 2018-07-31 00:49:30 +0300 | [diff] [blame] | 3 | Usage | 
| Aleš Komárek | 7215285 | 2017-04-11 13:48:48 +0200 | [diff] [blame] | 4 | ============ | 
| Filip Pytloun | 4a72d79 | 2015-10-06 16:28:32 +0200 | [diff] [blame] | 5 |  | 
| Jakub Pavlik | fcf34f8 | 2016-05-20 09:35:51 +0200 | [diff] [blame] | 6 | OpenStack Nova provides a cloud computing fabric controller, supporting a wide | 
|  | 7 | variety of virtualization technologies, including KVM, Xen, LXC, VMware, and | 
|  | 8 | more. In addition to its native API, it includes compatibility with the | 
|  | 9 | commonly encountered Amazon EC2 and S3 APIs. | 
| Filip Pytloun | 4a72d79 | 2015-10-06 16:28:32 +0200 | [diff] [blame] | 10 |  | 
| Aleš Komárek | 7215285 | 2017-04-11 13:48:48 +0200 | [diff] [blame] | 11 | Sample Pillars | 
| Filip Pytloun | 4a72d79 | 2015-10-06 16:28:32 +0200 | [diff] [blame] | 12 | ============== | 
|  | 13 |  | 
|  | 14 | Controller nodes | 
|  | 15 | ---------------- | 
|  | 16 |  | 
| OlgaGusarenko | 9dd01c9 | 2018-07-31 00:49:30 +0300 | [diff] [blame] | 17 | Nova services on the controller node: | 
| Filip Pytloun | 4a72d79 | 2015-10-06 16:28:32 +0200 | [diff] [blame] | 18 |  | 
|  | 19 | .. code-block:: yaml | 
|  | 20 |  | 
|  | 21 | nova: | 
|  | 22 | controller: | 
|  | 23 | version: juno | 
|  | 24 | enabled: true | 
|  | 25 | security_group: true | 
| Lachlan Evenson | b72de50 | 2016-01-20 15:34:04 -0800 | [diff] [blame] | 26 | cpu_allocation_ratio: 8.0 | 
|  | 27 | ram_allocation_ratio: 1.0 | 
| Jiri Konecny | 9344a37 | 2016-03-21 19:25:48 +0100 | [diff] [blame] | 28 | disk_allocation_ratio: 1.0 | 
| Dmitry Stremkovskiy | 2bcba8d | 2017-07-30 21:43:59 +0300 | [diff] [blame] | 29 | cross_az_attach: false | 
| Jiri Konecny | b5a80e4 | 2016-03-22 11:51:01 +0100 | [diff] [blame] | 30 | workers: 8 | 
| Jakub Pavlik | 617a896 | 2016-09-04 18:50:06 +0200 | [diff] [blame] | 31 | report_interval: 60 | 
| Michel Nederlof | 8ff9933 | 2017-10-23 14:29:15 +0200 | [diff] [blame] | 32 | dhcp_domain: novalocal | 
| Gleb Galkin | 32a5409 | 2018-10-02 17:16:40 +0300 | [diff] [blame] | 33 | consoleauth_token_ttl: 600 | 
| Filip Pytloun | 4a72d79 | 2015-10-06 16:28:32 +0200 | [diff] [blame] | 34 | bind: | 
|  | 35 | public_address: 10.0.0.122 | 
|  | 36 | public_name: openstack.domain.com | 
|  | 37 | novncproxy_port: 6080 | 
|  | 38 | database: | 
|  | 39 | engine: mysql | 
|  | 40 | host: 127.0.0.1 | 
|  | 41 | port: 3306 | 
|  | 42 | name: nova | 
|  | 43 | user: nova | 
|  | 44 | password: pwd | 
|  | 45 | identity: | 
|  | 46 | engine: keystone | 
|  | 47 | host: 127.0.0.1 | 
|  | 48 | port: 35357 | 
|  | 49 | user: nova | 
|  | 50 | password: pwd | 
|  | 51 | tenant: service | 
|  | 52 | message_queue: | 
|  | 53 | engine: rabbitmq | 
|  | 54 | host: 127.0.0.1 | 
|  | 55 | port: 5672 | 
|  | 56 | user: openstack | 
|  | 57 | password: pwd | 
|  | 58 | virtual_host: '/openstack' | 
| Oleh Hryhorov | f5093b8 | 2018-10-17 11:16:08 +0000 | [diff] [blame^] | 59 | pci: | 
|  | 60 | alias: | 
|  | 61 | alias1: | 
|  | 62 | device_type: "type-PF" | 
|  | 63 | name: "a1" | 
|  | 64 | product_id: "154d" | 
|  | 65 | vendor_id: "8086" | 
| Filip Pytloun | 4a72d79 | 2015-10-06 16:28:32 +0200 | [diff] [blame] | 66 | network: | 
|  | 67 | engine: neutron | 
|  | 68 | host: 127.0.0.1 | 
|  | 69 | port: 9696 | 
| Jakub Pavlik | 617a896 | 2016-09-04 18:50:06 +0200 | [diff] [blame] | 70 | extension_sync_interval: 600 | 
| Filip Pytloun | 4a72d79 | 2015-10-06 16:28:32 +0200 | [diff] [blame] | 71 | identity: | 
|  | 72 | engine: keystone | 
|  | 73 | host: 127.0.0.1 | 
|  | 74 | port: 35357 | 
|  | 75 | user: neutron | 
|  | 76 | password: pwd | 
|  | 77 | tenant: service | 
|  | 78 | metadata: | 
|  | 79 | password: password | 
| Petr Michalec | aa23dc0 | 2016-11-29 16:30:25 +0100 | [diff] [blame] | 80 | audit: | 
|  | 81 | enabled: false | 
| Simon Pasquier | 8683b7a | 2017-02-03 16:00:16 +0100 | [diff] [blame] | 82 | osapi_max_limit: 500 | 
| Oleg Iurchenko | 370c10d | 2017-10-19 14:03:37 +0300 | [diff] [blame] | 83 | barbican: | 
|  | 84 | enabled: true | 
| Filip Pytloun | 4a72d79 | 2015-10-06 16:28:32 +0200 | [diff] [blame] | 85 |  | 
| OlgaGusarenko | 9dd01c9 | 2018-07-31 00:49:30 +0300 | [diff] [blame] | 86 | Nova services from custom package repository: | 
| Filip Pytloun | 4a72d79 | 2015-10-06 16:28:32 +0200 | [diff] [blame] | 87 |  | 
|  | 88 | .. code-block:: yaml | 
|  | 89 |  | 
|  | 90 | nova: | 
|  | 91 | controller: | 
|  | 92 | version: juno | 
|  | 93 | source: | 
|  | 94 | engine: pkg | 
|  | 95 | address: http://... | 
|  | 96 | .... | 
|  | 97 |  | 
| OlgaGusarenko | 9dd01c9 | 2018-07-31 00:49:30 +0300 | [diff] [blame] | 98 | Client-side RabbitMQ HA setup: | 
| Jiri Konecny | e31f2c5 | 2016-04-14 17:16:02 +0200 | [diff] [blame] | 99 |  | 
|  | 100 | .. code-block:: yaml | 
|  | 101 |  | 
|  | 102 | nova: | 
|  | 103 | controller: | 
|  | 104 | .... | 
|  | 105 | message_queue: | 
|  | 106 | engine: rabbitmq | 
|  | 107 | members: | 
|  | 108 | - host: 10.0.16.1 | 
|  | 109 | - host: 10.0.16.2 | 
|  | 110 | - host: 10.0.16.3 | 
|  | 111 | user: openstack | 
|  | 112 | password: pwd | 
|  | 113 | virtual_host: '/openstack' | 
|  | 114 | .... | 
|  | 115 |  | 
| OlgaGusarenko | 9dd01c9 | 2018-07-31 00:49:30 +0300 | [diff] [blame] | 116 | Enable auditing filter, i.e: CADF: | 
| Petr Michalec | aa23dc0 | 2016-11-29 16:30:25 +0100 | [diff] [blame] | 117 |  | 
|  | 118 | .. code-block:: yaml | 
|  | 119 |  | 
|  | 120 | nova: | 
|  | 121 | controller: | 
| Simon Pasquier | 6a3c8f7 | 2016-12-19 15:37:24 +0100 | [diff] [blame] | 122 | audit: | 
| Petr Michalec | aa23dc0 | 2016-11-29 16:30:25 +0100 | [diff] [blame] | 123 | enabled: true | 
|  | 124 | .... | 
|  | 125 | filter_factory: 'keystonemiddleware.audit:filter_factory' | 
|  | 126 | map_file: '/etc/pycadf/nova_api_audit_map.conf' | 
|  | 127 | .... | 
|  | 128 |  | 
| OlgaGusarenko | 9dd01c9 | 2018-07-31 00:49:30 +0300 | [diff] [blame] | 129 | Enable CORS parameters: | 
| Ondrej Smola | 25b53cb | 2017-04-28 10:56:19 +0200 | [diff] [blame] | 130 |  | 
|  | 131 | .. code-block:: yaml | 
|  | 132 |  | 
|  | 133 | nova: | 
|  | 134 | controller: | 
|  | 135 | cors: | 
|  | 136 | allowed_origin: https:localhost.local,http:localhost.local | 
|  | 137 | expose_headers: X-Auth-Token,X-Openstack-Request-Id,X-Subject-Token | 
|  | 138 | allow_methods: GET,PUT,POST,DELETE,PATCH | 
|  | 139 | allow_headers: X-Auth-Token,X-Openstack-Request-Id,X-Subject-Token | 
|  | 140 | allow_credentials: True | 
|  | 141 | max_age: 86400 | 
|  | 142 |  | 
| OlgaGusarenko | 9dd01c9 | 2018-07-31 00:49:30 +0300 | [diff] [blame] | 143 | Configuration of the ``policy.json`` file: | 
| Dmitry Ukov | 3562a08 | 2017-05-04 00:00:48 +0400 | [diff] [blame] | 144 |  | 
|  | 145 | .. code-block:: yaml | 
|  | 146 |  | 
|  | 147 | nova: | 
|  | 148 | controller: | 
|  | 149 | .... | 
|  | 150 | policy: | 
|  | 151 | context_is_admin: 'role:admin or role:administrator' | 
|  | 152 | 'compute:create': 'rule:admin_or_owner' | 
|  | 153 | # Add key without value to remove line from policy.json | 
|  | 154 | 'compute:create:attach_network': | 
| Ondrej Smola | 25b53cb | 2017-04-28 10:56:19 +0200 | [diff] [blame] | 155 |  | 
| OlgaGusarenko | 9dd01c9 | 2018-07-31 00:49:30 +0300 | [diff] [blame] | 156 | Enable Barbican integration: | 
| Oleg Iurchenko | 370c10d | 2017-10-19 14:03:37 +0300 | [diff] [blame] | 157 |  | 
|  | 158 | .. code-block:: yaml | 
|  | 159 |  | 
|  | 160 | nova: | 
|  | 161 | controller: | 
|  | 162 | .... | 
|  | 163 | barbican: | 
|  | 164 | enabled: true | 
|  | 165 |  | 
| Oleh Hryhorov | f5093b8 | 2018-10-17 11:16:08 +0000 | [diff] [blame^] | 166 | Define aliases for PCI devices: | 
|  | 167 | .. code-block:: yaml | 
|  | 168 |  | 
|  | 169 | nova: | 
|  | 170 | controller: | 
|  | 171 | ... | 
|  | 172 | pci: | 
|  | 173 | alias: | 
|  | 174 | alias1: | 
|  | 175 | device_type: "type-PF" | 
|  | 176 | name: "a1" | 
|  | 177 | product_id: "154d" | 
|  | 178 | vendor_id: "8086" | 
|  | 179 |  | 
| Jiri Broulik | 789179a | 2018-02-13 16:16:46 +0100 | [diff] [blame] | 180 | Enable cells update: | 
|  | 181 |  | 
| OlgaGusarenko | 9dd01c9 | 2018-07-31 00:49:30 +0300 | [diff] [blame] | 182 | .. note:: Useful when upgrading Openstack. To update cells to test | 
|  | 183 | sync db agains duplicated production database. | 
| Jiri Broulik | 789179a | 2018-02-13 16:16:46 +0100 | [diff] [blame] | 184 |  | 
|  | 185 | .. code-block:: yaml | 
|  | 186 |  | 
|  | 187 | nova: | 
|  | 188 | controller: | 
|  | 189 | update_cells: true | 
|  | 190 |  | 
| Kirill Bespalov | 6461717 | 2017-07-11 14:43:14 +0300 | [diff] [blame] | 191 |  | 
| Kirill Bespalov | a0eaca7 | 2017-11-20 13:40:42 +0300 | [diff] [blame] | 192 | Configuring TLS communications | 
|  | 193 | ------------------------------ | 
| Kirill Bespalov | 6461717 | 2017-07-11 14:43:14 +0300 | [diff] [blame] | 194 |  | 
| OlgaGusarenko | 9dd01c9 | 2018-07-31 00:49:30 +0300 | [diff] [blame] | 195 | .. note:: By default system wide installed CA certs are used, | 
|  | 196 | so ``cacert_file`` param is optional, as well as ``cacert``. | 
| Kirill Bespalov | a0eaca7 | 2017-11-20 13:40:42 +0300 | [diff] [blame] | 197 |  | 
|  | 198 | - **RabbitMQ TLS** | 
| Kirill Bespalov | 6461717 | 2017-07-11 14:43:14 +0300 | [diff] [blame] | 199 |  | 
| OlgaGusarenko | 9dd01c9 | 2018-07-31 00:49:30 +0300 | [diff] [blame] | 200 | .. code-block:: yaml | 
| Kirill Bespalov | 6461717 | 2017-07-11 14:43:14 +0300 | [diff] [blame] | 201 |  | 
| OlgaGusarenko | 9dd01c9 | 2018-07-31 00:49:30 +0300 | [diff] [blame] | 202 | nova: | 
|  | 203 | compute: | 
|  | 204 | message_queue: | 
|  | 205 | port: 5671 | 
|  | 206 | ssl: | 
|  | 207 | enabled: True | 
|  | 208 | (optional) cacert: cert body if the cacert_file does not exists | 
|  | 209 | (optional) cacert_file: /etc/openstack/rabbitmq-ca.pem | 
|  | 210 | (optional) version: TLSv1_2 | 
| Kirill Bespalov | 6461717 | 2017-07-11 14:43:14 +0300 | [diff] [blame] | 211 |  | 
| Kirill Bespalov | a0eaca7 | 2017-11-20 13:40:42 +0300 | [diff] [blame] | 212 | - **MySQL TLS** | 
| Kirill Bespalov | 6461717 | 2017-07-11 14:43:14 +0300 | [diff] [blame] | 213 |  | 
| OlgaGusarenko | 9dd01c9 | 2018-07-31 00:49:30 +0300 | [diff] [blame] | 214 | .. code-block:: yaml | 
| Kirill Bespalov | 6461717 | 2017-07-11 14:43:14 +0300 | [diff] [blame] | 215 |  | 
| OlgaGusarenko | 9dd01c9 | 2018-07-31 00:49:30 +0300 | [diff] [blame] | 216 | nova: | 
|  | 217 | controller: | 
|  | 218 | database: | 
|  | 219 | ssl: | 
|  | 220 | enabled: True | 
|  | 221 | (optional) cacert: cert body if the cacert_file does not exists | 
|  | 222 | (optional) cacert_file: /etc/openstack/mysql-ca.pem | 
| Kirill Bespalov | 6461717 | 2017-07-11 14:43:14 +0300 | [diff] [blame] | 223 |  | 
| Kirill Bespalov | a0eaca7 | 2017-11-20 13:40:42 +0300 | [diff] [blame] | 224 | - **Openstack HTTPS API** | 
|  | 225 |  | 
| OlgaGusarenko | 9dd01c9 | 2018-07-31 00:49:30 +0300 | [diff] [blame] | 226 | Set the ``https`` as protocol at ``nova:compute`` and | 
|  | 227 | ``nova:controller`` sections : | 
| Kirill Bespalov | a0eaca7 | 2017-11-20 13:40:42 +0300 | [diff] [blame] | 228 |  | 
| OlgaGusarenko | 9dd01c9 | 2018-07-31 00:49:30 +0300 | [diff] [blame] | 229 | .. code-block:: yaml | 
| Kirill Bespalov | 6461717 | 2017-07-11 14:43:14 +0300 | [diff] [blame] | 230 |  | 
| OlgaGusarenko | 9dd01c9 | 2018-07-31 00:49:30 +0300 | [diff] [blame] | 231 | nova: | 
|  | 232 | controller : | 
|  | 233 | identity: | 
|  | 234 | protocol: https | 
|  | 235 | (optional) cacert_file: /etc/openstack/proxy.pem | 
|  | 236 | network: | 
|  | 237 | protocol: https | 
|  | 238 | (optional) cacert_file: /etc/openstack/proxy.pem | 
|  | 239 | glance: | 
|  | 240 | protocol: https | 
|  | 241 | (optional) cacert_file: /etc/openstack/proxy.pem | 
| Kirill Bespalov | 6461717 | 2017-07-11 14:43:14 +0300 | [diff] [blame] | 242 |  | 
| OlgaGusarenko | 9dd01c9 | 2018-07-31 00:49:30 +0300 | [diff] [blame] | 243 | .. code-block:: yaml | 
| Kirill Bespalov | 6461717 | 2017-07-11 14:43:14 +0300 | [diff] [blame] | 244 |  | 
| OlgaGusarenko | 9dd01c9 | 2018-07-31 00:49:30 +0300 | [diff] [blame] | 245 | nova: | 
|  | 246 | compute: | 
|  | 247 | identity: | 
|  | 248 | protocol: https | 
|  | 249 | (optional) cacert_file: /etc/openstack/proxy.pem | 
|  | 250 | network: | 
|  | 251 | protocol: https | 
|  | 252 | (optional) cacert_file: /etc/openstack/proxy.pem | 
|  | 253 | image: | 
|  | 254 | protocol: https | 
|  | 255 | (optional) cacert_file: /etc/openstack/proxy.pem | 
|  | 256 | ironic: | 
|  | 257 | protocol: https | 
|  | 258 | (optional) cacert_file: /etc/openstack/proxy.pem | 
| Kirill Bespalov | 6461717 | 2017-07-11 14:43:14 +0300 | [diff] [blame] | 259 |  | 
| OlgaGusarenko | 9dd01c9 | 2018-07-31 00:49:30 +0300 | [diff] [blame] | 260 | .. note:: Barbican, Cinder, and placement url endpoints are discovering | 
|  | 261 | using service catalog. | 
| Kirill Bespalov | 6461717 | 2017-07-11 14:43:14 +0300 | [diff] [blame] | 262 |  | 
| Filip Pytloun | 4a72d79 | 2015-10-06 16:28:32 +0200 | [diff] [blame] | 263 | Compute nodes | 
|  | 264 | ------------- | 
|  | 265 |  | 
| OlgaGusarenko | 9dd01c9 | 2018-07-31 00:49:30 +0300 | [diff] [blame] | 266 | Nova controller services on compute node: | 
| Filip Pytloun | 4a72d79 | 2015-10-06 16:28:32 +0200 | [diff] [blame] | 267 |  | 
|  | 268 | .. code-block:: yaml | 
|  | 269 |  | 
|  | 270 | nova: | 
|  | 271 | compute: | 
|  | 272 | version: juno | 
|  | 273 | enabled: true | 
| Dmitry Stremkovskiy | 2bcba8d | 2017-07-30 21:43:59 +0300 | [diff] [blame] | 274 | cross_az_attach: false | 
| Dmitry Stremkovskiy | 35e53b7 | 2017-07-29 12:50:39 +0300 | [diff] [blame] | 275 | disk_cachemodes: network=writeback,block=none | 
| Jiri Broulik | 70d9e3f | 2017-02-15 18:37:13 +0100 | [diff] [blame] | 276 | availability_zone: availability_zone_01 | 
| Damian Szeluga | e192241 | 2017-04-18 16:36:46 +0200 | [diff] [blame] | 277 | aggregates: | 
|  | 278 | - hosts_with_fc | 
|  | 279 | - hosts_with_ssd | 
| Filip Pytloun | 4a72d79 | 2015-10-06 16:28:32 +0200 | [diff] [blame] | 280 | security_group: true | 
| Petr Michalec | f03e488 | 2017-04-10 10:26:18 +0200 | [diff] [blame] | 281 | resume_guests_state_on_host_boot: False | 
| Michael Polenchuk | 159c254 | 2018-06-09 15:31:51 +0400 | [diff] [blame] | 282 | preallocate_images: space  # Default is 'none' | 
| Dmitry Stremkovskiy | 8a0ff51 | 2017-07-25 20:54:13 +0300 | [diff] [blame] | 283 | my_ip: 10.1.0.16 | 
| Filip Pytloun | 4a72d79 | 2015-10-06 16:28:32 +0200 | [diff] [blame] | 284 | bind: | 
|  | 285 | vnc_address: 172.20.0.100 | 
|  | 286 | vnc_port: 6080 | 
|  | 287 | vnc_name: openstack.domain.com | 
|  | 288 | vnc_protocol: http | 
|  | 289 | database: | 
|  | 290 | engine: mysql | 
|  | 291 | host: 127.0.0.1 | 
|  | 292 | port: 3306 | 
|  | 293 | name: nova | 
|  | 294 | user: nova | 
|  | 295 | password: pwd | 
|  | 296 | identity: | 
|  | 297 | engine: keystone | 
|  | 298 | host: 127.0.0.1 | 
|  | 299 | port: 35357 | 
|  | 300 | user: nova | 
|  | 301 | password: pwd | 
|  | 302 | tenant: service | 
|  | 303 | message_queue: | 
|  | 304 | engine: rabbitmq | 
|  | 305 | host: 127.0.0.1 | 
|  | 306 | port: 5672 | 
|  | 307 | user: openstack | 
|  | 308 | password: pwd | 
|  | 309 | virtual_host: '/openstack' | 
|  | 310 | image: | 
|  | 311 | engine: glance | 
|  | 312 | host: 127.0.0.1 | 
|  | 313 | port: 9292 | 
| Oleh Hryhorov | f5093b8 | 2018-10-17 11:16:08 +0000 | [diff] [blame^] | 314 | pci: | 
|  | 315 | alias: | 
|  | 316 | alias1: | 
|  | 317 | device_type: "type-PF" | 
|  | 318 | name: "a1" | 
|  | 319 | product_id: "154d" | 
|  | 320 | vendor_id: "8086" | 
| Filip Pytloun | 4a72d79 | 2015-10-06 16:28:32 +0200 | [diff] [blame] | 321 | network: | 
|  | 322 | engine: neutron | 
|  | 323 | host: 127.0.0.1 | 
|  | 324 | port: 9696 | 
|  | 325 | identity: | 
|  | 326 | engine: keystone | 
|  | 327 | host: 127.0.0.1 | 
|  | 328 | port: 35357 | 
|  | 329 | user: neutron | 
|  | 330 | password: pwd | 
|  | 331 | tenant: service | 
|  | 332 | qemu: | 
|  | 333 | max_files: 4096 | 
|  | 334 | max_processes: 4096 | 
| Dmitry Stremkovskiy | 96281f5 | 2017-07-26 00:39:22 +0300 | [diff] [blame] | 335 | host: node-12.domain.tld | 
| Filip Pytloun | 4a72d79 | 2015-10-06 16:28:32 +0200 | [diff] [blame] | 336 |  | 
| Vasyl Saienko | cab3a90 | 2018-07-12 13:17:17 +0300 | [diff] [blame] | 337 | Compute with vmware driver. Each vmware cluster requires a separate process of nova-compute. | 
|  | 338 | Each process should have uniq host identifier. However multiple computes might be running on | 
|  | 339 | single host. It is not recommended to have multiple computes running on different hosts that | 
|  | 340 | manage the same vmware cluster. To achive this pacemaker/corosync or keepalived might be used. | 
|  | 341 |  | 
|  | 342 | .. code-block:: yaml | 
|  | 343 |  | 
|  | 344 | nova: | 
|  | 345 | compute: | 
|  | 346 | compute_driver: vmwareapi.VMwareVCDriver | 
|  | 347 | vmware: | 
|  | 348 | host_username: vmware | 
|  | 349 | host_password: vmware | 
|  | 350 | cluster_name: vmware_cluster01 | 
|  | 351 | host_ip: 1.2.3.4 | 
|  | 352 |  | 
| OlgaGusarenko | 9dd01c9 | 2018-07-31 00:49:30 +0300 | [diff] [blame] | 353 | Group and user to be used for QEMU processes run by the system instance: | 
| kkalynovskyi | f50f0c0 | 2017-12-12 17:52:57 +0200 | [diff] [blame] | 354 |  | 
|  | 355 | .. code-block:: yaml | 
|  | 356 |  | 
|  | 357 | nova: | 
|  | 358 | compute: | 
|  | 359 | enabled: true | 
|  | 360 | ... | 
|  | 361 | qemu: | 
|  | 362 | user: nova | 
|  | 363 | group: cinder | 
|  | 364 | dynamic_ownership: 1 | 
|  | 365 |  | 
| OlgaGusarenko | 9dd01c9 | 2018-07-31 00:49:30 +0300 | [diff] [blame] | 366 | Group membership for user nova (upgrade related): | 
| Dmitry Stremkovskiy | 3cd6ba8 | 2017-07-25 17:15:36 +0300 | [diff] [blame] | 367 |  | 
|  | 368 | .. code-block:: yaml | 
|  | 369 |  | 
|  | 370 | nova: | 
|  | 371 | compute: | 
|  | 372 | enabled: true | 
|  | 373 | ... | 
|  | 374 | user: | 
|  | 375 | groups: | 
|  | 376 | - libvirt | 
| Filip Pytloun | 4a72d79 | 2015-10-06 16:28:32 +0200 | [diff] [blame] | 377 |  | 
| OlgaGusarenko | 9dd01c9 | 2018-07-31 00:49:30 +0300 | [diff] [blame] | 378 | Nova services on compute node with OpenContrail: | 
| Filip Pytloun | 4a72d79 | 2015-10-06 16:28:32 +0200 | [diff] [blame] | 379 |  | 
|  | 380 | .. code-block:: yaml | 
|  | 381 |  | 
|  | 382 | nova: | 
|  | 383 | compute: | 
|  | 384 | enabled: true | 
|  | 385 | ... | 
|  | 386 | networking: contrail | 
|  | 387 |  | 
| OlgaGusarenko | 9dd01c9 | 2018-07-31 00:49:30 +0300 | [diff] [blame] | 388 | Nova services on compute node with memcached caching: | 
| Filip Pytloun | 4a72d79 | 2015-10-06 16:28:32 +0200 | [diff] [blame] | 389 |  | 
|  | 390 | .. code-block:: yaml | 
|  | 391 |  | 
|  | 392 | nova: | 
|  | 393 | compute: | 
|  | 394 | enabled: true | 
|  | 395 | ... | 
|  | 396 | cache: | 
|  | 397 | engine: memcached | 
|  | 398 | members: | 
|  | 399 | - host: 127.0.0.1 | 
|  | 400 | port: 11211 | 
|  | 401 | - host: 127.0.0.1 | 
|  | 402 | port: 11211 | 
|  | 403 |  | 
| OlgaGusarenko | 9dd01c9 | 2018-07-31 00:49:30 +0300 | [diff] [blame] | 404 | Client-side RabbitMQ HA setup: | 
| Jiri Konecny | e31f2c5 | 2016-04-14 17:16:02 +0200 | [diff] [blame] | 405 |  | 
|  | 406 | .. code-block:: yaml | 
|  | 407 |  | 
|  | 408 | nova: | 
| Kirill Bespalov | 6461717 | 2017-07-11 14:43:14 +0300 | [diff] [blame] | 409 | compute: | 
| Jiri Konecny | e31f2c5 | 2016-04-14 17:16:02 +0200 | [diff] [blame] | 410 | .... | 
|  | 411 | message_queue: | 
|  | 412 | engine: rabbitmq | 
|  | 413 | members: | 
|  | 414 | - host: 10.0.16.1 | 
|  | 415 | - host: 10.0.16.2 | 
|  | 416 | - host: 10.0.16.3 | 
|  | 417 | user: openstack | 
|  | 418 | password: pwd | 
|  | 419 | virtual_host: '/openstack' | 
|  | 420 | .... | 
|  | 421 |  | 
| OlgaGusarenko | 9dd01c9 | 2018-07-31 00:49:30 +0300 | [diff] [blame] | 422 | Nova with ephemeral configured with Ceph: | 
| maxstack | 39e6aca | 2016-05-04 13:50:13 +0000 | [diff] [blame] | 423 |  | 
|  | 424 | .. code-block:: yaml | 
|  | 425 |  | 
|  | 426 | nova: | 
|  | 427 | compute: | 
|  | 428 | enabled: true | 
|  | 429 | ... | 
|  | 430 | ceph: | 
|  | 431 | ephemeral: yes | 
|  | 432 | rbd_pool: nova | 
|  | 433 | rbd_user: nova | 
|  | 434 | secret_uuid: 03006edd-d957-40a3-ac4c-26cd254b3731 | 
| Kalynovskyi | 0bc7969 | 2017-07-21 16:22:09 +0300 | [diff] [blame] | 435 | .... | 
| maxstack | 39e6aca | 2016-05-04 13:50:13 +0000 | [diff] [blame] | 436 |  | 
| OlgaGusarenko | 9dd01c9 | 2018-07-31 00:49:30 +0300 | [diff] [blame] | 437 | Nova with ephemeral configured with LVM: | 
| Kalynovskyi | 0bc7969 | 2017-07-21 16:22:09 +0300 | [diff] [blame] | 438 |  | 
|  | 439 | .. code-block:: yaml | 
|  | 440 |  | 
|  | 441 | nova: | 
|  | 442 | compute: | 
|  | 443 | enabled: true | 
|  | 444 | ... | 
|  | 445 | lvm: | 
|  | 446 | ephemeral: yes | 
|  | 447 | images_volume_group: nova_vg | 
|  | 448 |  | 
|  | 449 | linux: | 
|  | 450 | storage: | 
|  | 451 | lvm: | 
|  | 452 | nova_vg: | 
|  | 453 | name: nova_vg | 
|  | 454 | devices: | 
|  | 455 | - /dev/sdf | 
|  | 456 | - /dev/sdd | 
|  | 457 | - /dev/sdg | 
|  | 458 | - /dev/sde | 
|  | 459 | - /dev/sdc | 
|  | 460 | - /dev/sdj | 
|  | 461 | - /dev/sdh | 
| maxstack | 39e6aca | 2016-05-04 13:50:13 +0000 | [diff] [blame] | 462 |  | 
| OlgaGusarenko | 9dd01c9 | 2018-07-31 00:49:30 +0300 | [diff] [blame] | 463 | Enable Barbican integration: | 
| Oleg Iurchenko | 370c10d | 2017-10-19 14:03:37 +0300 | [diff] [blame] | 464 |  | 
|  | 465 | .. code-block:: yaml | 
|  | 466 |  | 
|  | 467 | nova: | 
|  | 468 | compute: | 
|  | 469 | .... | 
|  | 470 | barbican: | 
|  | 471 | enabled: true | 
|  | 472 |  | 
| Oleh Hryhorov | f5093b8 | 2018-10-17 11:16:08 +0000 | [diff] [blame^] | 473 | Define aliases for PCI devices: | 
|  | 474 | .. code-block:: yaml | 
|  | 475 |  | 
|  | 476 | nova: | 
|  | 477 | compute: | 
|  | 478 | ... | 
|  | 479 | pci: | 
|  | 480 | alias: | 
|  | 481 | alias1: | 
|  | 482 | device_type: "type-PF" | 
|  | 483 | name: "a1" | 
|  | 484 | product_id: "154d" | 
|  | 485 | vendor_id: "8086" | 
|  | 486 |  | 
| OlgaGusarenko | 9dd01c9 | 2018-07-31 00:49:30 +0300 | [diff] [blame] | 487 | Nova metadata custom bindings: | 
| Vasyl Saienko | 2d59128 | 2018-02-05 14:19:02 +0200 | [diff] [blame] | 488 |  | 
|  | 489 | .. code-block:: yaml | 
|  | 490 |  | 
|  | 491 | nova: | 
|  | 492 | controller: | 
|  | 493 | enabled: true | 
|  | 494 | ... | 
|  | 495 | metadata: | 
|  | 496 | bind: | 
|  | 497 | address: 1.2.3.4 | 
|  | 498 | port: 8776 | 
|  | 499 |  | 
| Jiri Broulik | 0ce9fc9 | 2017-02-01 23:10:40 +0100 | [diff] [blame] | 500 | Client role | 
|  | 501 | ----------- | 
|  | 502 |  | 
| OlgaGusarenko | 9dd01c9 | 2018-07-31 00:49:30 +0300 | [diff] [blame] | 503 | Nova configured with NFS: | 
| Dmitry Stremkovskiy | 665c728 | 2017-07-05 17:36:27 +0300 | [diff] [blame] | 504 |  | 
|  | 505 | .. code-block:: yaml | 
|  | 506 |  | 
|  | 507 | nova: | 
|  | 508 | compute: | 
|  | 509 | instances_path: /mnt/nova/instances | 
|  | 510 |  | 
|  | 511 | linux: | 
|  | 512 | storage: | 
|  | 513 | enabled: true | 
|  | 514 | mount: | 
|  | 515 | nfs_nova: | 
|  | 516 | enabled: true | 
|  | 517 | path: ${nova:compute:instances_path} | 
|  | 518 | device: 172.31.35.145:/data | 
|  | 519 | file_system: nfs | 
|  | 520 | opts: rw,vers=3 | 
|  | 521 |  | 
| OlgaGusarenko | 9dd01c9 | 2018-07-31 00:49:30 +0300 | [diff] [blame] | 522 | Nova flavors: | 
| Jiri Broulik | 0ce9fc9 | 2017-02-01 23:10:40 +0100 | [diff] [blame] | 523 |  | 
|  | 524 | .. code-block:: yaml | 
|  | 525 |  | 
|  | 526 | nova: | 
|  | 527 | client: | 
|  | 528 | enabled: true | 
|  | 529 | server: | 
|  | 530 | identity: | 
|  | 531 | flavor: | 
| Jiri Broulik | 70d9e3f | 2017-02-15 18:37:13 +0100 | [diff] [blame] | 532 | flavor1: | 
| Jiri Broulik | 0ce9fc9 | 2017-02-01 23:10:40 +0100 | [diff] [blame] | 533 | flavor_id: 10 | 
|  | 534 | ram: 4096 | 
|  | 535 | disk: 10 | 
|  | 536 | vcpus: 1 | 
| Jiri Broulik | 70d9e3f | 2017-02-15 18:37:13 +0100 | [diff] [blame] | 537 | flavor2: | 
|  | 538 | flavor_id: auto | 
|  | 539 | ram: 4096 | 
|  | 540 | disk: 20 | 
|  | 541 | vcpus: 2 | 
| Jiri Broulik | 0ce9fc9 | 2017-02-01 23:10:40 +0100 | [diff] [blame] | 542 | identity1: | 
|  | 543 | flavor: | 
|  | 544 | ... | 
|  | 545 |  | 
| OlgaGusarenko | 9dd01c9 | 2018-07-31 00:49:30 +0300 | [diff] [blame] | 546 | Availability zones: | 
| Jiri Broulik | 70d9e3f | 2017-02-15 18:37:13 +0100 | [diff] [blame] | 547 |  | 
|  | 548 | .. code-block:: yaml | 
|  | 549 |  | 
|  | 550 | nova: | 
|  | 551 | client: | 
|  | 552 | enabled: true | 
|  | 553 | server: | 
|  | 554 | identity: | 
|  | 555 | availability_zones: | 
|  | 556 | - availability_zone_01 | 
|  | 557 | - availability_zone_02 | 
|  | 558 |  | 
| OlgaGusarenko | 9dd01c9 | 2018-07-31 00:49:30 +0300 | [diff] [blame] | 559 | Aggregates: | 
| Damian Szeluga | 5dca0f0 | 2017-04-13 17:27:15 +0200 | [diff] [blame] | 560 |  | 
|  | 561 | .. code-block:: yaml | 
|  | 562 |  | 
|  | 563 | nova: | 
|  | 564 | client: | 
|  | 565 | enabled: true | 
|  | 566 | server: | 
|  | 567 | identity: | 
|  | 568 | aggregates: | 
|  | 569 | - aggregate1 | 
|  | 570 | - aggregate2 | 
|  | 571 |  | 
| OlgaGusarenko | 9dd01c9 | 2018-07-31 00:49:30 +0300 | [diff] [blame] | 572 | Upgrade levels: | 
| Dmitry Stremkovskiy | 91f4585 | 2017-07-18 16:22:31 +0300 | [diff] [blame] | 573 |  | 
|  | 574 | .. code-block:: yaml | 
|  | 575 |  | 
|  | 576 | nova: | 
|  | 577 | controller: | 
|  | 578 | upgrade_levels: | 
|  | 579 | compute: juno | 
|  | 580 |  | 
|  | 581 | nova: | 
|  | 582 | compute: | 
|  | 583 | upgrade_levels: | 
|  | 584 | compute: juno | 
|  | 585 |  | 
| Petr Jediný | d855ef2 | 2017-03-06 22:24:33 +0100 | [diff] [blame] | 586 | SR-IOV | 
| Jakub Pavlik | 39a0594 | 2017-02-13 23:03:08 +0100 | [diff] [blame] | 587 | ------ | 
|  | 588 |  | 
| OlgaGusarenko | 9dd01c9 | 2018-07-31 00:49:30 +0300 | [diff] [blame] | 589 | Add ``PciPassthroughFilter`` into scheduler filters and NICs on | 
|  | 590 | specific compute nodes: | 
| Jakub Pavlik | 39a0594 | 2017-02-13 23:03:08 +0100 | [diff] [blame] | 591 |  | 
|  | 592 | .. code-block:: yaml | 
|  | 593 |  | 
|  | 594 | nova: | 
|  | 595 | controller: | 
|  | 596 | sriov: true | 
| sandriichenko | 4fe321d | 2018-01-22 17:34:06 +0000 | [diff] [blame] | 597 | scheduler_default_filters: "DifferentHostFilter,SameHostFilter,RetryFilter,AvailabilityZoneFilter,RamFilter,CoreFilter,DiskFilter,ComputeFilter,ComputeCapabilitiesFilter,ImagePropertiesFilter,ServerGroupAntiAffinityFilter,ServerGroupAffinityFilter,PciPassthroughFilter" | 
| Jakub Pavlik | 39a0594 | 2017-02-13 23:03:08 +0100 | [diff] [blame] | 598 |  | 
|  | 599 | nova: | 
|  | 600 | compute: | 
|  | 601 | sriov: | 
|  | 602 | nic_one: | 
|  | 603 | devname: eth1 | 
|  | 604 | physical_network: physnet1 | 
|  | 605 |  | 
| Oleh Hryhorov | f5093b8 | 2018-10-17 11:16:08 +0000 | [diff] [blame^] | 606 | .. note:: Parameters located under nova:compute:sriov:<nic_name> are copied to passthrough_whitelist parameter into | 
|  | 607 | nova.conf file in appropriate format. | 
|  | 608 |  | 
| Jakub Pavlik | 26fb85c | 2017-02-16 22:29:22 +0100 | [diff] [blame] | 609 | CPU pinning & Hugepages | 
|  | 610 | ----------------------- | 
|  | 611 |  | 
| OlgaGusarenko | 9dd01c9 | 2018-07-31 00:49:30 +0300 | [diff] [blame] | 612 | CPU pinning of virtual machine instances to dedicated physical | 
|  | 613 | CPU cores. Hugepages mount point for libvirt. | 
| Jakub Pavlik | 26fb85c | 2017-02-16 22:29:22 +0100 | [diff] [blame] | 614 |  | 
|  | 615 | .. code-block:: yaml | 
|  | 616 |  | 
|  | 617 | nova: | 
|  | 618 | controller: | 
| sandriichenko | 4fe321d | 2018-01-22 17:34:06 +0000 | [diff] [blame] | 619 | scheduler_default_filters: "DifferentHostFilter,SameHostFilter,RetryFilter,AvailabilityZoneFilter,RamFilter,CoreFilter,DiskFilter,ComputeFilter,ComputeCapabilitiesFilter,ImagePropertiesFilter,ServerGroupAntiAffinityFilter,ServerGroupAffinityFilter,NUMATopologyFilter,AggregateInstanceExtraSpecsFilter" | 
| Jakub Pavlik | 26fb85c | 2017-02-16 22:29:22 +0100 | [diff] [blame] | 620 |  | 
|  | 621 | nova: | 
|  | 622 | compute: | 
|  | 623 | vcpu_pin_set: 2,3,4,5 | 
|  | 624 | hugepages: | 
|  | 625 | mount_points: | 
|  | 626 | - path: /mnt/hugepages_1GB | 
|  | 627 | - path: /mnt/hugepages_2MB | 
| Jiri Broulik | 0ce9fc9 | 2017-02-01 23:10:40 +0100 | [diff] [blame] | 628 |  | 
| Michel Nederlof | 171c7ac | 2017-04-13 12:54:14 +0200 | [diff] [blame] | 629 | Custom Scheduler filters | 
|  | 630 | ------------------------ | 
|  | 631 |  | 
| OlgaGusarenko | 9dd01c9 | 2018-07-31 00:49:30 +0300 | [diff] [blame] | 632 | If you have a custom filter, that needs to be included in the | 
|  | 633 | scheduler, then you can include it like so: | 
| Michel Nederlof | 171c7ac | 2017-04-13 12:54:14 +0200 | [diff] [blame] | 634 |  | 
|  | 635 | .. code-block:: yaml | 
|  | 636 |  | 
|  | 637 | nova: | 
|  | 638 | controller: | 
|  | 639 | scheduler_custom_filters: | 
|  | 640 | - my_custom_driver.nova.scheduler.filters.my_custom_filter.MyCustomFilter | 
|  | 641 |  | 
|  | 642 | # Then add your custom filter on the end (make sure to include all other ones that you need as well) | 
| sandriichenko | 4fe321d | 2018-01-22 17:34:06 +0000 | [diff] [blame] | 643 | scheduler_default_filters: "DifferentHostFilter,SameHostFilter,RetryFilter,AvailabilityZoneFilter,RamFilter,CoreFilter,DiskFilter,ComputeFilter,ComputeCapabilitiesFilter,ImagePropertiesFilter,ServerGroupAntiAffinityFilter,ServerGroupAffinityFilter,PciPassthroughFilter,MyCustomFilter" | 
| Michel Nederlof | 171c7ac | 2017-04-13 12:54:14 +0200 | [diff] [blame] | 644 |  | 
| Michel Nederlof | eb566f6 | 2017-04-21 15:37:47 +0200 | [diff] [blame] | 645 | Hardware Trip/Unmap Support | 
|  | 646 | --------------------------- | 
|  | 647 |  | 
| OlgaGusarenko | 9dd01c9 | 2018-07-31 00:49:30 +0300 | [diff] [blame] | 648 | To enable TRIM support for ephemeral images (thru nova managed | 
|  | 649 | images), libvirt has this option: | 
| Michel Nederlof | eb566f6 | 2017-04-21 15:37:47 +0200 | [diff] [blame] | 650 |  | 
|  | 651 | .. code-block:: yaml | 
|  | 652 |  | 
|  | 653 | nova: | 
|  | 654 | compute: | 
|  | 655 | libvirt: | 
|  | 656 | hw_disk_discard: unmap | 
|  | 657 |  | 
| OlgaGusarenko | 9dd01c9 | 2018-07-31 00:49:30 +0300 | [diff] [blame] | 658 | To actually utilize this feature, the following metadata must be | 
|  | 659 | set on the image as well, so the SCSI unmap is supported: | 
| Michel Nederlof | eb566f6 | 2017-04-21 15:37:47 +0200 | [diff] [blame] | 660 |  | 
|  | 661 | .. code-block:: bash | 
|  | 662 |  | 
|  | 663 | glance image-update --property hw_scsi_model=virtio-scsi <image> | 
|  | 664 | glance image-update --property hw_disk_bus=scsi <image> | 
| Filip Pytloun | 5bc9e9f | 2017-02-02 13:05:40 +0100 | [diff] [blame] | 665 |  | 
| Thom Gerdes | f582f1e | 2017-05-02 18:05:50 +0000 | [diff] [blame] | 666 | Scheduler Host Manager | 
|  | 667 | ---------------------- | 
|  | 668 |  | 
|  | 669 | Specify a custom host manager. | 
|  | 670 |  | 
| Thom Gerdes | ec00afd | 2017-04-07 18:06:59 +0000 | [diff] [blame] | 671 | libvirt CPU mode | 
|  | 672 | ---------------- | 
|  | 673 |  | 
| OlgaGusarenko | 9dd01c9 | 2018-07-31 00:49:30 +0300 | [diff] [blame] | 674 | Allow setting the model of CPU that is exposed to a VM. This | 
|  | 675 | allows for better support live migration between hypervisors with | 
|  | 676 | different hardware, among other things. Defaults to host-passthrough. | 
| Jakub Pavlik | 7046b9c | 2017-09-19 12:04:19 +0200 | [diff] [blame] | 677 |  | 
| Thom Gerdes | f582f1e | 2017-05-02 18:05:50 +0000 | [diff] [blame] | 678 | .. code-block:: yaml | 
|  | 679 |  | 
|  | 680 | nova: | 
|  | 681 | controller: | 
|  | 682 | scheduler_host_manager: ironic_host_manager | 
|  | 683 |  | 
| Thom Gerdes | ec00afd | 2017-04-07 18:06:59 +0000 | [diff] [blame] | 684 | compute: | 
|  | 685 | cpu_mode: host-model | 
|  | 686 |  | 
| Dzmitry Stremkouski | 7da9bf1 | 2018-04-25 22:30:37 +0200 | [diff] [blame] | 687 | Nova compute cpu model | 
|  | 688 | ---------------------- | 
|  | 689 |  | 
|  | 690 | .. code-block:: yaml | 
|  | 691 |  | 
|  | 692 | nova: | 
|  | 693 | compute: | 
|  | 694 | cpu_mode: custom | 
|  | 695 | libvirt: | 
|  | 696 | cpu_model: IvyBridge | 
|  | 697 |  | 
|  | 698 |  | 
| Michel Nederlof | f7eefb2 | 2017-07-10 11:14:33 +0200 | [diff] [blame] | 699 | Nova compute workarounds | 
|  | 700 | ------------------------ | 
|  | 701 |  | 
| OlgaGusarenko | 9dd01c9 | 2018-07-31 00:49:30 +0300 | [diff] [blame] | 702 | Live snapshotting is disabled by default in nova. To enable | 
|  | 703 | this, it needs a manual switch. | 
| Michel Nederlof | f7eefb2 | 2017-07-10 11:14:33 +0200 | [diff] [blame] | 704 |  | 
|  | 705 | From manual: | 
|  | 706 |  | 
|  | 707 | .. code-block:: yaml | 
|  | 708 |  | 
| OlgaGusarenko | 9dd01c9 | 2018-07-31 00:49:30 +0300 | [diff] [blame] | 709 | When using libvirt 1.2.2 live snapshots fail intermittently under load | 
|  | 710 | (likely related to concurrent libvirt/qemu operations). This config | 
|  | 711 | option provides a mechanism to disable live snapshot, in favor of cold | 
|  | 712 | snapshot, while this is resolved. Cold snapshot causes an instance | 
|  | 713 | outage while the guest is going through the snapshotting process. | 
|  | 714 |  | 
|  | 715 | For more information, refer to the bug report: | 
|  | 716 |  | 
|  | 717 | https://bugs.launchpad.net/nova/+bug/1334398 | 
| Michel Nederlof | f7eefb2 | 2017-07-10 11:14:33 +0200 | [diff] [blame] | 718 |  | 
|  | 719 | Configurable pillar data: | 
|  | 720 |  | 
|  | 721 | .. code-block:: yaml | 
|  | 722 |  | 
|  | 723 | nova: | 
|  | 724 | compute: | 
| Michel Nederlof | e322ebb | 2017-07-10 12:29:21 +0200 | [diff] [blame] | 725 | workaround: | 
| Michel Nederlof | f7eefb2 | 2017-07-10 11:14:33 +0200 | [diff] [blame] | 726 | disable_libvirt_livesnapshot: False | 
|  | 727 |  | 
| Michel Nederlof | b51a514 | 2017-06-27 08:31:35 +0200 | [diff] [blame] | 728 | Config drive options | 
|  | 729 | -------------------- | 
|  | 730 |  | 
| OlgaGusarenko | 9dd01c9 | 2018-07-31 00:49:30 +0300 | [diff] [blame] | 731 | See example below on how to configure the options for the | 
|  | 732 | config drive: | 
| Michel Nederlof | b51a514 | 2017-06-27 08:31:35 +0200 | [diff] [blame] | 733 |  | 
|  | 734 | .. code-block:: yaml | 
|  | 735 |  | 
|  | 736 | nova: | 
|  | 737 | compute: | 
|  | 738 | config_drive: | 
|  | 739 | forced: True  # Default: True | 
|  | 740 | cdrom: True  # Default: False | 
|  | 741 | format: iso9660  # Default: vfat | 
|  | 742 | inject_password: False  # Default: False | 
|  | 743 |  | 
| Michel Nederlof | f81919b | 2017-11-20 09:37:07 +0100 | [diff] [blame] | 744 | Number of concurrent live migrates | 
|  | 745 | ---------------------------------- | 
|  | 746 |  | 
| OlgaGusarenko | 9dd01c9 | 2018-07-31 00:49:30 +0300 | [diff] [blame] | 747 | Default is to have no concurrent live migrations (so 1 | 
|  | 748 | live-migration at a time). | 
| Michel Nederlof | f81919b | 2017-11-20 09:37:07 +0100 | [diff] [blame] | 749 |  | 
| OlgaGusarenko | 9dd01c9 | 2018-07-31 00:49:30 +0300 | [diff] [blame] | 750 | Excerpt from config options page | 
|  | 751 | https://docs.openstack.org/ocata/config-reference/compute/config-options.html: | 
| Michel Nederlof | f81919b | 2017-11-20 09:37:07 +0100 | [diff] [blame] | 752 |  | 
| OlgaGusarenko | 9dd01c9 | 2018-07-31 00:49:30 +0300 | [diff] [blame] | 753 | Maximum number of live migrations to run concurrently. This limit is | 
|  | 754 | enforced to avoid outbound live migrations overwhelming the host/network | 
|  | 755 | and causing failures. It is not recommended that you change this unless | 
|  | 756 | you are very sure that doing so is safe and stable in your environment. | 
| Michel Nederlof | f81919b | 2017-11-20 09:37:07 +0100 | [diff] [blame] | 757 |  | 
| OlgaGusarenko | 9dd01c9 | 2018-07-31 00:49:30 +0300 | [diff] [blame] | 758 | Possible values: | 
| Michel Nederlof | f81919b | 2017-11-20 09:37:07 +0100 | [diff] [blame] | 759 |  | 
| OlgaGusarenko | 9dd01c9 | 2018-07-31 00:49:30 +0300 | [diff] [blame] | 760 | - 0 : treated as unlimited. | 
|  | 761 | - Negative value defaults to 0. | 
|  | 762 | - Any positive integer representing maximum number of live migrations | 
|  | 763 | to run concurrently. | 
| Michel Nederlof | f81919b | 2017-11-20 09:37:07 +0100 | [diff] [blame] | 764 |  | 
|  | 765 | To configure this option: | 
|  | 766 |  | 
|  | 767 | .. code-block:: yaml | 
|  | 768 |  | 
|  | 769 | nova: | 
|  | 770 | compute: | 
|  | 771 | max_concurrent_live_migrations: 1  # (1 is the default) | 
|  | 772 |  | 
| Sergio Lystopad | 9d31cba | 2018-05-15 11:29:11 +0300 | [diff] [blame] | 773 | Live migration with auto converge | 
|  | 774 | ---------------------------------- | 
|  | 775 |  | 
| OlgaGusarenko | 9dd01c9 | 2018-07-31 00:49:30 +0300 | [diff] [blame] | 776 | Auto converge throttles down CPU if a progress of on-going live | 
|  | 777 | migration is slow | 
|  | 778 | https://docs.openstack.org/ocata/config-reference/compute/config-options.html: | 
| Sergio Lystopad | 9d31cba | 2018-05-15 11:29:11 +0300 | [diff] [blame] | 779 |  | 
|  | 780 | .. code-block:: yaml | 
|  | 781 |  | 
|  | 782 | nova: | 
|  | 783 | compute: | 
|  | 784 | libvirt: | 
|  | 785 | live_migration_permit_auto_converge: False  # (False is the default) | 
|  | 786 |  | 
|  | 787 | .. code-block:: yaml | 
|  | 788 |  | 
|  | 789 | nova: | 
|  | 790 | controller: | 
|  | 791 | libvirt: | 
|  | 792 | live_migration_permit_auto_converge: False  # (False is the default) | 
|  | 793 |  | 
| Dmitry Kalashnik | e58fe08 | 2017-12-01 16:31:14 +0400 | [diff] [blame] | 794 | Enhanced logging with logging.conf | 
|  | 795 | ---------------------------------- | 
|  | 796 |  | 
| OlgaGusarenko | 9dd01c9 | 2018-07-31 00:49:30 +0300 | [diff] [blame] | 797 | By default ``logging.conf`` is disabled. | 
| Dmitry Kalashnik | e58fe08 | 2017-12-01 16:31:14 +0400 | [diff] [blame] | 798 |  | 
|  | 799 | That is possible to enable per-binary logging.conf with new variables: | 
| Dmitry Kalashnik | e58fe08 | 2017-12-01 16:31:14 +0400 | [diff] [blame] | 800 |  | 
| OlgaGusarenko | 9dd01c9 | 2018-07-31 00:49:30 +0300 | [diff] [blame] | 801 | * ``openstack_log_appender`` | 
|  | 802 | Set to true to enable log_config_append for all OpenStack services | 
|  | 803 |  | 
|  | 804 | * ``openstack_fluentd_handler_enabled`` | 
|  | 805 | Set to true to enable FluentHandler for all Openstack services | 
|  | 806 |  | 
|  | 807 | * ``openstack_ossyslog_handler_enabled`` | 
|  | 808 | Set to true to enable OSSysLogHandler for all Openstack services | 
|  | 809 |  | 
|  | 810 | Only ``WatchedFileHandler``, ``OSSysLogHandler``, and ``FluentHandler`` | 
|  | 811 | are available. | 
| Dmitry Kalashnik | e58fe08 | 2017-12-01 16:31:14 +0400 | [diff] [blame] | 812 |  | 
| Dmitry Kalashnik | 8da249c | 2018-01-16 17:58:00 +0400 | [diff] [blame] | 813 | Also it is possible to configure this with pillar: | 
| Dmitry Kalashnik | e58fe08 | 2017-12-01 16:31:14 +0400 | [diff] [blame] | 814 |  | 
|  | 815 | .. code-block:: yaml | 
|  | 816 |  | 
|  | 817 | nova: | 
|  | 818 | controller: | 
|  | 819 | logging: | 
|  | 820 | log_appender: true | 
|  | 821 | log_handlers: | 
|  | 822 | watchedfile: | 
|  | 823 | enabled: true | 
|  | 824 | fluentd: | 
|  | 825 | enabled: true | 
| Oleksii Chupryn | 99e3503 | 2018-02-06 01:59:40 +0200 | [diff] [blame] | 826 | ossyslog: | 
|  | 827 | enabled: true | 
| Dmitry Kalashnik | e58fe08 | 2017-12-01 16:31:14 +0400 | [diff] [blame] | 828 |  | 
|  | 829 | compute: | 
|  | 830 | logging: | 
|  | 831 | log_appender: true | 
|  | 832 | log_handlers: | 
|  | 833 | watchedfile: | 
|  | 834 | enabled: true | 
|  | 835 | fluentd: | 
|  | 836 | enabled: true | 
| Oleksii Chupryn | 99e3503 | 2018-02-06 01:59:40 +0200 | [diff] [blame] | 837 | ossyslog: | 
|  | 838 | enabled: true | 
| Thom Gerdes | f582f1e | 2017-05-02 18:05:50 +0000 | [diff] [blame] | 839 |  | 
| Vasyl Saienko | 7243a95 | 2018-05-11 21:26:54 +0300 | [diff] [blame] | 840 | The log level might be configured per logger by using the | 
|  | 841 | following pillar structure: | 
|  | 842 |  | 
|  | 843 | .. code-block:: yaml | 
|  | 844 |  | 
|  | 845 | nova: | 
|  | 846 | compute: | 
|  | 847 | logging: | 
|  | 848 | loggers: | 
|  | 849 | <logger_name>: | 
|  | 850 | level: WARNING | 
|  | 851 |  | 
|  | 852 | nova: | 
|  | 853 | compute: | 
|  | 854 | logging: | 
|  | 855 | loggers: | 
|  | 856 | <logger_name>: | 
|  | 857 | level: WARNING | 
|  | 858 |  | 
| Oleh Hryhorov | e38525d | 2018-05-15 08:58:59 +0000 | [diff] [blame] | 859 | Configure syslog parameters for libvirtd | 
|  | 860 | ---------------------------------------- | 
|  | 861 |  | 
| OlgaGusarenko | 9dd01c9 | 2018-07-31 00:49:30 +0300 | [diff] [blame] | 862 | To configure syslog parameters for libvirtd the below pillar | 
|  | 863 | structure should be used with values which are supported | 
| Oleh Hryhorov | e38525d | 2018-05-15 08:58:59 +0000 | [diff] [blame] | 864 | by libvirtd. These values might be known from the documentation. | 
|  | 865 |  | 
| OlgaGusarenko | 9dd01c9 | 2018-07-31 00:49:30 +0300 | [diff] [blame] | 866 | .. code-block:: yaml | 
|  | 867 |  | 
| Oleh Hryhorov | e38525d | 2018-05-15 08:58:59 +0000 | [diff] [blame] | 868 | nova: | 
|  | 869 | compute: | 
|  | 870 | libvirt: | 
|  | 871 | logging: | 
|  | 872 | level: 3 | 
|  | 873 | filters: '3:remote 4:event' | 
|  | 874 | outputs: '3:syslog:libvirtd' | 
|  | 875 | buffer_size: 64 | 
|  | 876 |  | 
| OlgaGusarenko | 9dd01c9 | 2018-07-31 00:49:30 +0300 | [diff] [blame] | 877 | Logging controls: | 
| Oleh Hryhorov | e38525d | 2018-05-15 08:58:59 +0000 | [diff] [blame] | 878 |  | 
| OlgaGusarenko | 9dd01c9 | 2018-07-31 00:49:30 +0300 | [diff] [blame] | 879 | Logging level: 4 errors, 3 warnings, 2 information, 1 debug | 
|  | 880 | basically 1 will log everything possible ``log_level = 3`` | 
| Oleh Hryhorov | e38525d | 2018-05-15 08:58:59 +0000 | [diff] [blame] | 881 |  | 
| OlgaGusarenko | 9dd01c9 | 2018-07-31 00:49:30 +0300 | [diff] [blame] | 882 | Logging filters: | 
| Oleh Hryhorov | e38525d | 2018-05-15 08:58:59 +0000 | [diff] [blame] | 883 |  | 
| OlgaGusarenko | 9dd01c9 | 2018-07-31 00:49:30 +0300 | [diff] [blame] | 884 | A filter allows to select a different logging level for a given category | 
|  | 885 | of logs. | 
| Oleh Hryhorov | e38525d | 2018-05-15 08:58:59 +0000 | [diff] [blame] | 886 |  | 
| OlgaGusarenko | 9dd01c9 | 2018-07-31 00:49:30 +0300 | [diff] [blame] | 887 | The format for a filter is one of: | 
| Oleh Hryhorov | e38525d | 2018-05-15 08:58:59 +0000 | [diff] [blame] | 888 |  | 
| OlgaGusarenko | 9dd01c9 | 2018-07-31 00:49:30 +0300 | [diff] [blame] | 889 | * ``x:name`` | 
|  | 890 | * ``x:+name`` | 
|  | 891 | where name is a string which is matched against source file name, | 
|  | 892 | e.g., ``remote``, ``qemu``, or ``util/json``, the optional ``+`` prefix | 
|  | 893 | tells libvirt to log stack trace for each message matching name, | 
|  | 894 | and x is the minimal level where matching messages should be logged: | 
| Oleh Hryhorov | e38525d | 2018-05-15 08:58:59 +0000 | [diff] [blame] | 895 |  | 
| OlgaGusarenko | 9dd01c9 | 2018-07-31 00:49:30 +0300 | [diff] [blame] | 896 | * ``1: DEBUG`` | 
|  | 897 | * ``2: INFO`` | 
|  | 898 | * ``3: WARNING`` | 
|  | 899 | * ``4: ERROR`` | 
|  | 900 |  | 
|  | 901 | Multiple filter can be defined in a single @filters, they just | 
|  | 902 | need to be separated by spaces. | 
|  | 903 |  | 
|  | 904 | For example, to only get warning or errors from the remote layer | 
|  | 905 | and only errors from the event layer: ``log_filters="3:remote 4:event`` | 
|  | 906 |  | 
|  | 907 | Logging outputs: | 
|  | 908 |  | 
|  | 909 | An output is one of the places to save logging information | 
|  | 910 | The format for an output can be: | 
|  | 911 |  | 
|  | 912 | * ``x:stderr`` | 
|  | 913 | Output goes to stderr | 
|  | 914 |  | 
|  | 915 | * ``x:syslog:name`` | 
|  | 916 | Use syslog for the output and use the given name as the ident | 
|  | 917 |  | 
|  | 918 | * ``x:file:file_path`` | 
|  | 919 | output to a file, with the given filepath | 
|  | 920 |  | 
|  | 921 | In all case the x prefix is the minimal level, acting as a filter | 
|  | 922 |  | 
|  | 923 | * ``1: DEBUG`` | 
|  | 924 | * ``2: INFO`` | 
|  | 925 | * ``3: WARNING`` | 
|  | 926 | * ``4: ERROR`` | 
|  | 927 |  | 
|  | 928 | Multiple output can be defined, they just need to be separated by spaces. | 
|  | 929 | For example, to log all warnings and errors to syslog under the libvirt | 
|  | 930 | dident: ``log_outputs="3:syslog:libvirtd`` | 
|  | 931 |  | 
|  | 932 | Log debug buffer size: default 64 | 
|  | 933 | The daemon keeps an internal debug log buffer which will be dumped | 
|  | 934 | in case of crash or upon receiving a ``SIGUSR2`` signal. This setting | 
|  | 935 | allows to override the default buffer size in kilobytes. | 
|  | 936 | If value is ``0`` or less the debug log buffer is deactivated | 
|  | 937 | ``log_buffer_size = 64`` | 
|  | 938 |  | 
|  | 939 | To configure the logging parameters for QEMU, the below pillar | 
|  | 940 | structure and logging parameters should be used: | 
|  | 941 |  | 
|  | 942 | .. code-block:: yaml | 
|  | 943 |  | 
|  | 944 | nova: | 
|  | 945 | compute: | 
|  | 946 | qemu: | 
|  | 947 | logging: | 
|  | 948 | handler: logd | 
|  | 949 | virtlog: | 
|  | 950 | enabled: true | 
|  | 951 | level: 4 | 
|  | 952 | filters: '3:remote 3:event' | 
|  | 953 | outputs: '4:syslog:virtlogd' | 
|  | 954 | max_clients: 512 | 
|  | 955 | max_size: 2097100 | 
|  | 956 | max_backups: 2 | 
| Oleh Hryhorov | e38525d | 2018-05-15 08:58:59 +0000 | [diff] [blame] | 957 |  | 
| Oleksandr Shyshko | 981b4fa | 2018-05-02 15:39:30 +0300 | [diff] [blame] | 958 | Inject password to VM | 
|  | 959 | --------------------- | 
|  | 960 |  | 
| OlgaGusarenko | 9dd01c9 | 2018-07-31 00:49:30 +0300 | [diff] [blame] | 961 | By default nova blocks up any inject to VM because | 
|  | 962 | ``inject_partition`` param is equal to ``-2``. | 
|  | 963 | If you want to inject password to VM, you will need to | 
|  | 964 | define ``inject_partition`` greater or equal to ``-1`` and | 
|  | 965 | define ``inject_password`` to ``True`` | 
| Oleksandr Shyshko | 981b4fa | 2018-05-02 15:39:30 +0300 | [diff] [blame] | 966 |  | 
|  | 967 | For example: | 
|  | 968 |  | 
| OlgaGusarenko | 9dd01c9 | 2018-07-31 00:49:30 +0300 | [diff] [blame] | 969 | .. code-block:: yaml | 
|  | 970 |  | 
| Oleksandr Shyshko | 981b4fa | 2018-05-02 15:39:30 +0300 | [diff] [blame] | 971 | nova: | 
|  | 972 | compute: | 
|  | 973 | inject_partition: '-1' | 
|  | 974 | inject_password: True | 
|  | 975 |  | 
| OlgaGusarenko | 9dd01c9 | 2018-07-31 00:49:30 +0300 | [diff] [blame] | 976 | Allow the injection of an admin password for instance only at | 
|  | 977 | ``create`` and ``rebuild`` process. | 
|  | 978 |  | 
|  | 979 | There is no agent needed within the image to do this. If *libguestfs* is | 
|  | 980 | available on the host, it will be used. Otherwise *nbd* is used. The file | 
|  | 981 | system of the image will be mounted and the admin password, which is provided | 
|  | 982 | in the REST API call will be injected as password for the root user. If no | 
|  | 983 | root user is available, the instance won't be launched and an error is thrown. | 
|  | 984 | Be aware that the injection is *not* possible when the instance gets launched | 
|  | 985 | from a volume. | 
|  | 986 |  | 
|  | 987 | Possible values: | 
|  | 988 |  | 
|  | 989 | * ``True`` | 
|  | 990 | Allows the injection | 
|  | 991 |  | 
|  | 992 | * ``False`` (default) | 
|  | 993 | Disallows the injection. Any via the REST API provided | 
|  | 994 | admin password will be silently ignored. | 
|  | 995 |  | 
|  | 996 | Related options: | 
|  | 997 |  | 
|  | 998 | * ``inject_partition`` | 
|  | 999 | Decides about the discovery and usage of the file system. | 
|  | 1000 | It also can disable the injection at all. | 
|  | 1001 | (boolean value) | 
| Oleksandr Shyshko | 981b4fa | 2018-05-02 15:39:30 +0300 | [diff] [blame] | 1002 |  | 
|  | 1003 | You can read more about injecting the administrator password here: | 
| OlgaGusarenko | 9dd01c9 | 2018-07-31 00:49:30 +0300 | [diff] [blame] | 1004 | https://docs.openstack.org/nova/queens/admin/admin-password-injection.html | 
| Oleksandr Shyshko | 981b4fa | 2018-05-02 15:39:30 +0300 | [diff] [blame] | 1005 |  | 
| Oleksandr Shyshko | 1c020d1 | 2018-05-24 12:47:08 +0300 | [diff] [blame] | 1006 | Enable libvirt control channel over TLS | 
| OlgaGusarenko | 9dd01c9 | 2018-07-31 00:49:30 +0300 | [diff] [blame] | 1007 | --------------------------------------- | 
| Oleksandr Shyshko | 1c020d1 | 2018-05-24 12:47:08 +0300 | [diff] [blame] | 1008 |  | 
|  | 1009 | By default TLS is disabled. | 
|  | 1010 |  | 
| OlgaGusarenko | 9dd01c9 | 2018-07-31 00:49:30 +0300 | [diff] [blame] | 1011 | Enable TLS transport: | 
|  | 1012 |  | 
|  | 1013 | .. code-block:: yaml | 
| Oleksandr Shyshko | 1c020d1 | 2018-05-24 12:47:08 +0300 | [diff] [blame] | 1014 |  | 
|  | 1015 | compute: | 
|  | 1016 | libvirt: | 
|  | 1017 | tls: | 
|  | 1018 | enabled: True | 
|  | 1019 |  | 
|  | 1020 | You able to set custom certificates in pillar: | 
|  | 1021 |  | 
| OlgaGusarenko | 9dd01c9 | 2018-07-31 00:49:30 +0300 | [diff] [blame] | 1022 | .. code-block:: yaml | 
|  | 1023 |  | 
| Oleksandr Shyshko | 1c020d1 | 2018-05-24 12:47:08 +0300 | [diff] [blame] | 1024 | nova: | 
|  | 1025 | compute: | 
|  | 1026 | libvirt: | 
|  | 1027 | tls: | 
|  | 1028 | key: (certificate content) | 
|  | 1029 | cert: (certificate content) | 
|  | 1030 | cacert: (certificate content) | 
|  | 1031 | client: | 
|  | 1032 | key: (certificate content) | 
|  | 1033 | cert: (certificate content) | 
|  | 1034 |  | 
| Vasyl Saienko | 11ac973 | 2018-10-02 17:04:33 +0000 | [diff] [blame] | 1035 | Controlling access by `tls_allowed_dn_list`. | 
|  | 1036 | Enable an access control list of client certificate Distinguished Names (DNs) | 
|  | 1037 | which can connect to the TLS port on this server. The default is that DNs are | 
|  | 1038 | not checked. This list may contain wildcards such as | 
|  | 1039 | "C=GB,ST=London,L=London,O=Libvirt Project,CN=*" See the POSIX fnmatch function | 
|  | 1040 | for the format of the wildcards. | 
|  | 1041 | Note that if this is an empty list, no client can connect. | 
|  | 1042 | Note also that GnuTLS returns DNs without spaces after commas between | 
|  | 1043 | the fields (and this is what we check against), but the openssl x509 tool | 
|  | 1044 | shows spaces. | 
|  | 1045 |  | 
|  | 1046 | .. code-block:: yaml | 
|  | 1047 |  | 
|  | 1048 | nova: | 
|  | 1049 | compute: | 
|  | 1050 | libvirt: | 
|  | 1051 | tls: | 
|  | 1052 | tls_allowed_dn_list: | 
|  | 1053 | host1: | 
|  | 1054 | enabled: true | 
|  | 1055 | value: 'C=foo,CN=cmp1' | 
|  | 1056 | host2: | 
|  | 1057 | enabled: true | 
|  | 1058 | value: 'C=foo,CN=cmp2' | 
|  | 1059 |  | 
|  | 1060 |  | 
| Oleksandr Shyshko | 1c020d1 | 2018-05-24 12:47:08 +0300 | [diff] [blame] | 1061 | You can read more about live migration over TLS here: | 
| OlgaGusarenko | 9dd01c9 | 2018-07-31 00:49:30 +0300 | [diff] [blame] | 1062 | https://wiki.libvirt.org/page/TLSCreateServerCerts | 
| Oleksandr Shyshko | 981b4fa | 2018-05-02 15:39:30 +0300 | [diff] [blame] | 1063 |  | 
| Oleksandr Shyshko | 1195fca | 2018-07-09 18:22:59 +0300 | [diff] [blame] | 1064 | Enable transport + authentication for VNC over TLS | 
|  | 1065 | --------------------- | 
| Oleksandr Shyshko | d8337cf | 2018-07-11 17:55:58 +0300 | [diff] [blame] | 1066 | # Only for Queens. Communication between noVNC proxy service and QEMU | 
| Oleksandr Shyshko | 1195fca | 2018-07-09 18:22:59 +0300 | [diff] [blame] | 1067 |  | 
|  | 1068 | By default communication between nova-novncproxy and qemu service is unsecure. | 
|  | 1069 |  | 
|  | 1070 | compute: | 
|  | 1071 | qemu: | 
|  | 1072 | vnc: | 
|  | 1073 | tls: | 
|  | 1074 | enabled: True | 
|  | 1075 |  | 
|  | 1076 | controller: | 
|  | 1077 | novncproxy: | 
| Oleksandr Shyshko | d8337cf | 2018-07-11 17:55:58 +0300 | [diff] [blame] | 1078 | # This section responsible for communication between noVNC proxy and client machine | 
| Oleksandr Shyshko | 1195fca | 2018-07-09 18:22:59 +0300 | [diff] [blame] | 1079 | tls: | 
|  | 1080 | enabled: True | 
| Oleksandr Shyshko | d8337cf | 2018-07-11 17:55:58 +0300 | [diff] [blame] | 1081 | # This section responsible for communication between nova-novncproxy and qemu service | 
|  | 1082 | vencrypt: | 
|  | 1083 | tls: | 
|  | 1084 | enabled: True | 
| Oleksandr Shyshko | 1195fca | 2018-07-09 18:22:59 +0300 | [diff] [blame] | 1085 |  | 
|  | 1086 | You able to set custom certificates in pillar: | 
|  | 1087 |  | 
| Oleksandr Shyshko | d8337cf | 2018-07-11 17:55:58 +0300 | [diff] [blame] | 1088 | nova: | 
|  | 1089 | compute: | 
|  | 1090 | qemu: | 
|  | 1091 | vnc: | 
|  | 1092 | tls: | 
|  | 1093 | cacert (certificate content) | 
|  | 1094 | cert (certificate content) | 
|  | 1095 | key (certificate content) | 
|  | 1096 |  | 
|  | 1097 | nova: | 
|  | 1098 | controller: | 
|  | 1099 | novncproxy: | 
|  | 1100 | tls: | 
|  | 1101 | server: | 
|  | 1102 | cert (certificate content) | 
|  | 1103 | key (certificate content) | 
|  | 1104 | vencrypt: | 
|  | 1105 | tls: | 
|  | 1106 | cacert (certificate content) | 
|  | 1107 | cert (certificate content) | 
|  | 1108 | key (certificate content) | 
|  | 1109 |  | 
|  | 1110 |  | 
|  | 1111 | You can read more about it here: | 
|  | 1112 | https://docs.openstack.org/nova/queens/admin/remote-console-access.html | 
|  | 1113 |  | 
|  | 1114 | Enable communication between noVNC proxy and client machine over TLS | 
|  | 1115 | --------------------- | 
|  | 1116 |  | 
|  | 1117 | By default communication between noVNC proxy and client machine is unsecure. | 
|  | 1118 |  | 
|  | 1119 | controller: | 
|  | 1120 | novncproxy: | 
|  | 1121 | tls: | 
|  | 1122 | enabled: True | 
| Oleksandr Shyshko | 1195fca | 2018-07-09 18:22:59 +0300 | [diff] [blame] | 1123 |  | 
|  | 1124 | nova: | 
|  | 1125 | controller: | 
|  | 1126 | novncproxy: | 
|  | 1127 | tls: | 
| Oleksandr Shyshko | d8337cf | 2018-07-11 17:55:58 +0300 | [diff] [blame] | 1128 | server: | 
|  | 1129 | cert (certificate content) | 
|  | 1130 | key (certificate content) | 
| Oleksandr Shyshko | 1195fca | 2018-07-09 18:22:59 +0300 | [diff] [blame] | 1131 |  | 
|  | 1132 | You can read more about it here: | 
| Oleksandr Shyshko | d8337cf | 2018-07-11 17:55:58 +0300 | [diff] [blame] | 1133 | https://docs.openstack.org/mitaka/config-reference/dashboard/configure.html | 
| Oleksandr Shyshko | 1195fca | 2018-07-09 18:22:59 +0300 | [diff] [blame] | 1134 |  | 
| Oleksandr Shyshko | 55eeac7 | 2018-08-03 18:23:28 +0300 | [diff] [blame] | 1135 | Enable x509 and ssl communication between Nova and Galera cluster. | 
|  | 1136 | --------------------- | 
|  | 1137 | By default communication between Nova and Galera is unsecure. | 
|  | 1138 |  | 
| Oleksandr Shyshko | cbe8735 | 2018-09-07 13:42:57 +0300 | [diff] [blame] | 1139 | nova: | 
|  | 1140 | controller: | 
|  | 1141 | database: | 
|  | 1142 | x509: | 
|  | 1143 | enabled: True | 
|  | 1144 |  | 
| Oleksandr Shyshko | 55eeac7 | 2018-08-03 18:23:28 +0300 | [diff] [blame] | 1145 | You able to set custom certificates in pillar: | 
| Oleksandr Shyshko | 55eeac7 | 2018-08-03 18:23:28 +0300 | [diff] [blame] | 1146 |  | 
|  | 1147 | nova: | 
|  | 1148 | controller: | 
|  | 1149 | database: | 
|  | 1150 | x509: | 
| Oleksandr Shyshko | cbe8735 | 2018-09-07 13:42:57 +0300 | [diff] [blame] | 1151 | cacert: (certificate content) | 
|  | 1152 | cert: (certificate content) | 
|  | 1153 | key: (certificate content) | 
| Oleksandr Shyshko | 55eeac7 | 2018-08-03 18:23:28 +0300 | [diff] [blame] | 1154 |  | 
|  | 1155 | You can read more about it here: | 
|  | 1156 | https://docs.openstack.org/security-guide/databases/database-access-control.html | 
|  | 1157 |  | 
| Oleh Hryhorov | 63ee845 | 2018-08-14 09:16:02 +0000 | [diff] [blame] | 1158 | Upgrades | 
|  | 1159 | ======== | 
|  | 1160 |  | 
|  | 1161 | Each openstack formula provide set of phases (logical bloks) that will help to | 
|  | 1162 | build flexible upgrade orchestration logic for particular components. The list | 
|  | 1163 | of phases might and theirs descriptions are listed in table below: | 
|  | 1164 |  | 
|  | 1165 | +-------------------------------+------------------------------------------------------+ | 
|  | 1166 | | State                         | Description                                          | | 
|  | 1167 | +===============================+======================================================+ | 
|  | 1168 | | <app>.upgrade.service_running | Ensure that all services for particular application  | | 
|  | 1169 | |                               | are enabled for autostart and running                | | 
|  | 1170 | +-------------------------------+------------------------------------------------------+ | 
|  | 1171 | | <app>.upgrade.service_stopped | Ensure that all services for particular application  | | 
|  | 1172 | |                               | disabled for autostart and dead                      | | 
|  | 1173 | +-------------------------------+------------------------------------------------------+ | 
|  | 1174 | | <app>.upgrade.pkgs_latest     | Ensure that packages used by particular application  | | 
|  | 1175 | |                               | are installed to latest available version.           | | 
|  | 1176 | |                               | This will not upgrade data plane packages like qemu  | | 
|  | 1177 | |                               | and openvswitch as usually minimal required version  | | 
|  | 1178 | |                               | in openstack services is really old. The data plane  | | 
|  | 1179 | |                               | packages should be upgraded separately by `apt-get   | | 
|  | 1180 | |                               | upgrade` or `apt-get dist-upgrade`                   | | 
|  | 1181 | |                               | Applying this state will not autostart service.      | | 
|  | 1182 | +-------------------------------+------------------------------------------------------+ | 
|  | 1183 | | <app>.upgrade.render_config   | Ensure configuration is rendered actual version.     + | 
|  | 1184 | +-------------------------------+------------------------------------------------------+ | 
|  | 1185 | | <app>.upgrade.pre             | We assume this state is applied on all nodes in the  | | 
|  | 1186 | |                               | cloud before running upgrade.                        | | 
|  | 1187 | |                               | Only non destructive actions will be applied during  | | 
|  | 1188 | |                               | this phase. Perform service built in service check   | | 
|  | 1189 | |                               | like (keystone-manage doctor and nova-status upgrade)| | 
|  | 1190 | +-------------------------------+------------------------------------------------------+ | 
|  | 1191 | | <app>.upgrade.upgrade.pre     | Mostly applicable for data plane nodes. During this  | | 
|  | 1192 | |                               | phase resources will be gracefully removed from      | | 
|  | 1193 | |                               | current node if it is allowed. Services for upgraded | | 
|  | 1194 | |                               | application will be set to admin disabled state to   | | 
|  | 1195 | |                               | make sure node will not participate in resources     | | 
|  | 1196 | |                               | scheduling. For example on gtw nodes this will set   | | 
|  | 1197 | |                               | all agents to admin disable state and will move all  | | 
|  | 1198 | |                               | routers to other agents.                             | | 
|  | 1199 | +-------------------------------+------------------------------------------------------+ | 
|  | 1200 | | <app>.upgrade.upgrade         | This state will basically upgrade application on     | | 
|  | 1201 | |                               | particular target. Stop services, render             | | 
|  | 1202 | |                               | configuration, install new packages, run offline     | | 
|  | 1203 | |                               | dbsync (for ctl), start services. Data plane should  | | 
|  | 1204 | |                               | not be affected, only OpenStack python services.     | | 
|  | 1205 | +-------------------------------+------------------------------------------------------+ | 
|  | 1206 | | <app>.upgrade.upgrade.post    | Add services back to scheduling.                     | | 
|  | 1207 | +-------------------------------+------------------------------------------------------+ | 
|  | 1208 | | <app>.upgrade.post            | This phase should be launched only when upgrade of   | | 
|  | 1209 | |                               | the cloud is completed. Cleanup temporary files,     | | 
|  | 1210 | |                               | perform other post upgrade tasks.                    | | 
|  | 1211 | +-------------------------------+------------------------------------------------------+ | 
|  | 1212 | | <app>.upgrade.verify          | Here we will do basic health checks (API CRUD        | | 
|  | 1213 | |                               | operations, verify do not have dead network          | | 
|  | 1214 | |                               | agents/compute services)                             | | 
|  | 1215 | +-------------------------------+------------------------------------------------------+ | 
|  | 1216 |  | 
| Filip Pytloun | 5bc9e9f | 2017-02-02 13:05:40 +0100 | [diff] [blame] | 1217 | Documentation and Bugs | 
|  | 1218 | ====================== | 
|  | 1219 |  | 
| OlgaGusarenko | 9dd01c9 | 2018-07-31 00:49:30 +0300 | [diff] [blame] | 1220 | * http://salt-formulas.readthedocs.io/ | 
|  | 1221 | Learn how to install and update salt-formulas | 
| Filip Pytloun | 5bc9e9f | 2017-02-02 13:05:40 +0100 | [diff] [blame] | 1222 |  | 
| OlgaGusarenko | 9dd01c9 | 2018-07-31 00:49:30 +0300 | [diff] [blame] | 1223 | * https://github.com/salt-formulas/salt-formula-nova/issues | 
|  | 1224 | In the unfortunate event that bugs are discovered, report the issue to the | 
|  | 1225 | appropriate issue tracker. Use the Github issue tracker for a specific salt | 
|  | 1226 | formula | 
| Filip Pytloun | 5bc9e9f | 2017-02-02 13:05:40 +0100 | [diff] [blame] | 1227 |  | 
| OlgaGusarenko | 9dd01c9 | 2018-07-31 00:49:30 +0300 | [diff] [blame] | 1228 | * https://launchpad.net/salt-formulas | 
|  | 1229 | For feature requests, bug reports, or blueprints affecting the entire | 
|  | 1230 | ecosystem, use the Launchpad salt-formulas project | 
| Filip Pytloun | 5bc9e9f | 2017-02-02 13:05:40 +0100 | [diff] [blame] | 1231 |  | 
| OlgaGusarenko | 9dd01c9 | 2018-07-31 00:49:30 +0300 | [diff] [blame] | 1232 | * https://launchpad.net/~salt-formulas-users | 
|  | 1233 | Join the salt-formulas-users team and subscribe to mailing list if required | 
| Filip Pytloun | 5bc9e9f | 2017-02-02 13:05:40 +0100 | [diff] [blame] | 1234 |  | 
| OlgaGusarenko | 9dd01c9 | 2018-07-31 00:49:30 +0300 | [diff] [blame] | 1235 | * https://github.com/salt-formulas/salt-formula-nova | 
|  | 1236 | Develop the salt-formulas projects in the master branch and then submit pull | 
|  | 1237 | requests against a specific formula | 
| Filip Pytloun | 5bc9e9f | 2017-02-02 13:05:40 +0100 | [diff] [blame] | 1238 |  | 
| OlgaGusarenko | 9dd01c9 | 2018-07-31 00:49:30 +0300 | [diff] [blame] | 1239 | * #salt-formulas @ irc.freenode.net | 
|  | 1240 | Use this IRC channel in case of any questions or feedback which is always | 
|  | 1241 | welcome |