opentelemetry-operator

Kubernetes Operator for OpenTelemetry Collector

APACHE-2.0 License

Stars
1.1K
Committers
183

Bot releases are visible (Hide)

opentelemetry-operator - Release v0.101.0 Latest Release

Published by github-actions[bot] 5 months ago

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

opentelemetry-operator - Release v0.100.1

Published by github-actions[bot] 5 months ago

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

opentelemetry-operator - Release v0.100.0

Published by github-actions[bot] 5 months ago

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

opentelemetry-operator - Release v0.99.0

Published by github-actions[bot] 6 months ago

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

opentelemetry-operator - Release v0.98.0

Published by github-actions[bot] 6 months ago

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

opentelemetry-operator - Release v0.97.1

Published by github-actions[bot] 7 months ago

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

opentelemetry-operator - Release v0.97.0

Published by github-actions[bot] 7 months ago

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

opentelemetry-operator - Release v0.96.0

Published by github-actions[bot] 7 months ago

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

opentelemetry-operator - Release v0.95.0

Published by github-actions[bot] 8 months ago

0.95.0

🛑 Breaking changes 🛑

  • operator: remove featuregate EnableApacheHTTPAutoInstrumentationSupport. Use command line flag --enable-apache-httpd-instrumentation instead (#2582, #2670)
  • operator: change multi instrumentation feature gate into command line flag --enable-multi-instrumentation (#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

opentelemetry-operator - Release v0.94.0

Published by github-actions[bot] 8 months ago

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

opentelemetry-operator - Release v0.93.0

Published by github-actions[bot] 9 months ago

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

opentelemetry-operator - Release v0.92.1

Published by github-actions[bot] 9 months ago

💡 Enhancements 💡

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

🧰 Bug fixes 🧰

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

Components

opentelemetry-operator - Release v0.92.0

Published by github-actions[bot] 9 months ago

🛑 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

opentelemetry-operator - Release v0.91.0

Published by github-actions[bot] 10 months ago

🛑 Breaking changes 🛑

  • target allocator: Remove configuration hot reloading from target allocator (#2032)
    This only affects use of target allocator without the operator.

💡 Enhancements 💡

  • target allocator: Create ServiceMonitor to monitor target allocator (#2311)
  • collector: Add Loki parser to extract loki service port from config (#1825)
  • operator: Bump Apache httpd version (#2463)
  • operator: Bump NodeJS dependencies. (#2459)
  • operator: Bump python autoinstrumentation version to 1.22.0/0.43b0 (#2460)
  • operator: Add version label to target allocator resources (#2454)
  • operator: Support for Kubernetes 1.29 version. (#2458)
  • target allocator: PDB support for target allocator (#2261)
  • operator: enables the operator to create subject access reviews for different required permissions.(#2426)

🧰 Bug fixes 🧰

  • target allocator: Fix ServiceAccount naming for target allocator (#2443)
  • operator: add missing appProtocol in opencensus receiver(#2487)

Components

opentelemetry-operator - Release v0.90.0

Published by github-actions[bot] 11 months ago

opentelemetry-operator - Release v0.89.0

Published by github-actions[bot] 11 months ago

🛑 Breaking changes 🛑

  • autoinstrumentation: Bump Go auto instrumentation version to v0.8.0-alpha (#2358)
    The default export protocol was switched from grpc to http/proto
  • target allocator: Disable configuration hot reload (#2032)
    This feature can be re-enabled by passing the --reload-config flag to the target allocator.
    However, this is deprecated and will be removed in an upcoming release.

💡 Enhancements 💡

  • target allocator: add healthcheck endpoint to TA (#2258)
  • OpAMP Bridge: Sends a heartbeat from the bridge and brings the annotation to spec. (#2132)
  • operator: Added updateStrategy for DaemonSet mode. (#2107)
  • operator: add target allocator affinity configuration (#2263)
  • Operator: Added the service.instance.id as the pod.UID into the traces resource Env. (#1921)
  • operator: Support configuring images via RELATED_IMAGE_ environment variables (#2326)
  • target allocator: Declare and use ContainerPort for Target Allocator (#2312)
  • target allocator: Add logging for prometheus operator in TargetAllocator's config generator (#2348)

🧰 Bug fixes 🧰

  • target allocator: Update file watcher to detect file write events (#2349)

  • target allocator: Run the target allocator as a non-root user (#738)
    Some Kubernetes configurations do not allow running images as root, so
    provide a non-zero UID in the Docker image.

  • operator: Truncate sidecar.opentelemetry.io/injected sidecar pod label to 63 characters (#1031)

Components

opentelemetry-operator - Release v0.88.0

Published by github-actions[bot] 12 months ago

0.88.0

🛑 Breaking changes 🛑

  • OpAMP Bridge: Currently, the bridge doesn't adhere to the spec for the naming structure. This changes the bridge to use the / structure as described. (#2131)
    • Updates the bridge to get collectors using the reporting annotation
    • Fixes a bug where we were using the incorrect structure for the collectors

💡 Enhancements 💡

  • operator-opamp-bridge: Creates the CRD for the OpAMPBridge resource (#1368)
  • autoinstrumentation: Bump OpenTelemetry .NET Automatic Instrumentation to 1.1.0 (#2252)
  • operator: Bump NodeJS dependencies. Also, increase the size of the default size for the volume used to copy the autoinstrumentation libraries from 150M to 200M (#2240, #2237)

🧰 Bug fixes 🧰

  • Operator: Fixed the labeling process which was broken at the moment to capture the current image tag when the users set the sha256 reference. (#1982)
  • target allocator: reset kubeconfig to empty string when using in-cluster config (#2262)

Components

opentelemetry-operator - Release v0.87.0

Published by github-actions[bot] about 1 year ago

🛑 Breaking changes 🛑

  • OpAMP Bridge: This PR simplifies the bridge's configuration and logging by renaming and removing fields. (#1368)
    components_allowed => componentsAllowed
    protocol which is now inferred from endpoint
    capabilities []string => map[Capability]bool for enhanced configuration validation
  • operator: Enable Target Allocator Rewrite by default (#2208)
    See the documentation for details.
    Use the --feature-gates=-operator.collector.rewritetargetallocator command line option to switch back to the old behaviour.

💡 Enhancements 💡

  • operator: updating the operator to use the Collector's debug exporter in replacement of the deprecated logging exporter (#2130)
  • operator: Publish operator images for I IBM P/Z (linux/s390x,linux/ppc64le) architectures. (#2215)
  • Documentation: Add diagrams to Target Allocator Readme. (#2229)
  • target allocator: Add rate limiting for scrape config updates (#1544)

🧰 Bug fixes 🧰

  • operator: Set the security context for the init containers of the Apache HTTPD instrumentation (#2050)

Components

opentelemetry-operator - Release v0.86.0

Published by github-actions[bot] about 1 year ago

🛑 Breaking changes 🛑

  • operator: Get rid of autoscaling/v2beta2 (#2145)
    Kubernetes 1.23 is the minimum available version everywhere after 1.22 deprecation,
    due to it, the minimum required version has been updated to it, dropping support for
    autoscaling/v2beta2

💡 Enhancements 💡

  • operator: Add support for multi instrumentation (#1717)
  • operator: Implementation of new Nginx autoinstrumentation. (#2033)
  • operator: Add PDB support for OpenTelemetryCollector (#2136)
    This PR adds support for PodDisruptionBudgets when OpenTelemetryCollector is deployed
    as deployment or statefulset.
  • operator: Add support for Tolerations on target allocator (#2172)
  • autoinstrumentation: Bump OpenTelemetry .NET Automatic Instrumentation to 1.0.2 (#2168)
  • target allocator: Enable discovery manager metrics in target allocator (#2170)
  • target allocator: Allow target allocator to be completely configured via the config file (#2129)
  • operator: Propagate proxy environment variables to operands. (#2146)
  • autoinstrumentation: Bump python autoinstrumentation version to 1.20.0/0.41b0 (#2192)

🧰 Bug fixes 🧰

  • autoinstrumentation: Fix .NET Automatic Instrumentation for alpine based images configured by namespace annotations (#2179)
  • operator: fixes scenario where an old CRD would cause the operator to default to an unmanaged state (#2039)
  • target allocator: Rebuild targets on scrape config regex-only changes (#1358, #1926)

Components

opentelemetry-operator - Release v0.85.0

Published by github-actions[bot] about 1 year ago

💡 Enhancements 💡

  • autoinstrumentation: .NET Automatic Instrumentation support for Alpine-based images (#1849)
  • operator: Allow the collector CRD to specify a list of configmaps to mount (#1819)
  • autoinstrumentation: Bump Go auto-instrumentation support to v0.3.0-alpha. (#2123)
  • operator: Introduces a new method of reconciliation to reduce duplication and complexity (#1959)

🧰 Bug fixes 🧰

  • operator: Run the upgrade mechanism when there is a change in an instance to ensure it is upgraded. This is useful for cases where the instance uses the unmanaged state, the operator is upgraded and the instance changes to use a managed state. (#1890)

Components

Package Rankings
Top 2.08% on Proxy.golang.org
Badges
Extracted from project README
Continuous Integration Go Report Card GoDoc Contributors
Related Projects