Skip to content

Releases: open-telemetry/opentelemetry-operator

Release v0.105.0

30 Jul 20:01
2fbc1fd
Compare
Choose a tag to compare

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 operator
  • bundle: 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

18 Jul 11:03
a9251b3
Compare
Choose a tag to compare

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 version 0.104.0 the collector listens on localhost instead of 0.0.0.0 by default (collector#8510). To avoid breaking changes the component.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 the spec.mode field of the OpenTelemetryCollector 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 of otelcol CR by making spec.config.service.pipelines.processors optional (#3075)
    This change makes spec.config.service.pipelines.processors in OpenTelemetryCollector 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 the opentelemetrycollectors.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 annotation openshift.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

25 Jun 18:35
c9a8ce2
Compare
Choose a tag to compare

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

06 Jun 15:16
251de12
Compare
Choose a tag to compare

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 endpoint
    opentelemetry_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

29 May 12:22
9a186e1
Compare
Choose a tag to compare

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 for operator.golang.flags to automatically add the environment variables for GOMAXPROCS and GOMEMLIMIT (#2919, #1456)
    A new featuregate operator.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

20 May 20:41
20e9b35
Compare
Choose a tag to compare

0.100.1

💡 Enhancements 💡

  • target allocator: Refactor allocation strategies (#2928)
    The performance of the per-node strategy was massively improved as part of this change.

🧰 Bug fixes 🧰

  • operator: Fixes an issue where the user can no longer set the webhook port (#2923)

Components

Release v0.100.0

20 May 09:03
2ae190e
Compare
Choose a tag to compare

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 on OpenTelemetryCollector 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 updating OpenTelemetryCollector.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

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