Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

create docs page & draft Zarf UI doc #1612

Merged
merged 46 commits into from
Apr 24, 2023
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
46 commits
Select commit Hold shift + click to select a range
566bf76
create docs page & draft Zarf UI doc
Madeline-UX Apr 18, 2023
548fc99
Merge branch 'main' into 1609-docs-update-add-zarf-ui-docs-page
Racer159 Apr 19, 2023
cb0d8e2
Add UI image and content updates to docs page
Madeline-UX Apr 19, 2023
7fc9645
Reorgnaze content on page
Madeline-UX Apr 20, 2023
eace622
Add images and Cluster connection status section
Madeline-UX Apr 20, 2023
06d0bd4
Add - connect to existing cluster section
Madeline-UX Apr 20, 2023
19851af
Add package command section and image
Madeline-UX Apr 20, 2023
3f5d847
Merge branch 'main' into 1609-docs-update-add-zarf-ui-docs-page
Racer159 Apr 20, 2023
a541cd5
Merge branch 'main' into 1609-docs-update-add-zarf-ui-docs-page
Racer159 Apr 21, 2023
2f547d1
Update docs/7-dashboard-ui/3-Zarf-deployment-ui.md
Madeline-UX Apr 21, 2023
8dcdbaf
Update docs/7-dashboard-ui/3-Zarf-deployment-ui.md
Madeline-UX Apr 21, 2023
62202f1
Update docs/7-dashboard-ui/3-Zarf-deployment-ui.md
Madeline-UX Apr 21, 2023
b3cf50a
Update docs/7-dashboard-ui/3-Zarf-deployment-ui.md
Madeline-UX Apr 21, 2023
2354cbc
Update docs/7-dashboard-ui/3-Zarf-deployment-ui.md
Madeline-UX Apr 21, 2023
8275a5a
Update docs/7-dashboard-ui/3-Zarf-deployment-ui.md
Madeline-UX Apr 21, 2023
f796208
Update docs/7-dashboard-ui/3-Zarf-deployment-ui.md
Madeline-UX Apr 21, 2023
b6da26b
Update 3-Zarf-deployment-ui.md
Madeline-UX Apr 21, 2023
a3a6ce9
Update docs/7-dashboard-ui/3-Zarf-deployment-ui.md
Madeline-UX Apr 21, 2023
27e9111
Update docs/7-dashboard-ui/3-Zarf-deployment-ui.md
Madeline-UX Apr 21, 2023
cb19e77
Update docs/7-dashboard-ui/3-Zarf-deployment-ui.md
Madeline-UX Apr 21, 2023
5f137cf
Update docs/7-dashboard-ui/3-Zarf-deployment-ui.md
Madeline-UX Apr 21, 2023
d83a320
Update docs/7-dashboard-ui/3-Zarf-deployment-ui.md
Madeline-UX Apr 21, 2023
e0cac82
Update docs/7-dashboard-ui/3-Zarf-deployment-ui.md
Madeline-UX Apr 21, 2023
aed4583
Update docs/7-dashboard-ui/3-Zarf-deployment-ui.md
Madeline-UX Apr 21, 2023
828ac0d
Update docs/7-dashboard-ui/3-Zarf-deployment-ui.md
Madeline-UX Apr 21, 2023
f59cfd3
Update docs/7-dashboard-ui/3-Zarf-deployment-ui.md
Madeline-UX Apr 21, 2023
2d6c92b
Add link to getting started to the step install zarf binary
Madeline-UX Apr 21, 2023
bfe5a57
Merge branch 'main' into 1609-docs-update-add-zarf-ui-docs-page
Madeline-UX Apr 21, 2023
83785b2
Merge branch 'main' into 1609-docs-update-add-zarf-ui-docs-page
Racer159 Apr 21, 2023
63c3cfa
Update docs/7-dashboard-ui/3-Zarf-deployment-ui.md
Madeline-UX Apr 24, 2023
ca260db
Update docs/7-dashboard-ui/3-Zarf-deployment-ui.md
Madeline-UX Apr 24, 2023
8a12c6a
Update docs/7-dashboard-ui/3-Zarf-deployment-ui.md
Madeline-UX Apr 24, 2023
ffb9962
Update docs/7-dashboard-ui/3-Zarf-deployment-ui.md
Madeline-UX Apr 24, 2023
fa58016
Update docs/7-dashboard-ui/3-Zarf-deployment-ui.md
Madeline-UX Apr 24, 2023
56a65f5
Update docs/7-dashboard-ui/3-Zarf-deployment-ui.md
Madeline-UX Apr 24, 2023
0d5bd79
Update docs/7-dashboard-ui/3-Zarf-deployment-ui.md
Madeline-UX Apr 24, 2023
0d2c3ff
Update docs/7-dashboard-ui/3-Zarf-deployment-ui.md
Madeline-UX Apr 24, 2023
0cf332f
Update docs/7-dashboard-ui/3-Zarf-deployment-ui.md
Madeline-UX Apr 24, 2023
a634563
Update docs/7-dashboard-ui/3-Zarf-deployment-ui.md
Madeline-UX Apr 24, 2023
058c593
Merge branch 'main' into 1609-docs-update-add-zarf-ui-docs-page
Racer159 Apr 24, 2023
0138c70
Update docs/7-dashboard-ui/3-Zarf-deployment-ui.md
Madeline-UX Apr 24, 2023
5468e06
Update docs/7-dashboard-ui/3-Zarf-deployment-ui.md
Madeline-UX Apr 24, 2023
49da159
Update docs/7-dashboard-ui/3-Zarf-deployment-ui.md
Madeline-UX Apr 24, 2023
7b7f6d0
Update docs/7-dashboard-ui/3-Zarf-deployment-ui.md
Madeline-UX Apr 24, 2023
4918dff
Update docs/7-dashboard-ui/3-Zarf-deployment-ui.md
Madeline-UX Apr 24, 2023
6b38a85
Update docs/7-dashboard-ui/3-Zarf-deployment-ui.md
Madeline-UX Apr 24, 2023
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added docs/.images/dashboard/Zarf Deployment UI.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
2 changes: 1 addition & 1 deletion docs/7-dashboard-ui/2-k9s-dashboard.md
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
# K9s
# K9s Dashboard

