Introduction to the OpenStack Dashboard
An overview of the Red Hat OpenStack Platform Dashboard graphical user interface
Abstract
Making open source more inclusive
Red Hat is committed to replacing problematic language in our code, documentation, and web properties. We are beginning with these four terms: master, slave, blacklist, and whitelist. Because of the enormity of this endeavor, these changes will be implemented gradually over several upcoming releases. For more details, see our CTO Chris Wright’s message.
Chapter 1. The Red Hat OpenStack Platform Dashboard service (horizon)
The Red Hat OpenStack Platform (RHOSP) Dashboard (horizon) is a web-based graphical user interface that you can use to manage RHOSP services.
To access the browser dashboard, you must install the Dashboard service, and you must know the dashboard host name, or IP, and login password. The dashboard URL is:
http://HOSTNAME/dashboard/
1.1. The Admin tab
The Admin tab provides an interface where administrative users can view usage and manage instances, volumes, flavors, images, projects, users, services, and quotas.
The Admin tab displays in the main window only if you have logged in as a user with administrative privileges.
The following options are available in the Admin tab:
Parameter Name | Description |
---|---|
Overview | View basic reports. |
Resource Usage | Use the following tabs to view the following usages:
|
Hypervisors | View the hypervisor summary. |
Host Aggregates | View, create, and edit host aggregates. View the list of availability zones. |
Instances | View, pause, resume, suspend, migrate, soft or hard reboot, and delete running instances that belong to users of some, but not all, projects. Also, view the log for an instance or access an instance using the console. |
Volumes | View, create, edit, and delete volumes, and volume types. |
Flavors | View, create, edit, view extra specifications for, and delete flavors. Flavors are the virtual hardware templates in OpenStack. |
Images | View, create, edit properties for, and delete custom images. |
Networks | View, create, edit properties for, and delete networks. |
Routers | View, create, edit properties for, and delete routers. |
Floating IPs | View allocated floating IP addresses for all projects. |
Defaults | View and edit the default quotas (maximum limits) for resources in the environment. |
Metadata Definitions | Import, view, and edit metadata definition namespaces, and associate the metadata definitions with specific resource types. |
System Information | Contains the following tabs:
|
1.1.1. View Allocated Floating IP Addresses
You can use the Floating IPs
panel to view a list of allocated floating IP addresses. This information can also be accessed using the command line:
$ nova list --all-tenants
1.2. The Project tab
In the Project tab you can view and manage project resources. Set a project as active in Identity > Projects to view and manage resources in that project.
The following options are available in the Project tab:
Parameter name | Description |
---|---|
Overview | View reports for the project. |
Instances | View, launch, create a snapshot from, stop, pause, or reboot instances, or connect to them through the console. |
Volumes | Use the following tabs to complete these tasks:
|
Images | View images, instance snapshots, and volume snapshots created by project users, and any images that are publicly available. Create, edit, and delete images, and launch instances from images and snapshots. |
Access & Security | Use the following tabs to complete these tasks:
|
Parameter name | Description |
---|---|
Network Topology | View the interactive topology of the network. |
Networks | Create and manage public and private networks and subnets. |
Routers | Create and manage routers. |
Trunks |
Create and manage trunks. Requires the |
Parameter name | Description |
---|---|
Containers | Create and manage storage containers. A container is a storage compartment for data, and provides a way for you to organize your data. It is similar to the concept of a Linux file directory, but it cannot be nested. |
Parameter name | Description |
---|---|
Stacks | Orchestrate multiple composite cloud applications using templates, through both an OpenStack-native REST API and a CloudFormation-compatible Query API. |
1.3. The Identity tab
In the Identity tab you can view and manage projects and users.
The following options are available in the Identity tab:
- Projects - View, create, edit, and delete projects, view project usage, add or remove users as project members, modify quotas, and set an active project.
- Users - View, create, edit, disable, and delete users, and change user passwords. The Users tab is available when you log in as an admin user.
For more information about managing your cloud with the Red Hat OpenStack Platform dashboard, see the following guides:
Chapter 2. Customizing the Dashboard
The Red Hat OpenStack Platform (RHOSP) dashboard (horizon) uses a default theme (RCUE), which is stored inside the horizon container. You can add your own theme to the container image and customize certain parameters to change the look and feel of the following dashboard elements:
- Logo
- Site colors
- Stylesheets
- HTML title
- Site branding link
- Help URL
To ensure continued support for modified RHOSP container images, the resulting images must comply with the "Red Hat Container Support Policy".
2.1. Obtaining the horizon container image
To obtain a copy of the horizon container image, pull the image either into the undercloud or a separate client system that is running podman.
Procedure
Pull the horizon container image:
$ sudo docker pull registry.redhat.io/rhosp13/openstack-horizon
You can use this image as a basis for a modified image.
2.2. Obtaining the RCUE theme
The horizon container image uses the Red Hat branded RCUE theme by default. You can use this theme as a basis for your own theme and extract a copy from the container image.
Procedure
Create a directory for your theme.
$ mkdir ~/horizon-themes $ cd ~/horizon-themes
Start a container that executes a null loop. For example, run the following command:
$ sudo docker run --rm -d --name horizon-temp registry.redhat.io/rhosp13/openstack-horizon /usr/bin/sleep infinity
Copy the RCUE theme from the container to your local directory:
$ sudo docker cp -a horizon-temp:/usr/share/openstack-dashboard/openstack_dashboard/themes/rcue .
Kill the container:
$ sudo docker kill horizon-temp
Result: You should have a local copy of the RCUE theme.
2.3. Creating your own theme based on RCUE
To use RCUE as a basis, copy the entire RCUE theme directory rcue to a new location. This procedure uses mytheme
as an example name.
Procedure
Copy the theme.
$ cp -r rcue mytheme
To change the colors, graphics, fonts, and other elements of a theme, edit the files in mytheme
. When you edit this theme, check for all instances of rcue including paths, files, and directories to ensure that you change them to the new mytheme
name.
2.4. Creating a file to enable your theme and customize the dashboard
To enable your theme in the dashboard container, you must create a file to override the AVAILABLE_THEMES
parameter.
Procedure
Create a new file called
_12_mytheme_theme.py
in thehorizon-themes
directory and add the following content:AVAILABLE_THEMES = [('mytheme', 'My Custom Theme', 'themes/mytheme')]
The
12
in the file name ensures this file is loaded after the RCUE file, which uses11
, and overrides theAVAILABLE_THEMES
parameter.Optional: You can also set custom parameters in the
_12_mytheme_theme.py
file. Use the following examples as a guide:- SITE_BRANDING
Set the HTML title that appears at the top of the browser window.
SITE_BRANDING = "Example, Inc. Cloud"
- SITE_BRANDING_LINK
Changes the hyperlink of the theme logo, which normally redirects to
horizon:user_home
by default.SITE_BRANDING_LINK = "http://example.com"
2.5. Generating a modified horizon image
When your custom theme is ready, you can create a new container image to enable and use your theme.
Procedure
Use a
dockerfile
to generate a new container image with the original horizon image as a basis. Use the following exampledockerfile
as a guide:FROM registry.redhat.io/rhosp13/openstack-horizon MAINTAINER Acme LABEL name="rhosp13/openstack-horizon-mytheme" vendor="Acme" version="0" release="1" COPY mytheme /usr/share/openstack-dashboard/openstack_dashboard/themes/mytheme COPY _12_mytheme_theme.py /etc/openstack-dashboard/local_settings.d/_12_mytheme_theme.py RUN sudo chown horizon:horizon /etc/openstack-dashboard/local_settings.d/_12_mytheme_theme.py
-
Save this file in your
horizon-themes
directory asdockerfile
. Use the
dockerfile
to generate the new image:sudo docker build . -t "192.168.24.1:8787/rhosp13/openstack-horizon-mytheme:0-1"
The
-t
option names and tags the resulting image. It uses the following syntax:[LOCATION]/[NAME]:[TAG]
- LOCATION
- This is usually the location of the container registry that the overcloud uses to pull images. To push this image to the undercloud container registry, set this to the undercloud IP and port.
- NAME
-
For consistency, this is usually the same name as the original container image followed by the name of your theme. In this example case, it is
rhosp13/openstack-horizon-mytheme
. - TAG
- The tag for the image. You can follow the Red Hat convention by using the version and release labels as a basis for this tag. If you generate a new version of this image, increment the release, for example, 0-2.
Push the resulting image to the undercloud container registry:
$ docker push 192.168.24.1:8787/rhosp13/openstack-horizon-mytheme:0-1
If you update or upgrade RHOSP you must reapply the theme to the new horizon image and push a new version of the modified image to the undercloud.
2.6. Using the modified container image in the overcloud
To use the container image that you modified with your overcloud deployment, edit the environment file that contains the list of container image locations. This environment file is usually named overcloud-images.yaml
.
Procedure
Edit the
DockerHorizonConfigImage
andDockerHorizonImage
parameters to point to your modified container image:parameter_defaults: ... DockerHorizonConfigImage: 192.168.24.1:8787/rhosp13/openstack-horizon-mytheme:0-1 DockerHorizonImage: 192.168.24.1:8787/rhosp13/openstack-horizon-mytheme:0-1 ...
-
Save this new version of the
overcloud-images.yaml
file.
2.7. Editing puppet parameters
Director provides a set of dashboard parameters that you can modify with environment files.
Procedure
Use the
ExtraConfig
parameter to set Puppet hieradata. For example, the default help URL points to https://access.redhat.com/documentation/en/red-hat-openstack-platform. To modify this URL, use the following environment file content and replace the URL:parameter_defaults: ExtraConfig: horizon::help_url: "http://openstack.example.com"
2.8. Deploying an overcloud with a customized Dashboard
Procedure
To deploy the overcloud with your dashboard customizations, include the following environment files in the
openstack overcloud deploy
command:- The environment file with your modified container image locations.
- The environment file with additional dashboard modifications.
Any other environment files that are relevant to your overcloud configuration.
$ openstack overcloud deploy --templates \ -e /home/stack/templates/overcloud-images.yaml \ -e /home/stack/templates/help_url.yaml \ [OTHER OPTIONS]