A Web UI for interacting with Airship-managed clusters
Go to file
Sirajudeen 4e25c19021 Fix for minor Go lint issues
Issues addressed:
* package comment should not have leading space
* exported var UiConfig should have comment or be unexported
* if block ends with a return statement, so drop this else and outdent its block
* var UiConfig should be UIConfig

Change-Id: I04b380445d7c97a816f75a9af006d2461b256356
2020-06-17 16:38:52 -05:00
.github Update Airship vulnerability link 2020-05-18 21:22:07 +00:00
cmd/airshipui Fix for minor Go lint issues 2020-06-17 16:38:52 -05:00
docs Update airship docs theme 2020-06-11 21:55:02 +00:00
examples Fix for minor Go lint issues 2020-06-17 16:38:52 -05:00
internal Fix for minor Go lint issues 2020-06-17 16:38:52 -05:00
playbooks Imitating the license header check from airshipctl 2020-06-15 10:27:38 -05:00
tools Imitating the license header check from airshipctl 2020-06-15 10:27:38 -05:00
web state save for long running processes between page load 2020-06-12 14:54:39 -05:00
.gitignore Adding eslint to do basic linting for JS and HTML files 2020-05-18 13:22:08 -05:00
.gitreview Add a .gitreview 2019-12-06 16:02:18 -06:00
.golangci.yaml POC pluggable auth method 2020-05-15 11:45:50 -05:00
.zuul.yaml Publish documentation 2020-05-11 21:21:41 +00:00
go.mod airship ctl integration with go html templates 2020-06-08 14:03:35 -05:00
go.sum Integrating the isogen & doc pull CTL components 2020-06-12 09:02:44 -05:00
LICENSE Initial commit 2019-09-20 09:08:48 -07:00
Makefile Update Makefile and documentation for npm installs 2020-05-29 14:17:38 -05:00
README.md Update Makefile and documentation for npm installs 2020-05-29 14:17:38 -05:00
tox.ini Publish documentation 2020-05-11 21:21:41 +00:00

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