The projects-operator is currently built using kubebuilder and deployed via Helm, with the corresponding helm chart living at /helm/projects-operator.
One problem with this approach is that kubebuilder does not currently have native support for templating out helm config. It currently only knows how to generate kustomize config.
This is a problem because it is then a manual (and error-prone) task to copy-and-edit the kustomize-generated config into helm-formatted config whenever we make changes to the projects-operator.
We have made a few attempts in the past to make this better, for example using the /scripts/helmify-yaml script, and custom make tasks, however it's still not intuitive and it requires us to keep thing up to date with newer versions of kubebuilder. Also this is only a partial solution as it only deals with rbac.
Perhaps we could improve this?
One idea @gmrodgers and I have been talking about is to make use of kubebuilder plugins (NB: currently experimental, design doc here).
It's not clear to us exactly if/how this would work, but based on comments from the operator-sdk team it seems like this should be possible.
Perhaps we should spend some time investigating if there is a helm plugin for kubebuilder in the works, and if not, should contribute one and then use it here?
@teddyking and @gmrodgers
The projects-operator is currently built using kubebuilder and deployed via Helm, with the corresponding helm chart living at /helm/projects-operator.
One problem with this approach is that kubebuilder does not currently have native support for templating out helm config. It currently only knows how to generate kustomize config.
This is a problem because it is then a manual (and error-prone) task to copy-and-edit the kustomize-generated config into helm-formatted config whenever we make changes to the projects-operator.
We have made a few attempts in the past to make this better, for example using the /scripts/helmify-yaml script, and custom make tasks, however it's still not intuitive and it requires us to keep thing up to date with newer versions of kubebuilder. Also this is only a partial solution as it only deals with rbac.
Perhaps we could improve this?
One idea @gmrodgers and I have been talking about is to make use of kubebuilder plugins (NB: currently experimental, design doc here).
It's not clear to us exactly if/how this would work, but based on comments from the operator-sdk team it seems like this should be possible.
Perhaps we should spend some time investigating if there is a helm plugin for kubebuilder in the works, and if not, should contribute one and then use it here?
@teddyking and @gmrodgers