From 083e3dd131026a7441186cfdfa2b15e95c8c44bc Mon Sep 17 00:00:00 2001 From: Dan Hable Date: Fri, 27 Mar 2026 14:46:09 -0500 Subject: [PATCH 1/2] fix: make -app suffix conditional on fullnameOverride (HDX-3850) The -app suffix was hardcoded on the HyperDX Deployment and Service names, so fullnameOverride could never give full control over naming. Add a clickstack.hyperdx.fullname helper that omits the -app suffix when fullnameOverride is set, while keeping it for the default case to preserve backward compatibility. Made-with: Cursor --- charts/clickstack/templates/NOTES.txt | 2 +- charts/clickstack/templates/_helpers.tpl | 13 +++++++++++++ charts/clickstack/templates/hyperdx/deployment.yaml | 2 +- charts/clickstack/templates/hyperdx/ingress.yaml | 4 ++-- charts/clickstack/templates/hyperdx/service.yaml | 2 +- charts/clickstack/tests/helpers_test.yaml | 12 ++++++++++-- charts/clickstack/values.yaml | 2 +- examples/alb-ingress/values.yaml | 4 ++-- 8 files changed, 31 insertions(+), 10 deletions(-) diff --git a/charts/clickstack/templates/NOTES.txt b/charts/clickstack/templates/NOTES.txt index 0823057..3f75196 100644 --- a/charts/clickstack/templates/NOTES.txt +++ b/charts/clickstack/templates/NOTES.txt @@ -28,7 +28,7 @@ Application Access: --set hyperdx.ingress.tls.enabled=true 2. Port Forward (Development/Testing): - kubectl port-forward svc/{{ include "clickstack.fullname" . }}-app {{ .Values.hyperdx.ports.app }}:{{ .Values.hyperdx.ports.app }} + kubectl port-forward svc/{{ include "clickstack.hyperdx.fullname" . }} {{ .Values.hyperdx.ports.app }}:{{ .Values.hyperdx.ports.app }} Then access: http://localhost:{{ .Values.hyperdx.ports.app }} Note: This application handles sensitive telemetry data and should not be exposed diff --git a/charts/clickstack/templates/_helpers.tpl b/charts/clickstack/templates/_helpers.tpl index e498dcf..913dfcf 100644 --- a/charts/clickstack/templates/_helpers.tpl +++ b/charts/clickstack/templates/_helpers.tpl @@ -21,6 +21,19 @@ Create a default fully qualified app name. {{- end }} {{- end }} +{{/* +HyperDX app resource name. When fullnameOverride is set the user expects full +control over naming, so the -app suffix is omitted. Without the override the +suffix is kept for backward compatibility. +*/}} +{{- define "clickstack.hyperdx.fullname" -}} +{{- if .Values.fullnameOverride -}} +{{- .Values.fullnameOverride | trunc 63 | trimSuffix "-" -}} +{{- else -}} +{{- printf "%s-app" (include "clickstack.fullname" .) -}} +{{- end -}} +{{- end -}} + {{/* Create chart name and version as used by the chart label. */}} diff --git a/charts/clickstack/templates/hyperdx/deployment.yaml b/charts/clickstack/templates/hyperdx/deployment.yaml index 5d8f500..05d1543 100644 --- a/charts/clickstack/templates/hyperdx/deployment.yaml +++ b/charts/clickstack/templates/hyperdx/deployment.yaml @@ -1,7 +1,7 @@ apiVersion: apps/v1 kind: Deployment metadata: - name: {{ include "clickstack.fullname" . }}-app + name: {{ include "clickstack.hyperdx.fullname" . }} labels: {{- include "clickstack.labels" . | nindent 4 }} app: {{ include "clickstack.fullname" . }} diff --git a/charts/clickstack/templates/hyperdx/ingress.yaml b/charts/clickstack/templates/hyperdx/ingress.yaml index 3caf7f9..b5c0af7 100644 --- a/charts/clickstack/templates/hyperdx/ingress.yaml +++ b/charts/clickstack/templates/hyperdx/ingress.yaml @@ -2,7 +2,7 @@ apiVersion: networking.k8s.io/v1 kind: Ingress metadata: - name: {{ include "clickstack.fullname" . }}-app-ingress + name: {{ include "clickstack.hyperdx.fullname" . }}-ingress labels: {{- include "clickstack.labels" . | nindent 4 }} annotations: @@ -37,7 +37,7 @@ spec: pathType: {{ .Values.hyperdx.ingress.pathType | default "ImplementationSpecific" }} backend: service: - name: {{ include "clickstack.fullname" . }}-app + name: {{ include "clickstack.hyperdx.fullname" . }} port: number: {{ .Values.hyperdx.ports.app }} {{- range .Values.hyperdx.ingress.additionalIngresses}} diff --git a/charts/clickstack/templates/hyperdx/service.yaml b/charts/clickstack/templates/hyperdx/service.yaml index cb46686..daa98af 100644 --- a/charts/clickstack/templates/hyperdx/service.yaml +++ b/charts/clickstack/templates/hyperdx/service.yaml @@ -1,7 +1,7 @@ apiVersion: v1 kind: Service metadata: - name: {{ include "clickstack.fullname" . }}-app + name: {{ include "clickstack.hyperdx.fullname" . }} labels: {{- include "clickstack.labels" . | nindent 4 }} {{- if .Values.hyperdx.service.annotations }} diff --git a/charts/clickstack/tests/helpers_test.yaml b/charts/clickstack/tests/helpers_test.yaml index 75be86d..81abfa2 100644 --- a/charts/clickstack/tests/helpers_test.yaml +++ b/charts/clickstack/tests/helpers_test.yaml @@ -22,8 +22,16 @@ tests: asserts: - equal: path: metadata.name - value: direct-override-app - + value: direct-override + + - it: should not append -app suffix when fullnameOverride is set + set: + fullnameOverride: hyperdx-api + asserts: + - equal: + path: metadata.name + value: hyperdx-api + - it: should render common labels correctly asserts: - matchRegex: diff --git a/charts/clickstack/values.yaml b/charts/clickstack/values.yaml index 769f85f..0e7aa97 100644 --- a/charts/clickstack/values.yaml +++ b/charts/clickstack/values.yaml @@ -38,7 +38,7 @@ hyperdx: CLICKHOUSE_ENDPOINT: 'tcp://{{ include "clickstack.clickhouse.svc" . }}:{{ .Values.clickhouse.nativePort }}?dial_timeout=10s' CLICKHOUSE_SERVER_ENDPOINT: '{{ include "clickstack.clickhouse.svc" . }}:{{ .Values.clickhouse.nativePort }}' CLICKHOUSE_PROMETHEUS_METRICS_ENDPOINT: '{{ include "clickstack.clickhouse.svc" . }}:{{ .Values.clickhouse.prometheus.port }}' - OPAMP_SERVER_URL: 'http://{{ include "clickstack.fullname" . }}-app:{{ .Values.hyperdx.ports.opamp }}' + OPAMP_SERVER_URL: 'http://{{ include "clickstack.hyperdx.fullname" . }}:{{ .Values.hyperdx.ports.opamp }}' # ── K8s Secret (clickstack-secret) ─────────────────────── # Shared sensitive environment variables. Used by HyperDX and OTEL collector via envFrom. diff --git a/examples/alb-ingress/values.yaml b/examples/alb-ingress/values.yaml index 25f42e1..30594e6 100644 --- a/examples/alb-ingress/values.yaml +++ b/examples/alb-ingress/values.yaml @@ -63,7 +63,7 @@ additionalManifests: pathType: Prefix backend: service: - name: '{{ include "clickstack.fullname" . }}-app' + name: '{{ include "clickstack.hyperdx.fullname" . }}' port: name: app @@ -101,7 +101,7 @@ additionalManifests: scaleTargetRef: apiVersion: apps/v1 kind: Deployment - name: '{{ include "clickstack.fullname" . }}-app' + name: '{{ include "clickstack.hyperdx.fullname" . }}' minReplicas: 2 maxReplicas: 10 metrics: From 58178af2ad57b09eea38a5c1aba420c7e6bba20e Mon Sep 17 00:00:00 2001 From: Dan Hable Date: Fri, 27 Mar 2026 14:49:24 -0500 Subject: [PATCH 2/2] chore: add changeset for conditional -app suffix fix Made-with: Cursor --- .changeset/conditional-app-suffix.md | 5 +++++ 1 file changed, 5 insertions(+) create mode 100644 .changeset/conditional-app-suffix.md diff --git a/.changeset/conditional-app-suffix.md b/.changeset/conditional-app-suffix.md new file mode 100644 index 0000000..34f63cf --- /dev/null +++ b/.changeset/conditional-app-suffix.md @@ -0,0 +1,5 @@ +--- +"helm-charts": patch +--- + +Make the `-app` suffix on HyperDX Deployment and Service names conditional on `fullnameOverride`. When `fullnameOverride` is set, the suffix is omitted so users get full control over resource naming. The default behavior (no override) is unchanged.