Deployment Web UI
Zarf is also available in a version that exposes a Deployment Web UI 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.
The Zarf Deployment Web UI can easily be downloaded from the Zarf UI Github Project.
Follow these steps to get started using the Web UI
- Step one: Download the Zarf UI version that matches your system (i.e.
zarf-ui_v0.1.0-Darwin_arm64
) - Step two: (if applicable) Mark the file as executable with
chmod +x zarf-ui_v0.1.0-Darwin_arm64
- Step three: Run the binary with
./zarf-ui_v0.1.0-Darwin_arm64
or by double clicking the file in your file browser
When Zarf UI 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.
- Shown when there is no Kubeconfig found on the machine.
- Shown when a Kubeconfig is found on the machine, but Zarf has not been deployed and set up in the cluster.
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.
- Shown when there is a Kubeconfig found on the machine with a default cluster that has Zarf resources in it.
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.
Follow these steps to connect to an existing cluster:
- Be sure to have a Kubeconfig on your machine with the cluster you wish to connect to set as the default cluster.
- Click connect cluster button on cluster card
- Select cluster name in the dialog and click connect
- Select a ZarfInitConfig package to deploy into the cluster
- Follow Package deployment prompts to deploy package and initialize cluster as a Zarf cluster.
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.
Follow these steps to deploy and initialize a new cluster:
- Click deploy package button (on the Deployed packages table)
- Select a ZarfInitPackage from the list
- Toggle the switch on for the K3s component to select it for deployment
- Complete package deployment steps to spin up and initialize your new Zarf cluster.
Once you have a cluster connected to Zarf, you can deploy additional packages into the cluster.
Steps to deploy additional packages into the cluster:
- Click deploy package button on the Deployed packages table
- Select the package you wish to deploy from the list
- Complete the package deployment steps
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.
The web UI is packaged into a separate Go binary using Zarf as a library, so you don’t have to worry about additional dependencies or needing to manually hook it into Zarf! The web UI is served through your machine’s local browser, running on localhost
, and utilizes the Go binary as the backend.