Skip to content

Releases: open-telemetry/opentelemetry-operator

Release v0.99.0

01 May 07:21
fb59fef
Compare
Choose a tag to compare

0.99.0

🛑 Breaking changes 🛑

  • operator: change java instrumentation feature gate operator.autoinstrumentation.java into command line flag --enable-java-instrumentation (#2673, #2582)
  • operator: remove featuregate operator.autoinstrumentation.nodejs. Use command line flag --enable-nodejs-instrumentation instead (#2674)
  • operator: remove featuregate operator.autoinstrumentation.go. Use command line flag --enable-go-instrumentation instead (#2675)
  • target allocator: Remove operator.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 to otelcol.v1beta1.opentelemetry.io.
    The support for otelcol.v1alpha1.opentelemetry.io will be removed in the future.
    Follow migration guide for upgrading already created collector instances.
    After all otelcol.v1alpha1.opentelemetry.io are stored as v1beta1 update the collector CRD to store only v1beta1
    kubectl patch customresourcedefinitions opentelemetrycollectors.opentelemetry.io --subresource='status' --type='merge' -p '{"status":{"storedVersions":["v1beta1"]}}'.
    Only AllNamespaces install mode is now supported due to the conversion webhook from v1beta1 to v1alpha1.
    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 attribute service.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

12 Apr 09:15
9a05c3e
Compare
Choose a tag to compare

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

05 Apr 18:38
00dab02
Compare
Choose a tag to compare

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

03 Apr 17:43
fb23fde
Compare
Choose a tag to compare

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 featuregate operator.autoinstrumentation.python. Use command line flag --enable-python-instrumentation instead (#2582, #2672)
  • target allocator: Promote operator.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 a CronJob it would generate a Job and then a Pod.
    Previously it would use the Job name as the Service name, generating too many different services on each cron execution.
    This release fixed to collect the Job parent's name, if it has one.

  • instrumentation: Instrumentation now automatically add node and pod ips as env vars OTEL_NODE_IP and OTEL_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

11 Mar 14:17
2409359
Compare
Choose a tag to compare

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 a kind of Node, such as those for the kubelet metrics created by the prometheus operator
  • operator: 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

04 Mar 14:05
3d71a5f
Compare
Choose a tag to compare

0.95.0

🛑 Breaking changes 🛑

  • The operator now requires CRUD permissions for PersistentVolume and PersistentVolumeClaim. 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 featuregate operator.autoinstrumentation.apache-httpd. Use command line flag --enable-apache-httpd-instrumentation instead (#2582, #2670)
  • operator: remove featuregate operator.autoinstrumentation.multi-instrumentation. Use command line flag enable-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

16 Feb 19:08
7def507
Compare
Choose a tag to compare

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

02 Feb 17:52
16c712c
Compare
Choose a tag to compare

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

17 Jan 22:52
b630f4c
Compare
Choose a tag to compare

💡 Enhancements 💡

  • operator: Adds deployment rollout strategy to CRD fields (#2512)

🧰 Bug fixes 🧰

  • operator: Fix ClusterRole and ClusterRoleBinding reconciliation (#2525)

Components

Release v0.92.0

15 Jan 13:17
d443fb0
Compare
Choose a tag to compare

🛑 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.

Components