Releases: open-telemetry/opentelemetry-operator
Release v0.99.0
0.99.0
🛑 Breaking changes 🛑
operator
: change java instrumentation feature gateoperator.autoinstrumentation.java
into command line flag--enable-java-instrumentation
(#2673, #2582)operator
: remove featuregateoperator.autoinstrumentation.nodejs
. Use command line flag--enable-nodejs-instrumentation
instead (#2674)operator
: remove featuregateoperator.autoinstrumentation.go
. Use command line flag--enable-go-instrumentation
instead (#2675)target allocator
: Removeoperator.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 for detailed information. (#2620, #1907)
Users are expected to migrate tootelcol.v1beta1.opentelemetry.io
.
The support forotelcol.v1alpha1.opentelemetry.io
will be removed in the future.
Follow migration guide for upgrading already created collector instances.
After allotelcol.v1alpha1.opentelemetry.io
are stored asv1beta1
update the collector CRD to store onlyv1beta1
kubectl patch customresourcedefinitions opentelemetrycollectors.opentelemetry.io --subresource='status' --type='merge' -p '{"status":{"storedVersions":["v1beta1"]}}'
.
OnlyAllNamespaces
install mode is now supported due to the conversion webhook fromv1beta1
tov1alpha1
.
See OLM docs and
OLM operator groups docs.
💡 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 attributeservice.instance.id
while pod is mutated. (#2679)
service.instance.id
is expected to be<namespace>.<podName>.<containerName>
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.
<namespace>.$(OTEL_RESOURCE_ATTRIBUTES_POD_NAME).<containerName>
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
Release v0.98.0
0.98.0
💡 Enhancements 💡
operator
: Add support for adding/extending otc-collector container ports. (#2763)auto-instrumentation
: Support Java auto-instrumentation extensions. (#1785)
🧰 Bug fixes 🧰
target allocator
: Fix for keepequal/dropequal action (#2793)collector
: Create automatically the RBAC permissions to manage replicasets when using the k8sattributesprocessor (#2823)documentation
: The description for some fields was truncated in the documentation. (#2563)
Components
Release v0.97.1
0.97.1
🧰 Bug fixes 🧰
collector
: Introduces ability to detect presence of Prometheus CRDs to dynamically add to scheme to prevent startup issues. (#2180)
Components
Release v0.97.0
0.97.0
🛑 Breaking changes 🛑
operator
: change nginx instrumentation feature gate operator.autoinstrumentation.nginx into command line flag --enable-nginx-instrumentation (#2582, #2676)operator
: remove featuregateoperator.autoinstrumentation.python
. Use command line flag--enable-python-instrumentation
instead (#2582, #2672)target allocator
: Promoteoperator.collector.rewritetargetallocator
feature flag to stable (#2796)
💡 Enhancements 💡
-
auto-instrumentation
: Bump NodeJS autoinstrumentations dependency to a version that supports enabling selected instrumentations via environment variable. (#2622)
See the documentation for details.
Usage example:export OTEL_NODE_ENABLED_INSTRUMENTATIONS="http,nestjs-core"
. -
auto-instrumentation
: CronJob name propagated to the OTEL Service Name (#2716)
When instrumenting aCronJob
it would generate aJob
and then aPod
.
Previously it would use theJob
name as the Service name, generating too many different services on each cron execution.
This release fixed to collect theJob
parent's name, if it has one. -
instrumentation
: Instrumentation now automatically add node and pod ips as env varsOTEL_NODE_IP
andOTEL_POD_IP
to instrumented containers. (#2769) -
auto-instrumentation
: Remove NodeJS autoinstrumentation dev dependencies to reduce image size (#2802) -
instrumentation
: Remove env var prefix validation (#2768)
🧰 Bug fixes 🧰
collector
: Fix the RBAC resources creation when the processor was only enabled (#2788)operator
: Added missing label for Service/Pod Monitors (#2251)instrumentation
: Don't preserve ownership of files copied from the autoinstrumenation image. This avoids issues when instrumenting workloads running as non-root (#2655)opamp bridge
: Fix opamp bridge configmap "app.kubernetes.io/version" label to be generated in the same way as other resource version labels (#2583)
Components
Release v0.96.0
0.96.0
🛑 Breaking changes 🛑
operator
: change dotnet instrumentation feature gate into command line flag --enable-dotnet-instrumentation (#2582, #2671)
💡 Enhancements 💡
operator
: Created ability to filter out Annotations (#2627)
🧰 Bug fixes 🧰
target allocator
: Fix per-node target allocation for targets from endpointslices (#2718)
The per-node target allocation strategy was not matching endpointslice entries for with akind
of Node, such as those for the kubelet metrics created by the prometheus operatoroperator
: Removes UPDATE from pod mutating admission webhook since it only needs to mutate on pod CREATE events. (#1514)
The pod webhook currently modifies the pod spec in invalid ways on UPDATE events, and UPDATES are not necessary in the webhook.
Components
Release v0.95.0
0.95.0
🛑 Breaking changes 🛑
- The operator now requires CRUD permissions for
PersistentVolume
andPersistentVolumeClaim
. See #2575 for details. The official kustomize manifests and Helm Chart will include this change, otherwise it will need to be applied manually. operator
: remove featuregateoperator.autoinstrumentation.apache-httpd
. Use command line flag--enable-apache-httpd-instrumentation
instead (#2582, #2670)operator
: remove featuregateoperator.autoinstrumentation.multi-instrumentation
. Use command line flagenable-multi-instrumentation
instead (#2582)
💡 Enhancements 💡
operator
: Allow for label selectors on the daemonset through update status (#2605)
🧰 Bug fixes 🧰
operator
: propagate otel name label down to selector of ta resources (#2598)operator
: fixes an error in conversion from v1alpha1 to v1beta1 (#2689)operator
: Fixes a panic on exporter prometheus endpoint not valid (#2628)operator
: Fixed HPA deletion (#2568, #2587, #2651)
Components
Release v0.94.0
0.94.0
💡 Enhancements 💡
target allocator
: Add new "per node" allocation strategy to target allocator. This strategy will allocate targets to nodes on which given target resides. It should only be used conjunction with the daemonset mode. (#1828)
🧰 Bug fixes 🧰
-
operator
: Fixed handling of protocol in exposed ports. (#2619)
Make distinction not only on the port number, but also on protocol. This fix allows to have multiple exposed
ServicePorts with the same port number, but different protocols. -
operator
: Fixed handling of exposed port protocol in syslog, tcplog and udplog receivers. (#767, #2619)
Please note that the operator currently exposes just one port (tcp or udp) of syslog receiver due to the current
receiver implementation (patches are welcome). -
operator
: Fixing WATCH_NAMESPACE for a single namespace value (#2589)
Components
Release v0.93.0
0.93.0
🛑 Breaking changes 🛑
This version brings stable semantic convention for network and HTTP. It includes new metrics and attributes names.
target allocator
: Use standard K8s label selectors for Prometheus CRs in target allocator config (#1907)
This is a breaking change only for users of standalone target allocator. Operator users are unaffected.
The operator is still compatible with previous target allocator versions, and will be for the next 3 releases.target allocator
: Use recommended interfaces(resource selector) by the prometheus-operator for watching CRs. (#2309)
The target allocator now requires get/list/watch permissions for namespaces. Update your RBAC permissions for the attached role, if necessary.
💡 Enhancements 💡
operator
: Add SharedProcessNamespace capabilities to the OpenTelemetryCollector CRD (#2472)opamp bridge
: Added env variable parsing to opamp bridge config loading (#2577)target allocator
: Set the default filter strategy in the CRD (#2477)operator, target allocator
: Adding a feature flag to disable default prometheus annotations (#2554)
🧰 Bug fixes 🧰
operator
: Fix annotations required by the OpenShift Operator Hub (#2557)
Components
Release v0.92.1
Release v0.92.0
🛑 Breaking changes 🛑
-
target allocator
: Use standard K8s label selectors for collectors in target allocator config (#2422)
This is a breaking change only for users of standalone target allocator. Operator users are unaffected.
The operator is still compatible with previous target allocator versions, and will be for the next 3 releases. -
target allocator
: Use container securityContext for target allocator (#2490)
This is really a bug fix, as the current behaviour is not intended. We've marked it as breaking in case anyone started depending on it.
💡 Enhancements 💡
operator
: Automate the creation of the permissions needed by the resourcedetection processor (#2393)operator
: Automate the creation of the permissions needed by the k8sattributes processor (#2395)target allocator
: Change default allocation and filtering strategy (#2477)operator
: Introduce common fields to the v1alpha2 types that can be reused for any CRDs. (#901)target allocator
: Use Pod securityContext for target allocator (#2495)
Bring back PodSecurityContext as it was removed in the previous changes.bridge
: Sets pods in the component health map (#2489)
this change adds a requirement for a new permission for the bridge to list and get pods.