title: Kubernetes Operator (Operator SDK, Kubebuilder VERSUS Kubernetes Client Libraries)
body: <p>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.</p>
  <p>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 <a href="https://kubernetes.io/docs/reference/using-api/client-libraries/#officially-supported-kubernetes-client-libraries" rel="noreferrer">Kubernetes.io</a>.</p>
  <p>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.</p>
  <p>OperatorSDK and Kubebuilder seems to be more than just libraries
  So here are my questions</p>
  <ol>
  <li>What are the differences between the likes of <strong>OperatorSDK, Kubebuilder</strong> AND <strong>Kubernetes Client libraries</strong> from <a href="https://kubernetes.io/docs/reference/using-api/client-libraries/#officially-supported-kubernetes-client-libraries" rel="noreferrer">Kubernetes.io</a></li>
  <li>Are the Kubernetes Client Libraries implementations of things like the OperatorSDK and Kubebuilder?</li>
  <li>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.</li>
  </ol>