Kubebuilder and Operator SDK have long been seen as competitors in the field of Operator tooling, when in reality there was collaboration going on for some time already. Now, with the Operator Framework being incubated into CNCF, we are coming together on a single solution that creates Golang Operators (Kubebuilder) while the SDK provides a holistic experience in creating, testing, bundling and releasing Operators. https://www.openshift.com/blog/operator-sdk-reaches-v1.0
sh build_sample.sh
sh open_sample.sh- api/v1/guestbook_types.go:32
BookName string `json:"book_name,omitempty"`
- api/v1/guestbook_types.go:38
Status string `json:"Status"`
- controllers/guestbook_controller.go:45
obj := &appv1.Guestbook{} if err := r.Get(ctx, req.NamespacedName, obj); err != nil { log.Println(err, "Unable to fetch object") } else { log.Println("Greeting from Kubebuilder to", obj.Spec.BookName) } obj.Status.Status = "Running" if err := r.Status().Update(ctx, obj); err != nil { log.Println(err, "unable to update status") }
- config/samples/app_v1_guestbook.yaml
apiVersion: app.feuyeux.io/v1 kind: Guestbook metadata: name: guestbook-sample spec: book_name: kubebuilder-operator-sample
sh rebuild_sample.shsh test_sample.shecho "Uninstall CRDs"
make uninstall