Steps to release a new version of the OpenTelemetry Operator:
- Change the
versions.txt
, so that it lists the target version of the OpenTelemetry Collector (operand), and the desired version for the target allocator and the operator. Themajor.minor
should typically match, with the patch portion being possibly different. - Change the
autoinstrumentation-*
versions inversions.txt
as per the latest supported versions inauto-instrumentation/
. - Run
make bundle USER=open-telemetry VERSION=0.38.0
, using the version that will be released. - Change the compatibility matrix in the readme file, using the OpenTelemetry Operator version to be released and the current latest Kubernetes version as the latest supported version, with N-2 being the lower bound. Make sure that the CI is currently testing the latest Kubernetes version!
- Add the changes to the changelog
- Check the OpenTelemetry Collector's changelog and ensure migration steps are present in
pkg/collector/upgrade
- Once the changes above are merged and available in
main
, tag it with the desired version, prefixed withv
:v0.38.0
- The GitHub Workflow will take it from here, creating a GitHub release with the generated artifacts (manifests) and publishing the images
- After the release, generate a new OLM bundle (
make bundle
) and create two PRs against theCommunity Operators repositories
:- one for the
community-operators-prod
, used by OLM on Kubernetes. Example:operator-framework/community-operators-prod
- one for the
community-operators
directory, used by Operatorhub.io. Example:operator-framework/community-operators
- one for the
We now use the chloggen to generate the changelog, simply run the following to generate the Changelog:
make chlog-update
This will delete all entries (other than the template) in the .chloggen
directory and create a populated Changelog.md entry. Make sure that the PR you are generating for the release has the [chore]
prefix, otherwise CI will not pass.