Merge "Airship Copilot"

Zuul 4 years ago committed by Gerrit Code Review
commit 9bb5b9ea66

@ -0,0 +1,97 @@
This work is licensed under a Creative Commons Attribution 3.0 Unported
.. index::
single: Airship
single: Shipyard
single: GUI
single: CLI
single: API
Airship Copilot
Copilot is an Electron application that can interface with Airship CLIs and
REST interfaces. This tool will wrap SSH sessions and HTTP/HTTPS calls to
Airship components. The responses will be enhanced with a GUI (links for more
commands, color coded, formatting, etc.).
Problem description
Airship can be difficult to approach as a user. There are lots of commands to
know with lots of data to interpret.
Impacted components
Proposed change
Create an Electron application that simplifies the experience of accessing
Airship. The application will be 100% client side, thus no change to the
Airship components. The application will default to use HTTP/HTTPS APIs,
but will be able to use the CLI commands when needed via an SSH connection.
All of the raw commands input and output will be available for the user to
see, with the goal of the user not needing to look at the raw input/output.
The application will start as a GUI interface to Shipyard.
- Shipyard
- API calls (create, commit, get, logs, etc.)
- CLI commands (create, commit, get, logs, etc.)
- From a list of actions drill down into logs
The GUI will create links to additional commands based off of the response.
The GUI can color code different aspects of the response and format it. An
example would be when Shipyard returns a list of tasks, that list can be used
to create hyperlinks to drill down on that task (details, logs, etc.).
The GUI could start by looking similar to the CLI. Where the values in the
different columns would be buttons/links to call additional commands for more
Name Action Lifecycle Execution Time Step Succ/Fail/Oth Footnotes
deploy_site action/01BTP9T2WCE1PAJR2DWYXG805V Failed 2017-09-23T02:42:12 12/1/3 (1)
update_site action/01BZZKMW60DV2CJZ858QZ93HRS Processing 2017-09-23T04:12:21 6/0/10 (2)
Security impact
None - This will continue to use HTTP/HTTPS and SSH just like today, the only
difference is that it is wrapped in an application.
Performance impact
Minimal - Wrapping the commands in an Electron application might add a little
latency, but only on the client side.
Future plans
Extend to other Airship components. Pegleg seems like the next step, but
any componment with an exposed API/CLI.
.. _Electron: