fix(helm-charts): address HTTPRoute follow-ups from #1059#1082
Merged
Conversation
- Anchor the rule list dash on backendRefs so rules without matches (e.g. catch-all / filters-only) render as valid YAML list items. - Fail rendering early when httpRoute.enabled=true and parentRefs is empty, instead of producing an HTTPRoute the API server rejects. - Align ci/httproute-test-values.yaml with the documented flow (ingress disabled) and add a filters-only rule to exercise the bugfix. - Point kubeconform at the datreeio CRDs-catalog so the Gateway API HTTPRoute schema is actually validated instead of being silently skipped under -ignore-missing-schemas. Closes containers#1080 Signed-off-by: Marc Nuri <marc@marcnuri.com>
The -schema-location added in the previous commit pulled the Gateway API HTTPRoute schema from raw.githubusercontent.com on every validate run, which doesn't fit air-gapped/offline CI. Drop the wiring; kubeconform silently skips HTTPRoute again (same behavior as before this PR). The rule-structure fix in httproute.yaml and the expanded CI fixture remain, so the filters-only case is still exercised by helm template even without schema validation. Also expand the parentRefs fail message to point at the chart README for context. Signed-off-by: Marc Nuri <marc@marcnuri.com>
manusa
marked this pull request as ready for review
April 20, 2026 16:36
Collaborator
|
LGTM! Thanks for the follow up! |
nader-ziada
pushed a commit
to nader-ziada/kubernetes-mcp-server
that referenced
this pull request
Apr 21, 2026
…ontainers#1082) * fix(helm-charts): address HTTPRoute follow-ups from containers#1059 - Anchor the rule list dash on backendRefs so rules without matches (e.g. catch-all / filters-only) render as valid YAML list items. - Fail rendering early when httpRoute.enabled=true and parentRefs is empty, instead of producing an HTTPRoute the API server rejects. - Align ci/httproute-test-values.yaml with the documented flow (ingress disabled) and add a filters-only rule to exercise the bugfix. - Point kubeconform at the datreeio CRDs-catalog so the Gateway API HTTPRoute schema is actually validated instead of being silently skipped under -ignore-missing-schemas. Closes containers#1080 Signed-off-by: Marc Nuri <marc@marcnuri.com> * fix(helm-charts): drop kubeconform gateway-api schema wiring The -schema-location added in the previous commit pulled the Gateway API HTTPRoute schema from raw.githubusercontent.com on every validate run, which doesn't fit air-gapped/offline CI. Drop the wiring; kubeconform silently skips HTTPRoute again (same behavior as before this PR). The rule-structure fix in httproute.yaml and the expanded CI fixture remain, so the filters-only case is still exercised by helm template even without schema validation. Also expand the parentRefs fail message to point at the chart README for context. Signed-off-by: Marc Nuri <marc@marcnuri.com> --------- Signed-off-by: Marc Nuri <marc@marcnuri.com>
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.
Follow-ups from the review of #1059 (tracked in #1080).
Summary
matchesnow renders valid YAML — the list-item dash was attached to the optionalmatchesblock, so a rule with onlyfilters(or a catch-all rule) produced sibling keys instead of a new list item. Dash is now anchored onbackendRefs, which is always rendered, withmatches/filters/timeoutsas conditional siblings.httpRoute.enabled=trueandparentRefsis empty — previously rendered an HTTPRoute withoutparentRefsthat the API server rejected at apply time. Now fails athelm template/helm installtime with a message that points at the chart README.ci/httproute-test-values.yamlnow setsingress.enabled: false(the README's recommended Gateway API setup) and includes a filters-only rule to exercise the bugfix above.The feature is opt-in and disabled by default, so none of these are user-facing regressions — this is cleanup on top of #1059.
Not addressed: follow-up #4 (kubeconform Gateway API schema)
Item
#4from #1080 asked to wire in a Gateway API CRD schema so kubeconform stops silently skipping HTTPRoute under-ignore-missing-schemas. An initial attempt pointed-schema-locationatraw.githubusercontent.com/datreeio/CRDs-catalog, but that introduces a per-run network dependency on a third-party host, which doesn't fit air-gapped / offline CI. The alternatives considered (vendor the JSON schema in-repo, download-once-to-_output/tools/likekubeconformitself,kubeconform -cache) each have their own trade-offs and felt out of scope for this follow-up PR.Closes #1080 partially (
#1–#3)