Juju Charm - OpenStack dashboard
Go to file
James Page c2c14761a4 Resync stable charm-helpers
Avoid use of 'service --status-all' which is currently
broken on trusty for upstart managed daemons; the change
moves to detecting how the daemon is managed, and then
using upstart status XXX or the return code of service XXX
status to determine whether a process is running.

Fixes for IPv6 network address detection under Ubuntu
16.04 which changes the output format of the ip commands
slightly.

Update the version map to include 8.1.x as a Neutron
version for Mitaka.

Change-Id: Ia7714fcd5d41e3bbe415995236adc59bc38bd58f
Closes-Bug: 1581171
Closes-Bug: 1581598
Closes-Bug: 1580674
2016-05-18 17:47:15 +01:00
actions Add pause/resume actions and sync charm-helpers 2016-03-29 07:20:36 +00:00
hooks Resync stable charm-helpers 2016-05-18 17:47:15 +01:00
scripts Sync scripts/. 2013-04-09 11:40:10 -07:00
templates Add local_settings for Mitaka release 2016-04-13 10:35:13 +01:00
tests Updates for stable branch creation 2016-04-21 15:24:12 +01:00
unit_tests Merge "Add hardening support" 2016-03-30 08:34:45 +00:00
.coveragerc Recover hooks testing, tweak coverage settings 2013-07-18 09:54:13 +01:00
.gitignore Resync charm-helpers 2016-03-02 12:10:30 +00:00
.gitreview Updates for stable branch creation 2016-04-21 15:24:12 +01:00
.project Rebase on trunk 2014-02-24 17:46:45 +00:00
.pydevproject Rebase on trunk 2014-02-24 17:46:45 +00:00
.testr.conf Add tox support 2016-02-15 22:14:49 +00:00
Makefile Use tox in Makefile targets 2016-03-15 20:13:43 -07:00
README.md [corey.bryant,trivial] Update deploy from source README samples. 2015-04-30 12:09:23 +00:00
actions.yaml Add pause/resume actions and sync charm-helpers 2016-03-29 07:20:36 +00:00
charm-helpers-hooks.yaml Updates for stable branch creation 2016-04-21 15:24:12 +01:00
charm-helpers-tests.yaml Updates for stable branch creation 2016-04-21 15:24:12 +01:00
config.yaml Add hardening support 2016-03-24 11:19:46 +00:00
copyright Add copyright 2011-12-23 17:55:00 -08:00
hardening.yaml Add hardening support 2016-03-24 11:19:46 +00:00
icon.svg Update icon.svg 2013-10-23 13:14:56 -07:00
metadata.yaml Update maintainer 2015-11-18 10:45:32 +00:00
requirements.txt Fix pbr requirement 2016-04-13 10:25:42 +00:00
revision added syslog functionality 2014-02-03 13:34:56 +01:00
setup.cfg Test coverage tweaks, unit testing 2013-07-18 09:37:37 +01:00
test-requirements.txt Update to charm-tools >= 2.0.0 2016-03-23 09:30:17 +00:00
tox.ini Update to charm-tools >= 2.0.0 2016-03-23 09:30:17 +00:00

README.md

Overview

The OpenStack Dashboard provides a Django based web interface for use by both administrators and users of an OpenStack Cloud.

It allows you to manage Nova, Glance, Cinder and Neutron resources within the cloud.

Usage

The OpenStack Dashboard is deployed and related to keystone:

juju deploy openstack-dashboard
juju add-unit openstack-dashboard keystone

The dashboard will use keystone for user authentication and authorization and to interact with the catalog of services within the cloud.

The dashboard is accessible on:

http(s)://service_unit_address/horizon

At a minimum, the cloud must provide Glance and Nova services.

SSL configuration

To fully secure your dashboard services, you can provide a SSL key and certificate for installation and configuration. These are provided as base64 encoded configuration options::

juju set openstack-dashboard ssl_key="$(base64 my.key)" \
    ssl_cert="$(base64 my.cert)"

The service will be reconfigured to use the supplied information.

High Availability

The OpenStack Dashboard charm supports HA in-conjunction with the hacluster charm:

juju deploy hacluster dashboard-hacluster
juju set openstack-dashboard vip="192.168.1.200"
juju add-relation openstack-dashboard dashboard-hacluster
juju add-unit -n 2 openstack-dashboard

After addition of the extra 2 units completes, the dashboard will be accessible on 192.168.1.200 with full load-balancing across all three units.

Please refer to the charm configuration for full details on all HA config options.

Use with a Load Balancing Proxy

Instead of deploying with the hacluster charm for load balancing, its possible to also deploy the dashboard with load balancing proxy such as HAProxy:

juju deploy haproxy
juju add-relation haproxy openstack-dashboard
juju add-unit -n 2 openstack-dashboard

This option potentially provides better scale-out than using the charm in conjunction with the hacluster charm.

Deploying from source

The minimum openstack-origin-git config required to deploy from source is:

openstack-origin-git: include-file://horizon-juno.yaml

horizon-juno.yaml
    repositories:
    - {name: requirements,
       repository: 'git://github.com/openstack/requirements',
       branch: stable/juno}
    - {name: horizon,
       repository: 'git://github.com/openstack/horizon',
       branch: stable/juno}

Note that there are only two 'name' values the charm knows about: 'requirements' and 'horizon'. These repositories must correspond to these 'name' values. Additionally, the requirements repository must be specified first and the horizon repository must be specified last. All other repostories are installed in the order in which they are specified.

