feat: Add file-based dashboard provisioner - #1962
Merged
kodiakhq[bot] merged 2 commits intoMay 19, 2026
Merged
Conversation
🦋 Changeset detectedLatest commit: 0828fbc The changes in this PR will be included in the next version bump. This PR includes changesets to release 3 packages
Not sure what this means? Click here to learn what changesets are. Click here if you're a maintainer who wants to add another changeset to this PR |
|
@ZeynelKoca is attempting to deploy a commit to the HyperDX Team on Vercel. A member of the Team first needs to authorize it. |
Contributor
PR Review✅ No critical issues found. A few minor observations (non-blocking):
Nice test coverage — both unit ( |
ZeynelKoca
force-pushed
the
feature/dashboard-provisioner
branch
17 times, most recently
from
March 22, 2026 23:40
4c24c45 to
abdafb3
Compare
ZeynelKoca
added a commit
to ZeynelKoca/ClickStack-helm-charts
that referenced
this pull request
Mar 22, 2026
k8s-sidecar watches ConfigMaps labeled "hyperdx.io/dashboard: true" across all namespaces and writes dashboard JSON to a shared volume. HyperDX reads and upserts them natively via file-based provisioner. Requires hyperdxio/hyperdx#1962
ZeynelKoca
force-pushed
the
feature/dashboard-provisioner
branch
5 times, most recently
from
March 23, 2026 12:43
3e9be8a to
ffe6158
Compare
ZeynelKoca
force-pushed
the
feature/dashboard-provisioner
branch
from
March 24, 2026 08:21
ffe6158 to
10ae4d2
Compare
ZeynelKoca
force-pushed
the
feature/dashboard-provisioner
branch
from
April 29, 2026 08:00
6023b15 to
4cc3f83
Compare
Contributor
Author
|
@dhable Gentle bump to avoid the rebase-loop hell |
dhable
approved these changes
Apr 30, 2026
ZeynelKoca
added a commit
to ZeynelKoca/ClickStack-helm-charts
that referenced
this pull request
Jun 30, 2026
k8s-sidecar watches ConfigMaps labeled "hyperdx.io/dashboard: true" across all namespaces and writes dashboard JSON to a shared volume. HyperDX reads and upserts them natively via file-based provisioner. Requires hyperdxio/hyperdx#1962
ZeynelKoca
added a commit
to ZeynelKoca/ClickStack-helm-charts
that referenced
this pull request
Jun 30, 2026
k8s-sidecar watches ConfigMaps labeled "hyperdx.io/dashboard: true" across all namespaces and writes dashboard JSON to a shared volume. HyperDX reads and upserts them natively via file-based provisioner. Requires hyperdxio/hyperdx#1962
ZeynelKoca
added a commit
to ZeynelKoca/ClickStack-helm-charts
that referenced
this pull request
Jun 30, 2026
k8s-sidecar watches ConfigMaps labeled "hyperdx.io/dashboard: true" across all namespaces and writes dashboard JSON to a shared volume. HyperDX reads and upserts them natively via file-based provisioner. Requires hyperdxio/hyperdx#1962
ZeynelKoca
added a commit
to ZeynelKoca/ClickStack-helm-charts
that referenced
this pull request
Jun 30, 2026
k8s-sidecar watches ConfigMaps labeled "hyperdx.io/dashboard: true" across all namespaces and writes dashboard JSON to a shared volume. HyperDX reads and upserts them natively via file-based provisioner. Requires hyperdxio/hyperdx#1962
ZeynelKoca
added a commit
to ZeynelKoca/ClickStack-helm-charts
that referenced
this pull request
Jun 30, 2026
k8s-sidecar watches ConfigMaps labeled "hyperdx.io/dashboard: true" across all namespaces and writes dashboard JSON to a shared volume. HyperDX reads and upserts them natively via file-based provisioner. Requires hyperdxio/hyperdx#1962
ZeynelKoca
added a commit
to ZeynelKoca/ClickStack-helm-charts
that referenced
this pull request
Jun 30, 2026
k8s-sidecar watches ConfigMaps labeled "hyperdx.io/dashboard: true" across all namespaces and writes dashboard JSON to a shared volume. HyperDX reads and upserts them natively via file-based provisioner. Requires hyperdxio/hyperdx#1962
ZeynelKoca
added a commit
to ZeynelKoca/ClickStack-helm-charts
that referenced
this pull request
Jun 30, 2026
k8s-sidecar watches ConfigMaps labeled "hyperdx.io/dashboard: true" across all namespaces and writes dashboard JSON to a shared volume. HyperDX reads and upserts them natively via file-based provisioner. Requires hyperdxio/hyperdx#1962
ZeynelKoca
added a commit
to ZeynelKoca/ClickStack-helm-charts
that referenced
this pull request
Jun 30, 2026
k8s-sidecar watches ConfigMaps labeled "hyperdx.io/dashboard: true" across all namespaces and writes dashboard JSON to a shared volume. HyperDX reads and upserts them natively via file-based provisioner. Requires hyperdxio/hyperdx#1962
ZeynelKoca
added a commit
to ZeynelKoca/ClickStack-helm-charts
that referenced
this pull request
Jun 30, 2026
k8s-sidecar watches ConfigMaps labeled "hyperdx.io/dashboard: true" across all namespaces and writes dashboard JSON to a shared volume. HyperDX reads and upserts them natively via file-based provisioner. Requires hyperdxio/hyperdx#1962
ZeynelKoca
added a commit
to ZeynelKoca/ClickStack-helm-charts
that referenced
this pull request
Jul 1, 2026
k8s-sidecar watches ConfigMaps labeled "hyperdx.io/dashboard: true" across all namespaces and writes dashboard JSON to a shared volume. HyperDX reads and upserts them natively via file-based provisioner. Requires hyperdxio/hyperdx#1962
ZeynelKoca
added a commit
to ZeynelKoca/ClickStack-helm-charts
that referenced
this pull request
Jul 1, 2026
k8s-sidecar watches ConfigMaps labeled "hyperdx.io/dashboard: true" across all namespaces and writes dashboard JSON to a shared volume. HyperDX reads and upserts them natively via file-based provisioner. Requires hyperdxio/hyperdx#1962
ZeynelKoca
added a commit
to ZeynelKoca/ClickStack-helm-charts
that referenced
this pull request
Jul 1, 2026
k8s-sidecar watches ConfigMaps labeled "hyperdx.io/dashboard: true" across all namespaces and writes dashboard JSON to a shared volume. HyperDX reads and upserts them natively via file-based provisioner. Requires hyperdxio/hyperdx#1962
ZeynelKoca
added a commit
to ZeynelKoca/ClickStack-helm-charts
that referenced
this pull request
Jul 1, 2026
k8s-sidecar watches ConfigMaps labeled "hyperdx.io/dashboard: true" across all namespaces and writes dashboard JSON to a shared volume. HyperDX reads and upserts them natively via file-based provisioner. Requires hyperdxio/hyperdx#1962
ZeynelKoca
added a commit
to ZeynelKoca/ClickStack-helm-charts
that referenced
this pull request
Jul 1, 2026
k8s-sidecar watches ConfigMaps labeled "hyperdx.io/dashboard: true" across all namespaces and writes dashboard JSON to a shared volume. HyperDX reads and upserts them natively via file-based provisioner. Requires hyperdxio/hyperdx#1962
ZeynelKoca
added a commit
to ZeynelKoca/ClickStack-helm-charts
that referenced
this pull request
Jul 1, 2026
k8s-sidecar watches ConfigMaps labeled "hyperdx.io/dashboard: true" across all namespaces and writes dashboard JSON to a shared volume. HyperDX reads and upserts them natively via file-based provisioner. Requires hyperdxio/hyperdx#1962
ZeynelKoca
added a commit
to ZeynelKoca/ClickStack-helm-charts
that referenced
this pull request
Jul 1, 2026
k8s-sidecar watches ConfigMaps labeled "hyperdx.io/dashboard: true" across all namespaces and writes dashboard JSON to a shared volume. HyperDX reads and upserts them natively via file-based provisioner. Requires hyperdxio/hyperdx#1962
ZeynelKoca
added a commit
to ZeynelKoca/ClickStack-helm-charts
that referenced
this pull request
Aug 20, 2026
k8s-sidecar watches ConfigMaps labeled "hyperdx.io/dashboard: true" across all namespaces and writes dashboard JSON to a shared volume. HyperDX reads and upserts them natively via file-based provisioner. Requires hyperdxio/hyperdx#1962
ZeynelKoca
added a commit
to ZeynelKoca/ClickStack-helm-charts
that referenced
this pull request
Aug 24, 2026
k8s-sidecar watches ConfigMaps labeled "hyperdx.io/dashboard: true" across all namespaces and writes dashboard JSON to a shared volume. HyperDX reads and upserts them natively via file-based provisioner. Requires hyperdxio/hyperdx#1962
ZeynelKoca
added a commit
to ZeynelKoca/ClickStack-helm-charts
that referenced
this pull request
Aug 25, 2026
k8s-sidecar watches ConfigMaps labeled "hyperdx.io/dashboard: true" across all namespaces and writes dashboard JSON to a shared volume. HyperDX reads and upserts them natively via file-based provisioner. Requires hyperdxio/hyperdx#1962
ZeynelKoca
added a commit
to ZeynelKoca/ClickStack-helm-charts
that referenced
this pull request
Aug 25, 2026
k8s-sidecar watches ConfigMaps labeled "hyperdx.io/dashboard: true" across all namespaces and writes dashboard JSON to a shared volume. HyperDX reads and upserts them natively via file-based provisioner. Requires hyperdxio/hyperdx#1962
ZeynelKoca
added a commit
to ZeynelKoca/ClickStack-helm-charts
that referenced
this pull request
Aug 25, 2026
k8s-sidecar watches ConfigMaps labeled "hyperdx.io/dashboard: true" across all namespaces and writes dashboard JSON to a shared volume. HyperDX reads and upserts them natively via file-based provisioner. Requires hyperdxio/hyperdx#1962
wrn14897
pushed a commit
to ClickHouse/ClickStack-helm-charts
that referenced
this pull request
Aug 25, 2026
## Summary - Add dashboard provisioning via k8s-sidecar that discovers ConfigMaps labeled `hyperdx.io/dashboard: "true"` across all namespaces - k8s-sidecar writes dashboard JSON to a shared volume, HyperDX upserts them natively - Dashboards matched by name for idempotency (update existing, create new, never delete) - Two ways to provide dashboards: inline in values or via labeled ConfigMaps from any namespace ## Design decisions - **k8s-sidecar + native HyperDX provisioner:** Sidecar handles ConfigMap discovery (same pattern as Grafana). HyperDX handles MongoDB upsert natively - **ClusterRole:** Needed for cross-namespace ConfigMap discovery. ## Dependencies - Requires hyperdxio/hyperdx#1962
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Add a
provision-dashboardstask that reads.jsonfiles from a directory and upserts dashboards into MongoDB, following the existing task system pattern (same ascheck-alerts).Provisioned dashboards are flagged with
provisioned: trueso they never overwrite user-created dashboards with the same name. Files are validated againstDashboardWithoutIdSchema. Removing a file does not delete the dashboard (safe by default, same as Grafana). The task is deployment-agnostic: it reads from a directory, regardless of how files get there.When
DASHBOARD_PROVISIONER_DIRis set,entry.prod.shautomatically starts the task as an additional process alongside the API, App, and check-alerts.Note: Users can currently edit provisioned dashboards through the UI, but changes will be overwritten on the next sync cycle. Grafana handles this by blocking saves on provisioned dashboards. Adding a similar guard would be a good follow-up to improve UX.
DASHBOARD_PROVISIONER_DIR.jsonfiles fromDASHBOARD_PROVISIONER_TEAM_IDDASHBOARD_PROVISIONER_ALL_TEAMSfalsetrueto provision to all teams*One of
DASHBOARD_PROVISIONER_TEAM_IDorDASHBOARD_PROVISIONER_ALL_TEAMS=trueis required.How to test locally or on Vercel
DASHBOARD_PROVISIONER_DIR=/tmp/dashboards DASHBOARD_PROVISIONER_ALL_TEAMS=true
./packages/api/bin/hyperdx task provision-dashboards
References