KubeAid Release Process
This guide outlines the steps to update managed charts and publish a new release of KubeAid.
Prerequisites
The following tools are required locally:
bashgithelm(>= 3.8.0)yq(Go version)
The repository must have the github remote configured for pushing to GitHub.
1. Update Managed Helm Charts
The first step is to synchronize all managed Helm charts with their upstream sources. This script will update the charts and automatically switch you to a new branch for your Pull Request.
Option A: Standard (Linux/Native)
./bin/manage-helm-chart.sh --update-all
Example output:
Branch 'Helm_Update_20260119_MjA5NDkK' set up to track remote branch 'master' from 'origin'.
Switched to a new branch 'Helm_Update_20260119_MjA5NDkK'
Current KubeAid version: 23.0.0
Helm chart argo-cd is cached and on latest version 9.2.4...
Option B: Docker Environment (macOS)
The script requires Linux (GNU sed). For macOS users, use the provided Docker workflow.
-
Start the Builder Container from the root of the repo:
docker run --rm -it -v $(pwd):/build -w /build ubuntu:24.04 bash -
Inside the container, install dependencies and run the update:
apt-get update && apt-get install -y git curlcurl -L https://github.com/mikefarah/yq/releases/latest/download/yq_linux_amd64 -o /usr/bin/yq && chmod +x /usr/bin/yqcurl -fsSL -o get_helm.sh https://raw.githubusercontent.com/helm/helm/main/scripts/get-helm-4chmod 700 get_helm.sh && ./get_helm.sh./bin/manage-helm-chart.sh --update-all
Script Options
| Option | Description | Default |
|---|---|---|
--add-helm-chart NAME REPO_URL VERSION | Add a new Helm chart | Requires all 3 args |
--update-helm-chart CHART | Update a specific Helm chart | Requires chart name |
--update-all | Update all Helm charts | false |
--skip-charts CHARTS | Comma-separated list of charts to skip | none |
--chart-version VERSION | Set chart version to update to | latest |
--actions | Run in CI/CD mode (GitHub/Gitea Actions) | false |
-h, --help | Show help message |
Examples
Update a specific chart:
./bin/manage-helm-chart.sh --update-helm-chart traefik
Update a specific chart to a specific version:
./bin/manage-helm-chart.sh --update-helm-chart traefik --chart-version 25.0.0
Update all charts but skip some:
./bin/manage-helm-chart.sh --update-all --skip-charts 'aws-efs-csi-driver,capi-cluster,grafana-operator,strimzi-kafka-operator'
Add a new chart:
./bin/manage-helm-chart.sh --add-helm-chart my-chart https://example.com/charts 1.2.3
2. Merge the Pull Request
Review and merge the Helm chart update PR into master.
3. Bump the VERSION File
Update the VERSION file at the root of the repo with the new release version before running the release script.
The release script reads this file to determine the new tag and will fail if the tag already exists.
4. Publish a New Release
Once the PR is merged and VERSION is updated, generate the release notes and tag the release:
./bin/release.sh
Example output:
Generating release notes since 22.0.0..23.0.0
Release notes generated: CHANGELOG.md
[master 22bed5336] chore(release): update CHANGELOG and Release Notes for Kubeaid 23.0.0
2 files changed, 178 insertions(+), 115 deletions(-)
rewrite .release-notes.md (97%)
The script will:
- Verify you are on the
masterbranch - Pull the latest changes from
origin master - Categorize all commits since the last tag (features, bug fixes, chart updates, etc.)
- Generate
CHANGELOG.mdand.release-notes.md - Commit the changelog and release notes
- Create an annotated git tag from the
VERSIONfile - Push the commit and tag to both Gitea (
origin) and GitHub (github)
After the tag is pushed, GoReleaser CI workflows run automatically on both Gitea and GitHub to
publish the release using the generated .release-notes.md.