|
2 | 2 |
|
3 | 3 | Steps to release a new version of the OpenTelemetry Operator:
|
4 | 4 |
|
5 |
| -1. 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. The `major.minor` should typically match, with the patch portion being possibly different. |
6 |
| -2. Change the `autoinstrumentation-*` versions in `versions.txt` as per the latest supported versions in `autoinstrumentation/`. |
7 |
| - - :warning: DO NOT BUMP JAVA PAST `1.32.X` AND DO NOT BUMP .NET PAST `1.2.0`. :warning: Upgrades past these versions will introduce breaking HTTP semantic convention changes. |
| 5 | +1. Set the version you're releasing as an environment variable for convenience: `export VERSION=0.n+1.0` |
| 6 | +2. Update `versions.txt` |
| 7 | + - Operator, target allocator and opamp-bridge should be `$VERSION`. |
| 8 | + - OpenTelemetry Collector should be the latest collector version. The `major.minor` should typically match, with the patch portion being possibly different. |
| 9 | + - The `autoinstrumentation-*` versions should match the latest supported versions in `autoinstrumentation/`. |
| 10 | +> [!WARNING] |
| 11 | +> DO NOT BUMP JAVA PAST `1.32.X` AND DO NOT BUMP .NET PAST `1.2.0`. Upgrades past these versions will introduce breaking HTTP semantic convention changes. |
8 | 12 | 3. Check if the compatible OpenShift versions are updated in the `hack/add-openshift-annotations.sh` script.
|
9 |
| -4. Run `make bundle DOCKER_USER=open-telemetry VERSION=0.38.0`, using the version that will be released. |
10 |
| -5. Change the compatibility matrix in the [readme](./README.md) file, using the OpenTelemetry Operator version to be released and the current latest Kubernetes version as the latest supported version. Remove the oldest entry. |
11 |
| -6. Add the changes to the changelog. Manually add versions of all operator components. |
12 |
| -7. Check the OpenTelemetry Collector's changelog and ensure migration steps are present in `pkg/collector/upgrade` |
13 |
| -8. Once the changes above are merged and available in `main`, tag it with the desired version, prefixed with `v`: `v0.38.0` |
14 |
| -9. The GitHub Workflow will take it from here, creating a GitHub release with the generated artifacts (manifests) and publishing the images |
15 |
| -10. The GitHub Workflow, submits two pull requests to the Operator hub repositories. Make sure the pull requests are approved and merged. |
16 |
| - 1. `community-operators-prod` is used by OLM on OpenShift. Example: [`operator-framework/community-operators-prod`](https://github.com/redhat-openshift-ecosystem/community-operators-prod/pull/494) |
17 |
| - 1. `community-operators` is used by Operatorhub.io. Example: [`operator-framework/community-operators`](https://github.com/k8s-operatorhub/community-operators/pull/461) |
18 |
| -11. Update release schedule table, by moving the current release manager to the end of the table with updated release version. |
| 13 | +3. Update the bundle by running `make bundle VERSION=$VERSION`. |
| 14 | +3. Change the compatibility matrix in the [readme](./README.md) file, using the OpenTelemetry Operator version to be released and the current latest Kubernetes version as the latest supported version. Remove the oldest entry. |
| 15 | +3. Update release schedule table, by moving the current release manager to the end of the table with updated release version. |
| 16 | +3. Add the changes to the changelog by running `make chlog-update VERSION=$VERSION`. |
| 17 | +3. Check the OpenTelemetry Collector's changelog and ensure migration steps are present in `pkg/collector/upgrade` |
| 18 | +3. Once the changes above are merged and available in `main`, one of the maintainers will tag the release. |
| 19 | +3. The GitHub Workflow will take it from here, creating a GitHub release with the generated artifacts (manifests) and publishing the images. |
| 20 | +3. Update the operator version in the Helm Chart, as per the [release guide](https://github.com/open-telemetry/opentelemetry-helm-charts/blob/main/charts/opentelemetry-operator/CONTRIBUTING.md) |
| 21 | +3. The GitHub Workflow, submits two pull requests to the Operator hub repositories. Make sure the pull requests are approved and merged. |
| 22 | + - `community-operators-prod` is used by OLM on OpenShift. Example: [`operator-framework/community-operators-prod`](https://github.com/redhat-openshift-ecosystem/community-operators-prod/pull/494) |
| 23 | + - `community-operators` is used by Operatorhub.io. Example: [`operator-framework/community-operators`](https://github.com/k8s-operatorhub/community-operators/pull/461) |
19 | 24 |
|
20 | 25 | ## Generating the changelog
|
21 | 26 |
|
22 | 27 | We now use the chloggen to generate the changelog, simply run the following to generate the Changelog:
|
23 | 28 |
|
24 | 29 | ```bash
|
25 |
| -make chlog-update |
| 30 | +make chlog-update VERSION=$VERSION |
26 | 31 | ```
|
27 | 32 |
|
28 | 33 | 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.
|
|
0 commit comments