https://github.com/caas-team/GoKubeDownscaler
A horizontal autoscaler for Kubernetes workloads
https://github.com/caas-team/GoKubeDownscaler
autoscaler downscaling go golang kube-downscaler kubernetes scaling
Last synced: 6 months ago
JSON representation
A horizontal autoscaler for Kubernetes workloads
- Host: GitHub
- URL: https://github.com/caas-team/GoKubeDownscaler
- Owner: caas-team
- License: gpl-3.0
- Created: 2024-07-24T06:57:28.000Z (about 1 year ago)
- Default Branch: main
- Last Pushed: 2025-03-31T05:05:05.000Z (6 months ago)
- Last Synced: 2025-03-31T06:20:14.490Z (6 months ago)
- Topics: autoscaler, downscaling, go, golang, kube-downscaler, kubernetes, scaling
- Language: Go
- Homepage: https://caas-team.github.io/GoKubeDownscaler/
- Size: 953 KB
- Stars: 19
- Watchers: 4
- Forks: 5
- Open Issues: 22
-
Metadata Files:
- Readme: README.md
- Contributing: CONTRIBUTING.md
- License: LICENSE
- Codeowners: CODEOWNERS
Awesome Lists containing this project
- awesome-starts - caas-team/GoKubeDownscaler - A horizontal autoscaler for Kubernetes workloads (kubernetes)
README

A horizontal autoscaler for Kubernetes workloads.
This is a golang port and successor of the popular [(py-)kube-downscaler](https://github.com/caas-team/py-kube-downscaler)
with improvements and quality of life changes.## Documentation and Guides
The Documentation and Guides can be found on [our website](https://caas-team.github.io/GoKubeDownscaler).
An Offline copy of the documentation can be found in [`website/content/docs`](./website/content/docs) and [`website/content/guides`](./website/content/guides).
In there are Markdown files which can be viewed in any text editor or inside of a Markdown Viewer.## Installation
Installation is done via the [Helm Chart](./deployments/chart/).
Information on how to install the Downscaler is on [our website](https://caas-team.github.io/GoKubeDownscaler/guides/getting-started/installation).### Missing Features
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](/../../labels/missing%20feature).
If you think that any other features are missing or you have an idea for a new feature, feel free to open an [Issue](/../../issues/).## Developing
This section covers the basics of developing on this repo, a more detailed guide can be found on [our website](https://caas-team.github.io/GoKubeDownscaler/guides/developing).
Please read the [contribution manifest](./CONTRIBUTING.md).
### Cloning the Repository
```bash
git clone https://github.com/caas-team/GoKubeDownscaler.git
cd GoKubeDownscaler
```### Setting up Pre-Commit
```bash
brew install pre-commit
pre-commit install
brew install golangci-lint
brew install gofumpt
```### Testing the Downscaler
#### Running the Unit Tests
```bash
go test -v --cover ./...
```#### Running the Downscaler Locally
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](./deployments/chart/templates/role.yaml).
The downscaler will use the current-context in the kubeconfig.```bash
go run -k=path/to/kubeconfig # ... additional configuration
```### Testing the Website
#### Installing Dependencies
```bash
npm install --prefix website
```#### Running It Locally
```bash
npm run --prefix website start
```after that the website is available on `localhost:3000/GoKubeDownscaler`