gateway-api icon indicating copy to clipboard operation
gateway-api copied to clipboard

Conformance Tests: HTTPRoute Matching

Open robscott opened this issue 2 years ago • 9 comments

This issue is intended to track conformance test development for HTTPRoute matching. Comment below if you're interested in working on covering any of these areas.

Core Capabilities:

  • [x] Path prefix matching
  • [x] Exact path matching (#1147)
  • [x] Header matching (#1134)
  • [ ] Combinations of the above

Extended Capabilities:

  • [ ] Method matching (@skriss)
  • [x] Query param matching (@skriss)
  • [ ] Combinations of the above with core capabilities

robscott avatar Apr 08 '22 23:04 robscott

@robscott Interested

candita avatar Apr 27 '22 20:04 candita

@candita great, thanks! Any particular tests described in this issue you want to take on? Let me know if you have any questions as you're getting started.

robscott avatar Apr 27 '22 20:04 robscott

@robscott I'm also interested :) test: Exact path matching

kl52752 avatar Apr 28 '22 16:04 kl52752

I've submitted https://github.com/kubernetes-sigs/gateway-api/pull/1134 for header matching.

skriss avatar Apr 29 '22 20:04 skriss

I can take on tests for query param and method matching (@robscott note that query param should move under "Extended" conformance per https://gateway-api.sigs.k8s.io/v1alpha2/references/spec/#gateway.networking.k8s.io/v1alpha2.HTTPQueryParamMatch).

Has a pattern been discussed for separating extended-conformance tests from core conformance ones? Is it intended to use the SupportedFeatures field (https://github.com/kubernetes-sigs/gateway-api/blob/master/conformance/conformance_test.go#L51-L53)? If not, I can put some thought into how to structure things.

skriss avatar Jun 28 '22 15:06 skriss

Thanks @skriss! I've moved query param matching into extended. I think right now our best approach is to have any extended feature gated by the "SupportedFeatures" option, but open to other ideas.

robscott avatar Jul 01 '22 19:07 robscott

Circling back here, @robscott you can mark query param matching as done, and I'll try to get to method matching soon.

Would be great if someone else wanted to pick up the combination tests!

skriss avatar Aug 03 '22 21:08 skriss

Updated, thanks @skriss!

robscott avatar Aug 03 '22 21:08 robscott

I can work on some tests for combinations of matching capabilities

Also see https://github.com/kubernetes-sigs/gateway-api/pull/1370 for a relevant PR

sunjayBhatia avatar Aug 31 '22 20:08 sunjayBhatia

The Kubernetes project currently lacks enough contributors to adequately respond to all issues and PRs.

This bot triages issues and PRs according to the following rules:

  • After 90d of inactivity, lifecycle/stale is applied
  • After 30d of inactivity since lifecycle/stale was applied, lifecycle/rotten is applied
  • After 30d of inactivity since lifecycle/rotten was applied, the issue is closed

You can:

  • Mark this issue or PR as fresh with /remove-lifecycle stale
  • Mark this issue or PR as rotten with /lifecycle rotten
  • Close this issue or PR with /close
  • Offer to help out with Issue Triage

Please send feedback to sig-contributor-experience at kubernetes/community.

/lifecycle stale

k8s-triage-robot avatar Nov 29 '22 21:11 k8s-triage-robot

/remove-lifecycle stale

@skriss, @sunjayBhatia, is there further work outstanding here?

youngnick avatar Nov 30 '22 06:11 youngnick

/remove-lifecycle stale

@skriss, @sunjayBhatia, is there further work outstanding here?

HTTP method matching can be checked off in the list up top. Beyond that, I think some tests of combinations of different match types would still be valuable. I'm happy to work on some of those unless someone else beats me to it.

skriss avatar Nov 30 '22 23:11 skriss

Great, thanks, I've updated the list.

youngnick avatar Dec 01 '22 00:12 youngnick

The Kubernetes project currently lacks enough contributors to adequately respond to all issues.

This bot triages un-triaged issues according to the following rules:

  • After 90d of inactivity, lifecycle/stale is applied
  • After 30d of inactivity since lifecycle/stale was applied, lifecycle/rotten is applied
  • After 30d of inactivity since lifecycle/rotten was applied, the issue is closed

You can:

  • Mark this issue as fresh with /remove-lifecycle stale
  • Close this issue with /close
  • Offer to help out with Issue Triage

Please send feedback to sig-contributor-experience at kubernetes/community.

/lifecycle stale

k8s-triage-robot avatar Mar 01 '23 00:03 k8s-triage-robot

The Kubernetes project currently lacks enough active contributors to adequately respond to all issues.

This bot triages un-triaged issues according to the following rules:

  • After 90d of inactivity, lifecycle/stale is applied
  • After 30d of inactivity since lifecycle/stale was applied, lifecycle/rotten is applied
  • After 30d of inactivity since lifecycle/rotten was applied, the issue is closed

You can:

  • Mark this issue as fresh with /remove-lifecycle rotten
  • Close this issue with /close
  • Offer to help out with Issue Triage

Please send feedback to sig-contributor-experience at kubernetes/community.

/lifecycle rotten

k8s-triage-robot avatar Apr 23 '23 01:04 k8s-triage-robot

This is mostly done, closing it out in favor of a more focused bug to finish it up: https://github.com/kubernetes-sigs/gateway-api/issues/1962.

robscott avatar Apr 23 '23 06:04 robscott