A horizontal autoscaler for Kubernetes workloads. This is a golang port and successor of the popular (py-)kube-downscaler with improvements and quality of life changes.
The Documentation and Guides can be found on our website.
An Offline copy of the documentation can be found in website/content/docs
and website/content/guides
.
In there are Markdown files which can be viewed in any text editor or inside of a Markdown Viewer.
Installation is done via the Helm Chart. Information on how to install the Downscaler is on our website.
Currently the GoKubeDownscaler is still a WIP.
This means that there still might be some features missing from the py-kube-downscaler.
You can find a list of the known-missing features under the missing feature
label.
If you think that any other features are missing or you have an idea for a new feature, feel free to open an Issue.
This section covers the basics of developing on this repo, a more detailed guide can be found on our website.
Please read the contribution manifest.
git clone https://github.com/caas-team/GoKubeDownscaler.git
cd GoKubeDownscaler
brew install pre-commit
pre-commit install
brew install golangci-lint
brew install gofumpt
go test -v --cover ./...
The downscaler can be run locally by specifying a kubeconfig to use. The kubeconfig should have at least the permissions as the Helm Charts role.yaml. The downscaler will use the current-context in the kubeconfig.
go run -k=path/to/kubeconfig # ... additional configuration
npm install --prefix website
npm run --prefix website start
after that the website is available on localhost:3000/GoKubeDownscaler