Light-weighted Kubernetes controller-runtime Framework with Minimal Dependencies
Well, there are quite a few controller/operator frameworks out there, such as kubebuilder, operator-sdk, controller-runtime. But they are not quite handy.
First of all, building a scaffold project may not be what we really need. Most of the time, we are not trying to build a project from scratch, but rather adding new controllers on an existing project. Moreover, the structure of the scaffold project does not suit all. It is not easy to customize the scaffolds according to our own preferences.
Secondly, backwards compatibility. Most frameworks DO NOT guarantee any particular compatibility matrix between kubernetes library dependencies (client-go, apimachinery, etc). This is painful when we want to pin Kubernetes library dependencies to any specific lower versions. It has always been a headache to upgrade/downgrade the versions of frameworks and Kubernetes library dependencies.
Last but not least, we DO want a light-weighted framework with minimal dependencies.
That's why I build yacht, which brings pleasure user experiences on writing Kubernetes controllers. It is built with minimal dependencies, which makes it easier to downgrade/upgrade module versions.
- Add
github.com/dixudx/yacht
to yourgo.mod
file. - Follow yacht examples and learn how to use.