Skip to content

Latest commit

 

History

History
54 lines (34 loc) · 3.51 KB

components.md

File metadata and controls

54 lines (34 loc) · 3.51 KB

Zarf Components

While Zarf is fairly unopinionated regarding what runs in your cluster, that is not to say that it's completely indifferent. It has distinct opinions, for example, about how to meet many common production application functionality needs—we call these opinions components.

Think of components as something like named capabilities.

They're intended to fill in the space around your apps; to do things that must be done but which aren't your core concern—things like running application logging & monitoring services, or installing pre-configured cluster management software.

Backed by tooling you already know (and love) & structured to fill the gaps you don't want to have to worry over, Zarf's components tie together common software sets and give you an easy, named way to get them into your clusters.

 

Mandatory components

Zarf's work necessitates that some components are "always on" (a.k.a. required & cannot be disabled). Those include:

Description
container-seed-registry Adds a container registry so Zarf can bootstrap itself into the cluster.
zarf-registry Adds a container registry service—docker registry—into the cluster.
zarf-agent Adds a mutating webhook —admission controller—into the cluster.

 

Additional components

In addition to those that are always installed, Zarf's optional components provide additional functionality and can be enabled as & when you need them.

These optional components are listed below along with the "magic strings" you pass to zarf init --components to pull them in:

--components Description
k3s Installs a lightweight Kubernetes Cluster on the local host—k3s—and configures it to start up on boot.
logging Adds a log monitoring stack—promtail / loki / graphana (a.k.a. PLG)—into the cluster.
git-server Adds a GitOps-compatible source control service—Gitea—into the cluster.

 

Composing Package Components

Existing components and packages within a zarf.yaml can be composed in new packages. This can be achieved by using the import field and providing a path the zarf.yaml you wish to compose. Checkout the composable-packages example.

components:
  - name: flux
    import:
     path: 'path/to/flux/package/directory/'

 

Further reading

For more detail—like which components are on/off by default—there's no better place to check than the source: zarf.yaml.