Skip to content

Kubernetes Operators

Introduction :

Process that watches the k8s API for events and take action such as create/update/delete k8s components.

You can call it a kind of workflow management;

Framework to use :

Operator-sdk recommended

Build on top of Kubebuilder

Best practices :

Evolve carefully the APIs

Perform validation

Make sure to recover from any error

Custom ressource definitions :

               CR is the state of your machine

               Use different tools as OpenAPIv3 schemas and webhooks

               Separate code for create,update and delete

               Use K8s events (nice integration with ArgoCD)

Testing

               Move code to libraries to test outside the operator

               Attach a debugger to the tests

               Unit test your functions

               Run integration tests against services only when needed

               Recommend API mocking

               Use minikube,k3d or kind only when necessary for integration tests

Monitoring

               Use kube-state-metrics (easy to add/extend metrics) visible in Promotheus/Grafana

               Good to provide insights to your users

Credit to Squer Solutions, Riccardo Capraro