Skip to content
/ yacht Public

Most Light-weighted Kubernetes controller-runtime Framework

License

Notifications You must be signed in to change notification settings

dixudx/yacht

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

62 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Yacht

GoPkg Widget License GoVersion Go Report Card build Version codecov


Light-weighted Kubernetes controller-runtime Framework with Minimal Dependencies


Why Building Yacht

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.

To Start Using Yacht

  1. Add github.com/dixudx/yacht to your go.mod file.
  2. Follow yacht examples and learn how to use.