zarf

command module
v0.28.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jun 24, 2023 License: Apache-2.0 Imports: 3 Imported by: 0

README

Zarf - DevSecOps for Air Gap

Latest Release Go version Build Status Zarf Documentation Status OpenSSF Scorecard

zarf logo

Zarf Website Zarf Documentation Zarf Slack Channel

Zarf eliminates the complexity of air gap software delivery for Kubernetes clusters and cloud-native workloads using a declarative packaging strategy to support DevSecOps in offline and semi-connected environments.

Why Use Zarf

  • 💸 Free and Open-Source. Zarf will always be free to use and maintained by the open-source community.
  • ⭐️ Zero Dependencies. As a statically compiled binary, the Zarf CLI has zero dependencies to run on any machine.
  • 🔓 No Vendor Lock. There is no proprietary software that locks you into using Zarf. If you want to remove it, you still can use your helm charts to deploy your software manually.
  • 💻 OS Agnostic. Zarf supports numerous operating systems. A full matrix of supported OSes, architectures and featuresets is coming soon.
  • 📦 Highly Distributable. Integrate and deploy software from multiple secure development environments including edge, embedded systems, secure cloud, data centers, and even local environments.
  • 🚀 Develop Connected, Deploy Disconnected. Teams can build and configure individual applications or entire DevSecOps environments while connected to the internet. Once created, they can be packaged and shipped to a disconnected environment to be deployed.
  • 💿 Single File Deployments. Zarf allows you to package the parts of the internet your app needs into a single compressed file to be installed without connectivity.
  • ♻️ Declarative Deployments. Zarf packages define the precise state for your application enabling it to be deployed the same way every time.
  • 🦖 Inherit Legacy Code. Zarf packages can wrap legacy code and projects - allowing them to be deployed to modern DevSecOps environments.

📦 Out of the Box Features

🛠️ Configurable Features

Demo

preview

https://www.youtube.com/watch?v=WnOYlFVVKDE

Getting Started

To try Zarf out for yourself, visit the "Try It Now" section on our website, and if you want to learn more about Zarf and its use cases visit docs.zarf.dev.

From the docs you can learn more about installation, using the CLI, making packages, and the Zarf package schema.

Using Zarf in Github workflows? Check out the setup-zarf action. Install any version of Zarf and its init package with zero added dependencies.

Developing

To contribute, please see our Contributor Guide. Below is an architectural diagram showing the basics of how Zarf functions which you can read more about here.

Architecture Diagram

Source DrawIO

Special Thanks

Early Zarf research and prototypes were developed jointly with United States Naval Postgraduate School research you can read here.

We would also like to thank the following awesome libraries and projects without which Zarf would not be possible!

pterm/pterm mholt/archiver spf13/cobra go-git/go-git sigstore/cosign helm.sh/helm kubernetes

Documentation

Overview

Package main is the entrypoint for the Zarf binary.

Directories

Path Synopsis
cli module
src
cmd
Package cmd contains the CLI commands for Zarf contains the CLI commands for Zarf.
Package cmd contains the CLI commands for Zarf contains the CLI commands for Zarf.
cmd/tools
Package tools contains the CLI commands for Zarf.
Package tools contains the CLI commands for Zarf.
config
Package config stores the global configuration and constants.
Package config stores the global configuration and constants.
config/lang
Package lang contains the language strings for english used by Zarf Alternative languages can be created by duplicating this file and changing the build tag to "//go:build alt_language && <language>".
Package lang contains the language strings for english used by Zarf Alternative languages can be created by duplicating this file and changing the build tag to "//go:build alt_language && <language>".
extensions/bigbang
Package bigbang contains the logic for installing Big Bang and Flux
Package bigbang contains the logic for installing Big Bang and Flux
internal/agent
Package agent holds the mutating webhook server.
Package agent holds the mutating webhook server.
internal/agent/hooks
Package hooks contains the mutation hooks for the Zarf agent.
Package hooks contains the mutation hooks for the Zarf agent.
internal/agent/http
Package http provides a http server for the webhook and proxy.
Package http provides a http server for the webhook and proxy.
internal/agent/operations
Package operations provides functions for the mutating webhook.
Package operations provides functions for the mutating webhook.
internal/agent/state
Package state provides helpers for interacting with the Zarf agent state.
Package state provides helpers for interacting with the Zarf agent state.
internal/api
Package api provides the UI API server.
Package api provides the UI API server.
internal/api/auth
Package auth provides an endpoint for authenticating against the Zarf UI server.
Package auth provides an endpoint for authenticating against the Zarf UI server.
internal/api/cluster
Package cluster contains Zarf-specific cluster management functions.
Package cluster contains Zarf-specific cluster management functions.
internal/api/common
Package common provides common functions for the api.
Package common provides common functions for the api.
internal/api/components
Package components provides api functions for managing Zarf components.
Package components provides api functions for managing Zarf components.
internal/api/packages
Package packages provides api functions for managing Zarf packages.
Package packages provides api functions for managing Zarf packages.
internal/cluster
Package cluster contains Zarf-specific cluster management functions.
Package cluster contains Zarf-specific cluster management functions.
internal/packager/git
Package git contains functions for interacting with git repositories.
Package git contains functions for interacting with git repositories.
internal/packager/helm
Package helm contains operations for working with helm charts.
Package helm contains operations for working with helm charts.
internal/packager/images
Package images provides functions for building and pushing images.
Package images provides functions for building and pushing images.
internal/packager/kustomize
Package kustomize provides functions for building kustomizations.
Package kustomize provides functions for building kustomizations.
internal/packager/sbom
Package sbom contains tools for generating SBOMs.
Package sbom contains tools for generating SBOMs.
internal/packager/template
Package template provides functions for templating yaml files.
Package template provides functions for templating yaml files.
internal/packager/validate
Package validate provides Zarf package validation functions.
Package validate provides Zarf package validation functions.
pkg/k8s
Package k8s provides a client for interacting with a Kubernetes cluster.
Package k8s provides a client for interacting with a Kubernetes cluster.
pkg/message
Package message provides a rich set of functions for displaying messages to the user.
Package message provides a rich set of functions for displaying messages to the user.
pkg/oci
Package oci contains functions for interacting with Zarf packages stored in OCI registries.
Package oci contains functions for interacting with Zarf packages stored in OCI registries.
pkg/packager
Package packager contains functions for interacting with, managing and deploying zarf packages.
Package packager contains functions for interacting with, managing and deploying zarf packages.
pkg/packager/deprecated
Package deprecated handles package deprecations and migrations
Package deprecated handles package deprecations and migrations
pkg/pki
Package pki provides a simple way to generate a CA and signed server keypair.
Package pki provides a simple way to generate a CA and signed server keypair.
pkg/transform
Package transform provides helper functions to transform URLs to airgap equivalents
Package transform provides helper functions to transform URLs to airgap equivalents
pkg/utils
Package utils provides generic helper functions.
Package utils provides generic helper functions.
pkg/utils/exec
Package exec provides a wrapper around the os/exec package
Package exec provides a wrapper around the os/exec package
test
Package test provides e2e tests for Zarf.
Package test provides e2e tests for Zarf.
test/external
Package external provides a test for the external init flow.
Package external provides a test for the external init flow.
test/mocks
Package mocks contains all the mocks used in Zarf tests.
Package mocks contains all the mocks used in Zarf tests.
types
Package types contains all the types used by Zarf.
Package types contains all the types used by Zarf.
types/extensions
Package extensions contains the types for all official extensions.
Package extensions contains the types for all official extensions.
test
e2e Module

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL