Filip Pytloun | f8a1d5b | 2015-10-06 16:28:32 +0200 | [diff] [blame] | 1 | |
Ales Komarek | 231eb65 | 2017-04-11 16:01:19 +0200 | [diff] [blame] | 2 | =============== |
| 3 | Horizon Formula |
| 4 | =============== |
Filip Pytloun | f8a1d5b | 2015-10-06 16:28:32 +0200 | [diff] [blame] | 5 | |
Ales Komarek | 231eb65 | 2017-04-11 16:01:19 +0200 | [diff] [blame] | 6 | Horizon is the canonical implementation of OpenStack’s Dashboard, which |
| 7 | provides a web based user interface to OpenStack services including Nova, |
| 8 | Swift, Keystone, etc. |
Filip Pytloun | f8a1d5b | 2015-10-06 16:28:32 +0200 | [diff] [blame] | 9 | |
Ales Komarek | 231eb65 | 2017-04-11 16:01:19 +0200 | [diff] [blame] | 10 | |
| 11 | Sample Pillars |
Filip Pytloun | f8a1d5b | 2015-10-06 16:28:32 +0200 | [diff] [blame] | 12 | ============== |
| 13 | |
Ales Komarek | 2e7d83b | 2016-11-22 22:58:12 +0100 | [diff] [blame] | 14 | Simplest horizon setup |
Filip Pytloun | f8a1d5b | 2015-10-06 16:28:32 +0200 | [diff] [blame] | 15 | |
Adam Tengler | dbd1f05 | 2016-01-25 21:12:26 +0100 | [diff] [blame] | 16 | .. code-block:: yaml |
| 17 | |
Filip Pytloun | f8a1d5b | 2015-10-06 16:28:32 +0200 | [diff] [blame] | 18 | horizon: |
| 19 | server: |
Filip Pytloun | f8a1d5b | 2015-10-06 16:28:32 +0200 | [diff] [blame] | 20 | enabled: true |
Ales Komarek | 2e7d83b | 2016-11-22 22:58:12 +0100 | [diff] [blame] | 21 | secret_key: secret |
Filip Pytloun | f8a1d5b | 2015-10-06 16:28:32 +0200 | [diff] [blame] | 22 | host: |
| 23 | name: cloud.lab.cz |
| 24 | cache: |
| 25 | engine: 'memcached' |
| 26 | host: '127.0.0.1' |
| 27 | port: 11211 |
| 28 | prefix: 'CACHE_HORIZON' |
Oleksii Chupryn | 7d3d648 | 2017-03-07 11:23:27 +0200 | [diff] [blame] | 29 | api_versions: |
| 30 | identity: 2 |
Filip Pytloun | f8a1d5b | 2015-10-06 16:28:32 +0200 | [diff] [blame] | 31 | identity: |
| 32 | engine: 'keystone' |
| 33 | host: '127.0.0.1' |
| 34 | port: 5000 |
Filip Pytloun | f8a1d5b | 2015-10-06 16:28:32 +0200 | [diff] [blame] | 35 | mail: |
| 36 | host: '127.0.0.1' |
| 37 | |
Dmitry Stremkovskiy | 381e560 | 2017-07-18 18:50:13 +0300 | [diff] [blame^] | 38 | Multidomain setup for horizon |
| 39 | |
| 40 | .. code-block:: yaml |
| 41 | |
| 42 | horizon: |
| 43 | server: |
| 44 | enabled: true |
| 45 | default_domain: MYDOMAIN |
| 46 | multidomain: True |
| 47 | |
Filip Pytloun | f8a1d5b | 2015-10-06 16:28:32 +0200 | [diff] [blame] | 48 | Simple branded horizon |
| 49 | |
Adam Tengler | dbd1f05 | 2016-01-25 21:12:26 +0100 | [diff] [blame] | 50 | .. code-block:: yaml |
| 51 | |
Filip Pytloun | f8a1d5b | 2015-10-06 16:28:32 +0200 | [diff] [blame] | 52 | horizon: |
| 53 | server: |
| 54 | enabled: true |
| 55 | branding: 'OpenStack Company Dashboard' |
| 56 | default_dashboard: 'admin' |
| 57 | help_url: 'http://doc.domain.com' |
| 58 | |
Adam Tengler | 08874e3 | 2017-05-05 17:24:29 +0000 | [diff] [blame] | 59 | Horizon with policy files metadata. With source mine you can obtain real time policy file state from targeted node (OpenStack control node), provided you have policy file published to specified grain key. Source file will obtain static policy definition from formula files directory. |
| 60 | |
| 61 | .. code-block:: yaml |
| 62 | |
| 63 | horizon: |
| 64 | server: |
| 65 | enabled: true |
| 66 | policy: |
| 67 | identity: |
| 68 | source: mine |
| 69 | host: ctl01.my-domain.local |
| 70 | name: keystone_policy.json |
| 71 | grain_name: keystone_policy |
| 72 | enabled: true |
| 73 | compute: |
| 74 | source: file |
| 75 | name: nova_policy.json |
| 76 | enabled: true |
| 77 | network: |
| 78 | source: file |
| 79 | name: neutron_policy.json |
| 80 | enabled: true |
| 81 | image: |
| 82 | source: file |
| 83 | name: glance_policy.json |
| 84 | enabled: true |
| 85 | volume: |
| 86 | source: file |
| 87 | name: cinder_policy.json |
| 88 | enabled: true |
| 89 | telemetry: |
| 90 | source: file |
| 91 | name: ceilometer_policy.json |
| 92 | enabled: true |
| 93 | orchestration: |
| 94 | source: file |
| 95 | name: heat_policy.json |
| 96 | enabled: true |
Ales Komarek | 231eb65 | 2017-04-11 16:01:19 +0200 | [diff] [blame] | 97 | |
| 98 | Horizon with enabled SSL security (when SSL is realised by proxy) |
| 99 | |
| 100 | .. code-block:: yaml |
| 101 | |
| 102 | horizon: |
| 103 | server: |
| 104 | enabled: True |
| 105 | secure: True |
| 106 | |
| 107 | |
Filip Pytloun | f8a1d5b | 2015-10-06 16:28:32 +0200 | [diff] [blame] | 108 | Horizon package setup with SSL |
| 109 | |
Adam Tengler | dbd1f05 | 2016-01-25 21:12:26 +0100 | [diff] [blame] | 110 | .. code-block:: yaml |
| 111 | |
Filip Pytloun | f8a1d5b | 2015-10-06 16:28:32 +0200 | [diff] [blame] | 112 | horizon: |
| 113 | server: |
| 114 | enabled: true |
| 115 | secret_key: MEGASECRET |
| 116 | version: juno |
| 117 | ssl: |
| 118 | enabled: true |
| 119 | authority: CA_Authority |
| 120 | host: |
| 121 | name: cloud.lab.cz |
| 122 | cache: |
| 123 | engine: 'memcached' |
| 124 | host: '127.0.0.1' |
| 125 | port: 11211 |
| 126 | prefix: 'CACHE_HORIZON' |
Oleksii Chupryn | 7d3d648 | 2017-03-07 11:23:27 +0200 | [diff] [blame] | 127 | api_versions: |
| 128 | identity: 2 |
Filip Pytloun | f8a1d5b | 2015-10-06 16:28:32 +0200 | [diff] [blame] | 129 | identity: |
| 130 | engine: 'keystone' |
| 131 | host: '127.0.0.1' |
| 132 | port: 5000 |
Filip Pytloun | f8a1d5b | 2015-10-06 16:28:32 +0200 | [diff] [blame] | 133 | mail: |
| 134 | host: '127.0.0.1' |
| 135 | |
Adam Tengler | ddef050 | 2017-05-04 11:36:54 +0000 | [diff] [blame] | 136 | Horizon with custom SESSION_ENGINE (default is "signed_cookies", valid options are: "signed_cookies", "cache", "file") and SESSION_TIMEOUT |
| 137 | |
| 138 | .. code-block:: yaml |
| 139 | |
| 140 | horizon: |
| 141 | server: |
| 142 | enabled: True |
| 143 | secure: True |
| 144 | session: |
| 145 | engine: 'cache' |
| 146 | timeout: 43200 |
| 147 | |
Filip Pytloun | f8a1d5b | 2015-10-06 16:28:32 +0200 | [diff] [blame] | 148 | Multi-regional horizon setup |
| 149 | |
Adam Tengler | dbd1f05 | 2016-01-25 21:12:26 +0100 | [diff] [blame] | 150 | .. code-block:: yaml |
| 151 | |
Filip Pytloun | f8a1d5b | 2015-10-06 16:28:32 +0200 | [diff] [blame] | 152 | horizon: |
| 153 | server: |
| 154 | enabled: true |
| 155 | version: juno |
| 156 | secret_key: MEGASECRET |
| 157 | cache: |
| 158 | engine: 'memcached' |
| 159 | host: '127.0.0.1' |
| 160 | port: 11211 |
| 161 | prefix: 'CACHE_HORIZON' |
Oleksii Chupryn | 7d3d648 | 2017-03-07 11:23:27 +0200 | [diff] [blame] | 162 | api_versions: |
| 163 | identity: 2 |
Filip Pytloun | f8a1d5b | 2015-10-06 16:28:32 +0200 | [diff] [blame] | 164 | identity: |
| 165 | engine: 'keystone' |
| 166 | host: '127.0.0.1' |
| 167 | port: 5000 |
Filip Pytloun | f8a1d5b | 2015-10-06 16:28:32 +0200 | [diff] [blame] | 168 | mail: |
| 169 | host: '127.0.0.1' |
| 170 | regions: |
| 171 | - name: cluster1 |
| 172 | address: http://cluster1.example.com:5000/v2.0 |
| 173 | - name: cluster2 |
| 174 | address: http://cluster2.example.com:5000/v2.0 |
| 175 | |
| 176 | Horizon setup with sensu plugin |
| 177 | |
Adam Tengler | dbd1f05 | 2016-01-25 21:12:26 +0100 | [diff] [blame] | 178 | .. code-block:: yaml |
| 179 | |
Filip Pytloun | f8a1d5b | 2015-10-06 16:28:32 +0200 | [diff] [blame] | 180 | horizon: |
| 181 | server: |
| 182 | enabled: true |
| 183 | version: juno |
| 184 | sensu_api: |
| 185 | host: localhost |
| 186 | port: 4567 |
Ales Komarek | 2e7d83b | 2016-11-22 22:58:12 +0100 | [diff] [blame] | 187 | plugin: |
| 188 | monitoring: |
| 189 | app: horizon_monitoring |
| 190 | source: |
| 191 | type: git |
| 192 | address: git@repo1.robotice.cz:django/horizon-monitoring.git |
| 193 | rev: develop |
Filip Pytloun | f8a1d5b | 2015-10-06 16:28:32 +0200 | [diff] [blame] | 194 | |
| 195 | Sensu multi API |
| 196 | |
Adam Tengler | dbd1f05 | 2016-01-25 21:12:26 +0100 | [diff] [blame] | 197 | .. code-block:: yaml |
| 198 | |
Filip Pytloun | f8a1d5b | 2015-10-06 16:28:32 +0200 | [diff] [blame] | 199 | horizon: |
| 200 | server: |
| 201 | enabled: true |
| 202 | version: juno |
| 203 | sensu_api: |
| 204 | dc1: |
| 205 | host: localhost |
| 206 | port: 4567 |
| 207 | dc2: |
| 208 | host: anotherhost |
| 209 | port: 4567 |
| 210 | |
Ales Komarek | 2e7d83b | 2016-11-22 22:58:12 +0100 | [diff] [blame] | 211 | Horizon setup with jenkins plugin |
| 212 | |
| 213 | .. code-block:: yaml |
| 214 | |
| 215 | horizon: |
| 216 | server: |
| 217 | enabled: true |
| 218 | version: juno |
| 219 | jenkins_api: |
| 220 | url: https://localhost:8080 |
| 221 | user: admin |
| 222 | password: pwd |
| 223 | plugin: |
| 224 | jenkins: |
| 225 | app: horizon_jenkins |
| 226 | source: |
| 227 | type: pkg |
| 228 | |
Filip Pytloun | f8a1d5b | 2015-10-06 16:28:32 +0200 | [diff] [blame] | 229 | Horizon setup with billometer plugin |
| 230 | |
Adam Tengler | dbd1f05 | 2016-01-25 21:12:26 +0100 | [diff] [blame] | 231 | .. code-block:: yaml |
| 232 | |
Filip Pytloun | f8a1d5b | 2015-10-06 16:28:32 +0200 | [diff] [blame] | 233 | horizon: |
| 234 | server: |
| 235 | enabled: true |
| 236 | version: juno |
| 237 | billometer_api: |
| 238 | host: localhost |
| 239 | port: 9753 |
| 240 | api_version: 1 |
Ales Komarek | 2e7d83b | 2016-11-22 22:58:12 +0100 | [diff] [blame] | 241 | plugin: |
| 242 | billing: |
| 243 | app: horizon_billing |
| 244 | source: |
| 245 | type: git |
| 246 | address: git@repo1.robotice.cz:django/horizon-billing.git |
| 247 | rev: develop |
Filip Pytloun | f8a1d5b | 2015-10-06 16:28:32 +0200 | [diff] [blame] | 248 | |
| 249 | Horizon setup with contrail plugin |
| 250 | |
Adam Tengler | dbd1f05 | 2016-01-25 21:12:26 +0100 | [diff] [blame] | 251 | .. code-block:: yaml |
| 252 | |
Filip Pytloun | f8a1d5b | 2015-10-06 16:28:32 +0200 | [diff] [blame] | 253 | horizon: |
| 254 | server: |
| 255 | enabled: true |
| 256 | version: icehouse |
Ales Komarek | 2e7d83b | 2016-11-22 22:58:12 +0100 | [diff] [blame] | 257 | plugin: |
| 258 | contrail: |
| 259 | app: contrail_openstack_dashboard |
| 260 | override: true |
| 261 | source: |
| 262 | type: git |
| 263 | address: git@repo1.robotice.cz:django/horizon-contrail.git |
| 264 | rev: develop |
Filip Pytloun | f8a1d5b | 2015-10-06 16:28:32 +0200 | [diff] [blame] | 265 | |
| 266 | Horizon setup with sentry log handler |
| 267 | |
Adam Tengler | dbd1f05 | 2016-01-25 21:12:26 +0100 | [diff] [blame] | 268 | .. code-block:: yaml |
| 269 | |
Filip Pytloun | f8a1d5b | 2015-10-06 16:28:32 +0200 | [diff] [blame] | 270 | horizon: |
| 271 | server: |
| 272 | enabled: true |
| 273 | version: juno |
| 274 | ... |
| 275 | logging: |
| 276 | engine: raven |
| 277 | dsn: http://pub:private@sentry1.test.cz/2 |
| 278 | |
| 279 | Multisite with Git source |
| 280 | ------------------------- |
| 281 | |
| 282 | Simple Horizon setup from git repository |
| 283 | |
Adam Tengler | dbd1f05 | 2016-01-25 21:12:26 +0100 | [diff] [blame] | 284 | .. code-block:: yaml |
| 285 | |
Filip Pytloun | f8a1d5b | 2015-10-06 16:28:32 +0200 | [diff] [blame] | 286 | horizon: |
| 287 | server: |
| 288 | enabled: true |
| 289 | app: |
| 290 | default: |
| 291 | secret_key: MEGASECRET |
| 292 | source: |
| 293 | engine: git |
| 294 | address: https://github.com/openstack/horizon.git |
| 295 | rev: stable/havana |
| 296 | cache: |
| 297 | engine: 'memcached' |
| 298 | host: '127.0.0.1' |
| 299 | port: 11211 |
| 300 | prefix: 'CACHE_DEFAULT' |
Oleksii Chupryn | 7d3d648 | 2017-03-07 11:23:27 +0200 | [diff] [blame] | 301 | api_versions: |
| 302 | identity: 2 |
Filip Pytloun | f8a1d5b | 2015-10-06 16:28:32 +0200 | [diff] [blame] | 303 | identity: |
| 304 | engine: 'keystone' |
| 305 | host: '127.0.0.1' |
| 306 | port: 5000 |
Filip Pytloun | f8a1d5b | 2015-10-06 16:28:32 +0200 | [diff] [blame] | 307 | mail: |
| 308 | host: '127.0.0.1' |
| 309 | |
| 310 | Themed multisite setup |
| 311 | |
Adam Tengler | dbd1f05 | 2016-01-25 21:12:26 +0100 | [diff] [blame] | 312 | .. code-block:: yaml |
| 313 | |
Filip Pytloun | f8a1d5b | 2015-10-06 16:28:32 +0200 | [diff] [blame] | 314 | horizon: |
| 315 | server: |
| 316 | enabled: true |
| 317 | app: |
| 318 | openstack1c: |
| 319 | secret_key: MEGASECRET1 |
| 320 | source: |
| 321 | engine: git |
| 322 | address: https://github.com/openstack/horizon.git |
| 323 | rev: stable/havana |
| 324 | plugin: |
| 325 | contrail: |
| 326 | app: contrail_openstack_dashboard |
| 327 | override: true |
| 328 | source: |
| 329 | type: git |
| 330 | address: git@repo1.robotice.cz:django/horizon-contrail.git |
| 331 | rev: develop |
| 332 | theme: |
| 333 | app: site1_theme |
| 334 | source: |
| 335 | type: git |
| 336 | address: git@repo1.domain.com:django/horizon-site1-theme.git |
| 337 | cache: |
| 338 | engine: 'memcached' |
| 339 | host: '127.0.0.1' |
| 340 | port: 11211 |
| 341 | prefix: 'CACHE_SITE1' |
Oleksii Chupryn | 7d3d648 | 2017-03-07 11:23:27 +0200 | [diff] [blame] | 342 | api_versions: |
| 343 | identity: 2 |
Filip Pytloun | f8a1d5b | 2015-10-06 16:28:32 +0200 | [diff] [blame] | 344 | identity: |
| 345 | engine: 'keystone' |
| 346 | host: '127.0.0.1' |
| 347 | port: 5000 |
Filip Pytloun | f8a1d5b | 2015-10-06 16:28:32 +0200 | [diff] [blame] | 348 | mail: |
| 349 | host: '127.0.0.1' |
| 350 | openstack2: |
| 351 | secret_key: MEGASECRET2 |
| 352 | source: |
| 353 | engine: git |
| 354 | address: https://repo1.domain.com/openstack/horizon.git |
| 355 | rev: stable/icehouse |
| 356 | plugin: |
| 357 | contrail: |
| 358 | app: contrail_openstack_dashboard |
| 359 | override: true |
| 360 | source: |
| 361 | type: git |
| 362 | address: git@repo1.domain.com:django/horizon-contrail.git |
| 363 | rev: develop |
| 364 | monitoring: |
| 365 | app: horizon_monitoring |
| 366 | source: |
| 367 | type: git |
| 368 | address: git@domain.com:django/horizon-monitoring.git |
| 369 | rev: develop |
| 370 | theme: |
| 371 | app: bootswatch_theme |
| 372 | source: |
| 373 | type: git |
| 374 | address: git@repo1.robotice.cz:django/horizon-bootswatch-theme.git |
| 375 | rev: develop |
| 376 | cache: |
| 377 | engine: 'memcached' |
| 378 | host: '127.0.0.1' |
| 379 | port: 11211 |
| 380 | prefix: 'CACHE_SITE2' |
Oleksii Chupryn | 7d3d648 | 2017-03-07 11:23:27 +0200 | [diff] [blame] | 381 | api_versions: |
| 382 | identity: 3 |
Filip Pytloun | f8a1d5b | 2015-10-06 16:28:32 +0200 | [diff] [blame] | 383 | identity: |
| 384 | engine: 'keystone' |
| 385 | host: '127.0.0.1' |
| 386 | port: 5000 |
Filip Pytloun | f8a1d5b | 2015-10-06 16:28:32 +0200 | [diff] [blame] | 387 | mail: |
| 388 | host: '127.0.0.1' |
| 389 | |
| 390 | API versions override |
| 391 | |
Adam Tengler | dbd1f05 | 2016-01-25 21:12:26 +0100 | [diff] [blame] | 392 | .. code-block:: yaml |
| 393 | |
Filip Pytloun | f8a1d5b | 2015-10-06 16:28:32 +0200 | [diff] [blame] | 394 | horizon: |
| 395 | server: |
| 396 | enabled: true |
| 397 | app: |
| 398 | openstack_api_overrride: |
| 399 | secret_key: MEGASECRET1 |
| 400 | api_versions: |
| 401 | identity: 3 |
| 402 | volume: 2 |
| 403 | source: |
| 404 | engine: git |
| 405 | address: https://github.com/openstack/horizon.git |
| 406 | rev: stable/havana |
| 407 | |
| 408 | Control dashboard behaviour |
| 409 | |
Adam Tengler | dbd1f05 | 2016-01-25 21:12:26 +0100 | [diff] [blame] | 410 | .. code-block:: yaml |
| 411 | |
Filip Pytloun | f8a1d5b | 2015-10-06 16:28:32 +0200 | [diff] [blame] | 412 | horizon: |
| 413 | server: |
| 414 | enabled: true |
| 415 | app: |
| 416 | openstack_dashboard_overrride: |
Ales Komarek | 2e7d83b | 2016-11-22 22:58:12 +0100 | [diff] [blame] | 417 | secret_key: password |
Filip Pytloun | f8a1d5b | 2015-10-06 16:28:32 +0200 | [diff] [blame] | 418 | dashboards: |
| 419 | settings: |
| 420 | enabled: true |
| 421 | project: |
| 422 | enabled: false |
| 423 | order: 10 |
| 424 | admin: |
| 425 | enabled: false |
| 426 | order: 20 |
| 427 | source: |
| 428 | engine: git |
| 429 | address: https://github.com/openstack/horizon.git |
| 430 | rev: stable/juno |
| 431 | |
Alexander Noskov | 787a812 | 2016-12-07 13:00:49 +0400 | [diff] [blame] | 432 | Enable WebSSO feature |
| 433 | |
| 434 | .. code-block:: yaml |
| 435 | |
| 436 | horizon: |
| 437 | server: |
| 438 | enabled: true |
| 439 | websso: |
| 440 | login_url: "WEBROOT + 'auth/login/'" |
| 441 | logout_url: "WEBROOT + 'auth/logout/'" |
| 442 | websso_choices: |
| 443 | - saml2 |
| 444 | - oidc |
| 445 | |
Ales Komarek | 231eb65 | 2017-04-11 16:01:19 +0200 | [diff] [blame] | 446 | |
| 447 | More Information |
| 448 | ================ |
Filip Pytloun | f8a1d5b | 2015-10-06 16:28:32 +0200 | [diff] [blame] | 449 | |
| 450 | * https://github.com/openstack/horizon |
| 451 | * http://dijks.wordpress.com/2012/07/06/how-to-change-screen-resolution-of-novnc-client-in-openstack-essex-dashboard-nova-horizon/ |
Filip Pytloun | 219343c | 2017-02-02 13:02:03 +0100 | [diff] [blame] | 452 | |
Ales Komarek | 231eb65 | 2017-04-11 16:01:19 +0200 | [diff] [blame] | 453 | |
Filip Pytloun | 219343c | 2017-02-02 13:02:03 +0100 | [diff] [blame] | 454 | Documentation and Bugs |
| 455 | ====================== |
| 456 | |
| 457 | To learn how to install and update salt-formulas, consult the documentation |
| 458 | available online at: |
| 459 | |
| 460 | http://salt-formulas.readthedocs.io/ |
| 461 | |
| 462 | In the unfortunate event that bugs are discovered, they should be reported to |
| 463 | the appropriate issue tracker. Use Github issue tracker for specific salt |
| 464 | formula: |
| 465 | |
| 466 | https://github.com/salt-formulas/salt-formula-horizon/issues |
| 467 | |
| 468 | For feature requests, bug reports or blueprints affecting entire ecosystem, |
| 469 | use Launchpad salt-formulas project: |
| 470 | |
| 471 | https://launchpad.net/salt-formulas |
| 472 | |
| 473 | You can also join salt-formulas-users team and subscribe to mailing list: |
| 474 | |
| 475 | https://launchpad.net/~salt-formulas-users |
| 476 | |
| 477 | Developers wishing to work on the salt-formulas projects should always base |
| 478 | their work on master branch and submit pull request against specific formula. |
| 479 | |
| 480 | https://github.com/salt-formulas/salt-formula-horizon |
| 481 | |
| 482 | Any questions or feedback is always welcome so feel free to join our IRC |
| 483 | channel: |
| 484 | |
| 485 | #salt-formulas @ irc.freenode.net |