gokubedownscaler

module
v1.2.1 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Mar 31, 2025 License: GPL-3.0

README

GoKubeDownscaler Logo

GitHub Release GitHub License Contributors Stars Slack Workspace

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.

Documentation and Guides

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

Installation is done via the Helm Chart. Information on how to install the Downscaler is on our website.

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. If you think that any other features are missing or you have an idea for a new feature, feel free to open an Issue.

Developing

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.

Cloning the Repository

git clone https://github.com/caas-team/GoKubeDownscaler.git
cd GoKubeDownscaler

Setting up Pre-Commit

brew install pre-commit
pre-commit install
brew install golangci-lint
brew install gofumpt

Testing the Downscaler

Running the Unit Tests
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. The downscaler will use the current-context in the kubeconfig.

go run -k=path/to/kubeconfig # ... additional configuration

Testing the Website

Installing Dependencies
npm install --prefix website
Running It Locally
npm run --prefix website start

after that the website is available on localhost:3000/GoKubeDownscaler

Directories

Path Synopsis
cmd
internal
pkg/scalable
nolint:dupl // necessary to handle different workload types separately
nolint:dupl // necessary to handle different workload types separately

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL