Skip to main content

Releasing a Controller

Each ACK service controller is released independently. A release consists of a Git tag, a container image, and a Helm chart.

What's in a Release

ArtifactLocation
Container imagepublic.ecr.aws/aws-controllers-k8s/$SERVICE-controller:$VERSION
Helm chartpublic.ecr.aws/aws-controllers-k8s/chart:$SERVICE-$VERSION
Git tagv$VERSION on the service controller repository

Versioning

ACK follows semantic versioning:

  • Patch (v1.4.1v1.4.2): Bug fixes, test-only changes
  • Minor (v1.4.2v1.5.0): New fields, new resources, functional changes
  • First release: v0.1.0

Release Steps

  1. Ensure your branch is up to date:
cd $SERVICE-controller
git checkout main && git pull upstream main
  1. Run the release build script:
cd ../code-generator
export RELEASE_VERSION=v0.1.0
./scripts/build-controller-release.sh $SERVICE
  1. Create a release branch and commit:
cd ../$SERVICE-controller
git checkout -b release-$RELEASE_VERSION
git add -A
git commit -m "Release artifacts for release $RELEASE_VERSION"
git push origin release-$RELEASE_VERSION
  1. Open a PR from your release branch to upstream main. Once merged, a Prow postsubmit job automatically builds and publishes the container image and Helm chart to the public ECR repositories.

Release Branch and Commit Convention

  • Branch name: release-v$VERSION (e.g., release-v0.1.0)
  • Commit message: Release artifacts for release v$VERSION
  • Single commit per release PR
Built with by AWS