A system to manage additional components for Kubernetes cluster in a simple, consistent and automated way.
Addon-operator combines Helm charts with hooks and values storage to transform charts into smart modules that configure themselves and respond to changes in the cluster. It is a sister project for shell-operator and is actively used in Deckhouse Kubernetes Platform to implement its modules.
Additionally, addon-operator provides:
helm historywould output only releases with changes;
Hooks are triggered by Kubernetes events and in response to other stimuli.
A hook is an executable file that can make changes to Kubernetes and set values of Helm (they are stored in the memory of addon-operator) during execution.
Hooks are a part of the module. Also, there is a Helm chart in the module. If the hook makes changes to values, then addon-operator would upgrade the release of the Helm chart.
There can be many modules.
In addition to modules, addon-operator supports global hooks and global values. They have a storage of values. Global hooks are triggered by events and when active they can:
If the global hook changes values in the global storage, then addon-operator triggers an upgrade of releases of all Helm charts.
You may use a prepared image flant/addon-operator to install addon-operator in a cluster. The image comprises a binary
addon-operatorfile as well as several required tools:
The installation incorporates the image building process with files of modules and hooks, applying the necessary RBAC rights and deploying the image in the cluster.
To experiment with modules, hooks, and values we've prepared some examples.
Sharing your examples of using addon-operator is much appreciated. Please, use the relevant Discussions section for that.
Please feel free to reach developers/maintainers and users via GitHub Discussions for any questions regarding addon-operator.
You're also welcome to follow @flant_com to stay informed about all our Open Source initiatives.
Apache License 2.0, see LICENSE.