Java Implementation of https://github.com/hrishin/podset-operator using Fabric8 Kubernetes Client
This project is a demo project for blog for writing a simple Kubernetes operation in Java using Fabric8 Kubernetes Client. You can find full blog here: Writing a simple Kubernetes Operation in Java
This is a demo operator which implements a simple operator for a custom resource called PodSet which is somewhat equal to ReplicaSet. Here is what this resource looks like:
apiVersion: demo.fabric8.io/v1alpha1
kind: PodSet
metadata:
name: example-podset
spec:
replicas: 5
Each PodSet object would have 'x' number of replicas, so this operator just tries to maintain x number of replicas checking whether that number of pods are running in cluster or not.
mvn clean install
mvn exec:java -Dexec.mainClass=io.fabric8.podset.operator.PodSetOperatorMain
Make Sure that PodSet Custom Resource Definition is already applied onto the cluster. If not, just apply it using this command:
kubectl apply -f src/main/resources/crd.yaml
Once everything is set, you can see that operator creating pods in your cluster for PodSet resource:
kubectl apply -f src/main/resources/crd.yaml
ServiceAccount
that would be used by the Pod
, it's default
in our case. Otherwise you might get 403 from Kubernetes API server.kubectl create clusterrolebinding default-pod --clusterrole cluster-admin --serviceaccount=default:default
# In case of some other namespace:
kubectl create clusterrolebinding default-pod --clusterrole cluster-admin --serviceaccount=<namespace>:default
mvn k8s:build
mvn k8s:resource
mvn k8s:apply
Once generated resources are applied, try creating one of PodSet
objects in src/main/resources
kubectl apply -f src/main/resources/cr.yaml