From c44a8afc34db5cbdfb59c7e7b1ecba9c1cca3b4d Mon Sep 17 00:00:00 2001 From: Joris Baum Date: Tue, 1 Sep 2026 16:25:03 +0200 Subject: [PATCH 1/2] Add otel-collector-release based on upstream helm Uses upstream helm chart but our own otel distro * Also configures healthcheck for otel collector --- helmfile.yaml.gotmpl | 60 ++++++++++++++++++++++++++++++++++++++++++++ versions.yaml | 5 ++++ 2 files changed, 65 insertions(+) diff --git a/helmfile.yaml.gotmpl b/helmfile.yaml.gotmpl index 7a97b65f..dde507d8 100644 --- a/helmfile.yaml.gotmpl +++ b/helmfile.yaml.gotmpl @@ -21,6 +21,8 @@ repositories: url: https://istio-release.storage.googleapis.com/charts - name: bitnami url: https://charts.bitnami.com/bitnami + - name: open-telemetry + url: https://open-telemetry.github.io/opentelemetry-helm-charts - name: cilium url: https://helm.cilium.io/ - name: cloudfoundry-k8s @@ -167,6 +169,64 @@ releases: - syslogAgent: certificateSecret: all-in-one-tls + - name: otel-collector + namespace: {{ .Values.systemNamespace }} + chart: open-telemetry/opentelemetry-collector + version: {{ .Values.charts.otelCollector.version }} + needs: + - {{ .Values.systemNamespace }}/base + values: + - mode: deployment + image: + repository: ghcr.io/cloudfoundry/k8s/otel-collector + tag: {{ .Values.charts.otelCollector.imageTag | quote }} + command: + name: "" + ports: + jaeger-compact: + enabled: false + jaeger-thrift: + enabled: false + jaeger-grpc: + enabled: false + zipkin: + enabled: false + alternateConfig: + receivers: + otlp: + protocols: + grpc: + endpoint: 0.0.0.0:4317 + http: + endpoint: 0.0.0.0:4318 + processors: + batch: {} + memory_limiter: + check_interval: 5s + limit_percentage: 80 + spike_limit_percentage: 25 + extensions: + health_check: + endpoint: ${env:MY_POD_IP}:13133 + exporters: + debug: + verbosity: detailed + service: + extensions: [health_check] + pipelines: + metrics: + receivers: [otlp] + processors: [memory_limiter, batch] + exporters: [debug] + logs: + receivers: [otlp] + processors: [memory_limiter, batch] + exporters: [debug] + traces: + receivers: [otlp] + processors: [memory_limiter, batch] + exporters: [debug] + - name: gorouter namespace: {{ .Values.systemNamespace }} chart: {{ .Values.charts.routing.url }} diff --git a/versions.yaml b/versions.yaml index a8f0b7e1..66d4c871 100644 --- a/versions.yaml +++ b/versions.yaml @@ -42,6 +42,11 @@ charts: nfsVolume: url: cloudfoundry-k8s/nfs-volume version: 7.69.0 + otelCollector: + # renovate: dataSource=helm depName=opentelemetry-collector packageName=open-telemetry/opentelemetry-collector + version: 0.172.0 + # renovate: dataSource=github-releases depName=cloudfoundry/otel-collector-release + imageTag: "0.11.10" policyAgent: url: cloudfoundry-k8s/policy-agent # renovate: dataSource=github-releases depName=cloudfoundry/k8s-policy-agent From 8ce110130068d9d61470b143c05d33ba60d51888 Mon Sep 17 00:00:00 2001 From: Joris Baum Date: Tue, 1 Sep 2026 17:39:48 +0200 Subject: [PATCH 2/2] Add new env var to toggle otel-collector otel-collector is still experimental and should not be deployed by default --- helmfile.yaml.gotmpl | 1 + values.yaml.gotmpl | 1 + 2 files changed, 2 insertions(+) diff --git a/helmfile.yaml.gotmpl b/helmfile.yaml.gotmpl index dde507d8..9d90f556 100644 --- a/helmfile.yaml.gotmpl +++ b/helmfile.yaml.gotmpl @@ -173,6 +173,7 @@ releases: namespace: {{ .Values.systemNamespace }} chart: open-telemetry/opentelemetry-collector version: {{ .Values.charts.otelCollector.version }} + installed: {{ .Values.installOtelCollector }} needs: - {{ .Values.systemNamespace }}/base values: diff --git a/values.yaml.gotmpl b/values.yaml.gotmpl index 91a2bfca..d998897c 100644 --- a/values.yaml.gotmpl +++ b/values.yaml.gotmpl @@ -4,6 +4,7 @@ systemNamespace: "cf-system" workloadsNamespace: "cf-workloads" installOptionalComponents: {{ "INSTALL_OPTIONAL_COMPONENTS" | env | default "true" }} +installOtelCollector: {{ "INSTALL_OTEL_COLLECTOR" | env | default "false" }} secrets: dbPassword: {{ requiredEnv "DB_PASSWORD" }} blobstorePassword: {{ requiredEnv "BLOBSTORE_PASSWORD" }}