I am sorry if this question has been answered but after trying many different ways of googling for an answer, I have failed to get a definitive explanation so I am trying to seek clarifications here.
I am familiar with the operator/controller pattern in the context of Kubernetes and am trying to build a custom nodejs controller that handles my own custom-defined resource (CRD) using one of the nodejs Kubernetes Client libraries from Kubernetes.io.
While researching online, I came across OperatorSDK and Kubebuilder which seems to be tools that can bootstrap operators/controllers, providing the many functionalities to interface with the K8s Api Server much like the Kubernetes Client Libraries.
OperatorSDK and Kubebuilder seems to be more than just libraries So here are my questions
- What are the differences between the likes of OperatorSDK, Kubebuilder AND Kubernetes Client libraries from Kubernetes.io
- Are the Kubernetes Client Libraries implementations of things like the OperatorSDK and Kubebuilder?
- Do I need to use the OperatorSDK or Kubebuilder to implement my own controller because, as far as I can tell, the Kubernetes client library seems to suffice.