Nearly every project that is built for Kubernetes will eventually need to
support passing in additional configurations into the controller. These could
be to enable better logging, turn on/off specific feature gates, set the sync
period, or a myriad of other controls. Previously this was commonly done using
flags that your
main.go would parse to make them accessible within your
program. While this works it’s not a future forward design and the Kubernetes
community has been migrating the core components away from this and toward
using versioned config files, referred to as “component configs”.
The rest of this tutorial will show you how to configure your kubebuilder project with the a component config type then moves on to implementing a custom type so that you can extend this capability.