This document provides instructions for releasing a new version of the DocumentDB Kubernetes Operator.
For the complete release strategy, support policy, and versioning scheme, see docs/designs/release-strategy.md.
- Maintainer access to the repository
- GitHub CLI (
gh) installed and authenticated (for PR creation)
| Type | Command | Example |
|---|---|---|
| Patch Release | @release-agent cut a release |
0.1.3 → 0.1.4 |
| Minor Release | @release-agent cut a minor release |
0.1.3 → 0.2.0 |
| Major Release | @release-agent cut a major release |
0.1.3 → 1.0.0 |
| Specific Version | @release-agent release X.Y.Z |
release 1.0.0 |
This project uses a release agent to automate release preparation. The agent handles:
- Reading current version from
operator/documentdb-helm-chart/Chart.yaml - Bumping version numbers
- Generating changelog entries from git commits
- Creating the release PR
@release-agent cut a release
Or for specific version types:
@release-agent cut a minor release
@release-agent release 0.2.0
The agent will update:
| File | Updates |
|---|---|
operator/documentdb-helm-chart/Chart.yaml |
version and appVersion |
CHANGELOG.md |
New version entry at top |
Note: The agent does NOT modify
values.yaml- the CI workflow handles image tag updates during release.
After reviewing the changes:
@release-agent create PR
This creates a branch release/v{version} and opens a PR.
After the PR is approved and merged:
- Run "RELEASE - Build Operator Candidate Images" (
build_operator_images.yml) with the operator version - Run "RELEASE - Promote Operator Images and Publish Helm Chart" (
release_operator.yml) to promote and publish
Database images follow an independent release cycle from the operator:
- Run "RELEASE - Build DocumentDB Candidate Images" (
build_documentdb_images.yml) with the released DocumentDBversion - Run "RELEASE - Promote DocumentDB Images" (
release_documentdb_images.yml) to promote and auto-create a PR that bumps default image versions across the codebase
Note: The deprecated combined workflows (
build_images.yml,release_images.yml) are still available but will be removed in a future release.
If the release agent is unavailable, follow these manual steps:
Edit operator/documentdb-helm-chart/Chart.yaml:
version: X.Y.Z
appVersion: "X.Y.Z"Add entry to top of CHANGELOG.md:
## [X.Y.Z] - YYYY-MM-DD
### Major Features
- Feature descriptions
### Bug Fixes
- Fix descriptions
### Enhancements & Fixes
- Other changesgit checkout -b release/vX.Y.Z
git add operator/documentdb-helm-chart/Chart.yaml CHANGELOG.md
git commit -m "chore: prepare release X.Y.Z"
git push origin release/vX.Y.Z
gh pr create --title "chore: release vX.Y.Z" --base mainAfter merge, trigger the release workflows as described above.
For security vulnerabilities:
- Do not disclose details publicly until fix is released
- Create fix on a private branch
- Follow release process
- Publish security advisory on GitHub after release
- Request CVE if applicable
If a release has critical issues:
- Immediately start work on a patch release
- Consider yanking problematic container images
- Update GitHub release to mark as problematic
- Communicate in GitHub Discussions
If the agent reports version validation errors:
- Ensure new version is greater than current version
- Use semantic versioning format:
X.Y.Z
cd operator/src
go mod tidy
make manifests generatecd operator/documentdb-helm-chart
helm lint .
helm template . --debug- Release Agent - Agent configuration
- Release Strategy - Complete release policy
- CHANGELOG.md - Version history