diff --git a/.changeset/tall-trams-play.md b/.changeset/tall-trams-play.md new file mode 100644 index 0000000..c60c114 --- /dev/null +++ b/.changeset/tall-trams-play.md @@ -0,0 +1,5 @@ +--- +"helm-charts": minor +--- + +Supports passing additional arguments to the check-alerts task. This allows setting the concurrency and sourceTimeoutMs through helm. diff --git a/.github/workflows/chart-test-legacy.yml b/.github/workflows/chart-test-legacy.yml index b9e5c6f..62b6f10 100644 --- a/.github/workflows/chart-test-legacy.yml +++ b/.github/workflows/chart-test-legacy.yml @@ -63,7 +63,7 @@ jobs: - name: Run Helm unit tests run: | - helm plugin install https://github.com/helm-unittest/helm-unittest.git || true + helm plugin install https://github.com/helm-unittest/helm-unittest.git --version v1.0.3 ${{ runner.debug && '--debug' || ''}} || true helm unittest charts/hdx-oss-v2 - name: Deploy hdx-oss-v2 chart diff --git a/.github/workflows/chart-test.yml b/.github/workflows/chart-test.yml index 5cb7392..ca2917a 100644 --- a/.github/workflows/chart-test.yml +++ b/.github/workflows/chart-test.yml @@ -63,7 +63,7 @@ jobs: - name: Run Helm unit tests run: | - helm plugin install https://github.com/helm-unittest/helm-unittest.git || true + helm plugin install https://github.com/helm-unittest/helm-unittest.git --version v1.0.3 ${{ runner.debug && '--debug' || ''}} || true helm unittest charts/clickstack - name: Deploy ClickStack chart diff --git a/.github/workflows/helm-test-legacy.yaml b/.github/workflows/helm-test-legacy.yaml index d6fa1a9..b48e443 100644 --- a/.github/workflows/helm-test-legacy.yaml +++ b/.github/workflows/helm-test-legacy.yaml @@ -29,7 +29,7 @@ jobs: - name: Install helm-unittest plugin run: | - helm plugin install https://github.com/helm-unittest/helm-unittest.git + helm plugin install https://github.com/helm-unittest/helm-unittest.git --version v1.0.2 ${{ runner.debug && '--debug' || ''}} - name: Run helm-unittest run: | diff --git a/.github/workflows/helm-test.yaml b/.github/workflows/helm-test.yaml index 7f27f33..83e38f0 100644 --- a/.github/workflows/helm-test.yaml +++ b/.github/workflows/helm-test.yaml @@ -29,7 +29,7 @@ jobs: - name: Install helm-unittest plugin run: | - helm plugin install https://github.com/helm-unittest/helm-unittest.git + helm plugin install https://github.com/helm-unittest/helm-unittest.git --version v1.0.3 ${{ runner.debug && '--debug' || ''}} - name: Run helm-unittest run: | diff --git a/charts/clickstack/templates/cronjobs/task-checkAlerts.yaml b/charts/clickstack/templates/cronjobs/task-checkAlerts.yaml index 21ae372..d081c77 100644 --- a/charts/clickstack/templates/cronjobs/task-checkAlerts.yaml +++ b/charts/clickstack/templates/cronjobs/task-checkAlerts.yaml @@ -28,9 +28,23 @@ spec: imagePullPolicy: {{ .Values.hyperdx.image.pullPolicy }} {{- $tag := .Values.hyperdx.image.tag | default .Chart.AppVersion -}} {{- if and (regexMatch "^[0-9]+\\.[0-9]+\\.[0-9]+" $tag) (semverCompare "< 2.7.0" $tag) }} # before esbuild revert - command: ["node", "/app/packages/api/tasks/index", "check-alerts"] + command: + - "node" + - "/app/packages/api/tasks/index" + - "check-alerts" + {{- range $key, $value := .Values.tasks.checkAlerts.additionalArgs }} + - "--{{ $key }}" + - "{{ $value }}" + {{- end }} {{- else }} - command: ["node", "/app/packages/api/build/tasks/index.js", "check-alerts"] # after esbuild revert + command: # after esbuild revert + - "node" + - "/app/packages/api/build/tasks/index.js" + - "check-alerts" + {{- range $key, $value := .Values.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 920f5bf..5acebcd 100644 --- a/charts/clickstack/tests/task-checkAlerts_test.yaml +++ b/charts/clickstack/tests/task-checkAlerts_test.yaml @@ -154,3 +154,63 @@ tests: - equal: path: spec.jobTemplate.spec.template.spec.containers[0].command value: ["node", "/app/packages/api/build/tasks/index.js", "check-alerts"] + + - it: should not include additionalArgs when empty + set: + tasks: + enabled: true + checkAlerts: + additionalArgs: {} + hyperdx: + image: + tag: "2.8.0" + asserts: + - equal: + path: spec.jobTemplate.spec.template.spec.containers[0].command + value: ["node", "/app/packages/api/build/tasks/index.js", "check-alerts"] + + - it: should include additionalArgs with -- prefix in command + set: + tasks: + enabled: true + checkAlerts: + additionalArgs: + concurrency: 6 + sourceTimeoutMs: 90000 + hyperdx: + image: + tag: "2.8.0" + asserts: + - contains: + path: spec.jobTemplate.spec.template.spec.containers[0].command + content: "--concurrency" + - contains: + path: spec.jobTemplate.spec.template.spec.containers[0].command + content: "6" + - contains: + path: spec.jobTemplate.spec.template.spec.containers[0].command + content: "--sourceTimeoutMs" + - contains: + path: spec.jobTemplate.spec.template.spec.containers[0].command + content: "90000" + + - it: should include additionalArgs in pre-esbuild command path + set: + tasks: + enabled: true + checkAlerts: + additionalArgs: + concurrency: 4 + hyperdx: + image: + tag: "2.6.0" + asserts: + - contains: + path: spec.jobTemplate.spec.template.spec.containers[0].command + content: "/app/packages/api/tasks/index" + - contains: + path: spec.jobTemplate.spec.template.spec.containers[0].command + content: "--concurrency" + - contains: + path: spec.jobTemplate.spec.template.spec.containers[0].command + content: "4" diff --git a/charts/clickstack/values.yaml b/charts/clickstack/values.yaml index fa6973a..57f36fe 100644 --- a/charts/clickstack/values.yaml +++ b/charts/clickstack/values.yaml @@ -467,6 +467,17 @@ tasks: enabled: false checkAlerts: schedule: "*/1 * * * *" # Runs every 1 minute + + additionalArgs: + {} + # Additional command line arguments can be supplied to the check-alerts + # task by defining the param as a key/value pair. These are passed to the + # task without validation in the helm chart. + # + # Examples: + # concurrency: 6 + # sourceTimeoutMs: 90000 + resources: limits: cpu: 200m