Skip to content

Releases: open-telemetry/opentelemetry-operator

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)

Release v0.122.0

11 Apr 12:15
554cc1f
Compare
Choose a tag to compare

0.122.0

🛑 Breaking changes 🛑

  • auto-instrumentation: Update recommended resource attributes to match the semantic conventions (#3797)
    This change updates the recommended resource attributes to match the semantic conventions.
    The following attributes have been updated:

    • service.version now uses the docker image digest in addition to the tag
    • the well-known label app.kubernetes.io/part-of for service.namespace has been removed
    • the well-known label app.kubernetes.io/instance has been added (translates to service.name)
    • service.namespace now also uses the Kubernetes namespace name (if resource.opentelemetry.io/service.namespace is not set)

    You can do the following to avoid breaking changes:

    • service.version: Set the version explicitly using resource.opentelemetry.io/service.version
      (not recommended, the version has only been made more specific)
    • service.namespace: Set the namespace explicitly using resource.opentelemetry.io/service.namespace -
      or just rely on the Kubernetes namespace name, which is now the default
    • service.name: If you have enabled useLabelsForResourceAttributes:
      Set the name explicitly using resource.opentelemetry.io/service.name if app.kubernetes.io/instance is used for another purpose

💡 Enhancements 💡

  • target allocator: Specific changes on CRD, Manifest, Controller, etc to allow specifying value for collector grace period (#3781)
  • auto-instrumentation: Increase default instrumentation memory limit to 256Mi (#3479)

🧰 Bug fixes 🧰

  • collector: Fix the default configuration for the internal metrics endpoint (#3730)
  • collector: Set the default endpoint to 0.0.0.0:13133 for the collector health check extension (#3825, #3688)

Components

Release v0.121.0

01 Apr 14:17
c8bbab7
Compare
Choose a tag to compare

0.121.0

🛑 Breaking changes 🛑

  • all: Move feature gate operator.observability.prometheus to stable (#3669)
  • operator: Remove the deprecated --label command-line option (#3236)
    Use --labels-filter instead.

💡 Enhancements 💡

  • opamp: Allows specifying non-identifying attributes for the Bridge, also follows OpAMP guidelines for reporting instance.service.id (#2301)

  • target allocator: Allow setting the collector namespace via the config file (#3782)

  • auto-instrumentation: Add support to set image pull policy for agent images (#3575)

  • auto-instrumentation: Enhanced Java auto-instrumentation with improved volume mount paths and configuration options (#3843)

    • Added support for unique volume mount paths for Java instrumentation
    • Improved configuration options for Java auto-instrumentation
    • Enhanced stability and reliability of Java instrumentation process
  • target allocator: Add support for setting the allowNamespaces and denyNamespaces in the target allocator.
    (#3086)
    allowNamespaces can be set to an empty list to watch all namespaces (default) or to list of namespaces to watch.
    denyNamespaces can be set to an empty list to deny watching any namespaces (default) or to a list of namespaces to deny watching.

  • target allocator: Do not assign targets to a collector pod that is not Ready for longer than a non-zero grace period (#3781)

🧰 Bug fixes 🧰

  • collector: Add nil check for Extensions in GetLivenessProbe and GetReadinessProbe functions (#3747)

Components

Release v0.120.0

06 Mar 22:26
58f45f8
Compare
Choose a tag to compare

Release v0.119.0

24 Feb 13:22
b20b922
Compare
Choose a tag to compare

0.119.0

🛑 Breaking changes 🛑

  • operator: Make ServiceMonitor for operator metrics optional and disable it by default (#3474)
    Add --create-sm-operator-metrics flag to create a ServiceMonitor for the operator metrics.
    This is disabled by default, which is a breaking change, because it was enabled by default in 0.113.0 and 0.114.0.

🧰 Bug fixes 🧰

  • auto-instrumentation: add upper version limit to Python dependency urllib3 (#3616)
  • target allocator: check for Prometheus CRDs before watching Service/Pod Monitors (#3726)

Components