Package Examples
The Zarf examples demonstrate different ways to utilize Zarf in your environment. All of these examples follow the same general release pattern and assume an offline / air-gapped deployment target.
To build and deploy a demo, change directories to the example you want to try and run:
cd <directory> # This should be whatever example you want to try (i.e. game)
zarf package create # This will create the zarf package
zarf package deploy # This will prompt you to deploy the created zarf package
Examples are for demo purposes only and are not meant for production use, they exist to demo various ways to use Zarf. Modifying examples to fit production use is possible but requires additional configuration, time, and Kubernetes knowledge.
Examples also utilize software pulled from multiple sources and some of them require authenticated access. Check the examples themselves for the specific accounts / logins required.
📄️ Big Bang
This package deploys Big Bang using the Zarf bigbang extension.
📄️ Component Actions
Component Actions have replaced Component Scripts. Zarf will still read scripts entries, but will convert them to actions. Component Scripts will be removed in a future release. Please update your package configurations to use Component Actions instead.
📄️ Component Choice
This example demonstrates how to define packages that can be chosen by the user on zarf package deploy. This is done through the group key inside of the component specification that defines a group of components a user can select from.
📄️ Composable Packages
This example demonstrates using Zarf to import components from existing Zarf package definitions while merging overrides to add or change functionality. It uses the existing DOS games and WordPress examples by simply adding import keys in the new zarf.yaml file.
📄️ Config File Example
This example shows how to use a config file to configure the Zarf CLI, for more details on the usage of config files, see the documentation at docs/user-guide/the-zarf-cli.
📄️ Retro Arcade
This example provides the basis for Zarf's Retro Arcade tutorial. It deploys a Dos Games arcade into the cluster and provides an easy way to connect and play games.
📄️ Git Repositories
This example shows how to package git repositories within a Zarf package. This package does not deploy anything itself but pushes assets to the specified git service to be consumed as desired. Within Zarf, there are a few ways to include git repositories (as described below).
📄️ Helm Charts
This example shows the many ways you can deploy Helm Charts with Zarf. To learn more about how charts work in Zarf, see the Helm Charts section of the package components documentation.
📄️ Data Injections (Kiwix)
This example shows Zarf's ability to inject data into a container running in a pod, in this case to initialize a Kiwix server to allow offline viewing of documentation and wiki pages.
📄️ Longhorn
This example shows you how to deploy Longhorn using Zarf.
📄️ Manifests
This example shows you how to specify Kubernetes resources in a component's manifests list. These files can either be local or remote and under the hood Zarf will wrap them in an auto-generated helm chart to manage their install, rollback, and uninstall logic.
📄️ Flux (with Podinfo)
This example demonstrates how to use flux with Zarf to deploy the stefanprodan/podinfo app using GitOps.
📄️ Variables
This example demonstrates how to define variables and constants in your package that will be templated across the manifests and charts your package uses during zarf package deploy with ###ZARFVAR### and ###ZARF_CONST_###, and also shows how package configuration templates can be used in the zarf.yaml during zarf package create with ###ZARFPKGTMPL_*###.
📄️ WordPress
This example demonstrates how to use Zarf to deploy a WordPress blog into a cluster. It is used as a part of the Creating a Zarf Package and Deploying a Zarf Package tutorials.
📄️ YOLO Mode
This example demonstrates YOLO mode, an optional mode for using Zarf in a fully connected environment where users can bring their own external container registry and Git server.