kapp-controller provides a Kubernetes native continuous delivery and package management experience through custom resource definitions. These new resources for continuous delivery and package management help users author software packages and consume packages to ease the process of sharing, deploying, and managing software on Kubernetes.
Given that software configurations for Kubernetes software can be specified in various forms:
- plain YAML configurations
- Helm charts
- ytt templates
- jsonnet templates
and found in various locations:
- Git repository
- Archive over HTTP
- Helm repository
and written/provided by:
- in-house development teams
- vendors offering COTS products
kapp-controller allows users to encapsulate, customize, install, and update such software in a consistent and manageable manner.
Another motivation for kapp-controller was to make a small and single purpose system (as opposed to a general CD system); hence, it’s lightweight, easy-to-understand and easy-to-debug. It builds on small composable tools to achieve its goal and therefore is easy to think about.
Finally, for the fans of GitOps, kapp-controller turns kapp into your continuous cluster reconciler.