Kubebuilder - Operator
- Create project
kubebuilder init --domain component.cloudsteak.com --owner "CloudSteak" --repo github.com/cloudsteak/component-operator.git --license 'none'
- Create API
kubebuilder create api --kind NamespaceChecker --version v1alpha1 --group api
- Generate code containing DeepCopy, DeepCopyInto, and DeepCopyObject method implementations.
make generate
- Create manifests (CRD, RBAC and Controller)
make manifests
-
Develop your code
-
Install CRDs
make install
- Configure sample CRD
nano config/samples/api_v1alpha1_namespacechecker.yaml
apiVersion: api.component.cloudsteak.com/v1alpha1
kind: NamespaceChecker
metadata:
name: namespacechecker-sample
spec:
namespaces:
- default
configMapNames:
- configmap-01
configMapsNamespace: default
secretNames:
- secret-1
- secret-2
secretsNamespace: default
deploymentNamespace: default
- Create scaler
kubectl apply -f config/samples/api_v1alpha1_namespacechecker.yaml
- Run the controller
make run