Releases: open-telemetry/opentelemetry-operator
Release v0.108.0
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 theinstrumentation.opentelemetry.io/container-names
annotation when the multi-instrumentation is enabled (#3090)operator
: Support for Kubernetes1.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
Release v0.106.0
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 configureNO_PROXY
to.svc.cluster.local
so
the calls to this endpoint will not go through the proxy.
Components
Release v0.105.0
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 operatorbundle
: 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
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 version0.104.0
the collector listens onlocalhost
instead of0.0.0.0
by default (collector#8510). To avoid breaking changes thecomponent.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 thespec.mode
field of theOpenTelemetryCollector
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 ofotelcol
CR by makingspec.config.service.pipelines.processors
optional (#3075)
This change makesspec.config.service.pipelines.processors
inOpenTelemetryCollector
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 theopentelemetrycollectors.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 annotationopenshift.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
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
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 endpointopentelemetry_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
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 foroperator.golang.flags
to automatically add the environment variables for GOMAXPROCS and GOMEMLIMIT (#2919, #1456)
A new featuregateoperator.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
Release v0.100.0
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 onOpenTelemetryCollector
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 updatingOpenTelemetryCollector.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)