From 38e2c8a181f6de602a57bd8180b0278061252fb0 Mon Sep 17 00:00:00 2001 From: Claude Date: Sat, 4 Jul 2026 12:42:39 +0000 Subject: [PATCH 1/2] chore(chart): add values.schema.json to catch typo'd/unknown top-level keys Root-cause of the nudgebee-on-prem-test OpenCost outage: a customer values.yaml set a top-level 'existingPrometheus.url' key that doesn't exist anywhere in this chart, so it silently no-oped instead of wiring up OpenCost's Prometheus endpoint. Helm has no way to flag unknown keys without a values.schema.json, so the typo only surfaced later as a CrashLoopBackOff. This schema enforces additionalProperties: false at the top level, so 'helm install/upgrade' now fails fast locally with a clear error for any unrecognized top-level key. Nested subchart-owned trees (opencost, opentelemetry-collector, clickhouse, etc.) are left permissive to avoid having to keep a full schema in sync with upstream chart changes. ct.yaml already has validate-chart-schema: true, so CI picks this up automatically via the existing helm-dev-lint/helm-prod-test workflows. --- charts/nudgebee-agent/values.schema.json | 25 ++++++++++++++++++++++++ 1 file changed, 25 insertions(+) create mode 100644 charts/nudgebee-agent/values.schema.json diff --git a/charts/nudgebee-agent/values.schema.json b/charts/nudgebee-agent/values.schema.json new file mode 100644 index 00000000..ccdaac08 --- /dev/null +++ b/charts/nudgebee-agent/values.schema.json @@ -0,0 +1,25 @@ +{ + "$schema": "https://json-schema.org/draft-07/schema#", + "title": "nudgebee-agent", + "description": "Top-level values accepted by the nudgebee-agent chart. Rejects unknown top-level keys (e.g. typos, or keys copied from unrelated charts/docs) so a misconfigured value fails at `helm install`/`upgrade` time instead of silently no-oping.", + "type": "object", + "properties": { + "nameOverride": { "type": "string" }, + "fullnameOverride": { "type": "string" }, + "enablePrometheusStack": { "type": "boolean" }, + "automountServiceAccountToken": { "type": "boolean" }, + "globalConfig": { "type": "object" }, + "enableServiceMonitors": { "type": "boolean" }, + "kubewatch": { "type": "object" }, + "runnerServiceAccount": { "type": "object" }, + "runner": { "type": "object" }, + "nodeAgent": { "type": "object" }, + "opencost": { "type": "object" }, + "rsa": { "type": ["object", "null"] }, + "openshift": { "type": "object" }, + "opentelemetry-collector": { "type": "object" }, + "clickhouse": { "type": "object" }, + "alertmanager": { "type": "object" } + }, + "additionalProperties": false +} From 44818f4d1a16cec17e27b2154bb05d84d498514a Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" Date: Sat, 4 Jul 2026 12:59:26 +0000 Subject: [PATCH 2/2] chore: update image tags for main release --- charts/nudgebee-agent/values.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/charts/nudgebee-agent/values.yaml b/charts/nudgebee-agent/values.yaml index 4f3ccffa..1b28c856 100644 --- a/charts/nudgebee-agent/values.yaml +++ b/charts/nudgebee-agent/values.yaml @@ -61,7 +61,7 @@ runnerServiceAccount: runner: image: repository: ghcr.io/nudgebee/nudgebee-agent - tag: 2026-07-04T08-07-20_16e73b6bee276ad9e112b06f69d8a88f91e52ec1 + tag: 2026-07-04T11-16-26_e1730394cb5e420b38fb79351f2a23ab46490ede # Image template the pod_profiler action launches debugger pods from. # The agent substitutes `{}` for the variant (bpf, jvm, python, perf, ruby). # Surfaces as PROFILER_IMAGE; leave empty to fall back to the binary default.