feat(service,cron-job): add UI category to values.schema.json for schema-driven settings#292
Merged
Merged
Conversation
Annotate each mutable top-level property in the service and cron-job chart schemas with a `category` key so the ZopDay Helm-import Settings UI can group fields into tabs, driven entirely by the schema (no hardcoding in the UI). Shared vocabulary across charts: runtime, compute, environment, advanced. Cron-specific fields (schedule/suspend/concurrencyPolicy) fall under runtime; cron simply omits the scaling/ingress/probe fields it does not have. Purely additive metadata: `category` is an unknown (ignored) JSON Schema keyword, so `helm lint` passes and rendered manifests are byte-identical. helm-manager reads these files raw from the branch, so no chart version bump or re-release is needed.
jatintalgotra-zd
approved these changes
Jul 8, 2026
PiyushSingh-ZS
approved these changes
Jul 8, 2026
… settings UI The container image is managed by the deploy/redeploy pipeline, not hand-edited in the Helm-import Settings form. Leaving image uncategorized (it stays mutable) keeps it out of the settings tabs — the UI renders only categorized fields when a chart declares any categories.
Set mutable:false on fields the ZopDay platform manages outside the chart, so helm-manager drops them from the schema-driven settings form: - command / alerts.custom: not used by zop services - nginx.* (host, annotations, tlsHost, tlsSecretName): ingress is provisioned by the opentofu namespace module (ingress_list → nginx Ingress + cert-manager TLS), not the chart's nginx block
PiyushSingh-ZS
approved these changes
Jul 10, 2026
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.
What
Adds a
categorykey to each mutable top-level property in the service and cron-job chart schemas (values.schema.json).Why
The ZopDay Helm-import Settings UI renders an editable form for imported
helm.zop.devservices. We want that form grouped into tabs (Runtime / Compute / Environment / Advanced) without hardcoding field lists in the frontend. Instead, each chart property declares which tab it belongs to viacategory, helm-manager passes it through, and the UI is a generic transformer that groups bycategory.Shared category vocabulary (same across all charts)
runtimecomputeenvironmentadvancedThe vocabulary is intentionally a fixed shared set — cron reuses the same four tabs, placing its schedule fields under
runtimeand simply omitting the scaling/ingress/probe fields it does not have. No chart-specific categories.Non-mutable leaf properties (e.g.
name) are left unannotated — helm-manager already drops them (it only emits fields withmutable: trueor nested mutable properties), so nohiddenmarker is needed.Safety
categoryis an unknown (and therefore ignored) JSON Schema keyword under draft-07, sohelm lintpasses and rendered manifests are byte-identical — zero functional change to deployed services.raw.githubusercontent.com/zopdev/helm-charts/refs/heads/main/charts/<name>/values.schema.json), not from the packaged chart. Once merged tomainthe newcategorykeys are live;Chart.yamlversions are unchanged.Follow-ups (separate PRs, not in this repo)
Categoryto theFormFieldmodel and readprops["category"]increateFormFieldFromPropertiesso the key reaches the UI (backward-compatible; charts withoutcategoryomit it).category.