feat(ci): validate HelmRelease values against the chart schema #209
Loading…
Reference in a new issue
No description provided.
Delete branch "feat/flux-local-gate"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
flate test allinflates the cluster but does not validate values against the chart schema: a value a chart rejects (for example a strayoptionalundervalueFrom.secretKeyRef) reaches the rendered output with exit code 0 and only fails later in the cluster. flux-local inflates the cluster with helm, validates the values of every HelmRelease against its chart'svalues.schema.json, and can report the rendered diff of a change as a pull request comment.testis the gate. It inflates all namespaces with--enable-helm, so every chart is fetched by the job itself — including the two mirrored ones fromoci://harbor.grachevko.ru/charts— and nothing has to be checked out beside this repository.diffrenders the HelmReleases at the head and at the base branch and posts the difference as a review comment, so the blast radius of a value bump is visible where it is reviewed.uses: docker://...) that other home-ops repositories use is not available here: our runner is the Forgejo kubernetes plugin, which executes every step inside the job pod'smaincontainer and has no per-step images.Flux Local - Successaggregator exists because job-levelsuccess()/cancelled()are not evaluated on this Forgejo version (go-gitea/gitea#25897), so a job relying on them never starts and its check stays pending forever.This is the second half of the chart-mirror work: with the harbor and vault charts coming from the registry mirror (#207, merged), every release can be inflated by the job, so the gate needs no exceptions. An earlier revision of that change carried this workflow, but its diff job could not render the base branch while the base still took those two charts from a git repository (
unable to detect chart at <workdir>/Chart.yaml), which is why the workflow lands here separately.Verified
flux-local test --enable-helm --all-namespaces --path kubernetes/flux/cluster --sources flux-system=.: 128 passed, no failures, on the current main; the same command reports the class of error this gate exists for when a value the chart schema rejects is introduced.testjob already ran green in this cluster runner on the first revision of the earlier pull request (run 175), which is the same command in the real environment.Rollback
Revert the commit: the workflow disappears and no cluster state is involved.
04995aba1699bc8243ca