Releases: open-telemetry/opentelemetry-operator
Release v0.107.0
Release v0.106.0
0.106.0
🧰 Bug fixes 🧰
collector
: Fixes a bug where the operator would default the PDB in the wrong place. (#3198)operator
: The OpenShift dashboard shown namespaces where PodMonitors or ServiceMonitors were created even if they were not associated to OpenTelemetry Collectors. (#3196)
Now, the dashboard lists only those namespaces where there are OpenTelemetry Collectors.operator
: When there were multiple OpenTelemetry Collector, the dashboard doesn't allow to select them individually. (#3189)target allocator
: Fix collector to target allocator connection in clusters with proxy. (#3187)
On clusters with global proxy the collector might fail to talk to target allocator
because the endpoint is set to<ta-service-name>:port
and therefore it will go to proxy
and request might be forwarded to internet. Clusters with proxy configureNO_PROXY
to.svc.cluster.local
so
the calls to this endpoint will not go through the proxy.
Components
Release v0.105.0
0.105.0
💡 Enhancements 💡
collector
: Create automatically an OpenShift dashboard to visualize OpenTelemetry Collector metrics (#2995)
To enable this feature, you need to specify the--openshift-create-dashboard
argument to the operatorbundle
: Create an specific bundle for OpenShift environments. (#3054)collector
: Enabling ipFamilies and ipFamilyPolicy to be configured via OpenTelemetryCollector (#2958)auto-instrumentation
: Add Prometheus exporter to Python auto-instrumentation (#3122)collector
: Configmap, rbac, service, serviceaccount apply annotations-filter. (#3151)
🧰 Bug fixes 🧰
Release v0.104.0
0.104.0
🛑 Breaking changes 🛑
opamp
: Adds support for v1beta1 OpenTelemetry Collector API in the OpAMP Bridge (#2985)
This change adds support for the OpAMP Bridge to manage and apply OpenTelemetry Collectors using the v1beta1 API in
the OpAMP Bridge. This change removes support for applying OpenTelemetry Collectors using the v1alpha1 API version.
The v1beta1 API is the latest version of the OpenTelemetry Collector API and is the recommended version for new
deployments.
💡 Enhancements 💡
collector
: Since collector version0.104.0
the collector listens onlocalhost
instead of0.0.0.0
by default (collector#8510). To avoid breaking changes thecomponent.UseLocalHostAsDefaultHost
feature-gate is disabled by the Operator. (#3119)collector
: Changes the default parser to silently fail. (#3133)collector, target allocator
: If the target allocator is enabled, the collector featuregate `confmap.unifyEnvVarExpansion' is disabled. (#3119)operator
: Release leader election lease on exit (#3058)collector, target allocator, opamp
: Enabling PodDnsConfig for OpenTelemetry Collector, TargetAllocator and OpAMPBridge. (#2658)collector
: Make thespec.mode
field of theOpenTelemetryCollector
Custom Resource (CR) immutable (#3055)collector
: Improves the performance of port and configuration parsing in the operator (#2603)
🧰 Bug fixes 🧰
-
collector
: Fixes a bug where an exporter would cause a port collision (#3124) -
collector
: Fix deletion issue ofotelcol
CR by makingspec.config.service.pipelines.processors
optional (#3075)
This change makesspec.config.service.pipelines.processors
inOpenTelemetryCollector
CRD optional, aligning with OTel Collector best practices. It resolves deletion issues by providing flexibility in CRD configuration, addressing conflicts between strict validation and practical uses.
Note: Updating theopentelemetrycollectors.opentelemetry.io
CRD resource is required. -
collector
: Allow annotations on service account to prevent infinite reconciliation on OpenShift and creating infinite pull secrets. (#3106)
On OpenShift 4.16 the platform automatically adds an annotationopenshift.io/internal-registry-pull-secret-ref: <simplest-collector-dockercfg-jwq66>
to the service account which contains secret name with image pull secret.
Components
Release v0.103.0
0.103.0
💡 Enhancements 💡
collector, target allocator, opamp
: Require Go 1.22 for building the operator (#2757)
🧰 Bug fixes 🧰
-
auto-instrumentation
: Fix webserver instrumentation log file name (#2978)Since webserver instrumentation 1.0.4, the configuration log file has been renamed from appdynamics_sdk_log4cxx.xml.template to opentelemetry_sdk_log4cxx.xml.template. The operator upgraded the webserver instrumentation version but haven't change the configuration file name.
-
target-allocator
: Fixes a bug that didn't automatically create a PDB for a TA with per-node strategy (#2900)
Components
Release v0.102.0
0.102.0
💡 Enhancements 💡
collector
: Add usage metrics for the collector (#2829)
This change will add metrics to the OpenTelemetry operator about how the collector is used in the cluster,
it will add the following metrics to the opentelemetry-operator metrics endpointopentelemetry_collector_receivers{collector_name="collector_name", namespace="ns", type="otlp"} 1 opentelemetry_collector_exporters{collector_name="collector_name", namespace="ns", type="otlp"} 1 opentelemetry_collector_processors{collector_name="collector_name", namespace="ns", type="otlp"} 1 opentelemetry_collector_connectors{collector_name="collector_name", namespace="ns", type="myconnector"} 0 opentelemetry_collector_info{collector_name="simplest",namespace="default", type="deployment"} 1
🧰 Bug fixes 🧰
collector
: Fixes a bug that was preventing regexes from being loaded correctly. Now the filter provide is exactly what's used. (#3007)
This is technically a breaking change if a user relied on the previously broken regex functionality.
This change will actually fix their regex to work where it didn't before. I expect that users would rather their
regexes work than break silently.collector
: Upgrades to 0.102.1 which resolves a CVE in the configgrpc package. See here for more details
Components
Release v0.101.0
0.101.0
💡 Enhancements 💡
operator
: Support for Kubernetes 1.30 version. (#2881)collector
: Keep multiple previous versions of the Collector ConfigMap, configurable via the ConfigVersions field. (#2871)
This change introduces a new field in the Collector ConfigMap,ConfigVersions
, which allows users to specify the number of previous versions of the Collector ConfigMap to keep. The default value is 1, which means that the current and one previous version of the Collector ConfigMap are kept. By keeping historical versions of the configuration, we ensure that during a config upgrade the previous configuration is still available for running (non-upgraded) pods as well as for rollbacks. If we overwrite the original ConfigMap with the new configuration, any pod which restarts for any reason will get the new configuration, which makes rollouts impossible to control.collector, target allocator, opamp
: Introduces a new feature gate foroperator.golang.flags
to automatically add the environment variables for GOMAXPROCS and GOMEMLIMIT (#2919, #1456)
A new featuregateoperator.golang.flags
is added. This featuregate will allow the operator to automatically
set GOMAXPROCS and GOMEMLIMIT equal to the CPU and Memory limit provided respectively for the pod.
Components
Release v0.100.1
Release v0.100.0
0.100.0
💡 Enhancements 💡
-
opamp
: Add healthy field at collector pool level in opamp bridge heartbeat (#2936) -
collector
: Add support for readinessProbe on OpenTelemetryCollector CRD. (#2943)
Add support for readinessProbe onOpenTelemetryCollector
and its default similar to the already supported livenessProbe. -
operator
: Enabling new Logs Enconder Configuration parameters. (#268) -
operator
: Automatically enable RBAC creation if operator SA can create clusterroles and bindings. --create-rbac-permissions flag is noop and deprecated now. (#2588) -
target allocator
: Added option for creating an mTLS-configured HTTPS server to fetch scrape config with real secret values. (#1669)
The change introduces an option to create an additional HTTPS server with mTLS configuration.
This server is specifically utilized for obtaining the scrape configuration with actual secret values.
🧰 Bug fixes 🧰
-
collector
: Create a Service Monitor for the monitoring service and another one for the collector service when the Prometheus exporter is used. (#2877)
Create a Service Monitor for the collector Service when Prometheus exporter is used. A different Service Monitor is created for the monitoring service.
This helps excluding the headless service (duplicating the metrics collection) and splits responsibilities between the two Service Monitors.
Now, the operator.opentelemetry.io/collector-service-type label is used to differentiate the services.
operator.opentelemetry.io/collector-monitoring-service and operator.opentelemetry.io/collector-headless-service are deprecated now. -
target-allocator
: Fixed non-expected warnings on TA webhook. (#2685) -
collector
: Ensure all Prometheus CRDs are installed (#2964) -
collector
: Cleanup ClusterRoles and ClusterRoleBindings created by the operator (#2938)
The operator uses finalizer on the collector to run the cleanup -
collector
: Use the k8snode detector instead of kubernetes for the automatic RBAC creation for the resourcedetector (#2833) -
collector
: When two Collectors are created with the same name but different namespaces, the ClusterRoleBinding created by the first will be overriden by the second one. (#2862) -
collector
: Fix to reflect changes of OpenTelemetryCollector.spec.nodeSelector in the collector Pods (#2940)
When updatingOpenTelemetryCollector.spec.nodeSelector
it was not removing previous selector from the final collector pod (Deployment/Daemonset/Statefulset). -
collector
: Fix of Labels and Annotations filter (#2770) -
target allocator
: Fix target allocator readiness check (#2903)
Components
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.