Skip to content

Contributing

KubeBuddy is now maintained as a Go-first project.

The main contribution paths are:

  • native runtime code in Go
  • YAML check definitions under checks/
  • docs and release automation
  • PowerShell wrapper compatibility where needed

Development Setup

Required tools:

  • Go matching the version in go.mod
  • kubectl
  • Docker for container validation

Optional tools:

  • PowerShell 7 for wrapper validation
  • Azure CLI for local AKS testing
  • GitHub CLI for release and registry workflows

Main Repo Areas

Basic Validation

Run:

go test ./...

If you changed the wrapper:

Invoke-Pester ./Tests/Invoke-KubeBuddy.Tests.ps1

If you changed report rendering:

go run ./cmd/kubebuddy run --html-report --yes --output-path ./reports

If you changed the container:

docker build -t kubebuddy-release-smoke .

Writing Checks

Use the native check model:

  • declarative YAML where possible
  • Prometheus blocks for metric-driven checks
  • native Go handlers for complex logic

Do not add new PowerShell Script: checks.

For the current format, see Creating Checks.

Pull Requests

Good PRs do these things:

  • stay focused
  • explain what changed and why
  • include validation steps
  • update docs when the user-facing behavior changes
  • update the changelog when the change is release-relevant

Release Work

If you touch packaging or distribution, also review:

Code of Conduct

Please follow the Code of Conduct.