From 7bd5e48581575d093e00cff187b8754de59a08c1 Mon Sep 17 00:00:00 2001 From: Alex Lebens Date: Thu, 7 May 2026 22:32:07 -0500 Subject: [PATCH] feat: add metrics --- charts/cloudflared/README.md | 1 + charts/cloudflared/templates/common.yaml | 29 +++++++++++++++++++++--- charts/cloudflared/values.yaml | 4 ++++ 3 files changed, 31 insertions(+), 3 deletions(-) diff --git a/charts/cloudflared/README.md b/charts/cloudflared/README.md index 58756d6..7bcb1fc 100644 --- a/charts/cloudflared/README.md +++ b/charts/cloudflared/README.md @@ -27,6 +27,7 @@ Cloudflared Tunnel | Key | Type | Default | Description | |-----|------|---------|-------------| | image | object | `{"pullPolicy":"IfNotPresent","repository":"cloudflare/cloudflared","tag":"2026.3.0@sha256:6b599ca3e974349ead3286d178da61d291961182ec3fe9c505e1dd02c8ac31b0"}` | Default image | +| metrics | object | `{"enabled":true}` | Metrics | | name | string | `""` | Name override of release | | protocol | string | `"auto"` | Protocol - Available values are auto, http2, and quic. | | resources | object | `{"requests":{"cpu":"1m","memory":"20Mi"}}` | Default resources | diff --git a/charts/cloudflared/templates/common.yaml b/charts/cloudflared/templates/common.yaml index c93ba09..ae61acd 100644 --- a/charts/cloudflared/templates/common.yaml +++ b/charts/cloudflared/templates/common.yaml @@ -22,6 +22,9 @@ controllers: - --protocol - {{ .Values.protocol }} - --no-autoupdate + {{- if .Values.metrics.enabled }} + - --metrics 0.0.0.0:20241 + {{- end }} - run - --token - $(CF_MANAGED_TUNNEL_TOKEN) @@ -32,10 +35,30 @@ controllers: name: {{ include "secret.name" . }} key: {{ include "secret.key" . }} resources: - {{- with .Values.resources }} - resources: + {{- with .Values.resources }} {{- toYaml . | nindent 10 }} - {{ end }} + {{ end }} +{{- if .Values.metrics.enabled }} +service: + main: + controller: main + ports: + metrics: + port: 20241 + targetPort: 20241 +serviceMonitor: + main: + selector: + matchLabels: + app.kubernetes.io/name: {{ include "cloudflared.name" . }} + app.kubernetes.io/instance: {{ include "cloudflared.name" . }} + serviceName: '{{ include "bjw-s.common.lib.chart.names.fullname" $ }}' + endpoints: + - port: metrics + interval: 30s + scrapeTimeout: 10s + path: /metrics +{{- end }} {{- end -}} {{- $_ := mergeOverwrite .Values (include "cloudflared.hardcodedValues" . | fromYaml) -}} diff --git a/charts/cloudflared/values.yaml b/charts/cloudflared/values.yaml index f115439..f2bd865 100644 --- a/charts/cloudflared/values.yaml +++ b/charts/cloudflared/values.yaml @@ -4,6 +4,10 @@ name: "" # -- Protocol - Available values are auto, http2, and quic. protocol: auto +# -- Metrics +metrics: + enabled: true + # -- Secret configuration secret: