Release Process¶
KubeBuddy now ships as a Go-first release:
- native
kubebuddybinaries for macOS and Linux - native
kubebuddybinaries for macOS, Linux, and Windows - a hardened container image
- a backwards-compatible PowerShell Gallery wrapper that bundles and forwards to the native binary
Release Outputs¶
Each tagged release should publish:
kubebuddy_<version>_darwin_amd64.tar.gzkubebuddy_<version>_darwin_arm64.tar.gzkubebuddy_<version>_linux_amd64.tar.gzkubebuddy_<version>_linux_arm64.tar.gzkubebuddy_<version>_windows_amd64.zipkubebuddy_<version>_windows_arm64.zipkubebuddy-psgallery-v<version>.tar.gzchecksums.txt
The PowerShell Gallery package remains a wrapper surface, but it now bundles the native binaries for supported platforms so Invoke-KubeBuddy works immediately after install.
Build Artifacts Locally¶
From the repo root:
./scripts/build-release-artifacts.sh v0.0.4
That writes release artifacts to ./dist.
Release Steps¶
- Update
CHANGELOG.md. - Tag the release:
git tag v0.0.4
git push origin v0.0.4
- GitHub Actions should then:
- build native release archives
- publish the GitHub release assets
- update the Homebrew tap formula
- publish the PowerShell Gallery wrapper module
- build and push the container image
If you trigger the release workflows manually, provide the full tag such as v0.0.4 in the workflow input.
Pre-Release Validation¶
Before tagging, validate:
go test ./...
docker build -t kubebuddy-release-smoke .
Recommended smoke tests:
- native binary:
./kubebuddy version
./kubebuddy run --html-report --yes --output-path ./reports
- PowerShell wrapper:
Import-Module ./KubeBuddy.psm1 -Force
Invoke-KubeBuddy -HtmlReport -yes -OutputPath ./reports
- container image:
docker run --rm \
-e KUBECONFIG=/app/.kube/config \
-e HTML_REPORT=true \
-v $HOME/.kube/config:/tmp/kubeconfig-original:ro \
-v $PWD/reports:/app/Reports \
kubebuddy-release-smoke
Container Notes¶
The runtime image is Go-native and hardened. It keeps:
kubebuddykubectl
It no longer depends on the PowerShell runtime.
For AKS and Azure-authenticated Prometheus in containers, prefer service principal credentials:
AZURE_CLIENT_IDAZURE_CLIENT_SECRETAZURE_TENANT_ID
PowerShell Gallery Notes¶
Invoke-KubeBuddy is still the public command, but it now wraps the native CLI.
Recommended PowerShell usage:
Install-Module KubeBuddy -Scope CurrentUser
Invoke-KubeBuddy -HtmlReport -yes
Use KUBEBUDDY_BINARY only if you need to override the bundled binary with a specific path.