kube-operator-basic
Getting Started for dev
- Create project using init command
mkdir -p kube-operator-basic
kubebuilder init --domain sample-operator.dev --repo github.com/ragul28/kube-operator-basic
kubebuilder create api --group basic --version v1 --kind BasicVolume
- Update api types & genarate manifests
make generate
make manifests
- Update the controller reconcile logic & install crd to cluster
make install
kubectl apply -f config/samples/
make run
Running on the cluster
- Install Instances of Custom Resources:
kubectl apply -f config/samples/
- Build and push your image to the location specified by
IMG
:
make docker-build docker-push IMG=<some-registry>/kube-operator-basic:tag
- Deploy the controller to the cluster with the image specified by
IMG
:
make deploy IMG=<some-registry>/kube-operator-basic:tag
Uninstall CRDs
To delete the CRDs from the cluster:
make uninstall
Undeploy controller
UnDeploy the controller to the cluster:
make undeploy
How it works
This project aims to follow the Kubernetes Operator pattern
It uses Controllers
which provides a reconcile function responsible for synchronizing resources untile the desired state is reached on the cluster
Test It Out
- Install the CRDs into the cluster:
make install
- Run your controller (this will run in the foreground, so switch to a new terminal if you want to leave it running):
make run
NOTE: You can also run this in one step by running: make install run