Skip to content

Releases: open-telemetry/opentelemetry-operator

Release v0.108.0

05 Sep 17:18
e023705
Compare
Choose a tag to compare

0.108.0

💡 Enhancements 💡

  • auto-instrumentation: set OTEL_EXPORTER_OTLP_PROTOCOL instead of signal specific env vars in python instrumentation (#3165)
  • collector: Allow autoscaler targetCPUUtilization and TargetMemoryUtilization to be greater than 99 (#3258)
  • auto-instrumentation: Not ignore the instrumentation.opentelemetry.io/container-names annotation when the multi-instrumentation is enabled (#3090)
  • operator: Support for Kubernetes 1.31 version. (#3247)
  • target allocator: introduces the global field in the TA config to allow for setting scrape protocols (#3160)

🧰 Bug fixes 🧰

  • auto-instrumentation: Fix file copy for NGINX auto-instrumentation for non-root workloads. (#2726)

  • target allocator: Retrying failed namespace informer creation in promOperator CRD watcher, then exit if creation issue cannot be resolved (#3216)

  • target allocator: Rollback #3187 (#3242)
    This Rollsback 3187 which breaks TargetAllocator config for clusters with custom domains.

  • auto-instrumentation: Fixes a bug that was preventing auto instrumentation from getting correct images. (#3014)
    This PR removes the restriction on the operator to only upgrade manually applied CRDs. This meant
    that resources applied by helm were not upgraded at all. The solution was to remove the restriction
    we had on querying the label app.kubernetes.io/managed-by=opentelemetry-operator, thereby upgrading
    ALL CRDs in the cluster.

  • collector: Fixes a bug that was preventing upgrade patches from reliably applying. (#3074)
    A bug was discovered in the process of testing the PR that was failing to remove the environment
    variables introduced in the 0.104.0 upgrade. The fix was to take a deepcopy of the object and update that.

  • collector: Don't unnecessarily take ownership of PersistentVolumes and PersistentVolumeClaims (#3042)

  • awsxray-receiver: Switched the protocol of awsxray-receiver to UDP from TCP (#3261)

Components

Release v0.107.0

15 Aug 16:12
b40287d
Compare
Choose a tag to compare

0.107.0

💡 Enhancements 💡

  • instrumentation: introduced ability to set Otel resource attributes based on annotations for instrumentation (#2181)

    resource.opentelemetry.io/your-key: "your-value"

🧰 Bug fixes 🧰

  • collector: Fix example for labels-filter startup parameter --label. (#3201)

Components

Release v0.106.0

07 Aug 15:28
c839f73
Compare
Choose a tag to compare

0.106.0

🧰 Bug fixes 🧰

  • collector: Fixes a bug where the operator would default the PDB in the wrong place. (#3198)
  • operator: The OpenShift dashboard shown namespaces where PodMonitors or ServiceMonitors were created even if they were not associated to OpenTelemetry Collectors. (#3196)
    Now, the dashboard lists only those namespaces where there are OpenTelemetry Collectors.
  • operator: When there were multiple OpenTelemetry Collector, the dashboard doesn't allow to select them individually. (#3189)
  • target allocator: Fix collector to target allocator connection in clusters with proxy. (#3187)
    On clusters with global proxy the collector might fail to talk to target allocator
    because the endpoint is set to <ta-service-name>:port and therefore it will go to proxy
    and request might be forwarded to internet. Clusters with proxy configure NO_PROXY to .svc.cluster.local so
    the calls to this endpoint will not go through the proxy.

Components

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