Skip to main content
Version: v1alpha5

Tutorial

Overview

Holos is a configuration management tool for Kubernetes resources. It provides the building blocks needed for implementing the rendered manifests pattern. It gives the flexibility to manage a wide range of configurations, from large software delivery platforms spanning multiple clusters and regions to generating a single resource on your local device.

At a high level, Holos provides a few major components:

  • A Platform schema for specifying how components integrate together into a platform.
  • Component building blocks for Helm, Kustomize, and Kubernetes to unify configuration with CUE.
  • A BuildPlan orchestrating generators, transformers, and validators to produce manifest files.

Holos' role in your organization

Platform engineers run the holos render platform command locally and in CI to produce Kubernetes manifests which are committed to version control. GitOps tools like ArgoCD or Flux deploy the manifests produced by Holos.

Holos works well with your existing Helm charts, kustomize bases, and any other configuration data you currently store in version control.

Advantages of Holos

Safe

Holos uses CUE to provide strong typing and constraints to configuration data. Additionally, holos adds strong validation to verify the output produced by Helm and other tools.

Consistent

Holos offers a consistent way to incorporate a wide variety of tools into a well defined data pipeline. Configuration produced from CUE, Helm, and Kustomize are all handled with the same consistent process.

Flexible

Holos is designed to be flexible. Holos offers flexible building blocks for data generation, transformation, validation, and integration. Find the perfect fit for your team by assembling these building blocks to your unique needs.

Holos does not have an opinion on many common aspects of platform configuration. For example, environments and clusters are explicitly kept out of the core and instead are provided as flexible, user-customizable topics organized as a recipes.

Getting Help

If you get stuck, you can get help on Discord or GitHub discussions. Don't worry about asking "beginner" questions, configuration is often complex even for the most experienced among us. We all start somewhere and are happy to help.