Skip to content

fix(helm): values completeness — nameOverride, statePVCSize, node.metricsPort, extraPorts schema (ADR-1074) - #776

Closed
lusoris wants to merge 1 commit into
masterfrom
fix/helm-values-completeness-adr-1074
Closed

lusoris wants to merge 1 commit into
masterfrom
fix/helm-values-completeness-adr-1074

Conversation

@lusoris

@lusoris lusoris commented Jun 6, 2026 •

Copy link
Copy Markdown
Contributor

Summary

Four completeness gaps where values.yaml / values.schema.json diverged from template usage, causing either silent misconfiguration or hard helm lint failures:

  • nameOverride / fullnameOverride blocked by schema: both keys are read by _helpers.tpl but absent from the additionalProperties: false root schema, causing immediate helm lint / helm install failures for anyone using the standard Helm naming convention. Added as string keys to both values.yaml and the schema.
  • StatefulSet state PVC size hardcoded (1Gi literal in statefulset.yaml:145): exposed as statefulSet.statePVCSize (default 1Gi), wired into volumeClaimTemplates.
  • Node metrics port hardcoded (9090 in 3 locations): node Deployment containerPort, node-metrics Service port, and NetworkPolicy allow rule were all independent literals. Unified under node.metricsPort (default 9090).
  • service.extraPorts items schema missing: bare "type": "array" with no items definition silently accepted malformed port objects. Added items schema with required: [name, port] and protocol enum.

All four fixes preserve existing rendered output byte-for-byte (defaults match prior hardcoded values).

ADR: ADR-1074

Reproducer / smoke-test

# Before fix: helm lint failure on standard Helm convention
helm lint deploy/helm/vmafx --set nameOverride=myvmafx
# Error: values don't meet the specifications of the schema(s)

# After fix: passes cleanly
helm lint deploy/helm/vmafx --set nameOverride=myvmafx
# ==> Linting deploy/helm/vmafx
# 1 chart(s) linted, 0 chart(s) failed

# Verify statePVCSize is rendered
helm template test deploy/helm/vmafx --set statefulSet.statePVCSize=5Gi,workload=StatefulSet \
  | grep "storage:"
# storage: 5Gi

# Verify node.metricsPort is rendered consistently
helm template test deploy/helm/vmafx --set node.enabled=true,node.metricsPort=9100,networkPolicy.enabled=true \
  | grep -c "9100"
# 3  (Deployment containerPort, Service port, NetworkPolicy port)

ADR-0108 deliverables checklist

  • Research digest: no digest needed — targeted completeness audit, no novel approach
  • Decision matrix: in ADR-1074 ## Alternatives considered
  • AGENTS.md invariant note: deploy/helm/vmafx/AGENTS.md — Invariants (ADR-1074) section added
  • Reproducer / smoke-test: above
  • changelog.d/fixed/1074-helm-values-completeness.md fragment
  • docs/rebase-notes.md entry: no rebase impact (Helm-only files)

PR hygiene

  • state.md: no state delta: no bug opened/closed by this PR
  • ffmpeg-patches: no patch update needed: no C-API / public header touched

🤖 Generated with Claude Code

…ricsPort, extraPorts schema (ADR-1074)

Four gaps where values.yaml / values.schema.json diverged from template usage:

1. nameOverride/fullnameOverride: read by _helpers.tpl but absent from both
   values.yaml and the root additionalProperties:false schema; any user
   supplying --set nameOverride=foo received an immediate helm-lint failure.
   Added as string keys to both files.

2. statefulSet.statePVCSize: statefulset.yaml hardcoded `storage: 1Gi` for the
   per-replica MCP-state PVC. Exposed as statefulSet.statePVCSize (default 1Gi)
   and wired into the volumeClaimTemplates storage field.

3. node.metricsPort: port 9090 appeared hardcoded in three template locations
   (node Deployment containerPort, node-metrics Service port, NetworkPolicy
   allow rule). Exposed as node.metricsPort (default 9090) and unified.

4. service.extraPorts items schema: bare `"type": "array"` with no items
   definition accepted malformed port objects silently. Added items schema with
   required [name, port] and protocol enum.

All defaults preserve existing rendered output byte-for-byte.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
@lusoris
lusoris force-pushed the fix/helm-values-completeness-adr-1074 branch from f48045a to 816ebcb Compare June 7, 2026 23:54
@lusoris

lusoris commented Jun 8, 2026

Copy link
Copy Markdown
Contributor Author

Superseded — bundled into PR #845 (chore/bundle-8-drafts-r1) to drain in one CI cycle. Merge SHA: a42e4ea.

@lusoris lusoris closed this Jun 8, 2026
@lusoris
lusoris deleted the fix/helm-values-completeness-adr-1074 branch June 8, 2026 00:51
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant