Skip to content

Everything-is-an-app: validate values.custom.yaml against vendor values.schema.json #3572

Description

@j-zimnowoda

Parent

#3515

What to build

Server-side and in-editor validation of values.custom.yaml against the vendor chart's own values.schema.json, replacing the curated per-app schema for configuration validation.

End-to-end behavior:

  • When a chart ships charts/<chart>/values.schema.json, a write to that app's values.custom.yaml is validated against it before the file is committed to the values repo. Invalid input is rejected with actionable errors.
  • When a chart ships no vendor schema, the write is accepted as-is with no validation gate (errors surface later at helm template/ArgoCD sync).
  • The same validation is applied in the console's raw YAML/JSON editor when a vendor schema exists, so users get in-editor feedback where possible.
  • Validation is a pure function (chart name + custom-values content in, accept / reject-with-errors out) so it is unit-testable without git or Kubernetes.

Use cert-manager (ships a vendor schema) and one schema-less core chart as fixtures to cover both the validated and no-gate paths.

Acceptance criteria

  • A pure validation function rejects values.custom.yaml content that violates the chart's vendor values.schema.json, with useful error messages.
  • The same function accepts any content for a chart with no vendor schema (no gate).
  • Server-side write path (apl-api parity) refuses invalid custom values before commit; schema-less charts are accepted.
  • Console raw editor surfaces live validation errors when a vendor schema exists for the edited chart.
  • Unit tests use real vendor-schema fixtures for at least one schema-bearing chart (cert-manager) and one schema-less chart.

Blocked by

Metadata

Metadata

Assignees

No one assigned

    Labels

    ready-for-agentFully specified, ready for an AFK agent

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions