From 6719eac73a5ca5fa88f782484b506b9cf09db294 Mon Sep 17 00:00:00 2001 From: Warren Lee <5959690+wrn14897@users.noreply.github.com> Date: Mon, 9 Nov 2026 11:27:39 -0800 Subject: [PATCH] fix(clickstack): start check-alerts CronJob through bin/hyperdx (HDX-5951) On HyperDX images >= 2.22.0 (and non-semver tags) the check-alerts CronJob now runs /app/packages/api/bin/hyperdx task check-alerts, so the image picks its own self-telemetry preload. This mirrors the operator fix in DeploySentinel/hyperdx-operator#314 and is needed once hyperdxio/hyperdx#3575 (ClickStack Node SDK) ships. Older semver tags keep their previous commands. --- .changeset/check-alerts-bin-hyperdx.md | 5 ++ .../hyperdx/cronjob-check-alerts.yaml | 17 +++++- .../tests/task-checkAlerts_test.yaml | 56 ++++++++++++++++++- 3 files changed, 73 insertions(+), 5 deletions(-) create mode 100644 .changeset/check-alerts-bin-hyperdx.md diff --git a/.changeset/check-alerts-bin-hyperdx.md b/.changeset/check-alerts-bin-hyperdx.md new file mode 100644 index 0000000..5872700 --- /dev/null +++ b/.changeset/check-alerts-bin-hyperdx.md @@ -0,0 +1,5 @@ +--- +"helm-charts": patch +--- + +fix(clickstack): start the check-alerts CronJob through `bin/hyperdx` on HyperDX images 2.22.0 and newer, so the task loads the image's own self-telemetry preload. Images built after the switch to the ClickStack Node SDK need this. Older image tags keep their previous command. diff --git a/charts/clickstack/templates/hyperdx/cronjob-check-alerts.yaml b/charts/clickstack/templates/hyperdx/cronjob-check-alerts.yaml index 1068581..8f98dd7 100644 --- a/charts/clickstack/templates/hyperdx/cronjob-check-alerts.yaml +++ b/charts/clickstack/templates/hyperdx/cronjob-check-alerts.yaml @@ -35,7 +35,8 @@ spec: {{- toYaml . | nindent 16 }} {{- end }} {{- $tag := .Values.hyperdx.deployment.image.tag | default .Chart.AppVersion -}} - {{- if and (regexMatch "^[0-9]+\\.[0-9]+\\.[0-9]+" $tag) (semverCompare "< 2.7.0" $tag) }} # before esbuild revert + {{- $semver := regexMatch "^[0-9]+\\.[0-9]+\\.[0-9]+" $tag -}} + {{- if and $semver (semverCompare "< 2.7.0" $tag) }} command: - "node" - "/app/packages/api/tasks/index" @@ -44,8 +45,8 @@ spec: - "--{{ $key }}" - "{{ $value }}" {{- end }} - {{- else }} - command: # after esbuild revert + {{- else if and $semver (semverCompare "< 2.22.0" $tag) }} + command: - "node" - "/app/packages/api/build/tasks/index.js" - "check-alerts" @@ -53,6 +54,16 @@ spec: - "--{{ $key }}" - "{{ $value }}" {{- end }} + {{- else }} + # bin/hyperdx loads the image's own self-telemetry preload + command: + - "/app/packages/api/bin/hyperdx" + - "task" + - "check-alerts" + {{- range $key, $value := .Values.hyperdx.tasks.checkAlerts.additionalArgs }} + - "--{{ $key }}" + - "{{ $value }}" + {{- end }} {{- end }} envFrom: - configMapRef: diff --git a/charts/clickstack/tests/task-checkAlerts_test.yaml b/charts/clickstack/tests/task-checkAlerts_test.yaml index f96e12b..2510713 100644 --- a/charts/clickstack/tests/task-checkAlerts_test.yaml +++ b/charts/clickstack/tests/task-checkAlerts_test.yaml @@ -40,7 +40,7 @@ tests: value: hyperdx/hyperdx:2-beta - equal: path: spec.jobTemplate.spec.template.spec.containers[0].command - value: ["node", "/app/packages/api/build/tasks/index.js", "check-alerts"] + value: ["/app/packages/api/bin/hyperdx", "task", "check-alerts"] - isSubset: path: spec.jobTemplate.spec.template.spec.containers[0].resources content: @@ -186,7 +186,7 @@ tests: path: spec.jobTemplate.spec.template.spec.containers[0].command value: ["node", "/app/packages/api/build/tasks/index.js", "check-alerts"] - - it: should use post-esbuild command path for version 3.0.0 + - it: should use bin/hyperdx command for version 3.0.0 set: hyperdx: tasks: @@ -194,11 +194,63 @@ tests: deployment: image: tag: "3.0.0" + asserts: + - equal: + path: spec.jobTemplate.spec.template.spec.containers[0].command + value: ["/app/packages/api/bin/hyperdx", "task", "check-alerts"] + + - it: should use post-esbuild command path for version 2.21.9 + set: + hyperdx: + tasks: + enabled: true + deployment: + image: + tag: "2.21.9" asserts: - equal: path: spec.jobTemplate.spec.template.spec.containers[0].command value: ["node", "/app/packages/api/build/tasks/index.js", "check-alerts"] + - it: should use bin/hyperdx command for version 2.22.0 + set: + hyperdx: + tasks: + enabled: true + deployment: + image: + tag: "2.22.0" + asserts: + - equal: + path: spec.jobTemplate.spec.template.spec.containers[0].command + value: ["/app/packages/api/bin/hyperdx", "task", "check-alerts"] + + - it: should use bin/hyperdx command for the default appVersion + set: + hyperdx: + tasks: + enabled: true + asserts: + - equal: + path: spec.jobTemplate.spec.template.spec.containers[0].command + value: ["/app/packages/api/bin/hyperdx", "task", "check-alerts"] + + - it: should include additionalArgs in bin/hyperdx command + set: + hyperdx: + tasks: + enabled: true + checkAlerts: + additionalArgs: + concurrency: 6 + deployment: + image: + tag: "2.39.1" + asserts: + - equal: + path: spec.jobTemplate.spec.template.spec.containers[0].command + value: ["/app/packages/api/bin/hyperdx", "task", "check-alerts", "--concurrency", "6"] + - it: should not include additionalArgs when empty set: hyperdx: