feat(deps): update dependency otel-operator-source ( v0.132.0 → v0.158.0 ) - #1688
Open
chaplain-grimaldus[bot] wants to merge 1 commit into
Open
feat(deps): update dependency otel-operator-source ( v0.132.0 → v0.158.0 )#1688chaplain-grimaldus[bot] wants to merge 1 commit into
chaplain-grimaldus[bot] wants to merge 1 commit into
Conversation
chaplain-grimaldus
Bot
force-pushed
the
renovate/otel-operator-source-0.x
branch
from
February 18, 2026 18:13
4ec8a38 to
ebc8005
Compare
chaplain-grimaldus
Bot
force-pushed
the
renovate/otel-operator-source-0.x
branch
from
March 9, 2026 15:19
ebc8005 to
687882f
Compare
chaplain-grimaldus
Bot
force-pushed
the
renovate/otel-operator-source-0.x
branch
from
March 18, 2026 12:13
687882f to
586cb20
Compare
chaplain-grimaldus
Bot
force-pushed
the
renovate/otel-operator-source-0.x
branch
from
March 23, 2026 12:12
586cb20 to
ef3df96
Compare
chaplain-grimaldus
Bot
force-pushed
the
renovate/otel-operator-source-0.x
branch
from
April 23, 2026 14:43
ef3df96 to
210415d
Compare
chaplain-grimaldus
Bot
force-pushed
the
renovate/otel-operator-source-0.x
branch
from
April 27, 2026 17:31
210415d to
f05f955
Compare
chaplain-grimaldus
Bot
force-pushed
the
renovate/otel-operator-source-0.x
branch
from
May 12, 2026 20:32
f05f955 to
0d643a3
Compare
chaplain-grimaldus
Bot
force-pushed
the
renovate/otel-operator-source-0.x
branch
from
May 25, 2026 21:25
0d643a3 to
e60d29d
Compare
chaplain-grimaldus
Bot
force-pushed
the
renovate/otel-operator-source-0.x
branch
from
June 10, 2026 18:04
e60d29d to
9be45ec
Compare
chaplain-grimaldus
Bot
force-pushed
the
renovate/otel-operator-source-0.x
branch
from
July 2, 2026 17:42
9be45ec to
4cc35f5
Compare
chaplain-grimaldus
Bot
force-pushed
the
renovate/otel-operator-source-0.x
branch
from
July 13, 2026 20:08
4cc35f5 to
7dad8de
Compare
chaplain-grimaldus
Bot
force-pushed
the
renovate/otel-operator-source-0.x
branch
from
July 14, 2026 17:03
7dad8de to
172ea11
Compare
chaplain-grimaldus
Bot
force-pushed
the
renovate/otel-operator-source-0.x
branch
from
August 13, 2026 09:04
172ea11 to
b5f1b28
Compare
chaplain-grimaldus
Bot
force-pushed
the
renovate/otel-operator-source-0.x
branch
from
August 17, 2026 14:21
b5f1b28 to
3a7100a
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
This PR contains the following updates:
v0.132.0→v0.158.0Warning
Some dependencies could not be looked up. Check the Dependency Dashboard for more information.
Release Notes
open-telemetry/opentelemetry-operator (otel-operator-source)
v0.158.0Compare Source
0.158.0
💡 Enhancements 💡
operator, collector, target allocator: Enable operator, collector, target allocator network policies by default. (#5394)Feature gate
operator.networkpolicyandoperand.networkpolicyare promoted to beta, and enabled by default.These feature gates create network policies for the operator and operand components.
auto-instrumentation: Apache and nginx instrumentations forward Spec env vars to attach init containers so kubelet can expand $(VAR) references in exporter endpoints. (#5333)collector: promote the operator.collector.usedefaulttelemetryshape feature gate to stable, so the operator-injected Prometheus telemetry reader always uses collector defaults for without_type_suffix, without_units, and without_scope_info (#5075)The gate is now stable and can no longer be disabled. Users wanting the
pre-v0.154.0 metric name shape should explicitly set
without_type_suffix,without_units, andwithout_scope_infotofalsein their collector configuration. The gate will be removed in a future release.
collector: moves operator.golang.flags to stable setting GOMEMLIMIT and GOMAXPROCS automatically (#5455)🧰 Bug fixes 🧰
collector: Fix the automatic-upgrade routine binding two Prometheus readers to the same port when a collector already usesservice.telemetry.metrics.readers. (#5416)When an OpenTelemetryCollector already configured
service.telemetry.metrics.readers(added by earlier defaulting), the automatic version-upgrade routine still backfilled the
older, deprecated
addressfield for it. The 0.122.0 upgrade step then migratedaddressinto a new reader, leaving two readers bound to the same host:port. The collector then
failed to start with "address already in use". The 0.111.0 step now skips backfilling
addresswhenreadersis already configured, and the 0.122.0 step now skips adding areader for
addressif an equivalent one already exists.collector: Add PersistentVolume and PersistentVolumeClaim RBAC rules for k8s_cluster receiver automatic RBAC generation. (#5421)auto-instrumentation: DefaultOTEL_METRICS_EXPORTERtootlpfor Node.js auto-instrumentation so metrics are exported without extra configuration. (#3768)The Node.js SDK only initializes its metrics pipeline when a metric reader is configured, and the
webhook was not setting one. As a result, metrics silently stopped being exported for anyone relying
on the previous default behavior. The webhook now sets
OTEL_METRICS_EXPORTER=otlpby default,matching the existing behavior for Python auto-instrumentation, unless the user already set it.
Components
v0.157.0Compare Source
0.157.0
💡 Enhancements 💡
target allocator: Allow enabling mTLS between the target allocator and the collector using user-provided certificate Secrets, without requiring cert-manager. (#3982)When
spec.targetAllocator.mtls.useCertManageris set tofalse, the newmtls.tlsblockreferences user-provided certificates. The CA certificate may be sourced from either a Secret or a
ConfigMap (
certificateAuthorityCertificate.secret/.configMap). The target allocator's servercertificate and the collector's client certificate each reference their certificate and private key
independently, so the certificate and key may live in different Secrets. Data keys default to
tls.crt,tls.keyandca.crtand can be overridden per reference. The CA reference is requiredin this mode.
operator: Add support for Kubernetes 1.36 (#5354)🧰 Bug fixes 🧰
target allocator: Seed Prometheus's scrape labels (job,__scheme__,__metrics_path__,__scrape_interval__,__scrape_timeout__,__param_*) before relabel filtering, so keep/drop rules referencing them make the same decisions as Prometheus instead of silently dropping or over-allocating targets (#5246)The seeded labels also feed the target identity hash, matching Prometheus's post-relabel label partition more closely. With the
relabel-configfilter strategy enabled, existing targets are re-allocated once on upgrade because their hashes change. The served (pre-relabel) target labels are unchanged.Components
0.157.0
💡 Enhancements 💡
auto-instrumentation: Theautoinstrumentation-dotnetimage now bundles the correct native profiler for the platform it is pulled for, fixing arm64 support (the image was already published for arm64 but always contained amd64 binaries). (#3270)operator-opamp-bridge: Adds support for the OpAMP capability AcceptsRestartCommand to the operator's OpAMP bridge, allowing the operator to restart the collector when requested by an OpAMP server. (#5306)operator-opamp-bridge: Add anopentelemetry.io/opamp.bridge.modenon-identifying OpAMP AgentDescription attribute so servers can distinguish operator and standalone bridge clients. (#5423)operator-opamp-bridge: Report the operator-opamp-bridge's own build version asservice.versionin its OpAMP AgentDescription, instead of always sending an empty string. (#5360)collector: Add support for settingsessionAffinityandsessionAffinityConfigon the Services created for the Collector (#4455)target allocator: Support exporting the TargetAllocator's self-telemetry metrics via OTLP, in addition to the Prometheus /metrics endpoint. (#5047)Configure it under
spec.targetAllocator.telemetry.metrics.otlp(OpenTelemetryCollector CR) orspec.telemetry.metrics.otlp(TargetAllocator CR), with endpoint, protocol (grpc/http), temporality,headers, TLS and export interval/timeout. Metrics registered directly on the Prometheus registry
(Prometheus service discovery, Go runtime and process collectors) are bridged into the OTLP export
so the Prometheus endpoint and OTLP expose the same metric set.
🧰 Bug fixes 🧰
cluster-observability: Fix dependencies required by the bundled agent and cluster Collector configurations (#3821, #3818)Follow-ups to the initial ClusterObservability framework so generated
Collectors start cleanly across supported distributions:
defaulting to the operator's Collector version and supporting the
--clusterobservability-collector-imageoverride. Apply matching versionlabels and canonical component IDs.
K8S_NODE_NAME, which the bundledkubelet_statsreceiver usesfor its endpoint.
ClusterObservabilitydoes not remainPendingafter the workload is ready./hostfsforhost_metricsand exclude virtualand container-runtime filesystems that cannot be scraped reliably.
spc_tSCC sofile_logcan read root-owned container logs under
/var/log/pods.Instrumentationresources to the agent's OTLP/HTTP portbecause auto-instrumentation SDKs commonly use
http/protobuf.collector: Fix OpenShift collector dashboard (#5342)The collector v0.155.0 renamed the deprecated
otelcol_processor_accepted_*/dropped_*/refused_*metricsto
otelcol_processor_memory_limiter_*(open-telemetry/opentelemetry-collector#11203).The dashboard queries have been updated to use the new metric names.
collector: Register the snake-case spellings of several renamed receivers (kubelet_stats,k8s_objects,resource_detection,fluent_forward,tcp_log,udp_log,ssh_check,cloud_foundry,http_check,flink_metrics) alongside their original spellings when generating RBAC and service ports from a Collector CR, so either spelling produces the same result. (#5317)These components were renamed to snake_case in opentelemetry-collector-contrib
(#47957 kubeletstats, #47440 k8sobjects, #48525 resourcedetection, #47930
fluentforward, #47369 tcplog, #47370 udplog, #47515 sshcheck, #47932
cloudfoundry, #47505 httpcheck, #47929 flinkmetrics) while keeping the
original names accepted, but the operator only recognized one spelling per
component, so configs using the other spelling got no RBAC/ports or the
wrong service port name. This extends the k8s_attributes fix (#4983) to
the remaining renamed components, and makes
NewScraperParseracceptaliases so future renames of this kind are a one-line fix.
target allocator: Fix collector mtls with a TargetAllocator CR (#4297)This only affected collectors associated with a TargetAllocator CR whose name differs from the
collector's, e.g. via the
opentelemetry.io/target-allocatorlabel, causing them to address thewrong hostname (and TLS certificate) once mTLS was enabled.
target allocator: Refresh stale Prometheus meta labels (e.g.__meta_kubernetes_pod_name) on rediscovered targets whose address is unchanged (#4839)Target identity is deliberately hashed without meta labels, since Prometheus discards them after
relabeling. But because the allocator's target map is keyed by that same hash, a rediscovered
target whose address is unchanged (e.g. a hostNetwork DaemonSet pod after a restart) was never
recognized as changed, so its stale meta labels persisted until target-allocator itself restarted.
collector: Fix operator crash on startup when Gateway API CRDs are not installed by moving gatewayv1 scheme registration to be gated on autodetect result. (#5357)auto-instrumentation: Apply security context to Java extension init containers (#5335)Extension init containers injected alongside the Java agent were not receiving
a security context. This affected both the explicit
spec.initContainerSecurityContextfield on the Instrumentation CR and the fallback behaviour that inherits the
security context from the instrumented application container. Only the main
opentelemetry-auto-instrumentation-javainit container was having its securitycontext set; extension containers were always created with a nil security context.
This caused admission failures on clusters with policies that require all
containers to drop capabilities or disallow privilege escalation (e.g. OPA
Gatekeeper). The security context is now applied to all Java-related init
containers at construction time.
target allocator: Propagate the TargetAllocator CR's metadata annotations to all resources created for it, and restrictpodAnnotationsto the pod template (#4393)This aligns the TargetAllocator with the OpenTelemetryCollector behavior: CR metadata annotations now land
(respecting the annotations filter) on the Deployment, Service, ConfigMap, ServiceAccount, ServiceMonitor,
PodDisruptionBudget and NetworkPolicy, while
podAnnotationsis no longer copied to the NetworkPolicy andPodDisruptionBudget.
Components
v0.156.0Compare Source
0.156.0
🧰 Bug fixes 🧰
collector: Honorspec.observability.metrics.disablePrometheusAnnotations: trueon update by removing the operator-stamped prometheus.io annotations from the pod template, not just stopping new ones from being added. (#5043)Previously the pod-template mutate path preserved any annotation that
existed on the current resource but was absent from the desired render,
so toggling disablePrometheusAnnotations from false to true on an
existing OpenTelemetryCollector left the prometheus.io/scrape, port,
and path annotations stuck on the rolled pods. The operator now stamps
an ownership marker (operator.opentelemetry.io/prometheus-annotations-added)
whenever it adds one of the default prometheus.io/* annotations, and
the mutate path strips those annotations only when the marker is
present on the existing pod template. This preserves prometheus.io/*
annotations the user set out of band on the same collector.
Components
v0.155.0Compare Source
0.155.0
🧰 Bug fixes 🧰
operator: Fix NetworkPolicy and operand network policy defaulting when webhooks run in a separate deployment. (#5288)collector: Collectors with persistent storage no longer fail with "permission denied" on OpenShift when running under a permissive SCC such as anyuid. (#5224)On OpenShift, the restricted SCC injects fsGroup from the namespace range, but
permissive SCCs (e.g. anyuid) do not. The controller now defaults
podSecurityContext.fsGroup from the namespace's supplemental-groups or UID range
annotation when no explicit fsGroup is configured. An explicitly set fsGroup is
never overwritten.
Components
v0.154.0Compare Source
0.154.0
🛑 Breaking changes 🛑
collector: Promote the operator.collector.usedefaulttelemetryshape feature gate to beta. The operator-injected Prometheus telemetry reader now uses collector defaults by default — metric names from operator-managed collectors no longer carry type suffixes, units, or scope_info. (#5075)Users wanting the pre-v0.154.0 metric name shape can disable the gate via --feature-gates=-operator.collector.usedefaulttelemetryshape, or pin without_type_suffix/without_units/without_scope_info to false explicitly under spec.config.service.telemetry. The gate will be promoted to stable and removed in a future release.
💡 Enhancements 💡
collector: Add status.observedGeneration and status.conditions support for OpenTelemetryCollector resources. (#4312)operator: Add pod-webhook subcommand for running a standalone pod mutation webhook (#5010)The operator binary now supports a
pod-webhooksubcommand that runs only the pod mutationwebhook (auto-instrumentation and sidecar injection) without the controllers. This enables
deploying the webhook separately.
opampbridge: Add TLS configuration support to the OpAMP Bridge, including options to disable TLS or skip certificate verification. (#4921)opamp: Allow standalone OpAMP bridge agents to configure per-agent non-identifying attributes. (#5245)opamp-bridge: Make standalone OpAMP Bridge manifests and runtime permissions friendlier for OpenShift and namespaced RBAC. (#5277)operator: Add standalone pod webhook deployment for High Availability on OpenShift (#5010)On OpenShift with OLM, the pod mutation webhook (auto-instrumentation and sidecar injection)
is now deployed as a standalone Deployment with 2 replicas by default, enabling HA.
OpenShift with OLM:
OPENSHIFT_WEBHOOK_REPLICASenv var in the Subscription (0 or 1)Kubernetes (community bundle):
opamp-bridge: OpAMP Bridge standalone mode (#4913)Standalone mode for OpAMP Bridge allows users to manage collector configuration from a remote
OpAMP server without the need to deploy full Otel Operator.
operator: Move all webhooks to the dedicated webhook deployment. (#5010)This change moves remaining webhooks (defaulting, validating for: Collector, TargetAllocator, Instrumentation, OpAMPBridge) to the dedicated webhook deployment.
Previously, only the pod mutation webhook was served by the webhook deployment, while the other webhooks were served by the controller-manager.
The dedicated webhook deployment is opt-in and enabled by default only on OpenShift with OLM.
🧰 Bug fixes 🧰
target allocator: Fix silent target loss when group labels are present in static_configs by sorting labels globally in processTargetGroups. (#4967)ScratchBuilder.Labels() serializes labels in insertion order. When group labels sort
alphabetically after target labels (e.g. vendor > address), Labels.Get() early
termination returns empty, causing hash collisions that silently drop targets.
auto-instrumentation: Use MergeFrom patch for Instrumentation blocked-versions status to avoid overwriting unrelated status fields. (#5243)target allocator: Accept a prometheus receiver that only declarestarget_allocator:without aconfig:block. (#2998)When the prometheus receiver is configured with only a
target_allocator:block and noconfig:,reconciliation previously failed with
no prometheusConfig available as part of the configuration.The target allocator supplies scrape configuration externally in this mode (e.g. via discovered
PrometheusCR objects), so the operator now skips the scrape_configs cleanup when no
config:block is present. The webhook validator likewise permits this shape.
Components
v0.153.0Compare Source
0.153.0
🛑 Breaking changes 🛑
api: Move apis package to a separate sub-module (#4362)Yamlstandalone functions ininternal/otelconfigis moved to a methods on*Config(packageapis/v1beta1)CheckTargetAllocatorPrometheusCRPolicyRulesfromapis/v1beta1/targetallocator_rbac.gotointernal/webhook/targetallocator_rbac.go+ rename it tocheckTargetAllocatorPrometheusCRPolicyRules.OpenTelemetryCollectoris not implementing theConvertibleinterface fromsigs.k8s.io/controller-runtime/pkg/conversion, but implements 2 helper function the achieve the same functionality:apispackage to a dedicated sub-module.target allocator: Theoperator.targetallocator.mtlsfeature gate has been removed. mTLS is now configured per-CR viaspec.mtls.enabledon the TargetAllocator or Collector resource. (#5136)Set
spec.mtls.useCertManager: falseto provide your own TLS secrets instead of having cert-manager provision them.💡 Enhancements 💡
collector: Add optionalspec.commandto OpenTelemetryCollector to override the collector container entrypoint (#3188)spec.commandis a[]stringmatchingPod.spec.containers[].command.target allocator: Add allowInsecureAuthSecrets option to serve auth secret values over plain HTTP without mTLS (#3746)Adds a new allowInsecureAuthSecrets field to both the TargetAllocator CRD and the
embedded TargetAllocator in the OpenTelemetryCollector CRD. When enabled, auth secret
values (e.g. basicAuth passwords) are served over plain HTTP instead of being masked.
This is useful when transport security is handled by a service mesh or equivalent.
🧰 Bug fixes 🧰
must-gather: Fix must-gather output to produce omc-compatible directory layout and correct YAML serialization (#4965)Previously collected files used a per-collector directory with kind-prefixed filenames (e.g.
namespaces/<ns>/<collector-name>/deployment-<name>.yaml),which omc cannot parse. Output now follows the standard omc layout (
namespaces/<ns>/<api-group>/<resource-plural>/<name>.yaml).Also fixes missing apiVersion/kind fields in serialized YAML, incorrect default output directory, and adds collection of CRDs and OpAMPBridge resources.
opamp: Skip OpenTelemetryCollector instances with a non-nil DeletionTimestamp when building EffectiveConfig (#5170)ListInstances returns objects with DeletionTimestamp set until finalizers complete.
Reporting them as effective races with the bridge's own Delete calls in applyRemoteConfig.
collector: Fix Service reconciliation to propagate trafficDistribution, internalTrafficPolicy, ipFamilies, and ipFamilyPolicy changes (#5141)Components
v0.152.0Compare Source
0.152.0
🛑 Breaking changes 🛑
api: Move config parsing and CRD metrics from apis to internal package (#4362)*Config(packageapis/v1beta1) converted to standalone functions ininternal/otelconfig, now taking*v1beta1.Configas the first parameter:*Serviceconverted to functions ininternal/otelconfig:*Telemetryconverted to function:apis/v1beta1tointernal/metricswith renames:apis/v1beta1:💡 Enhancements 💡
target allocator: Add support for dropping ServiceMonitor/PodMonitor endpoints that reference arbitrary files (#5104)auto-instrumentation: Allow to run the mutating webhook using static configuration, without the need for CRDs. (#4201)With this change, you can deploy the manager as a mutating webhook without setting up a v1alpha1.Instrumentation custom resource
or the v1alpha1.Instrumentation CRD.
Instead, you can now set up instrumentation by configuring the manager via its config file with these settings:
target allocator: Improve the error message when the target allocator is enabled but the Prometheus receiver is not named exactly "prometheus". (#5017)When only named instances such as "prometheus/otelcol" are present, the error now lists them and explains that a receiver named exactly "prometheus" is required.
🧰 Bug fixes 🧰
collector: Remove unnecessary RBAC permissions from the events receiver. (#5073)collector: Fix when configuring a gRPC port for thejaeger_queryextension, thecollector-extensionService only generates an HTTP port and is missing the gRPC port. (#4912)collector: Explicitly set without_type_suffix, without_units, and without_scope_info to false on the operator-injected Prometheus telemetry reader. (#5075)Preserves historical metric names. Without this, users upgrading to a collector containing open-telemetry/opentelemetry-collector#15027 would see operator-managed collector metric names silently change shape. Added alpha feature gate operator.collector.usedefaulttelemetryshape (off by default) to opt into collector defaults instead. The gate will be promoted to beta (on by default) in a future release.
target allocator: Fix scrapeClass tlsConfig fields being silently dropped in target allocator config. (#5101)scrapeClasses with tlsConfig like the following had their TLS fields silently dropped
when passed to the target allocator:
scrapeClasses:
- name: tls-config
tlsConfig:
caFile: /scrapeclass-ca.pem
insecureSkipVerify: true
collector: Restrict automatic RBAC from users without the necessary permissions (#5105)If the operator has permission to create ClusterRoles and ClusterRoleBindings, it sets up RBAC
for collectors automatically based on their configuration.
If a user tries to create an OpenTelemetryCollector whose permissions would be automatically
generated this way, and the user doesn't have the permissions themselves, it will be rejected.
If the collector tries to use an existing ServiceAccount, only the permissions missing from
that ServiceAccount are checked this way.
collector: Skip provisioning Services, Ingress, NetworkPolicy, and HPA for sidecar mode collectors since the operator does not control the Pod lifecycle in that mode. PodMonitors are still provisioned when metrics are enabled. (#4934)Components
v0.151.0Compare Source
0.151.0
🛑 Breaking changes 🛑
auto-instrumentation: Update default Java auto-instrumentation version from 1.33.6 to 2.27.0 (#4996)This is a breaking change due to HTTP semantic convention changes between versions.
Existing Instrumentation CRs using a 1.x.x version will NOT be automatically upgraded.
To upgrade, manually update the image in your Instrumentation CR after reviewing the migration guide.
See #2542 for details.
💡 Enhancements 💡
target allocator: AddsecretNamespacesfield to PrometheusCR configuration to make the namespaces watched for secrets configurable instead of hardcoding to the collector namespace. (#4999)Previously, the Target Allocator always watched the collector namespace for secrets used in
ServiceMonitor/PodMonitor basicAuth and other secret references. Now, the namespaces to watch
for secrets can be explicitly configured via
spec.prometheusCR.secretNamespaces.If not configured, no namespaces are watched for secrets.
operator: Split kubebuilder RBAC markers and restrict pod permissions to get/list/watch only (#3156)The operator does not create, update, patch, or delete Pod objects directly;
pods are managed by Deployment, DaemonSet, and StatefulSet controllers.
Also reduced targetallocators/finalizers to only the
updateverb.target allocator: Introduce kustomizaton manifests for standalone deployment (#4945)🧰 Bug fixes 🧰
auto-instrumentation: Validatespec.apacheHttpd.configPathandspec.nginx.configFilemore strictly for Instrumentations (#4925)Values from
Instrumentation.spec.apacheHttpd.configPathandInstrumentation.spec.nginx.configFileare now passed to init container scripts as positional arguments instead of being concatenated into
the shell command string, so they are no longer parsed by the shell. They're also restricted to usual Unix
path characters and limited to 256 characters.
Components
v0.150.0Compare Source
0.150.0
🛑 Breaking changes 🛑
auto-instrumentation: Update default .NET auto-instrumentation version from 1.2.0 to 1.15.0 (#4996)This update addresses security vulnerabilities in versions older than 1.15.0 (CVE-2026-40894, GHSA-g94r-2vxg-569j).
This is a breaking change due to HTTP semantic convention changes between versions.
Existing Instrumentation CRs using version 1.2.0 will NOT be automatically upgraded.
To upgrade, manually update the image in your Instrumentation CR after reviewing the migration guide.
See #2542 for details.
💡 Enhancements 💡
operator: Expose watch-namespace scope via the--watch-namespaceCLI flag and thewatch-namespaceconfig file field. TheWATCH_NAMESPACEenvironment variable continues to work. (#4379)auto-instrumentation: Addspec.initContainerSecurityContextto the Instrumentation CRD so users can explicitly set the security context of the auto-instrumentation init containers (Java, NodeJS, Python, DotNet, Apache HTTPD, Nginx). Addspec.go.securityContextfor overriding the Go sidecar's defaults. (#4894)When unset, existing behavior is preserved — init containers inherit the security context
of the first application container being instrumented, and the Go sidecar keeps the hardcoded
defaults required for eBPF (Privileged, RunAsUser: 0). Setting either field explicitly lets
restricted PSA environments declare the exact capabilities they want.
auto-instrumentation: Allow instrumentation upgrades to be blocked for versions containing major breaking changes. (#4646, #2542)Some instrumentation upgrades involve major breaking changes. The operator can't help with those, but it can
alert the user about them. This change makes this possible. It will also allow us to set the latest version
for new Instrumentation resources by default.
See #2542 for the primary example.
Components
v0.149.0Compare Source
0.149.0
💡 Enhancements 💡
collector: Add support for Gateway API HTTPRoute creation via OpenTelemetryCollector CR (#4361)operator: Added hostAliases support for OpenTelemetryCollector and TargetAllocator pods (#896)collector: Support RBAC generation fork8s_leader_electorextension (#4802)Automatically generates a ClusterRole with permissions to manage
leasesin thecoordination.k8s.ioAPI group for leader election among multiple collector replicas.collector: Add TLS security profile injection for health_check and jaeger_query extensions (#4871)When a TLS profile is configured on the cluster, the operator now injects min_version and cipher_suites
into health_check and jaeger_query extension configs
🧰 Bug fixes 🧰
auto-instrumentation: Fix instrumentation init container security context (#4848)auto-instrumentation: Fix duplicated container names validation to allow the same container name across different language instrumentations. (#4357)operator: Fix AnyConfig.DeepCopyInto performing shallow copy, causing TargetAllocator Deployment infinite reconciliation loop (#4950)AnyConfig.DeepCopyInto used maps.Copy which only copied top-level map entries, leaving nested
maps as shared references. When ApplyDefaults injected TLS profile settings (min_version) into
the collector's scrape config, it mutated the informer cache through the shared reference. This
caused the TargetAllocator config hash to alternate between two values on every reconciliation,
triggering an infinite Deployment update loop. The fix uses JSON round-tripping for a true deep copy.
opamp: Fix nil pointer dereference in OpAMP Bridge when validating a remote collector config that omits theprocessorssection (#4970)v1beta1.Config.Processorsis an optional*AnyConfig, butvalidateComponentsdereferenced it unconditionally.When a remote config without a
processorssection is applied through a bridge that hadcomponentsAllowedconfigured, it panicked and pod restarted. The nil case is now skipped during validation.
operator: Add missing RBAC permission for events.k8s.io API group (#4950)The operator uses k8s.io/client-go/tools/events which targets the events.k8s.io API group,
but the ClusterRole only granted permission for the core API group. This caused "Server rejected
event" errors when recording events on managed resources in other namespaces.
collector: Register thek8s_attributesspelling alongsidek8sattributeswhen generating RBAC from a Collector CR so either processor name produces the pods/replicasets/etc. permissions the processor needs. (#4922)The underlying processor was renamed to snake_case in
open-telemetry/opentelemetry-collector-contrib#45901 while keeping the
original spelling accepted, but the operator only parsed the camel form
and emitted no RBAC for configs using the new name.
collector: Generate RBAC for the k8s_attributes processor under its snake_case spelling, matching the camelCase k8sattributes it was renamed from. (#4922)collector: Expose prometheus receiver api_server port on collector Service and NetworkPolicy (#4949)auto-instrumentation, opamp, target allocator: Fix Env slice aliasing in Apache HTTPD, Nginx, OpAMP Bridge, and Target Allocator container builders when the spec slice has spare backing-array capacity (#4954)collector: Remove the kubebuilder default from the sts pod management policy field so it can be properlyomitempty(#4875)This field should not be set on deployment or daemonset collectors.
Components
v0.148.0Compare Source
0.148.0
💡 Enhancements 💡
collector: make the statefulset PodManagementPolicy configurable (#4875)Components
Configuration
📅 Schedule: (in timezone America/New_York)
🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.
♻ Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.
🔕 Ignore: Close this PR and you won't be reminded about this update again.
This PR has been generated by Mend Renovate CLI.