Project: kube-green (Orchestration & Management / Scheduling & Orchestration)
File: README.md

][go-report-card] ][test-and-build] ][security-pipelines] ][coverage] ][website] ][adopters] <picture> <source media="(prefers-color-scheme: dark)" srcset="https://raw.githubusercontent.com/kube-green/kube-green/main/logo/logo-dark.svg"> <img alt="Dark kube-green logo" src="https://raw.githubusercontent.com/kube-green/kube-green/main/logo/logo.svg"> </picture> How many of your dev/preview pods stay on during weekends? Or at night? It's a waste of resources! And money! But fear not, kube-green is here to the rescue. kube-green is a simple k8s addon that automatically shuts down (some of) your resources when you don't need them. If you already use kube-green, add you as an ! These instructions will get you a copy of the project up and running on your local machine for development and testing purposes. See how to install the project on a live system in our . Make sure you have Go installed (). Version 1.19 or higher is required. To have kube-green running locally just clone this repository and install the dependencies running: ```golang go get ``` There are different types of tests in this repository. It is possible to run all the unit tests with ```sh make test ``` To run integration tests: ```sh make e2e-test ``` To deploy kube-green in live systems, follow the . To run kube-green for development purpose, you can use to deploy in a KinD cluster. It is possible to start a KinD cluster running `kind create cluster --name kube-green-development`. To deploy kube-green using ko, run: ```sh make local-run clusterName=kube-green-development ``` The use of this operator is very simple. Once installed on the cluster, configure the desired CRD to make it works. See the documentation about the configuration of the CRD. Pods running during working hours with Europe/Rome timezone, suspend CronJobs and exclude a deployment named `api-gateway`: ```yaml apiVersion: kube-green.com/v1alpha1 kind: SleepInfo metadata: name: working-hours spec: weekdays: "1-5" sleepAt: "20:00" wakeUpAt: "08:00" timeZone: "Europe/Rome" suspendCronJobs: true excludeRef: apiVersion: "apps/v1" kind: Deployment name: api-gateway ``` Pods sleep every night without restore: ```yaml apiVersion: kube-green.com/v1alpha1 kind: SleepInfo metadata: name: working-hours-no-wakeup spec: sleepAt: "20:00" timeZone: Europe/Rome weekdays: "*" ``` To see other examples, go to . Please read for details on our code of conduct, and the process for submitting pull requests to us. We use for versioning. For the versions available, see the . To upgrade the version: `make release version=v{{NEWVERSIONTOTAG}}` where `{{NEWVERSIONTOTAG}}` should be replaced with the next version to upgrade. N.B.: version should include `v` as first char. `git push --tags origin v{{NEWVERSIONTO_TAG}}` API reference is automatically generated with . To generate it automatically, are added in api versioned folder a file `doc.go` with the content of file `groupversioninfo.go` and a comment with `+genclient` in the `sleepinfotypes.go` file for the resource type. This project is licensed under the MIT License - see the file for details Special thanks to for the tech review. If you like or are using this project, please give it a star. Thanks! the list of adopters of kube-green. If you already use kube-green, add you as an !