The following is a full list of current tip repos (may not be up-to-date):

openstack-origin-git: include-file://horizon-master.yaml

horizon-master.yaml
    repositories:
    - {name: requirements,
       repository: 'git://github.com/openstack/requirements',
       branch: master}
    - {name: oslo-concurrency,
       repository: 'git://github.com/openstack/oslo.concurrency',
       branch: master}
    - {name: oslo-config,
       repository: 'git://github.com/openstack/oslo.config',
       branch: master}
    - {name: oslo-i18n,
       repository: 'git://github.com/openstack/oslo.i18n',
       branch: master}
    - {name: oslo-serialization,
       repository: 'git://github.com/openstack/oslo.serialization',
       branch: master}
    - {name: oslo-utils,
       repository: 'git://github.com/openstack/oslo.utils',
       branch: master}
    - {name: pbr,
       repository: 'git://github.com/openstack-dev/pbr',
       branch: master}
    - {name: python-ceilometerclient,
       repository: 'git://github.com/openstack/python-ceilometerclient',
       branch: master}
    - {name: python-cinderclient,
       repository: 'git://github.com/openstack/python-cinderclient',
       branch: master}
    - {name: python-glanceclient,
       repository: 'git://github.com/openstack/python-glanceclient',
       branch: master}
    - {name: python-heatclient,
       repository: 'git://github.com/openstack/python-heatclient',
       branch: master}
    - {name: python-keystoneclient,
       repository: 'git://github.com/openstack/python-keystoneclient',
       branch: master}
    - {name: python-neutronclient,
       repository: 'git://github.com/openstack/python-neutronclient',
       branch: master}
    - {name: python-novaclient,
       repository: 'git://github.com/openstack/python-novaclient',
       branch: master}
    - {name: python-saharaclient,
       repository: 'git://github.com/openstack/python-saharaclient',
       branch: master}
    - {name: python-swiftclient,
       repository: 'git://github.com/openstack/python-swiftclient',
       branch: master}
    - {name: python-troveclient,
       repository: 'git://github.com/openstack/python-troveclient',
       branch: master}
    - {name: xstatic-angular,
       repository: 'git://github.com/stackforge/xstatic-angular',
       branch: master}
    - {name: xstatic-angular-animate,
       repository: 'git://github.com/stackforge/xstatic-angular-animate',
       branch: master}
    - {name: xstatic-angular-bootstrap,
       repository: 'git://github.com/stackforge/xstatic-angular-bootstrap',
       branch: master}
    - {name: xstatic-angular-cookies,
       repository: 'git://github.com/stackforge/xstatic-angular-cookies',
       branch: master}
    - {name: xstatic-angular-fileupload,
       repository: 'git://github.com/stackforge/xstatic-angular-fileupload',
       branch: master}
    - {name: xstatic-angular-lrdragndrop,
       repository: 'git://github.com/stackforge/xstatic-angular-lrdragndrop',
       branch: master}
    - {name: xstatic-angular-mock,
       repository: 'git://github.com/stackforge/xstatic-angular-mock',
       branch: master}
    - {name: xstatic-angular-sanitize,
       repository: 'git://github.com/stackforge/xstatic-angular-sanitize',
       branch: master}
    - {name: xstatic-angular-smart-table,
       repository: 'git://github.com/stackforge/xstatic-angular-smart-table',
       branch: master}
    - {name: xstatic-bootstrap-datepicker,
       repository: 'git://github.com/stackforge/xstatic-bootstrap-datepicker',
       branch: master}
    - {name: xstatic-bootstrap-scss,
       repository: 'git://github.com/stackforge/xstatic-bootstrap-scss',
       branch: master}
    - {name: xstatic-d3,
       repository: 'git://github.com/stackforge/xstatic-d3',
       branch: master}
    - {name: xstatic-font-awesome,
       repository: 'git://github.com/stackforge/xstatic-font-awesome',
       branch: master}
    - {name: xstatic-hogan,
       repository: 'git://github.com/stackforge/xstatic-hogan',
       branch: master}
    - {name: xstatic-jasmine,
       repository: 'git://github.com/stackforge/xstatic-jasmine',
       branch: master}
    - {name: xstatic-jquery-migrate,
       repository: 'git://github.com/stackforge/xstatic-jquery-migrate',
       branch: master}
    - {name: xstatic-jquery.bootstrap.wizard,
       repository: 'git://github.com/stackforge/xstatic-jquery.bootstrap.wizard',
       branch: master}
    - {name: xstatic-jquery.quicksearch,
       repository: 'git://github.com/stackforge/xstatic-jquery.quicksearch',
       branch: master}
    - {name: xstatic-jquery.tablesorter,
       repository: 'git://github.com/stackforge/xstatic-jquery.tablesorter',
       branch: master}
    - {name: xstatic-jsencrypt,
       repository: 'git://github.com/stackforge/xstatic-jsencrypt',
       branch: master}
    - {name: xstatic-magic-search,
       repository: 'git://github.com/stackforge/xstatic-magic-search',
       branch: master}
    - {name: xstatic-qunit,
       repository: 'git://github.com/stackforge/xstatic-qunit',
       branch: master}
    - {name: xstatic-rickshaw,
       repository: 'git://github.com/stackforge/xstatic-rickshaw',
       branch: master}
    - {name: xstatic-spin,
       repository: 'git://github.com/stackforge/xstatic-spin',
       branch: master}
    - {name: horizon,
       repository: 'git://github.com/openstack/horizon',
       branch: master}