Skip to content

fix(helm-charts): address HTTPRoute follow-ups from #1059#1082

Merged
matzew merged 2 commits into
containers:mainfrom
marcnuri-forks:issue-1080
Apr 20, 2026
Merged

fix(helm-charts): address HTTPRoute follow-ups from #1059#1082
matzew merged 2 commits into
containers:mainfrom
marcnuri-forks:issue-1080

Conversation

@manusa

@manusa manusa commented Apr 20, 2026

Copy link
Copy Markdown
Member

Follow-ups from the review of #1059 (tracked in #1080).

Summary

  • Rule without matches now renders valid YAML — the list-item dash was attached to the optional matches block, so a rule with only filters (or a catch-all rule) produced sibling keys instead of a new list item. Dash is now anchored on backendRefs, which is always rendered, with matches / filters / timeouts as conditional siblings.
  • Fast-fail when httpRoute.enabled=true and parentRefs is empty — previously rendered an HTTPRoute without parentRefs that the API server rejected at apply time. Now fails at helm template / helm install time with a message that points at the chart README.
  • CI fixture matches the documented flowci/httproute-test-values.yaml now sets ingress.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 #4 from #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-location at raw.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/ like kubeconform itself, kubeconform -cache) each have their own trade-offs and felt out of scope for this follow-up PR.

Closes #1080 partially (#1#3)

manusa added 2 commits April 20, 2026 18:12
- 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
manusa marked this pull request as ready for review April 20, 2026 16:36
@manusa manusa added this to the 0.1.0 milestone Apr 20, 2026
@matzew
matzew merged commit dd883ef into containers:main Apr 20, 2026
21 of 22 checks passed
@matzew

matzew commented Apr 20, 2026

Copy link
Copy Markdown
Collaborator

LGTM!

Thanks for the follow up!

@manusa
manusa deleted the issue-1080 branch April 20, 2026 17:55
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>
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.

chart: follow-ups to HTTPRoute support (#1059)

2 participants