diff --git a/.chloggen/2603-part-one.yaml b/.chloggen/2603-part-one.yaml deleted file mode 100755 index 1ed85a6a45..0000000000 --- a/.chloggen/2603-part-one.yaml +++ /dev/null @@ -1,16 +0,0 @@ -# One of 'breaking', 'deprecation', 'new_component', 'enhancement', 'bug_fix' -change_type: enhancement - -# The name of the component, or a single word describing the area of concern, (e.g. collector, target allocator, auto-instrumentation, opamp, github action) -component: collector - -# A brief description of the change. Surround your text with quotes ("") if it needs to start with a backtick (`). -note: Changes metric port logic to use intermediary struct. - -# One or more tracking issues related to the change -issues: [2603] - -# (Optional) One or more lines of additional information to render under the primary note. -# These lines will be padded with 2 spaces and then inserted directly into the document. -# Use pipe (|) for multiline entries. -subtext: diff --git a/.chloggen/add-service-instance-id.yaml b/.chloggen/add-service-instance-id.yaml deleted file mode 100644 index bb735931b5..0000000000 --- a/.chloggen/add-service-instance-id.yaml +++ /dev/null @@ -1,26 +0,0 @@ -# One of 'breaking', 'deprecation', 'new_component', 'enhancement', 'bug_fix' -change_type: bug_fix - -# The name of the component, or a single word describing the area of concern, (e.g. collector, target allocator, auto-instrumentation, opamp, github action) -component: auto-instrumentation - -# A brief description of the change. Surround your text with quotes ("") if it needs to start with a backtick (`). -note: Add attribute `service.instance.id` while pod is mutated. - -# One or more tracking issues related to the change -issues: [2679] - -# (Optional) One or more lines of additional information to render under the primary note. -# These lines will be padded with 2 spaces and then inserted directly into the document. -# Use pipe (|) for multiline entries. -subtext: | - `service.instance.id` is expected to be `..` - - But while pod is created it may not have the `podName` yet at the podMutator webhooks. - - This changed to use the env var `OTEL_RESOURCE_ATTRIBUTES_POD_NAME` which will be present at runtime. - `.$(OTEL_RESOURCE_ATTRIBUTES_POD_NAME).` - - Making a valid and complete value for `service.instance.id` to be added. - - diff --git a/.chloggen/autoinstrumentation-java-cli-flag.yaml b/.chloggen/autoinstrumentation-java-cli-flag.yaml deleted file mode 100644 index 3b67ad6094..0000000000 --- a/.chloggen/autoinstrumentation-java-cli-flag.yaml +++ /dev/null @@ -1,16 +0,0 @@ -# One of 'breaking', 'deprecation', 'new_component', 'enhancement', 'bug_fix' -change_type: breaking - -# The name of the component, or a single word describing the area of concern, (e.g. collector, target allocator, auto-instrumentation, opamp, github action) -component: operator - -# A brief description of the change. Surround your text with quotes ("") if it needs to start with a backtick (`). -note: change java instrumentation feature gate operator.autoinstrumentation.java into command line flag --enable-java-instrumentation - -# One or more tracking issues related to the change -issues: [2673, 2582] - -# (Optional) One or more lines of additional information to render under the primary note. -# These lines will be padded with 2 spaces and then inserted directly into the document. -# Use pipe (|) for multiline entries. -subtext: diff --git a/.chloggen/change-instrumentation-feature-gates.yaml b/.chloggen/change-instrumentation-feature-gates.yaml deleted file mode 100755 index 50e93eace9..0000000000 --- a/.chloggen/change-instrumentation-feature-gates.yaml +++ /dev/null @@ -1,16 +0,0 @@ -# One of 'breaking', 'deprecation', 'new_component', 'enhancement', 'bug_fix' -change_type: 'breaking' - -# The name of the component, or a single word describing the area of concern, (e.g. collector, target allocator, auto-instrumentation, opamp, github action) -component: 'operator' - -# A brief description of the change. Surround your text with quotes ("") if it needs to start with a backtick (`). -note: remove featuregate `operator.autoinstrumentation.nodejs`. Use command line flag `--enable-nodejs-instrumentation` instead - -# One or more tracking issues related to the change -issues: [2674] - -# (Optional) One or more lines of additional information to render under the primary note. -# These lines will be padded with 2 spaces and then inserted directly into the document. -# Use pipe (|) for multiline entries. -subtext: diff --git a/.chloggen/chore_remove-ta-rewrite-flag.yaml b/.chloggen/chore_remove-ta-rewrite-flag.yaml deleted file mode 100755 index 4b31162876..0000000000 --- a/.chloggen/chore_remove-ta-rewrite-flag.yaml +++ /dev/null @@ -1,16 +0,0 @@ -# One of 'breaking', 'deprecation', 'new_component', 'enhancement', 'bug_fix' -change_type: breaking - -# The name of the component, or a single word describing the area of concern, (e.g. collector, target allocator, auto-instrumentation, opamp, github action) -component: target allocator - -# A brief description of the change. Surround your text with quotes ("") if it needs to start with a backtick (`). -note: Remove `operator.collector.rewritetargetallocator` feature flag - -# One or more tracking issues related to the change -issues: [2796] - -# (Optional) One or more lines of additional information to render under the primary note. -# These lines will be padded with 2 spaces and then inserted directly into the document. -# Use pipe (|) for multiline entries. -subtext: diff --git a/.chloggen/featuregates-into-cli-go.yaml b/.chloggen/featuregates-into-cli-go.yaml deleted file mode 100755 index 0e39a4b37f..0000000000 --- a/.chloggen/featuregates-into-cli-go.yaml +++ /dev/null @@ -1,16 +0,0 @@ -# One of 'breaking', 'deprecation', 'new_component', 'enhancement', 'bug_fix' -change_type: 'breaking' - -# The name of the component, or a single word describing the area of concern, (e.g. collector, target allocator, auto-instrumentation, opamp, github action) -component: 'operator' - -# A brief description of the change. Surround your text with quotes ("") if it needs to start with a backtick (`). -note: remove featuregate `operator.autoinstrumentation.go`. Use command line flag `--enable-go-instrumentation` instead - -# One or more tracking issues related to the change -issues: [2675] - -# (Optional) One or more lines of additional information to render under the primary note. -# These lines will be padded with 2 spaces and then inserted directly into the document. -# Use pipe (|) for multiline entries. -subtext: diff --git a/.chloggen/fix-hashing-bug.yaml b/.chloggen/fix-hashing-bug.yaml deleted file mode 100755 index b37419a51c..0000000000 --- a/.chloggen/fix-hashing-bug.yaml +++ /dev/null @@ -1,16 +0,0 @@ -# One of 'breaking', 'deprecation', 'new_component', 'enhancement', 'bug_fix' -change_type: bug_fix - -# The name of the component, or a single word describing the area of concern, (e.g. collector, target allocator, auto-instrumentation, opamp, github action) -component: collector - -# A brief description of the change. Surround your text with quotes ("") if it needs to start with a backtick (`). -note: Fixes a bug that would cause errant rollouts on a non-config related change. - -# One or more tracking issues related to the change -issues: [2899] - -# (Optional) One or more lines of additional information to render under the primary note. -# These lines will be padded with 2 spaces and then inserted directly into the document. -# Use pipe (|) for multiline entries. -subtext: diff --git a/.chloggen/fix-selector-bug.yaml b/.chloggen/fix-selector-bug.yaml deleted file mode 100755 index 8df1821aaf..0000000000 --- a/.chloggen/fix-selector-bug.yaml +++ /dev/null @@ -1,16 +0,0 @@ -# One of 'breaking', 'deprecation', 'new_component', 'enhancement', 'bug_fix' -change_type: bug_fix - -# The name of the component, or a single word describing the area of concern, (e.g. collector, target allocator, auto-instrumentation, opamp, github action) -component: collector - -# A brief description of the change. Surround your text with quotes ("") if it needs to start with a backtick (`). -note: resolves a bug that would create a junk selector for the service by merging rather than overriding. - -# One or more tracking issues related to the change -issues: [2873] - -# (Optional) One or more lines of additional information to render under the primary note. -# These lines will be padded with 2 spaces and then inserted directly into the document. -# Use pipe (|) for multiline entries. -subtext: diff --git a/.chloggen/fix-unescaping.yaml b/.chloggen/fix-unescaping.yaml deleted file mode 100755 index ddde9521a9..0000000000 --- a/.chloggen/fix-unescaping.yaml +++ /dev/null @@ -1,19 +0,0 @@ -# One of 'breaking', 'deprecation', 'new_component', 'enhancement', 'bug_fix' -change_type: bug_fix - -# The name of the component, or a single word describing the area of concern, (e.g. collector, target allocator, auto-instrumentation, opamp, github action) -component: target allocator - -# A brief description of the change. Surround your text with quotes ("") if it needs to start with a backtick (`). -note: Fix a metric relabel config unescaping bug - -# One or more tracking issues related to the change -issues: [2867] - -# (Optional) One or more lines of additional information to render under the primary note. -# These lines will be padded with 2 spaces and then inserted directly into the document. -# Use pipe (|) for multiline entries. -subtext: | - If only metric relabel configs were present, without target relabel configs, unescaping wouldn't be applied, leading - to invalid Target Allocator configuration. - diff --git a/.chloggen/fix_drop-ta-config-backwards-compat.yaml b/.chloggen/fix_drop-ta-config-backwards-compat.yaml deleted file mode 100755 index 8b2fbfcd6b..0000000000 --- a/.chloggen/fix_drop-ta-config-backwards-compat.yaml +++ /dev/null @@ -1,19 +0,0 @@ -# One of 'breaking', 'deprecation', 'new_component', 'enhancement', 'bug_fix' -change_type: breaking - -# The name of the component, or a single word describing the area of concern, (e.g. collector, target allocator, auto-instrumentation, opamp, github action) -component: target allocator - -# A brief description of the change. Surround your text with quotes ("") if it needs to start with a backtick (`). -note: Drop compatibility with older target allocator versions - -# One or more tracking issues related to the change -issues: [1907] - -# (Optional) One or more lines of additional information to render under the primary note. -# These lines will be padded with 2 spaces and then inserted directly into the document. -# Use pipe (|) for multiline entries. -subtext: | - We've made a breaking change to the target allocator configuration in 0.93.0. This change removes operator - compatibility with target allocator versions older than that. Users running more recent target allocator versions - are unaffected. diff --git a/.chloggen/v1beta1-remove-webhook.yaml b/.chloggen/v1beta1-remove-webhook.yaml deleted file mode 100755 index 6cb185f239..0000000000 --- a/.chloggen/v1beta1-remove-webhook.yaml +++ /dev/null @@ -1,16 +0,0 @@ -# One of 'breaking', 'deprecation', 'new_component', 'enhancement', 'bug_fix' -change_type: enhancement - -# The name of the component, or a single word describing the area of concern, (e.g. collector, target allocator, auto-instrumentation, opamp, github action) -component: collector - -# A brief description of the change. Surround your text with quotes ("") if it needs to start with a backtick (`). -note: Remove collector v1alpha1 defaulting and validating webhooks. - -# One or more tracking issues related to the change -issues: [2736] - -# (Optional) One or more lines of additional information to render under the primary note. -# These lines will be padded with 2 spaces and then inserted directly into the document. -# Use pipe (|) for multiline entries. -subtext: The functionality was moved to the collector v1beta1 webhooks. diff --git a/.chloggen/v1beta1-webhook.yaml b/.chloggen/v1beta1-webhook.yaml deleted file mode 100755 index 3f6b34ea09..0000000000 --- a/.chloggen/v1beta1-webhook.yaml +++ /dev/null @@ -1,25 +0,0 @@ -# One of 'breaking', 'deprecation', 'new_component', 'enhancement', 'bug_fix' -change_type: new_component - -# The name of the component, or a single word describing the area of concern, (e.g. operator, target allocator, github action) -component: collector - -# A brief description of the change. Surround your text with quotes ("") if it needs to start with a backtick (`). -note: Enable reconciliation of Collector v1beta1 CRD. - -# One or more tracking issues related to the change -issues: [2620, 1907] - -# (Optional) One or more lines of additional information to render under the primary note. -# These lines will be padded with 2 spaces and then inserted directly into the document. -# Use pipe (|) for multiline entries. -subtext: | - Users are expected to migrate to `otelcol.v1beta1.opentelemetry.io`. - The support for `otelcol.v1alpha1.opentelemetry.io` will be removed in the future. - Follow [migration guide](https://kubernetes.io/docs/tasks/extend-kubernetes/custom-resources/custom-resource-definition-versioning/#upgrade-existing-objects-to-a-new-stored-version) for upgrading already created collector instances. - After all `otelcol.v1alpha1.opentelemetry.io` are stored as `v1beta1` update the collector CRD to store only `v1beta1` - `kubectl patch customresourcedefinitions opentelemetrycollectors.opentelemetry.io --subresource='status' --type='merge' -p '{"status":{"storedVersions":["v1beta1"]}}'`. - **Only `AllNamespaces` install mode is now supported** due to the conversion webhook from `v1beta1` to `v1alpha1`. - See [OLM docs](https://olm.operatorframework.io/docs/tasks/install-operator-with-olm/) and - [OLM operator groups docs](https://olm.operatorframework.io/docs/advanced-tasks/operator-scoping-with-operatorgroups/). - diff --git a/CHANGELOG.md b/CHANGELOG.md index 8942ef2dbb..a874f6d2ec 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,6 +2,70 @@ +## 0.99.0 + +### 🛑 Breaking changes 🛑 + +- `operator`: change java instrumentation feature gate `operator.autoinstrumentation.java` into command line flag `--enable-java-instrumentation` (#2673, #2582) +- `operator`: remove featuregate `operator.autoinstrumentation.nodejs`. Use command line flag `--enable-nodejs-instrumentation` instead (#2674) +- `operator`: remove featuregate `operator.autoinstrumentation.go`. Use command line flag `--enable-go-instrumentation` instead (#2675) +- `target allocator`: Remove `operator.collector.rewritetargetallocator` feature flag (#2796) +- `target allocator`: Drop compatibility with older target allocator versions (#1907) + We've made a breaking change to the target allocator configuration in 0.93.0. This change removes operator + compatibility with target allocator versions older than that. Users running more recent target allocator versions + are unaffected. + + +### 🚀 New components 🚀 + +- `collector`: Enable reconciliation of Collector v1beta1 CRD. See [CRD changelog](./docs/crd-changelog.md) for detailed information. (#2620, #1907) + Users are expected to migrate to `otelcol.v1beta1.opentelemetry.io`. + The support for `otelcol.v1alpha1.opentelemetry.io` will be removed in the future. + Follow [migration guide](https://kubernetes.io/docs/tasks/extend-kubernetes/custom-resources/custom-resource-definition-versioning/#upgrade-existing-objects-to-a-new-stored-version) for upgrading already created collector instances. + After all `otelcol.v1alpha1.opentelemetry.io` are stored as `v1beta1` update the collector CRD to store only `v1beta1` + `kubectl patch customresourcedefinitions opentelemetrycollectors.opentelemetry.io --subresource='status' --type='merge' -p '{"status":{"storedVersions":["v1beta1"]}}'`. + **Only `AllNamespaces` install mode is now supported** due to the conversion webhook from `v1beta1` to `v1alpha1`. + See [OLM docs](https://olm.operatorframework.io/docs/tasks/install-operator-with-olm/) and + [OLM operator groups docs](https://olm.operatorframework.io/docs/advanced-tasks/operator-scoping-with-operatorgroups/). + + +### 💡 Enhancements 💡 + +- `collector`: Changes metric port logic to use intermediary struct. (#2603) +- `collector`: Remove collector v1alpha1 defaulting and validating webhooks. (#2736) + The functionality was moved to the collector v1beta1 webhooks. + +### 🧰 Bug fixes 🧰 + +- `auto-instrumentation`: Add attribute `service.instance.id` while pod is mutated. (#2679) + `service.instance.id` is expected to be `..` + + But while pod is created it may not have the `podName` yet at the podMutator webhooks. + + This changed to use the env var `OTEL_RESOURCE_ATTRIBUTES_POD_NAME` which will be present at runtime. + `.$(OTEL_RESOURCE_ATTRIBUTES_POD_NAME).` + + Making a valid and complete value for `service.instance.id` to be added. + +- `collector`: Fixes a bug that would cause errant rollouts on a non-config related change. (#2899) +- `collector`: resolves a bug that would create a junk selector for the service by merging rather than overriding. (#2873) +- `target allocator`: Fix a metric relabel config unescaping bug (#2867) + If only metric relabel configs were present, without target relabel configs, unescaping wouldn't be applied, leading + to invalid Target Allocator configuration. + + +### Components + +* [OpenTelemetry Collector - v0.99.0](https://github.com/open-telemetry/opentelemetry-collector/releases/tag/v0.99.0) +* [OpenTelemetry Contrib - v0.99.0](https://github.com/open-telemetry/opentelemetry-collector-contrib/releases/tag/v0.99.0) +* [Java auto-instrumentation - v1.32.1](https://github.com/open-telemetry/opentelemetry-java-instrumentation/releases/tag/v1.32.1) +* [.NET auto-instrumentation - v1.2.0](https://github.com/open-telemetry/opentelemetry-dotnet-instrumentation/releases/tag/v1.2.0) +* [Node.JS - v0.49.1](https://github.com/open-telemetry/opentelemetry-js/releases/tag/experimental%2Fv0.49.1) +* [Python - v0.44b0](https://github.com/open-telemetry/opentelemetry-python-contrib/releases/tag/v0.44b0) +* [Go - v0.12.0-alpha](https://github.com/open-telemetry/opentelemetry-go-instrumentation/releases/tag/v0.12.0-alpha) +* [ApacheHTTPD - 1.0.4](https://github.com/open-telemetry/opentelemetry-cpp-contrib/releases/tag/webserver%2Fv1.0.4) +* [Nginx - 1.0.4](https://github.com/open-telemetry/opentelemetry-cpp-contrib/releases/tag/webserver%2Fv1.0.4) + ## 0.98.0 ### 💡 Enhancements 💡 diff --git a/README.md b/README.md index 5d3ced7092..081888fe95 100644 --- a/README.md +++ b/README.md @@ -734,6 +734,7 @@ The OpenTelemetry Operator _might_ work on versions outside of the given range, | OpenTelemetry Operator | Kubernetes | Cert-Manager | |------------------------| -------------- | ------------ | +| v0.99.0 | v1.23 to v1.29 | v1 | | v0.98.0 | v1.23 to v1.29 | v1 | | v0.97.0 | v1.23 to v1.29 | v1 | | v0.96.0 | v1.23 to v1.29 | v1 | @@ -756,7 +757,6 @@ The OpenTelemetry Operator _might_ work on versions outside of the given range, | v0.79.0 | v1.19 to v1.27 | v1 | | v0.78.0 | v1.19 to v1.27 | v1 | | v0.77.0 | v1.19 to v1.26 | v1 | -| v0.76.1 | v1.19 to v1.26 | v1 | ## Contributing and Developing diff --git a/RELEASE.md b/RELEASE.md index ade27c6d24..9a4ba1d87c 100644 --- a/RELEASE.md +++ b/RELEASE.md @@ -44,10 +44,10 @@ The operator should be released within a week after the [OpenTelemetry collector | Version | Release manager | |----------|-----------------| -| v0.99.0 | @yuriolisa | | v0.100.0 | @VineethReddy02 | | v0.101.0 | @TylerHelmuth | | v0.102.0 | @swiatekm-sumo | | v0.103.0 | @frzifus | | v0.104.0 | @jaronoff97 | | v0.105.0 | @pavolloffay | +| v0.106.0 | @yuriolisa | diff --git a/bundle/manifests/opentelemetry-operator.clusterserviceversion.yaml b/bundle/manifests/opentelemetry-operator.clusterserviceversion.yaml index eaea7882c1..a200bdd9a0 100644 --- a/bundle/manifests/opentelemetry-operator.clusterserviceversion.yaml +++ b/bundle/manifests/opentelemetry-operator.clusterserviceversion.yaml @@ -99,13 +99,13 @@ metadata: categories: Logging & Tracing,Monitoring certified: "false" containerImage: ghcr.io/open-telemetry/opentelemetry-operator/opentelemetry-operator - createdAt: "2024-04-11T16:00:15Z" + createdAt: "2024-04-30T12:37:39Z" description: Provides the OpenTelemetry components, including the Collector operators.operatorframework.io/builder: operator-sdk-v1.29.0 operators.operatorframework.io/project_layout: go.kubebuilder.io/v3 repository: github.com/open-telemetry/opentelemetry-operator support: OpenTelemetry Community - name: opentelemetry-operator.v0.98.0 + name: opentelemetry-operator.v0.99.0 namespace: placeholder spec: apiservicedefinitions: {} @@ -499,7 +499,7 @@ spec: - --zap-log-level=info - --zap-time-encoding=rfc3339nano - --enable-nginx-instrumentation=true - image: ghcr.io/open-telemetry/opentelemetry-operator/opentelemetry-operator:0.98.0 + image: ghcr.io/open-telemetry/opentelemetry-operator/opentelemetry-operator:0.99.0 livenessProbe: httpGet: path: /healthz @@ -607,7 +607,7 @@ spec: minKubeVersion: 1.23.0 provider: name: OpenTelemetry Community - version: 0.98.0 + version: 0.99.0 webhookdefinitions: - admissionReviewVersions: - v1alpha1 diff --git a/versions.txt b/versions.txt index eb26f59f8f..0d32fe228e 100644 --- a/versions.txt +++ b/versions.txt @@ -2,16 +2,16 @@ # by default with the OpenTelemetry Operator. This would usually be the latest # stable OpenTelemetry version. When you update this file, make sure to update the # the docs as well. -opentelemetry-collector=0.98.0 +opentelemetry-collector=0.99.0 # Represents the current release of the OpenTelemetry Operator. -operator=0.98.0 +operator=0.99.0 # Represents the current release of the Target Allocator. -targetallocator=0.98.0 +targetallocator=0.99.0 # Represents the current release of the Operator OpAMP Bridge. -operator-opamp-bridge=0.98.0 +operator-opamp-bridge=0.99.0 # Represents the current release of Java instrumentation. # Should match autoinstrumentation/java/version.txt @@ -30,7 +30,7 @@ autoinstrumentation-python=0.44b0 autoinstrumentation-dotnet=1.2.0 # Represents the current release of Go instrumentation. -autoinstrumentation-go=v0.10.1-alpha +autoinstrumentation-go=v0.12.0-alpha # Represents the current release of Apache HTTPD instrumentation. # Should match autoinstrumentation/apache-httpd/version.txt