Skip to content

Releases: open-telemetry/opentelemetry-operator

Release v0.135.0

16 Sep 16:58
a7855fa
Compare
Choose a tag to compare

0.135.0

💡 Enhancements 💡

  • collector, target allocator: Add TrafficDistribution support for OpenTelemetryCollector and TargetAllocator Services (#4285)
    The TrafficDistribution field is now available in OpenTelemetryCollector and TargetAllocator.
    This field allows setting the traffic distribution policy for Kubernetes Services.

Components

Release v0.134.0

12 Sep 15:43
185a9e9
Compare
Choose a tag to compare

0.134.0

💡 Enhancements 💡

  • target allocator: Add CollectorTargetReloadInterval option to configure the interval at which the Prometheus receiver reloads targets from the target allocator (#4095)

🧰 Bug fixes 🧰

  • collector: Always return a valid OpenTelemetryCollector configuration during v1beta1 conversion. (#4288)

Components

0.133.0

⚠️ Skip Release ⚠️

  • operator: Skipped OpenTelemetry Operator release due to an issue on the collectors protobuf parsing that caused HTTP 400 errors for metric submissions. In case of expecitly using the collector v0.133.0 this behavior can be by passed by disabling the collector feature gate pdata.useCustomProtoEncoding.
    For more details see: (opentelemetry-collector#13727)[https://github.com/open-telemetry/opentelemetry-collector/issues/13727]
apiVersion: opentelemetry.io/v1beta1
kind: OpenTelemetryCollector
metadata:
  name: my-collector
spec:
  image: otel/opentelemetry-collector:0.133.0
  args:
    - --feature-gates=-pdata.useCustomProtoEncoding

Release v0.132.0

02 Sep 15:19
bec1a4d
Compare
Choose a tag to compare

0.132.0

🚩 Deprecations 🚩

  • collector: Remove opencensus receiver from parsing logic as it is no longer supported in OpenTelemetry Collector (#4239)
    The opencensus receiver has been removed from the operator's receiver parsing logic.
    Since 2025-02-14 its no longer supported and got removed from the Collector Distributions.

💡 Enhancements 💡

  • collector: enable native sidecar on OpenShift 4.16+ with k8s version newer then v1.29 by default. (#4247)

  • collector: Use native sidecar on k8s 1.29+ (#3356)
    The operator will automatically use native sidecars whenever a Kubernetes
    version 1.29 or higher is discovered.
    The usage of native sidecars can be disabled with --feature-gates=-sidecarcontainers.native.
    See: https://kubernetes.io/blog/2023/08/25/native-sidecar-containers/

  • collector: Add network policy for the collector. (#4231)
    This change adds a network policy to the collector to allow traffic to all collector receivers and egress traffic from the collector pod.
    The collector network policy can be enabled in the collector CR.

    spec:
      networkPolicy:
        enabled: true

    By default it is disabled, however the default value is configured with a feature gate --feature-gates=operand.networkpolicy.
    The feature gate will be enabled in the future releases.

  • operator: Operator now creates a NetworkPolicy to restrict access to the operator pod. (#4230)
    The operator network policy can be enabled with --feature-gates=+operator.networkpolicy.
    The feature gate is disabled by default and it will be enabled in the future releases.
    Following APIs are allowe: ingress on port 9443 (webhook), 8080 (metrics port), 8443 (metrics RBAC proxy) and egress on port 6443 (API server).

  • target allocator: Add network policy for the target allocator. (#4231)
    This change adds a network policy to the target allocator which allows traffic to the port 8080 and outgoing traffic to the API server.
    The target allocator network policy can be enabled in the target allocator CR.

    spec:
      networkPolicy:
        enabled: true

    By default it is disabled, however the default value is configured with a feature gate --feature-gates=operand.networkpolicy.
    The feature gate will be enabled in the future releases.

  • opamp: Correlates the OpAMP data from the proxy server with the bridge's own OpAMP data. (#3837)

  • collector: k8sattributes: Add automatic RBAC for new service.name resource attribute generator (#4131)
    The k8sattributes processor recently added support for automatic service.name resource attribute generation.
    This change ensures that when service.name is configured in the k8sattributes processor, the operator
    automatically adds the necessary RBAC rules for replicasets access, which is required for extracting
    k8s.deployment.name.

🧰 Bug fixes 🧰

  • opamp: fixes a bug where the bridge deployment wouldn't rollout on a config change. (#4020)

  • collector: Fix a Deployment restart issue caused when the HPA settings changed, the webhook would modify spec.replicas. (#2585)

  • collector: Operator no longer overwrites ingress annoations on change (#4322)
    The operator now respects external manipulations of the Ingress object — instead of
    overwriting annotations it respects existing to prevent annotation-overwrite issues
    that caused reconciliation loops with external controllers (e.g., Rancher).

  • collector, target allocator, opamp: Remove unnecessary cert-manager CA annotation from CRDs (#4321)
    Remove annotation cert-manager.io/inject-ca-from from all OpenShift CRD manifests. The CRDs on OpenShift are installed via OLM which handles the CA injection.
    The annotation is also not needed for non-OpenShift installations on CRDs that do not have a conversion webhook.

Components

Release v0.131.0

04 Aug 12:38
6c41eeb
Compare
Choose a tag to compare

0.131.0

🛑 Breaking changes 🛑

  • operator: Drop support for Kubernetes 1.23 and 1.24 (#4104)

💡 Enhancements 💡

  • collector: Add support for extraLabels in ServiceMonitor creation (#4138)
    Added extraLabels field to MetricsConfigSpec in v1beta1 API to allow custom labels on ServiceMonitor resources.
    This enables users to add additional labels to ServiceMonitors created by the operator for better organization and filtering.

  • manager, target-allocator, opamp-bridge, must-gather: add -trimpath when building binaries (#4078)

  • collector, targer allocator, opamp: Require Go 1.24+ to build the collector, target allocator, and opamp. (#4173)

  • collector: Added RBAC permissions for config.extensions.k8s_observer. (#4113)
    Generating RBAC rules for the k8s_observer extension in the OpenTelemetry Collector when used in the operator.
    The change addresses the issue where the collector lacked necessary permissions to list and watch Kubernetes resources.

  • auto-instrumentation: Upgrade urllib3 upper limit following Python 3.8 support drop (#3712)

🧰 Bug fixes 🧰

  • collector: added check for maxReplica when minReplica is set in autoscaler (#4160)
    When using the AutoScaler, maxReplica must be set when minReplica is set.
  • target allocator: check CRD availability before registering informers (#3987)
  • target allocator: Allow collector to use TLS Config from Target Allocator with ScrapeConfig (#3724)
    This change allows the target allocator to configure TLS Config for a collector using the ScrapeConfig.

Components

Release v0.129.1

04 Jul 14:50
546053d
Compare
Choose a tag to compare

0.129.1

🛑 Breaking changes 🛑

  • pkg/instrumentation: Move pkg/instrumentation to internal/instrumentation (#4140)
  • targetallocator, collector: Remove stable feature gate PrometheusOperatorIsAvailable (#4141)

💡 Enhancements 💡

  • controller: Harmonize CLI and env var configuration to allow setting all configuration (#3565)
    In order of priority, the default configuration is assigned first, overwritten by environment variables and CLI arguments successively.

  • managementState: managementState property on resources is no longer a required field since it has a default value as managed (#4076)

  • operator: Support for Kubernetes 1.33 version. (#4048)

  • target allocator: Adds support for HTML output in the target allocator. (#3622)

  • controller: Support a yaml config file to set all the configuration options exposed by controllers (#3565)

🧰 Bug fixes 🧰

  • target allocator: ensure stable iteration order of target labels when generating hash (#4082)
  • target allocator: Fix OpenShift must-gather for Target Allocator (#4084)
  • opampbridge: Do not register the opampbridge webhook if the CRD is not present (#4070)
  • auto-instrumentation: Fix the bug that k8s.container.name in OTEL_RESOURCE_ATTRIBUTES env is not set correctly for Go the auto-instrumentation when the pod has multiple containers. (#4089)
  • collector: Fix the headless service name in StatefulSet mode to ensure consistent DNS resolution. The ServiceName field in the OpenTelemetryCollector spec can be used to customize the StatefulSet's serviceName. (#4029)
    The ServiceName field in the OpenTelemetryCollector
    spec can be used to customize the StatefulSet's serviceName if needed, while maintaining
    the default behavior of using the headless service name.
  • operator: Remove invalid operator.observability.prometheus feature flag references (#4159)
    Fixed operator installation failure caused by references to the non-existent operator.observability.prometheus feature flag.
    Removed the flag from the bundle and cleaned up API and documentation references.

Components

Release v0.127.0

04 Jun 13:25
290139b
Compare
Choose a tag to compare

0.127.0

💡 Enhancements 💡

  • collector: Move validation to be part of the CRD for sidecar mode (#3319)

  • target allocator: Promote the operator.collector.targetallocatorcr feature flag to Beta (#2422)

    As a result of this change, when the target allocator section is enabled in the Collector CR,
    this now creates a TargetAllocator CR instead of generating the manifests directly. Behavior should otherwise be
    unchanged. You can go back to the previous behaviour by passing the
    --feature-gates=-operator.collector.targetallocatorcr command-line option to the operator.

  • collector: Set the default spec.replicas to 1 in the OpenTelemetryCollector CRD. (#4042)

    This default no longer relies on the admission webhook.

🧰 Bug fixes 🧰

Components

Release v0.126.0

22 May 20:40
bad2ab8
Compare
Choose a tag to compare

0.126.0

🛑 Breaking changes 🛑

  • target-allocator: Switch to Prometheus 3.0 defaults for ScraperProtocols, requires prometheusreceiver >0.120.0 (#3872)

💡 Enhancements 💡

  • target-allocator: Allow to configure ScraperProtocols in prometheus common config (#4000)
  • target allocator: set default target allocator grace period to 30 seconds (#3989)
    The config option collectorNotReadyGracePeriod have been set to 30s by default. The target allocator now waits for 30 seconds before reallocating targets from a collector which isn't Ready.
    Setting this value to 0 will restore previous behaviour.

🧰 Bug fixes 🧰

  • otel-allocator: Remove overwrite of global config ScraperProtocols (#3996)
  • target allocator: Fix user-defined volumes in the TargetAllocator CR (#3992)
  • collector: add terminationGracePeriodSeconds to DaemonSet and StatefulSet specs (#4003)

Components

Release v0.125.0

15 May 12:17
0cda0e2
Compare
Choose a tag to compare

0.125.0

💡 Enhancements 💡

  • webhook: Allow to run the operator without the OpenTelemetry CRDs present (#3568)
    Skip registering the webhook and keep the operator working in case the OpenTelemetryCollector CRDs are not deployed.

🧰 Bug fixes 🧰

  • collector: Fixes container port duplication for user-provided and operator inferred ports (#3950)
    This patch improves container port collisions when the user defines additional ports in the CR.

    When ports are specified in the CR:

    • If a port number from the CR matches a port inferred from the config, the inferred port is removed
    • If a port name from the CR matches an inferred port name, the inferred port is renamed to "port-{number}"
  • collector: Prevent the operator from overriding the env vars defined by the user in the OpenTelemetryCollector spec. (#3963)
    This change ensures that the operator does not override the environment variables defined by the user in the OpenTelemetryCollector spec.
    It combines user-defined environment variables with automatically inferred ones, giving precedence to user-defined ones.

  • opamp: Fix config loading priority (#3928)

  • target allocator: Fix config loading priority (#3928)

  • collector: Set the statusReplicas field for the DaemonSet (#3930)

  • collector: Fix OpenShift internal collector metrics dashboards to use _total suffix (#3994)
    The following settings (or missing metrics configuration since 0.119.0) exposes metrics with _total suffix:

       service:
         telemetry:
           metrics:
             readers:
              - pull:
                exporter:
                  prometheus:
                    host: '0.0.0.0'
                    port: 8888

    The following settings exposes metrics without _total suffix:

       service:
         telemetry:
             address: 0.0.0.0:8888
  • targetallocator: Do not override the collector namespace from the config file if the environment variable is not set. (#3976)

Components

Release v0.124.0

24 Apr 17:21
c9b7e6f
Compare
Choose a tag to compare

0.124.0

💡 Enhancements 💡

  • collector: Re-try failed upgrades (#3515)
    The upgrade process runs now in the reconcile loop.
    In case of an error, the operator re-tries the upgrade with exponential backoff.

Components

Release v0.123.0

17 Apr 14:39
60791d4
Compare
Choose a tag to compare

0.123.0

💡 Enhancements 💡

  • opamp: Enables the OpAMP Bridge to act as a read-only proxy for effective configuration and health reporting. (#3823)

🧰 Bug fixes 🧰

  • collector: Fix the telemetry config to not override the user-defined config. (#3913)
  • collector: Fix Jaeger query extension default endpoint (#3906)