Zarf is an open source tool for packaging and deploying software into air-gapped Kubernetes environments. It bundles everything your application needs — Helm charts, container images, manifests — into a single portable artifact that can be deployed without internet access.
In this tutorial, you'll build a Zarf package for ArgoCD from scratch, deploy it to a local Kubernetes cluster, and access the ArgoCD dashboard.
- How a
zarf.yamlpackage definition is structured - How to use
zarf dev find-imagesto discover required container images - How to build a Zarf package tarball
- How to deploy a Zarf package to a Kubernetes cluster
- Zarf installed and on your
PATH - A Kubernetes cluster
Any local cluster will work. Some common choices:
| Option | Notes |
|---|---|
| k3d | K3s in Docker — closest to the Instruqt lab environment |
| kind | Well-documented, widely used in OSS tutorials |
| Docker Desktop | Enable Kubernetes in settings |
| Existing cluster | Works as long as kubectl is configured |
Whichever you choose, verify your cluster is reachable before starting:
zarf tools kubectl cluster-infoThen initialize your cluster for with the required Zarf infrastructure:
zarf initSelect y to confirm deploying the package and y for the git-server component.
| Part | Description |
|---|---|
| Part 1: Create a Zarf Package | Author a zarf.yaml, discover images, and build the package tarball |
| Part 2: Deploy a Zarf Package | Deploy the package to your cluster and access ArgoCD |
Work through the parts in order — Part 2 depends on the package tarball produced in Part 1.