Update documentation for proxies and improved diagrams

Also removed some of the older no longer relevant docs

Change-Id: Ic75e70c2ff008725971e6395a8286a11d1646ed2
This commit is contained in:
Schiefelbein, Andrew 2020-08-05 11:01:35 -05:00
parent a0d1b40230
commit 769e1b458d
3 changed files with 6 additions and 38 deletions

BIN
docs/img/proxy.jpg Executable file

Binary file not shown.

After

Width:  |  Height:  |  Size: 26 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 37 KiB

After

Width:  |  Height:  |  Size: 37 KiB

View File

@ -10,37 +10,15 @@ Clone the Airship UI repository and build.
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
make examples # (optional)
make install-octant-plugins # (if running with octant)
**NOTE**
Make will install node.js v12 into your tools directory and will use that as the node binary for the UI testing and launching.
Run the airshipui binary
./bin/airshipui
# Running on a separate client & server
For development purposes it could be advantageous to split the webservice and the UI across 2 machines.
## To start the webservice on a remote system without starting the ui
bin/airshipui --headless
This will require you to tunnel the connection to the remote machine:
ssh -L 8080:localhost:8080 <id>@<remote_host>
## To start the UI to attach to a remote machine
bin/airshipui --remote
## Running the webservice on a remote machine with plugins
The plugins can run on the remote system but you will need to add additional SSH tunnels to the machine in order for it to work.
The plugins can also run locally but the remote server will still need the definition on the remote system to notify the UI that the plugins are available.
# Authentication
## Pluggable authentication methods
The AirshipUI is not designed to create authentication credentials but to have them supplied to it either by a configuration or by an external entity. The expectation is that there will be an external URL that will handle authentication for the system which may need to be modified or created. The endpoint will need to be able to forward a [bearer token](https://oauth.net/2/bearer-tokens/), [basic auth](https://en.wikipedia.org/wiki/Basic_access_authentication) or cookie data to the Airship UI backend service.
@ -67,22 +45,6 @@ go run examples/authentication/main.go
+ The example auth server id is: airshipui
+ The example auth server password is: Open Sesame!
# Plugins
## Octant
[Octant](https://github.com/vmware-tanzu/octant) is a tool for developers to understand how applications run on a Kubernetes cluster. It aims to be part of the developer's toolkit for gaining insight and approaching complexity found in Kubernetes. Octant offers a combination of introspective tooling, cluster navigation, and object management along with a plugin system to further extend its capabilities.
Octant needs to be pointed to a Kubernetes Cluster. For development it is recommended to use [Minikube](https://kubernetes.io/docs/tasks/tools/install-minikube/)
### How to get and build Octant
If you are going to do serious Octant development you will need to adhere to [Octant's Hacking Guide](https://github.com/vmware-tanzu/octant/blob/master/HACKING.md) which includes information on how to build Octant and the steps to push changes to them.
### Running the example
Build the octant plugin executable
```
make install-octant-plugins
```
Run the octant binary and the plugin should show "Hello World just some text on the page" under the http://127.0.0.1:7777/#/airshipui-example-plugin url.
## Behind the scenes
### Communication with the backend
@ -93,6 +55,12 @@ The UI will initiate the websocket and request data. The backend uses a functio
### AirshipUI interaction
![AirshipUI Interactions](../img/sequence.jpg "AirshipUI Interactions")
### Communication with the dashboards
Dashboards may or may not be generally available for end users based on the cluster the AirshipUI is deployed to. If access to the endpoint is controlled in a way that is not easy to manipulate or if a Single Sign On approach is necessary the AirhshipUI provides the ability to proxy the targeted dashboard.
### AirshipUI proxy interaction
![AirshipUI Interactions](../img/proxy.jpg "AirshipUI Interactions")
## Appendix
### Minikube