A Web UI for interacting with Airship-managed clusters
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 
Alexander Hughes 2ff942f766 Add gomod tidy check to lint gate 1 month ago
.github Update Airship vulnerability link 1 month ago
certs update makefile to build docker images 1 week ago
cmd/airshipui Fix for minor Go lint issues 3 weeks ago
docs update makefile to build docker images 1 week ago
examples Fix for minor Go lint issues 3 weeks ago
internal Added more test cases to config 2 weeks ago
playbooks Update zuul gates to use docker-image 5 days ago
roles/docker-install Update zuul gates to use docker-image 5 days ago
testutil Added more test cases to config 2 weeks ago
tools Merge "Fix for docker image create behind a proxy with custom CA certs" 5 days ago
web Removed as much of the pre generated CSS as possible 2 weeks ago
.gitignore Adding eslint to do basic linting for JS and HTML files 1 month ago
.gitreview Add a .gitreview 7 months ago
.golangci.yaml [linters] Aligning linter config with airshipctl 3 weeks ago
.zuul.yaml Update zuul gates to use docker-image 5 days ago
Dockerfile update makefile to build docker images 1 week ago
LICENSE Initial commit 9 months ago
Makefile Add gomod tidy check to lint gate 1 day ago
README.md Update Makefile and documentation for npm installs 1 month ago
go.mod Add gomod tidy check to lint gate 1 day ago
go.sum Add gomod tidy check to lint gate 1 day ago
tox.ini Publish documentation 2 months ago

README.md

Airship UI

Airship UI is an electron that is designed to allow you to interact with Airship components, find and connect to the kubernetes cluster and use plugins to tie together a singular dashboard to view addons without the need to go to a separate url or application for each.

Prerequisites

Getting Started

git clone https://opendev.org/airship/airshipui
cd airshipui
make
make install-npm-modules # Note running behind a proxy can cause issues, notes on solving is in the Appendix of the Developer's Guide

Adding Additional Functionality

Airship UI can be seamlessly integrated with service dashboards and other web-based tools by providing the necessary configuration in $HOME/.airship/airshipui.json.

To add service dashboards, create a section at the top level of airshipui.json as follows:

"clusters": [
        {
            "name": "clusterA",
            "baseFqdn": "svc.cluster.local",
            "namespaces": [
                {
                    "name": "ceph",
                    "dashboards": [
                        {
                            "name": "Ceph",
                            "protocol": "https",
                            "fqdn": "ceph-dash.example.domain",
                            "port": 443,
                            "path": ""
                        }
                    ]
                },
                {
                    "name": "openstack",
                    "dashboards": [
                        {
                            "name": "Horizon",
                            "protocol": "http",
                            "hostname": "horizon",
                            "port": 80,
                            "path": "dashboard/auth/login"
                        }
                    ]
                }
            ]
        }
]

For dashboards that are made available through service endpoints in your cluster, the FQDN for the dashboard will be constructed using the format “hostname.namespace.baseFqdn”. In the above example, the configuration for Horizon specifies a service dashboard available at “http://horizon.openstack.svc.cluster.local:80/dashboard/auth/login

Alternatively, you may choose to specify the FQDN directly, as in the above Ceph example. This configuration specifies a Ceph dashboard available at “https://ceph-dash.example.domain:443/

If both “hostname” and “fqdn” are provided, “fqdn” will take precedence.

The airshipui.json configuration file can also be used to launch “plugins”, or external executables, in the background as Airship UI starts. Any processes launched by Airship UI will be terminated when Airship UI exits, including any child processes started by the plugins. If the plugin launches a web dashboard, it can be also be included in the list of service dashboards within Airship UI. The following example demonstrates how to add configuration to launch and use Octant within Airship UI:

"plugins": [
        {
            "name": "Octant",
            "dashboard": {
                "protocol": "http",
                "fqdn": "localhost",
                "port": 7777,
                "path": ""
            },
            "executable": {
                "autoStart": true,
                "filepath": "/usr/local/bin/octant",
                "args": [
                    "--disable-open-browser",
                    "--kubeconfig",
                    "/home/ubuntu/.airship/kubeconfig"
                ]
            }
        }
]

To prevent a plugin from launching but retain its configuration for later use, simply set “autoStart” to false.

Developer’s Guide

Instructions on setting up a development environment and more details can be found in the Developer’s Guide