Zarf vendors in [K9s, a terminal-based UI to interact with your Kubernetes cluster. K9s is not necessary to deploy, manage, or operate Zarf or its deployed packages, but it is a great tool to use when you want to interact with your cluster. Since Zarf vendors in this tool, you don't have to worry about additional dependencies or trying to install it yourself!

Expand Down
114 changes: 114 additions & 0 deletions docs/7-dashboard-ui/3-Zarf-deployment-ui.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,114 @@
# Zarf Deployment Web UI

Zarf has a Deployment Web UI built in that supports a number of Zarf features used during the package deployment process. For users who prefer not to use the command line tool, the Web UI creates a simple experience to deploy and manage Zarf clusters and packages. The Web UI can be used to connect to existing clusters (via a Kubeconfig), initialize a cluster, deploy packages into a cluster, update packages in the cluster, and remove packages from the cluster.

The Zarf Web UI mirrors the functionality of the Zarf CLI commands, but with a more intuitive flow and familiar web application patterns for non-technical users. The web UI does not offer any additional commands or core functionality to Zarf.

## Open the Zarf Deployment Web UI

The Zarf Deployment Web UI can easily be spun up with a single command from the CLI.

Follow these steps to get started using the Web UI

1. Step one: [Install the Zarf binary](/docs/3-getting-started.md)
2. Step two: Open a terminal shell
3. Step three: Type in the following command: ```zarf dev UI```

![GIF showing the Web UI launched from the CLI terminal](../.images/dashboard/Web_UI__Launch_w__Cluster_AdobeExpress.gif)

## Using the Zarf Deployment Web UI

### Cluster Connection Status

When Zarf is running it automatically searches for a Kubeconfig on the local machine. If the Kubeconfig is found, it searches the default cluster to determine if it is a Zarf cluster (i.e. initialized). There are two different cluster statuses the Web UI will display based on the state of the cluster found.

#### Cluster not Connected (Not Initialized)

![Web UI shows orange warning status and message "cluster not connected" on the cluster card](../.images/dashboard/Web%20UI%20-%20Cluster%20Not%20Connected.png)

1. Shown when there is no Kubeconfig found on the machine.
2. Shown when a Kubeconfig is found on the machine, but Zarf has not been deployed and set up in the cluster.

#### Cluster Connected (Initialized)

If Zarf finds a cluster in the Kubeconfig that has Zarf resources in it it will automatically connect to the cluster and display the cluster details on the Web UI.

![Web UI shows cluster meta data in on the cluster card when a connected cluster is found](../.images/dashboard/Web%20UI%20-%20Status%20Cluster%20connected.png)

1. Shown when there is a Kubeconfig found on the machine with a default cluster that has Zarf resources in it.


### Connect to Existing Cluster

The Zarf Web UI makes connecting to existing clusters easy. When on the packages page, if there is no Zarf cluster currently connected, select the connect cluster button. If Zarf finds a Kubeconfig it will ask the user if they want to connect to the default cluster context.

:::tip

Zarf can only read the default cluster in your Kubeconfig file, if you wish to connect to a different cluster in the Kubeconfig you will need to change it to the default cluster in the terminal. See the Kubernetes documentation on [how to configure access to multiple clusters](https://kubernetes.io/docs/tasks/access-application-cluster/configure-access-multiple-clusters/).

:::

Follow these steps to connect to an existing cluster:

1. Be sure to have a Kubeconfig on your machine with the cluster you wish to connect to set as the default cluster.
2. Click connect cluster button on cluster card
3. Select cluster name in the dialog and click connect
4. Select a ZarfInitConfig package to deploy into the cluster
5. Follow Package deployment prompts to deploy package and initialize cluster as a Zarf cluster.

### Deploy a K3s Cluster with the Init Package

If you do not have access to an existing cluster, or would simply like to spin up a new cluster. You can do that by deploying a ZarfInitConfig package and selecting the optional K3s component.

:::info

This option is currently only available for Linux machines with access to the `root` user.

:::

Follow these steps to deploy and initialize a new cluster:

1. Click deploy package button (on the Deployed packages table)
2. Select a ZarfInitPackage from the list
3. Toggle the switch on for the K3s component to select it for deployment
4. Complete package deployment steps to spin up and initialize your new Zarf cluster.

### Deploy additional packages

Once you have a cluster connected to Zarf, you can deploy additional packages into the cluster.

Steps to deploy additional packages into the cluster:

1. Click deploy package button on the Deployed packages table
2. Select the package you wish to deploy from the list
3. Complete the package deployment steps

### Additional Package Commands

Once a package is deployed into the cluster, the Web UI offers additional commands that can be executed for a package. To view these commands click on the vertical ellipsis at the end of the table row for the package you wish to act upon. The Web UI currently supports the following package commands:

- Update: Use when you wish to update a package with a new version of the same package.
- Remove: Use when you wish to remove a package and all of its resources from the cluster. This cannot be undone.

![Web UI deployed packages table with a context menu showing additional package commands](../.images/dashboard/Web%20UI%20-%20package%20commands.png


## Technical Details

The web UI is packaged into the Zarf binary, so you don't have to worry about additional dependencies or trying to install it yourself! The Web UI is served through your machine's local browser, running on `localhost`, and utilizes the Zarf go binary as the backend.

Use the Zarf Deployment UI to execute the existing Zarf CLI commands:
- [Zarf tools Kubectl top](/docs/4-user-guide/1-the-zarf-cli/100-cli-commands/zarf_tools_kubectl.md)
- [Zarf Init](/docs/4-user-guide/1-the-zarf-cli/100-cli-commands/zarf_init.md)
- [Zarf Package Deploy](/docs/4-user-guide/1-the-zarf-cli/100-cli-commands/zarf_package_deploy.md)
- [Zarf Package Remove](/docs/4-user-guide/1-the-zarf-cli/100-cli-commands/zarf_package_remove.md)
- [Zarf Package List](/docs/4-user-guide/1-the-zarf-cli/100-cli-commands/zarf_package_list.md)
- [Zarf Package Inspect](/docs/4-user-guide/1-the-zarf-cli/100-cli-commands/zarf_package_inspect.md) (coming soon)
- [Zarf Tools Sbom](/docs/4-user-guide/1-the-zarf-cli/100-cli-commands/zarf_tools_sbom.md) (Coming soon)
- [Zarf Connect](/docs/4-user-guide/1-the-zarf-cli/100-cli-commands/zarf_connect.md) (coming soon)

:::info

All other zarf [CLI commands](../4-user-guide/1-the-zarf-cli/index.md) will require interfacing with the CLI directly.

:::