Skip to content

zarf-dev/tutorial

Repository files navigation

Intro to Zarf

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.

What You'll Learn

  • How a zarf.yaml package definition is structured
  • How to use zarf dev find-images to discover required container images
  • How to build a Zarf package tarball
  • How to deploy a Zarf package to a Kubernetes cluster
  • How to inspect and remove a deployed package

Prerequisites

Kubernetes Options

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-info

Then initialize your cluster for with the required Zarf infrastructure:

zarf init

Select y to confirm deploying the package and y for the git-server component.

Tutorial Structure

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
Part 3: Inspect a Zarf Package Inspect package contents, deployed state, and remove a package

Work through the parts in order — each part builds on the state from the previous one.

Next Steps

After completing the tutorial, there's a lot more to explore with Zarf:

  • Browse the Zarf examples for more complex package configurations (multi-component packages, OCI publishing, custom variables, etc.)
  • Read the Zarf documentation for the full feature set
  • Try packaging your own application — start with a skeleton zarf.yaml and iterate from there

About

Zarf Tutorial Repository

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors