We propose to use operators for managing cluster addons. Each addon will have
its own CRD, and users will be able to perform limited tailoring of the addon
(install/don’t install, choose version, primary feature selection) by modifying
the instance of the CRD. The operator encodes any special logic (e.g. dependencies) needed to
install the addon.
By creating a CRD per addon, we are able make use of the kubernetes API
machinery for those per-addon options.
We will create tooling to make it easy to build addon operators that follow the
best practices we identify as part of this work. For example, we expect that
most addons will be declarative, and likely be specified as part of a "cluster
bundle", so we will make it easy to build basic addon operators that follow
We hope that components will choose to maintain their own operators, encoding
their knowledge of how best to operate their addon.
Instructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository.