|
2 | 2 |
|
3 | 3 | <!-- next version --> |
4 | 4 |
|
| 5 | +## 0.138.0 |
| 6 | + |
| 7 | + |
| 8 | +### 💡 Enhancements 💡 |
| 9 | + |
| 10 | +- `collector`: Migrate simple OpenTelemetryCollector validations from the webhook to CRD annotations so Kubernetes enforces them server-side. () |
| 11 | + |
| 12 | +### 🛑 Breaking changes 🛑 |
| 13 | + |
| 14 | +- `target allocator`: Remove the operator.collector.targetallocatorcr feature flag (#2422) |
| 15 | + This behavior has been enabled by default since version 0.127.0. |
| 16 | + |
| 17 | +### 🚩 Deprecations 🚩 |
| 18 | + |
| 19 | +- `auto-instrumentation`: Deprecate VolumeSizeLimit in the Instrumentation CRD (#3382) |
| 20 | + - The `volumeSizeLimit` field is deprecated. |
| 21 | + - Use `spec.<lang>.volume.size` instead of `spec.<lang>.volumeSizeLimit`. |
| 22 | + - The validating webhook emits a warning when `volumeSizeLimit` is used. |
| 23 | + |
| 24 | +### 🧰 Bug fixes 🧰 |
| 25 | + |
| 26 | +- `target allocator`: Add missing TA ownership watches to cert-manager Certificate and Issuer (#4368) |
| 27 | +- `collector`: Set the log level to 4 when default pdb is created. () |
| 28 | +- `collector`: Fix autoscaler not scaling above minReplicas; replicas now respect the scale subresource and never fall below autoscaler.minReplicas. (#4400) Also rename helper `GetInitialReplicas` to `GetDesiredReplicas` to reflect reconcile-time behavior. |
| 29 | + |
| 30 | + |
| 31 | +### Components |
| 32 | + |
| 33 | +* [OpenTelemetry Collector - v0.138.0](https://github.com/open-telemetry/opentelemetry-collector/releases/tag/v0.138.0) |
| 34 | +* [OpenTelemetry Contrib - v0.138.0](https://github.com/open-telemetry/opentelemetry-collector-contrib/releases/tag/v0.138.0) |
| 35 | +* [Java auto-instrumentation - v1.33.6](https://github.com/open-telemetry/opentelemetry-java-instrumentation/releases/tag/v1.33.6) |
| 36 | +* [.NET auto-instrumentation - v1.2.0](https://github.com/open-telemetry/opentelemetry-dotnet-instrumentation/releases/tag/v1.2.0) |
| 37 | +* [Node.JS - v0.64.1](https://github.com/open-telemetry/opentelemetry-js/releases/tag/experimental%2Fv0.64.1) |
| 38 | +* [Python - v0.59b0](https://github.com/open-telemetry/opentelemetry-python-contrib/releases/tag/v0.59b0) |
| 39 | +* [Go - v0.22.1](https://github.com/open-telemetry/opentelemetry-go-instrumentation/releases/tag/v0.22.1) |
| 40 | +* [ApacheHTTPD - 1.0.4](https://github.com/open-telemetry/opentelemetry-cpp-contrib/releases/tag/webserver%2Fv1.0.4) |
| 41 | +* [Nginx - 1.0.4](https://github.com/open-telemetry/opentelemetry-cpp-contrib/releases/tag/webserver%2Fv1.0.4) |
| 42 | + |
5 | 43 | ## 0.137.0 |
6 | 44 |
|
7 | 45 | ### 🛑 Breaking changes 🛑 |
|
21 | 59 | - This change adds validation for collector ports specified in the configuration file. |
22 | 60 | - Ports must be within the range of 1 to 65535; otherwise, an error will be raised during CR creation. |
23 | 61 | - This helps prevent misconfigurations that could lead to runtime errors. |
24 | | - |
| 62 | + |
25 | 63 |
|
26 | 64 | ### 🧰 Bug fixes 🧰 |
27 | 65 |
|
28 | 66 | - `collector`: Respect telemetry metrics readers when deriving the internal metrics endpoint. (#4049, #4233) |
29 | 67 | - Fixes monitoring Service and container port mismatches when `.spec.config.service.telemetry.metrics.readers[].pull.exporter.prometheus.port` is set. |
30 | 68 | - Defaults remain `0.0.0.0:8888` when neither address nor a Prometheus reader is configured. |
31 | | - |
| 69 | + |
32 | 70 | - `target allocator, opamp`: Fix version not being updated after version upgrade. (#4378) |
33 | 71 | - `target-allocator`: Fixed potential duplicate scrape targets caused by Prometheus relabeling. (#3617) |
34 | 72 | - `auto-instrumentation`: Fix nginxCloneScriptTemplate for old shells (#3651) |
|
55 | 93 | This feature introduced two issues: |
56 | 94 | 1. upgrade failure because the default stateful serviceName changed |
57 | 95 | 2. the statefulset serviceName field is mutable, therefore a change of the collector serviceName field is not applied |
58 | | - |
| 96 | + |
59 | 97 |
|
60 | 98 | ### Components |
61 | 99 |
|
|
76 | 114 | - `collector, target allocator`: Add TrafficDistribution support for OpenTelemetryCollector and TargetAllocator Services (#4285) |
77 | 115 | The TrafficDistribution field is now available in OpenTelemetryCollector and TargetAllocator. |
78 | 116 | This field allows setting the traffic distribution policy for Kubernetes Services. |
79 | | - |
| 117 | + |
80 | 118 |
|
81 | 119 | ### Components |
82 | 120 |
|
|
218 | 256 | - `collector`: Add support for extraLabels in ServiceMonitor creation (#4138) |
219 | 257 | Added extraLabels field to MetricsConfigSpec in v1beta1 API to allow custom labels on ServiceMonitor resources. |
220 | 258 | This enables users to add additional labels to ServiceMonitors created by the operator for better organization and filtering. |
221 | | - |
| 259 | + |
222 | 260 | - `manager, target-allocator, opamp-bridge, must-gather`: add -trimpath when building binaries (#4078) |
223 | 261 | - `collector, targer allocator, opamp`: Require Go 1.24+ to build the collector, target allocator, and opamp. (#4173) |
224 | 262 | - `collector`: Added RBAC permissions for config.extensions.k8s_observer. (#4113) |
225 | 263 | Generating RBAC rules for the k8s_observer extension in the OpenTelemetry Collector when used in the operator. |
226 | 264 | The change addresses the issue where the collector lacked necessary permissions to list and watch Kubernetes resources. |
227 | | - |
| 265 | + |
228 | 266 | - `auto-instrumentation`: Upgrade urllib3 upper limit following Python 3.8 support drop (#3712) |
229 | 267 |
|
230 | 268 | ### 🧰 Bug fixes 🧰 |
|
234 | 272 | - `target allocator`: check CRD availability before registering informers (#3987) |
235 | 273 | - `target allocator`: Allow collector to use TLS Config from Target Allocator with ScrapeConfig (#3724) |
236 | 274 | This change allows the target allocator to configure TLS Config for a collector using the ScrapeConfig. |
237 | | - |
| 275 | + |
238 | 276 |
|
239 | 277 | ### Components |
240 | 278 |
|
|
259 | 297 |
|
260 | 298 | - `controller`: Harmonize CLI and env var configuration to allow setting all configuration (#3565) |
261 | 299 | In order of priority, the default configuration is assigned first, overwritten by environment variables and CLI arguments successively. |
262 | | - |
| 300 | + |
263 | 301 | - `managementState`: managementState property on resources is no longer a required field since it has a default value as managed (#4076) |
264 | 302 | - `operator`: Support for Kubernetes `1.33` version. (#4048) |
265 | 303 | - `target allocator`: Adds support for HTML output in the target allocator. (#3622) |
|
297 | 335 |
|
298 | 336 | - `collector`: Move validation to be part of the CRD for sidecar mode (#3319) |
299 | 337 | - `target allocator`: Promote the operator.collector.targetallocatorcr feature flag to Beta (#2422) |
300 | | - |
301 | | - As a result of this change, when the target allocator section is enabled in the Collector CR, |
| 338 | + |
| 339 | + As a result of this change, when the target allocator section is enabled in the Collector CR, |
302 | 340 | this now creates a TargetAllocator CR instead of generating the manifests directly. Behavior should otherwise be |
303 | | - unchanged. You can go back to the previous behaviour by passing the |
| 341 | + unchanged. You can go back to the previous behaviour by passing the |
304 | 342 | `--feature-gates=-operator.collector.targetallocatorcr` command-line option to the operator. |
305 | | - |
| 343 | + |
306 | 344 | - `collector`: Set the default spec.replicas to 1 in the OpenTelemetryCollector CRD. (#4042) |
307 | | - |
| 345 | + |
308 | 346 | This default no longer relies on the admission webhook. |
309 | | - |
| 347 | + |
310 | 348 |
|
311 | 349 | ### 🧰 Bug fixes 🧰 |
312 | 350 |
|
313 | 351 | - `collector, target allocator`: Fix operator RBAC for managing targetallocator finalizers on OpenShift. (#4069) |
314 | 352 | On OpenShift `OwnerReferencesPermissionEnforcement` is enabled by default, which requires the operator to have permissions to remove finalizers from resources it owns. |
315 | 353 | https://kubernetes.io/docs/reference/access-authn-authz/admission-controllers/#ownerreferencespermissionenforcement |
316 | | - |
| 354 | + |
317 | 355 | - `target allocator`: Add app.kubernetes.io/managed-by label to Target Allocator CRs created by the Collector CR (#4025) |
318 | 356 | - `target allocator`: Fixes an issue where the same target from two different jobs was being allocated for only one job (#4044) |
319 | 357 |
|
|
366 | 404 |
|
367 | 405 | - `webhook`: Allow to run the operator without the OpenTelemetry CRDs present (#3568) |
368 | 406 | Skip registering the webhook and keep the operator working in case the OpenTelemetryCollector CRDs are not deployed. |
369 | | - |
| 407 | + |
370 | 408 |
|
371 | 409 | ### 🧰 Bug fixes 🧰 |
372 | 410 |
|
373 | 411 | - `collector`: Fixes container port duplication for user-provided and operator inferred ports (#3950) |
374 | 412 | This patch improves container port collisions when the user defines additional ports in the CR. |
375 | | - |
| 413 | + |
376 | 414 | When ports are specified in the CR: |
377 | 415 | - If a port number from the CR matches a port inferred from the config, the inferred port is removed |
378 | 416 | - If a port name from the CR matches an inferred port name, the inferred port is renamed to "port-{number}" |
379 | | - |
| 417 | + |
380 | 418 | - `collector`: Prevent the operator from overriding the env vars defined by the user in the OpenTelemetryCollector spec. (#3963) |
381 | 419 | This change ensures that the operator does not override the environment variables defined by the user in the OpenTelemetryCollector spec. |
382 | 420 | It combines user-defined environment variables with automatically inferred ones, giving precedence to user-defined ones. |
383 | | - |
| 421 | + |
384 | 422 | - `opamp`: Fix config loading priority (#3928) |
385 | 423 | - `target allocator`: Fix config loading priority (#3928) |
386 | 424 | - `collector`: Set the `statusReplicas` field for the `DaemonSet` (#3930) |
|
397 | 435 | host: '0.0.0.0' |
398 | 436 | port: 8888 |
399 | 437 | ``` |
400 | | - |
| 438 | + |
401 | 439 | The following settings exposes metrics without `_total` suffix: |
402 | 440 | ```yaml |
403 | 441 | service: |
404 | 442 | telemetry: |
405 | 443 | address: 0.0.0.0:8888 |
406 | 444 | ```` |
407 | | - |
| 445 | +
|
408 | 446 | - `targetallocator`: Do not override the collector namespace from the config file if the environment variable is not set. (#3976) |
409 | 447 |
|
410 | 448 | ### Components |
|
426 | 464 | - `collector`: Re-try failed upgrades (#3515) |
427 | 465 | The upgrade process runs now in the reconcile loop. |
428 | 466 | In case of an error, the operator re-tries the upgrade with exponential backoff. |
429 | | - |
| 467 | + |
430 | 468 |
|
431 | 469 | ### Components |
432 | 470 |
|
|
452 | 490 | - `collector`: Fix Jaeger query extension default endpoint (#3906) |
453 | 491 | The operator 0.122.0 introduced a fix to add a default endpoint. However, for Jaeger query extension the endpoint |
454 | 492 | was put in the wrong place, causing collector to fail to start due to an incorrect config. |
455 | | - |
| 493 | + |
456 | 494 |
|
457 | 495 | ### Components |
458 | 496 |
|
|
477 | 515 | - the well-known label `app.kubernetes.io/part-of` for `service.namespace` has been removed |
478 | 516 | - the well-known label `app.kubernetes.io/instance` has been added (translates to `service.name`) |
479 | 517 | - `service.namespace` now also uses the Kubernetes namespace name (if `resource.opentelemetry.io/service.namespace` is not set) |
480 | | - |
| 518 | + |
481 | 519 | **You can do the following to avoid breaking changes**: |
482 | | - - `service.version`: Set the version explicitly using `resource.opentelemetry.io/service.version` |
| 520 | + - `service.version`: Set the version explicitly using `resource.opentelemetry.io/service.version` |
483 | 521 | (not recommended, the version has only been made more specific) |
484 | | - - `service.namespace`: Set the namespace explicitly using `resource.opentelemetry.io/service.namespace` - |
| 522 | + - `service.namespace`: Set the namespace explicitly using `resource.opentelemetry.io/service.namespace` - |
485 | 523 | or just rely on the Kubernetes namespace name, which is now the default |
486 | 524 | - `service.name`: If you have enabled `useLabelsForResourceAttributes`: |
487 | | - Set the name explicitly using `resource.opentelemetry.io/service.name` if `app.kubernetes.io/instance` is used for another purpose |
488 | | - |
| 525 | + Set the name explicitly using `resource.opentelemetry.io/service.name` if `app.kubernetes.io/instance` is used for another purpose |
| 526 | + |
489 | 527 |
|
490 | 528 | ### 💡 Enhancements 💡 |
491 | 529 |
|
|
525 | 563 | - `auto-instrumentation`: Enhanced Java auto-instrumentation with improved volume mount paths and configuration options (#3843) |
526 | 564 | - Added support for unique volume mount paths for Java instrumentation |
527 | 565 | - Improved configuration options for Java auto-instrumentation |
528 | | - - Enhanced stability and reliability of Java instrumentation process |
| 566 | + - Enhanced stability and reliability of Java instrumentation process |
529 | 567 | - `target allocator`: Add support for setting the allowNamespaces and denyNamespaces in the target allocator. |
530 | 568 | (#3086) |
531 | 569 | allowNamespaces can be set to an empty list to watch all namespaces (default) or to list of namespaces to watch. |
532 | 570 | denyNamespaces can be set to an empty list to deny watching any namespaces (default) or to a list of namespaces to deny watching. |
533 | | - |
| 571 | + |
534 | 572 | - `target allocator`: Do not assign targets to a collector pod that is not Ready for longer than a non-zero grace period (#3781) |
535 | 573 |
|
536 | 574 | ### 🧰 Bug fixes 🧰 |
@@ -604,7 +642,7 @@ No changes. |
604 | 642 |
|
605 | 643 | - `collector`: Fix config handling with null values. (#3452) |
606 | 644 | Fix the defaulting webhook error `src and dst must not be nil` caused by defaulting a known component with a null value: |
607 | | - e.g. |
| 645 | + e.g. |
608 | 646 | ```yaml |
609 | 647 | receivers: |
610 | 648 | zipkin: |
@@ -651,19 +689,19 @@ No changes. |
651 | 689 | ### 💡 Enhancements 💡 |
652 | 690 |
|
653 | 691 | - `target allocator`: Process discovered targets asyncchronously (#1842) |
654 | | - This change enables the target allocator to process discovered targets asynchronously. |
655 | | - This is a significant performance improvement for the target allocator, as it allows it to process targets in parallel, rather than sequentially. |
| 692 | + This change enables the target allocator to process discovered targets asynchronously. |
| 693 | + This is a significant performance improvement for the target allocator, as it allows it to process targets in parallel, rather than sequentially. |
656 | 694 | This change also introduces new metrics to track the performance of the target allocator. |
657 | 695 | - opentelemetry_allocator_process_targets_duration_seconds: The duration of the process targets operation. |
658 | 696 | - opentelemetry_allocator_process_target_groups_duration_seconds: The duration of the process target groups operation. |
659 | | - |
| 697 | + |
660 | 698 |
|
661 | 699 | ### 🧰 Bug fixes 🧰 |
662 | 700 |
|
663 | 701 | - `operator`: Fix the admission webhook to when metrics service address host uses env var expansion (#3513) |
664 | 702 | This should allow the metrics service address to have the host portion expanded from an environment variable, |
665 | 703 | like `$(env:POD_IP)` instead of using `0.0.0.0`, which is the [recommended by the Collector](https://github.com/open-telemetry/opentelemetry-collector/blob/main/docs/security-best-practices.md#safeguards-against-denial-of-service-attacks). |
666 | | - |
| 704 | + |
667 | 705 | - `auto-instrumentation`: Apache instrumentation sidecar fails to start if target container define lifecycle (#3547) |
668 | 706 | - `collector`: Fix deletion of optional resources for OpenTelemetryCollector CRs (#3454) |
669 | 707 |
|
|
0 commit comments