An k8s operator that will scale up/down your deployments based on a given time.
This operator will scale up/down your deployments based on the time defined in the CRs. You can pass the following properties for in the CR
start: 7
end: 13
deployments:
- name: abc
namespace: default
replicas: 2
Parameter | Description |
---|---|
start |
this is start time duration |
end |
this is end time duration |
replicas |
no of replicas between start and end time |
deployments.name |
name of the deployment to scale |
deployments.namespace |
namespace over which deployment is present |
You’ll need a Kubernetes cluster to run against. You can use KIND to get a local cluster for testing, or run against a remote cluster.
Note: Your controller will automatically use the current context in your kubeconfig file (i.e. whatever cluster kubectl cluster-info
shows).
- 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>/scaler-operator:tag
- Deploy the controller to the cluster with the image specified by
IMG
:
make deploy IMG=<some-registry>/scaler-operator:tag
To delete the CRDs from the cluster:
make uninstall
UnDeploy the controller to the cluster:
make undeploy
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
- 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
If you are editing the API definitions, generate the manifests such as CRs or CRDs using:
make manifests