Skip to content

Release Process

The operator image and Helm chart are versioned and released independently. They each have their own tag namespace:

ArtefactTag patternExample
Container imageoperator/vMAJOR.MINOR.PATCHoperator/v1.2.3
Helm chartchart/vMAJOR.MINOR.PATCHchart/v1.2.3

This means a chart bug-fix does not trigger a new image build, and an operator patch does not force a chart version bump.

Both artefacts follow Semantic Versioning:

BumpWhen
PATCHBug fixes, no behaviour changes
MINORNew backwards-compatible features
MAJORBreaking changes (CRD schema changes, API group changes)

The Helm chart carries an appVersion in Chart.yaml that records the minimum compatible operator version the chart targets. Chart version and appVersion evolve independently.

Triggered by pushing a tag matching operator/v*.*.*. Produces:

ArtefactLocation
Container imageghcr.io/danihengeveld/mc-operator:<version>
SBOM + SLSA provenanceAttached to image in GHCR
GitHub ReleaseUnder the operator/v* tag

Image tags produced for operator/v1.2.3:

TagPurpose
1.2.3Exact version — pin this in production
1.2Stable minor channel
1Stable major channel
sha-<short>Commit traceability

Triggered by pushing a tag matching chart/v*.*.*. Produces:

ArtefactLocation
OCI chartoci://ghcr.io/danihengeveld/charts/mc-operator:<version>
Chart tarball (.tgz)Attached to the GitHub Release
GitHub ReleaseUnder the chart/v* tag

See RELEASING.md in the repository root for the full step-by-step procedure, including:

  • Pre-release checklist
  • How to tag and push each artefact
  • Post-release verification commands
  • Rollback guidance

Quick reference:

Terminal window
# Operator image release
git tag -a operator/v1.2.3 -m "Operator release 1.2.3"
git push origin operator/v1.2.3
# Helm chart release
git tag -a chart/v1.2.3 -m "Helm chart release 1.2.3"
git push origin chart/v1.2.3

The release pipeline generates:

  • SBOM (Software Bill of Materials) attached as an OCI artifact
  • SLSA provenance via actions/attest-build-provenance

Verify attestations:

Terminal window
gh attestation verify \
oci://ghcr.io/danihengeveld/mc-operator:1.2.3 \
--repo danihengeveld/mc-operator

All user-visible changes are documented in CHANGELOG.md, following the Keep a Changelog format. Update the changelog before every release.