--- slug: overview title: Overview description: Learn how Holos integrates software into a holistic platform. sidebar_position: 10 --- import RenderingOverview from '@site/src/diagrams/rendering-overview.mdx'; # 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. {/* truncate */} 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. {/* TODO: Replace this with the Advantages diagram we talked about. */} ## 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. [rendered manifests pattern]: https://akuity.io/blog/the-rendered-manifests-pattern [CUE]: https://cuelang.org/ [Discord]: https://discord.gg/JgDVbNpye7 [GitHub discussions]: https://github.com/holos-run/holos/discussions [Why CUE for Configuration]: https://holos.run/blog/why-cue-for-configuration/ [topics]: ../topics.mdx