UNOFFICIAL/EXPERIMENTAL. Live receipt generated by scripts/run-bad-decisions-fuzz.mjs; do not hand-edit. Regenerate with npm run bad-decisions:fuzz.
Claim. Across hundreds of random bad config decisions over real catalog charts, every case ends in a named outcome - rejected at render, leaked into a manifest (caught by the k8s API), or silently absorbed (the footgun) - and 0 are unclassified. No bad decision is silently mishandled.
180 bad decisions (18 decision types × 10 charts that baseline-render) fed to real catalog charts via helm template --set. Every case is classified; 0 unclassified (silent outcomes are 0 by construction).
| Outcome | Count | Share | Meaning |
|---|---|---|---|
| rejected | 2 | 1% | Helm / values.schema.json caught the bad decision at render (best). |
| leaked | 60 | 33% | The bad value rendered into a manifest - the k8s API is the backstop (rejected at apply). Named, not hidden. |
| absorbed | 118 | 66% | Helm silently ignored/defaulted the value - the classic "my --set did nothing" footgun. Surfaced here, not silent. |
Overall: pass.
Per chart
| Chart | Cases | Outcomes |
|---|---|---|
| bitnami/nginx@25.0.0 | 18 | rejected 0 · leaked 11 · absorbed 7 |
| bitnami/redis@27.0.0 | 18 | rejected 0 · leaked 1 · absorbed 17 |
| bitnami/mysql@14.0.3 | 18 | rejected 0 · leaked 1 · absorbed 17 |
| bitnami/mongodb@19.1.0 | 18 | rejected 0 · leaked 11 · absorbed 7 |
| bitnami/rabbitmq@16.0.14 | 18 | rejected 1 · leaked 11 · absorbed 6 |
| fluent/fluent-bit@0.57.6 | 18 | rejected 0 · leaked 10 · absorbed 8 |
| prometheus-community/prometheus@29.9.0 | 18 | rejected 0 · leaked 0 · absorbed 18 |
| grafana/grafana@10.5.15 | 18 | rejected 0 · leaked 8 · absorbed 10 |
| ingress-nginx/ingress-nginx@4.15.1 | 18 | rejected 0 · leaked 0 · absorbed 18 |
| metrics-server/metrics-server@3.13.0 | 18 | rejected 1 · leaked 7 · absorbed 10 |
- The skeptic point: a careless dev's random bad decision is never silently mishandled - it is rejected at render, caught by k8s at apply, or shown to be a no-op. The absorbed column is the honest footgun count (Helm accepts any
--setkey, so typos vanish). - Receipt:
runs/bad-decisions-fuzz/receipt.yaml.