---
title: Charmhub | Deploy Openstack Dashboard using Charmhub - The Open Operator Collection
description: Deploy the latest version of Openstack Dashboard on any cloud.
url: https://charmhub.io/openstack-dashboard/configurations
---

# Openstack Dashboard

[OpenStack Charmers](https://charmhub.io/publisher/openstack-charmers "View all packages from OpenStack Charmers")

* [OpenStack Charmers](https://charmhub.io/publisher/openstack-charmers "View all packages from OpenStack Charmers")
* [Cloud](https://charmhub.io/?filter=cloud)

Platform:

24.04

23.10

23.04

22.10

22.04

20.04

18.04

14.04

12.04

yoga/stable 772

```
juju deploy openstack-dashboard --channel yoga/stable
```

[Learn to deploy on juju >](https://juju.is/docs/juju/manage-applications)

* [action-managed-upgrade](https://charmhub.io/openstack-dashboard/configurations#action-managed-upgrade)
* [allow-password-autocompletion](https://charmhub.io/openstack-dashboard/configurations#allow-password-autocompletion)
* [api-result-limit](https://charmhub.io/openstack-dashboard/configurations#api-result-limit)
* [cinder-backup](https://charmhub.io/openstack-dashboard/configurations#cinder-backup)
* [csp-options](https://charmhub.io/openstack-dashboard/configurations#csp-options)
* [custom-theme](https://charmhub.io/openstack-dashboard/configurations#custom-theme)
* [customization-module](https://charmhub.io/openstack-dashboard/configurations#customization-module)
* [database](https://charmhub.io/openstack-dashboard/configurations#database)
* [database-user](https://charmhub.io/openstack-dashboard/configurations#database-user)
* [debug](https://charmhub.io/openstack-dashboard/configurations#debug)
* [default-create-volume](https://charmhub.io/openstack-dashboard/configurations#default-create-volume)
* [default-domain](https://charmhub.io/openstack-dashboard/configurations#default-domain)
* [default-role](https://charmhub.io/openstack-dashboard/configurations#default-role)
* [default-theme](https://charmhub.io/openstack-dashboard/configurations#default-theme)
* [disable-instance-snapshot](https://charmhub.io/openstack-dashboard/configurations#disable-instance-snapshot)
* [disable-password-reveal](https://charmhub.io/openstack-dashboard/configurations#disable-password-reveal)
* [dns-ha](https://charmhub.io/openstack-dashboard/configurations#dns-ha)
* [dropdown-max-items](https://charmhub.io/openstack-dashboard/configurations#dropdown-max-items)
* [enable-consistency-groups](https://charmhub.io/openstack-dashboard/configurations#enable-consistency-groups)
* [enable-fip-topology-check](https://charmhub.io/openstack-dashboard/configurations#enable-fip-topology-check)
* [endpoint-type](https://charmhub.io/openstack-dashboard/configurations#endpoint-type)
* [enforce-password-check](https://charmhub.io/openstack-dashboard/configurations#enforce-password-check)
* [enforce-ssl](https://charmhub.io/openstack-dashboard/configurations#enforce-ssl)
* [ha-bindiface](https://charmhub.io/openstack-dashboard/configurations#ha-bindiface)
* [ha-mcastport](https://charmhub.io/openstack-dashboard/configurations#ha-mcastport)
* [haproxy-client-timeout](https://charmhub.io/openstack-dashboard/configurations#haproxy-client-timeout)
* [haproxy-connect-timeout](https://charmhub.io/openstack-dashboard/configurations#haproxy-connect-timeout)
* [haproxy-expose-stats](https://charmhub.io/openstack-dashboard/configurations#haproxy-expose-stats)
* [haproxy-queue-timeout](https://charmhub.io/openstack-dashboard/configurations#haproxy-queue-timeout)
* [haproxy-server-timeout](https://charmhub.io/openstack-dashboard/configurations#haproxy-server-timeout)
* [harden](https://charmhub.io/openstack-dashboard/configurations#harden)
* [help-url](https://charmhub.io/openstack-dashboard/configurations#help-url)
* [hide-create-volume](https://charmhub.io/openstack-dashboard/configurations#hide-create-volume)
* [hsts-max-age-seconds](https://charmhub.io/openstack-dashboard/configurations#hsts-max-age-seconds)
* [image-formats](https://charmhub.io/openstack-dashboard/configurations#image-formats)
* [nagios\_check\_http\_params](https://charmhub.io/openstack-dashboard/configurations#nagios_check_http_params)
* [nagios\_context](https://charmhub.io/openstack-dashboard/configurations#nagios_context)
* [nagios\_servicegroups](https://charmhub.io/openstack-dashboard/configurations#nagios_servicegroups)
* [neutron-network-dvr](https://charmhub.io/openstack-dashboard/configurations#neutron-network-dvr)
* [neutron-network-firewall](https://charmhub.io/openstack-dashboard/configurations#neutron-network-firewall)
* [neutron-network-l3ha](https://charmhub.io/openstack-dashboard/configurations#neutron-network-l3ha)
* [neutron-network-lb](https://charmhub.io/openstack-dashboard/configurations#neutron-network-lb)
* [neutron-network-vpn](https://charmhub.io/openstack-dashboard/configurations#neutron-network-vpn)
* [offline-compression](https://charmhub.io/openstack-dashboard/configurations#offline-compression)
* [openstack-origin](https://charmhub.io/openstack-dashboard/configurations#openstack-origin)
* [os-public-hostname](https://charmhub.io/openstack-dashboard/configurations#os-public-hostname)
* [password-retrieve](https://charmhub.io/openstack-dashboard/configurations#password-retrieve)
* [prefer-ipv6](https://charmhub.io/openstack-dashboard/configurations#prefer-ipv6)
* [profile](https://charmhub.io/openstack-dashboard/configurations#profile)
* [retrieve-network-data-when-listing-instances](https://charmhub.io/openstack-dashboard/configurations#retrieve-network-data-when-listing-instances)
* [secret](https://charmhub.io/openstack-dashboard/configurations#secret)
* [session-timeout](https://charmhub.io/openstack-dashboard/configurations#session-timeout)
* [site-branding](https://charmhub.io/openstack-dashboard/configurations#site-branding)
* [site-branding-link](https://charmhub.io/openstack-dashboard/configurations#site-branding-link)
* [site-name](https://charmhub.io/openstack-dashboard/configurations#site-name)
* [ssl\_ca](https://charmhub.io/openstack-dashboard/configurations#ssl_ca)
* [ssl\_cert](https://charmhub.io/openstack-dashboard/configurations#ssl_cert)
* [ssl\_key](https://charmhub.io/openstack-dashboard/configurations#ssl_key)
* [ubuntu-theme](https://charmhub.io/openstack-dashboard/configurations#ubuntu-theme)
* [use-internal-endpoints](https://charmhub.io/openstack-dashboard/configurations#use-internal-endpoints)
* [use-policyd-override](https://charmhub.io/openstack-dashboard/configurations#use-policyd-override)
* [use-syslog](https://charmhub.io/openstack-dashboard/configurations#use-syslog)
* [vip](https://charmhub.io/openstack-dashboard/configurations#vip)
* [vip\_cidr](https://charmhub.io/openstack-dashboard/configurations#vip_cidr)
* [vip\_iface](https://charmhub.io/openstack-dashboard/configurations#vip_iface)
* [webroot](https://charmhub.io/openstack-dashboard/configurations#webroot)
* [worker-multiplier](https://charmhub.io/openstack-dashboard/configurations#worker-multiplier)
* [wsgi-socket-rotation](https://charmhub.io/openstack-dashboard/configurations#wsgi-socket-rotation)

[Learn about configurations >](https://juju.is/docs/juju/configuration#heading--application-configuration)

* action-managed-upgrade | boolean

  If True enables openstack upgrades for this charm via juju actions.
  You will still need to set openstack-origin to the new repository but
  instead of an upgrade running automatically across all units, it will
  wait for you to execute the openstack-upgrade action for this charm on
  each unit. If False it will revert to existing behavior of upgrading
  all units on config change.
* allow-password-autocompletion | boolean

  Setting this to True will allow password form autocompletion by browser.
* api-result-limit | int

  The maximum number of objects (e.g. Swift objects or Glance images) to
  display on a single page before providing a paging element (a "more" link)
  to paginate results.
* cinder-backup | boolean

  Enable cinder backup panel.
* csp-options | string

  Default: frame-ancestors 'self';

  Options for the CSP (Content Security Policy) header. This header allows to
  control which resources the user agent is allowed to load. For more details
  on CSP refer to: https://developer.mozilla.org/docs/Web/HTTP/Guides/CSP
* custom-theme | boolean

  Use a custom theme supplied as a resource.
  NOTE: This setting is supported >= OpenStack Mitaka and
  this setting is mutually exclustive to ubuntu-theme and default-theme.
* customization-module | string

  This option provides a means to enable customisation modules to modify
  existing dashboards and panels. This is available from Liberty onwards.
* database | string

  Default: horizon

  Database name for Horizon (if enabled).
* database-user | string

  Default: horizon

  Username for Horizon database access (if enabled).
* debug | string

  Default: no

  Enable Django debug messages.
* default-create-volume | boolean

  Default: True

  The default value for the option of creating a new volume in the
  workflow for image and instance snapshot sources when launching an
  instance. This option has an effect only to Ocata or newer
  releases.
* default-domain | string

  Default domain when authenticating with Horizon. Disables the domain
  field in the login page.
* default-role | string

  Default: member

  Default role for Horizon operations that will be created in
  Keystone upon introduction of an identity-service relation.
* default-theme | string

  Specify path to theme to use (relative to
  /usr/share/openstack-dashboard/openstack\_dashboard/themes/).
  .
  NOTE: This setting is supported >= OpenStack Liberty and
  this setting is mutually exclusive to ubuntu-theme.
* disable-instance-snapshot | boolean

  This setting disables Snapshots as a valid boot source for launching
  instances. Snapshots sources won’t show up in the Launch Instance modal
  dialogue box. This option works from the Newton release, and has no
  effect on earlier OpenStack releases.
* disable-password-reveal | boolean

  If enabled, the reveal button for passwords is removed.
* dns-ha | boolean

  Use DNS HA with MAAS 2.0. Note if this is set do not set vip
  settings below.
* dropdown-max-items | int

  Default: 30

  Max dropdown items to show in dropdown controls.
  NOTE: This setting is supported >= OpenStack Liberty.
* enable-consistency-groups | boolean

  By default Cinder does not enable the Consistency Groups feature. To
  avoid having the Consistency Groups tabs on Horizon without the feature
  enabled on Cinder, this also defaults to False. Setting this to True
  will make the Consistency Groups tabs appear on the dashboard.
  .
  This option is supported for releases up to OpenStack Stein only. As of
  OpenStack Train, consistency groups have been dropped and replaced by
  the generic group feature. Setting this option for OpenStack Train or
  above will not do anything.
* enable-fip-topology-check | boolean

  Default: True

  By default Horizon checks that a project has a router attached to an external network before allowing FIPs to be attached to a VM. Some use cases will not meet this constraint, e.g. if the router is owned by a different project. Setting this to False removes this check from Horizon.
* endpoint-type | string

  Specifies the endpoint types to use for endpoints in the Keystone
  service catalog. Valid values are 'publicURL', 'internalURL',
  and 'adminURL'. Both the primary and secondary endpoint types can
  be specified by providing multiple comma delimited values.
* enforce-password-check | boolean

  Default: True

  If True, displays an ‘Admin Password’ field on the Change Password form
  to verify that it is indeed the admin logged-in who wants to change the password.
* enforce-ssl | boolean

  If True, redirects plain http requests to https port 443. For this option
  to have an effect, SSL must be configured.
* ha-bindiface | string

  Default: eth0

  Default network interface on which HA cluster will bind to communication
  with the other members of the HA Cluster.
* ha-mcastport | int

  Default: 5410

  Default multicast port number that will be used to communicate between
  HA Cluster nodes.
* haproxy-client-timeout | int

  Client timeout configuration in ms for haproxy, used in HA
  configurations. If not provided, default value of 90000ms is used.
* haproxy-connect-timeout | int

  Connect timeout configuration in ms for haproxy, used in HA
  configurations. If not provided, default value of 9000ms is used.
* haproxy-expose-stats | boolean

  If True, exposes stats interface externally.
* haproxy-queue-timeout | int

  Queue timeout configuration in ms for haproxy, used in HA
  configurations. If not provided, default value of 9000ms is used.
* haproxy-server-timeout | int

  Server timeout configuration in ms for haproxy, used in HA
  configurations. If not provided, default value of 90000ms is used.
* harden | string

  Apply system hardening. Supports a space-delimited list of modules
  to run. Supported modules currently include os, ssh, apache and mysql.
* help-url | string

  A custom hyperlink for the "Help" menu, e.g.
  https://mycloud.example.com/help. The default value is
  https://docs.openstack.org/
* hide-create-volume | boolean

  Hide the "Create New Volume" option and rely on the
  default-create-volume value during instance creation.
* hsts-max-age-seconds | int

  "max-age" parameter for HSTS(HTTP Strict Transport Security)
  header. Use with caution since once you set this option, browsers
  will remember it so they can only use HTTPS (HTTP connection won't
  be allowed) until max-age expires.
  .
  An example value is one year (31536000). However, a shorter
  max-age such as 24 hours (86400) is recommended during initial
  rollout in case of any mistakes. For more details on HSTS, refer to:
  https://developer.mozilla.org/docs/Web/Security/HTTP\_strict\_transport\_security
  .
  For this option to have an effect, SSL must be configured and
  enforce-ssl option must be true.
* image-formats | string

  The image-formats setting can be used to alter the default list of
  advertised image formats. Many installations cannot use all the formats
  that Glance recognizes, restricting the list here prevents unwanted
  formats from being listed in Horizon which can lead to confusion.
  .
  This setting takes a space separated list, for example: iso qcow2 raw
  .
  Supported formats are: aki, ami, ari, docker, iso, ova, qcow2, raw, vdi,
  vhd, vmdk.
  .
  If not provided, leave the option unconfigured which enables all of the
  above.
* nagios\_check\_http\_params | string

  Default: -H localhost -I 127.0.0.1 -u '/' -e 200,301,302

  Parameters to pass to the nrpe plugin check\_http.
* nagios\_context | string

  Default: juju

  Used by the nrpe-external-master subordinate charm.
  A string that will be prepended to instance name to set the host name
  in nagios. So for instance the hostname would be something like:
  .
  juju-postgresql-0
  .
  If you're running multiple environments with the same services in them
  this allows you to differentiate between them.
* nagios\_servicegroups | string

  A comma-separated list of nagios servicegroups. If left empty, the
  nagios\_context will be used as the servicegroup.
* neutron-network-dvr | boolean

  Enable Neutron distributed virtual router (DVR) feature in the
  Router panel.
* neutron-network-firewall | boolean

  Enable neutron firewall service panel.
* neutron-network-l3ha | boolean

  Enable HA (High Availability) mode in Neutron virtual router in
  the Router panel.
* neutron-network-lb | boolean

  Enable neutron load balancer service panel.
  .
  NOTE: This configuration option only applies to OpenStack Stein and
  earlier. Since OpenStack Train the Neutron load balancer components
  have been replaced by Octavia.
* neutron-network-vpn | boolean

  Enable neutron vpn service panel.
* offline-compression | string

  Default: yes

  Use pre-generated Less compiled JS and CSS.
* openstack-origin | string

  Default: yoga

  Repository from which to install. May be one of the following:
  distro (default), ppa:somecustom/ppa, a deb url sources entry,
  or a supported Ubuntu Cloud Archive e.g.
  .
  cloud:<series>-<openstack-release>
  cloud:<series>-<openstack-release>/updates
  cloud:<series>-<openstack-release>/staging
  cloud:<series>-<openstack-release>/proposed
  .
  See https://wiki.ubuntu.com/OpenStack/CloudArchive for info on which
  cloud archives are available and supported.
  .
  NOTE: updating this setting to a source that is known to provide
  a later version of OpenStack will trigger a software upgrade unless
  action-managed-upgrade is set to True.
* os-public-hostname | string

  The hostname or address of the public endpoints created for
  openstack-dashboard.
  .
  This value will be used for public endpoints. For example, an
  os-public-hostname set to 'horizon.example.com' with will create
  the following public endpoint for the swift-proxy:
  .
  https://horizon.example.com/horizon
* password-retrieve | boolean

  Enable "Retrieve password" instance action.
* prefer-ipv6 | boolean

  If True enables IPv6 support. The charm will expect network
  interfaces to be configured with an IPv6 address. If set to False
  (default) IPv4 is expected.
  .
  NOTE: these charms do not currently support IPv6 privacy extension.
  In order for this charm to function correctly, the privacy extension
  must be disabled and a non-temporary address must be
  configured/available on your network interface.
* profile | string

  Default profile for the dashboard. Eg. cisco.
* retrieve-network-data-when-listing-instances | boolean

  Default: True

  By setting this option to False, it can be used as a workaround to improve performance and
  avoid downtime when the Project > Instances page is timing out due to the neutron requests
  to retrieve ports and floating IPs taking too long. The side effect is that actions such
  as adding/removing floating IPs or interfaces no longer immediately update the network
  data in instance list, requiring a manual reload of the page. The default value for this
  config is True. For more information see
  https://docs.openstack.org/horizon/latest/configuration/settings.html#openstack-instance-retrieve-ip-addresses
  and LP#2045168.
* secret | string

  Secret for Horizon to use when securing internal data; set this when
  using multiple dashboard units.
* session-timeout | int

  Default: 3600

  A method to supersede the token timeout with a shorter dashboard session timeout in seconds. For example, if your token expires in 60 minutes, a value of 1800 will log users out after 30 minutes.
* site-branding | string

  A brand name to be shown in the HTML title. The default value is
  "OpenStack Dashboard", e.g. "Instance Overview - OpenStack Dashboard"
* site-branding-link | string

  A custom hyperlink when the logo in the dashboard is clicked, e.g.
  https://mycloud.example.com/. The default value is
  "horizon:user\_home" to open the top level of the dashboard.
* site-name | string

  An unique site name for OpenStack deployment to be passed via the
  application-dashboard relation
* ssl\_ca | string

  Base64-encoded certificate authority. This CA is used in conjunction
  with keystone https endpoints and must, therefore, be the same CA
  used by any endpoint configured as https/ssl.
* ssl\_cert | string

  Base64-encoded SSL certificate to install and use for Horizon.
  .
  juju config openstack-dashboard ssl\_cert="$(cat cert| base64)"
  ssl\_key="$(cat key| base64)"
* ssl\_key | string

  Base64-encoded SSL key to use with certificate specified as ssl\_cert.
* ubuntu-theme | string

  Default: yes

  Use Ubuntu theme for the dashboard.
* use-internal-endpoints | boolean

  Openstack mostly defaults to using public endpoints for internal
  communication between services. If set to True this option will
  configure services to use internal endpoints where possible.
* use-policyd-override | boolean

  If True then use the resource named 'policyd-override' to install
  override YAML files in the horizon's policy directories. The resource
  file should be a ZIP file containing YAML policy files. These are to be
  placed into directories that indicate the service that the policy file
  belongs to. Please see the README of the charm for further details.
  .
  If False then remove/disable any overrides in force.
* use-syslog | boolean

  Setting this to True will allow supporting services to log to syslog.
* vip | string

  Virtual IP to use to front openstack dashboard ha configuration.
* vip\_cidr | int

  Default: 24

  Default CIDR netmask to use for HA vip when it cannot be automatically
  determined.
* vip\_iface | string

  Default: eth0

  Default network interface to use for HA vip when it cannot be
  automatically determined.
* webroot | string

  Default: /horizon

  Directory where application will be accessible, relative to
  http://$hostname/.
* worker-multiplier | float

  The CPU core multiplier to use when configuring worker processes for
  this service. By default, the number of workers for each daemon is
  set to twice the number of CPU cores a service unit has. This default
  value will be capped to 4 workers unless this configuration option
  is set.
* wsgi-socket-rotation | boolean

  Default: True

  Allow users to disable Apache wsgi socket rotation. If not configured,
  this option sets True as the default value, which is consistent with the
  default value 'WSGISocketRotation On' in Apache. This option should be
  used with caution. Please read the Apache doc page for more information.
