Skip to content

feat(conformance): Add HTTPRouteMultipleGatewaysDifferentPools test #838

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 105 commits into from
Jun 23, 2025

Conversation

SinaChavoshi
Copy link
Contributor

@SinaChavoshi SinaChavoshi commented May 15, 2025

This PR introduces a new conformance test, HTTPRouteMultipleGatewaysDifferentPools, which validates a scenario where two distinct HTTPRoute resources, parented by different Gateway resources, successfully reference and route traffic to separate InferencePool backends.

local run results: ( Ran on commit 0b94f9f)

go test -v ./conformance -args -debug     -gateway-class gke-l7-regional-external-managed     -cleanup-base-resources=false     -run-test HTTPRouteMultipleGatewaysDifferentPools
...
=== NAME  TestConformance
    suite.go:451: 2025-06-23T19:17:41.876673193Z: Sleeping 0s for test isolation
=== RUN   TestConformance/InferencePoolResolvedRefsCondition
    conformance.go:68: Skipping InferencePoolResolvedRefsCondition: test explicitly skipped
--- PASS: TestConformance (14.37s)
    --- SKIP: TestConformance/GatewayFollowingEPPRouting (0.00s)
    --- SKIP: TestConformance/HTTPRouteInvalidInferencePoolRef (0.00s)
    --- PASS: TestConformance/HTTPRouteMultipleGatewaysDifferentPools (8.14s)
        --- PASS: TestConformance/HTTPRouteMultipleGatewaysDifferentPools/Primary_HTTPRoute,_InferencePool,_and_Gateway_path:_verify_status_and_traffic (6.96s)
        --- PASS: TestConformance/HTTPRouteMultipleGatewaysDifferentPools/Secondary_HTTPRoute,_InferencePool,_and_Gateway_path:_verify_status_and_traffic (0.45s)
    --- SKIP: TestConformance/InferencePoolAccepted (0.00s)
    --- SKIP: TestConformance/InferencePoolHTTPRoutePortValidation (0.00s)
    --- SKIP: TestConformance/InferencePoolInvalidEPPService (0.00s)
    --- SKIP: TestConformance/HTTPRouteMultipleRulesDifferentPools (0.00s)
    --- SKIP: TestConformance/InferencePoolResolvedRefsCondition (0.00s)
PASS
ok      sigs.k8s.io/gateway-api-inference-extension/conformance 14.587s

Copy link

netlify bot commented May 15, 2025

Deploy Preview for gateway-api-inference-extension ready!

Name Link
🔨 Latest commit 0b94f9f
🔍 Latest deploy log https://app.netlify.com/projects/gateway-api-inference-extension/deploys/6859a82990297400089b6aab
😎 Deploy Preview https://deploy-preview-838--gateway-api-inference-extension.netlify.app
📱 Preview on mobile
Toggle QR Code...

QR Code

Use your smartphone camera to open QR code link.

To edit notification comments on pull requests, go to your Netlify project configuration.

@k8s-ci-robot k8s-ci-robot added the cncf-cla: yes Indicates the PR's author has signed the CNCF CLA. label May 15, 2025
@k8s-ci-robot
Copy link
Contributor

Hi @SinaChavoshi. Thanks for your PR.

I'm waiting for a kubernetes-sigs member to verify that this patch is reasonable to test. If it is, they should reply with /ok-to-test on its own line. Until that is done, I will not automatically test new commits in this PR, but the usual testing commands by org members will still work. Regular contributors should join the org to skip this step.

Once the patch is verified, the new status will be reflected by the ok-to-test label.

I understand the commands that are listed here.

Instructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the kubernetes-sigs/prow repository.

@k8s-ci-robot k8s-ci-robot added needs-ok-to-test Indicates a PR that requires an org member to verify it is safe to test. size/L Denotes a PR that changes 100-499 lines, ignoring generated files. labels May 15, 2025
@spencerhance
Copy link

/cc

@k8s-ci-robot k8s-ci-robot requested a review from spencerhance May 16, 2025 18:16
Copy link

@spencerhance spencerhance left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

/lgtm

@k8s-ci-robot k8s-ci-robot added the lgtm "Looks good to me", indicates that a PR is ready to be merged. label May 16, 2025
@k8s-ci-robot k8s-ci-robot removed the lgtm "Looks good to me", indicates that a PR is ready to be merged. label May 19, 2025
@spencerhance
Copy link

/lgtm

@k8s-ci-robot k8s-ci-robot added the lgtm "Looks good to me", indicates that a PR is ready to be merged. label May 19, 2025
@ahg-g
Copy link
Contributor

ahg-g commented May 20, 2025

/ok-to-test

@k8s-ci-robot k8s-ci-robot added ok-to-test Indicates a non-member PR verified by an org member that is safe to test. and removed needs-ok-to-test Indicates a PR that requires an org member to verify it is safe to test. labels May 20, 2025
@SinaChavoshi
Copy link
Contributor Author

https://github.com/kubernetes-sigs/gateway-api-inference-extension/pull/838/files#r2150419700 needs to be resolved before merging.

/hold

sorry was waiting for #982 to merge, this makes the code much simpler as all tests now share the EPP and inferencePool definitions from manifests.yaml

Copy link
Member

@robscott robscott left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks @SinaChavoshi! This mostly LGTM

@k8s-ci-robot k8s-ci-robot added the needs-rebase Indicates a PR cannot be merged because it has merge conflicts with HEAD. label Jun 21, 2025
@k8s-ci-robot k8s-ci-robot removed the needs-rebase Indicates a PR cannot be merged because it has merge conflicts with HEAD. label Jun 23, 2025
@zetxqx
Copy link
Contributor

zetxqx commented Jun 23, 2025

/lgtm

thanks!

cc @danehans @robscott could you take another look? Thanks!

Copy link
Member

@robscott robscott left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks @SinaChavoshi!

/lgtm

@k8s-ci-robot k8s-ci-robot added the lgtm "Looks good to me", indicates that a PR is ready to be merged. label Jun 23, 2025
@danehans
Copy link
Contributor

@SinaChavoshi thanks for all your work and patience with this PR.

/approve

@k8s-ci-robot
Copy link
Contributor

[APPROVALNOTIFIER] This PR is APPROVED

This pull-request has been approved by: danehans, robscott, SinaChavoshi, spencerhance

The full list of commands accepted by this bot can be found here.

The pull request process is described here

Needs approval from an approver in each of these files:

Approvers can indicate their approval by writing /approve in a comment
Approvers can cancel approval by writing /approve cancel in a comment

@k8s-ci-robot k8s-ci-robot added the approved Indicates a PR has been approved by an approver from all required OWNERS files. label Jun 23, 2025
@SinaChavoshi
Copy link
Contributor Author

/unhold

@k8s-ci-robot k8s-ci-robot removed the do-not-merge/hold Indicates that a PR should not merge because someone has issued a /hold command. label Jun 23, 2025
@k8s-ci-robot k8s-ci-robot merged commit 64c62ad into kubernetes-sigs:main Jun 23, 2025
9 checks passed
shmuelk pushed a commit to shmuelk/gateway-api-inference-extension that referenced this pull request Jun 24, 2025
…ubernetes-sigs#838)

* copy of accepted inference pool test to start from.

* add yaml file for the test

* update time out

* update the yaml file to add port 9002

* read timeout config from local repo

* remove excess comments

* copy from existing test to start with

* update test and add gateway to main manifest

* fix spelling error

* correct spelling for scenarios

* check route condition on RouteConditionResolvedRefs

* check RouteConditionResolvedRefs instead of Reconciled

* remove empty lines in yaml

* set optional/defaulted fields as unspecified

* add new line at the end of yaml files.

* delete blank lines in yaml files.

* change variable names to use primary / secondary

* add to do for name change across the project.

* fix comment

* change all variable names to use primary/secondary consistantly

* add to do for http route testing

* HTTPRouteMustBeAcceptedAndResolved

* add helper method.

* using helper method for pool route accepted.

* combline pool and route accpetnace

* add http route validation

* remove extra comments and yaml fields.

* remove duplicate method

* fix timeout

* fix timeout

* change varialbe names to use primary secondary consistently.

* remove extra comments

* factor out common code

* Add actual http traffic validation using echo-basic

* remove extra comments from manifest

* remove modifiedTimeoutConfig.HTTPRouteMustHaveCondition per review comment.

* remove modifiedTimeoutConfig.HTTPRouteMustHaveCondition per review comment

* remove excessive logging from conformance.go

* Update conformance/tests/basic/httproute_multiple_gateways_different_pools.yaml

Co-authored-by: Lior Lieberman <[email protected]>

* Update conformance/tests/basic/httproute_multiple_gateways_different_pools.yaml

Co-authored-by: Lior Lieberman <[email protected]>

* Update conformance/tests/basic/httproute_multiple_gateways_different_pools.yaml

Co-authored-by: Lior Lieberman <[email protected]>

* Update conformance/tests/basic/httproute_multiple_gateways_different_pools.yaml

Co-authored-by: Lior Lieberman <[email protected]>

* Update conformance/tests/basic/httproute_multiple_gateways_different_pools.yaml

Co-authored-by: Lior Lieberman <[email protected]>

* Remove unecessary logs for accpeted reason.

* Remove all comments from yaml and go files and fix yaml

* intermediate update

* fix the test run

* factor out common code

* move epp def to shared manifest

* remove extra comments

* revert back to two epps

* update to use  epp filter

* remove extra comments

* add to do for epp image

* switch to GeneralMustHaveConditionTimeout

* undo gateway version changes

* remove unused HTTPRouteMustHaveConditions

* update doc string for GetPod

* update docstring

* fix defaults in timing.go

* Remove resource type from names in manifests.

* remove type from name

* remove health check

* add todo for combining getpod methods

* remove duplicate methods

* revert changes to conformance.go

* revert chagnes to conformance.go

* revert changes to helpers.go

* use epp and pool from shared manifest

* add todo to factor out common constants

* remove port number for EPP call

* remove port number for inf pool ref

* use GetPodsWithLabel

* removed unused method

* fix routing issue

* switch to using MakeRequestAndExpectEventuallyConsistentResponse

* undo changes to GatewayFollowingEPPRouting

* revert changes to traffic.go

---------

Co-authored-by: Lior Lieberman <[email protected]>
rlakhtakia pushed a commit to rlakhtakia/gateway-api-inference-extension that referenced this pull request Jun 26, 2025
…ubernetes-sigs#838)

* copy of accepted inference pool test to start from.

* add yaml file for the test

* update time out

* update the yaml file to add port 9002

* read timeout config from local repo

* remove excess comments

* copy from existing test to start with

* update test and add gateway to main manifest

* fix spelling error

* correct spelling for scenarios

* check route condition on RouteConditionResolvedRefs

* check RouteConditionResolvedRefs instead of Reconciled

* remove empty lines in yaml

* set optional/defaulted fields as unspecified

* add new line at the end of yaml files.

* delete blank lines in yaml files.

* change variable names to use primary / secondary

* add to do for name change across the project.

* fix comment

* change all variable names to use primary/secondary consistantly

* add to do for http route testing

* HTTPRouteMustBeAcceptedAndResolved

* add helper method.

* using helper method for pool route accepted.

* combline pool and route accpetnace

* add http route validation

* remove extra comments and yaml fields.

* remove duplicate method

* fix timeout

* fix timeout

* change varialbe names to use primary secondary consistently.

* remove extra comments

* factor out common code

* Add actual http traffic validation using echo-basic

* remove extra comments from manifest

* remove modifiedTimeoutConfig.HTTPRouteMustHaveCondition per review comment.

* remove modifiedTimeoutConfig.HTTPRouteMustHaveCondition per review comment

* remove excessive logging from conformance.go

* Update conformance/tests/basic/httproute_multiple_gateways_different_pools.yaml

Co-authored-by: Lior Lieberman <[email protected]>

* Update conformance/tests/basic/httproute_multiple_gateways_different_pools.yaml

Co-authored-by: Lior Lieberman <[email protected]>

* Update conformance/tests/basic/httproute_multiple_gateways_different_pools.yaml

Co-authored-by: Lior Lieberman <[email protected]>

* Update conformance/tests/basic/httproute_multiple_gateways_different_pools.yaml

Co-authored-by: Lior Lieberman <[email protected]>

* Update conformance/tests/basic/httproute_multiple_gateways_different_pools.yaml

Co-authored-by: Lior Lieberman <[email protected]>

* Remove unecessary logs for accpeted reason.

* Remove all comments from yaml and go files and fix yaml

* intermediate update

* fix the test run

* factor out common code

* move epp def to shared manifest

* remove extra comments

* revert back to two epps

* update to use  epp filter

* remove extra comments

* add to do for epp image

* switch to GeneralMustHaveConditionTimeout

* undo gateway version changes

* remove unused HTTPRouteMustHaveConditions

* update doc string for GetPod

* update docstring

* fix defaults in timing.go

* Remove resource type from names in manifests.

* remove type from name

* remove health check

* add todo for combining getpod methods

* remove duplicate methods

* revert changes to conformance.go

* revert chagnes to conformance.go

* revert changes to helpers.go

* use epp and pool from shared manifest

* add todo to factor out common constants

* remove port number for EPP call

* remove port number for inf pool ref

* use GetPodsWithLabel

* removed unused method

* fix routing issue

* switch to using MakeRequestAndExpectEventuallyConsistentResponse

* undo changes to GatewayFollowingEPPRouting

* revert changes to traffic.go

---------

Co-authored-by: Lior Lieberman <[email protected]>
rlakhtakia pushed a commit to rlakhtakia/gateway-api-inference-extension that referenced this pull request Jun 26, 2025
…ubernetes-sigs#838)

* copy of accepted inference pool test to start from.

* add yaml file for the test

* update time out

* update the yaml file to add port 9002

* read timeout config from local repo

* remove excess comments

* copy from existing test to start with

* update test and add gateway to main manifest

* fix spelling error

* correct spelling for scenarios

* check route condition on RouteConditionResolvedRefs

* check RouteConditionResolvedRefs instead of Reconciled

* remove empty lines in yaml

* set optional/defaulted fields as unspecified

* add new line at the end of yaml files.

* delete blank lines in yaml files.

* change variable names to use primary / secondary

* add to do for name change across the project.

* fix comment

* change all variable names to use primary/secondary consistantly

* add to do for http route testing

* HTTPRouteMustBeAcceptedAndResolved

* add helper method.

* using helper method for pool route accepted.

* combline pool and route accpetnace

* add http route validation

* remove extra comments and yaml fields.

* remove duplicate method

* fix timeout

* fix timeout

* change varialbe names to use primary secondary consistently.

* remove extra comments

* factor out common code

* Add actual http traffic validation using echo-basic

* remove extra comments from manifest

* remove modifiedTimeoutConfig.HTTPRouteMustHaveCondition per review comment.

* remove modifiedTimeoutConfig.HTTPRouteMustHaveCondition per review comment

* remove excessive logging from conformance.go

* Update conformance/tests/basic/httproute_multiple_gateways_different_pools.yaml

Co-authored-by: Lior Lieberman <[email protected]>

* Update conformance/tests/basic/httproute_multiple_gateways_different_pools.yaml

Co-authored-by: Lior Lieberman <[email protected]>

* Update conformance/tests/basic/httproute_multiple_gateways_different_pools.yaml

Co-authored-by: Lior Lieberman <[email protected]>

* Update conformance/tests/basic/httproute_multiple_gateways_different_pools.yaml

Co-authored-by: Lior Lieberman <[email protected]>

* Update conformance/tests/basic/httproute_multiple_gateways_different_pools.yaml

Co-authored-by: Lior Lieberman <[email protected]>

* Remove unecessary logs for accpeted reason.

* Remove all comments from yaml and go files and fix yaml

* intermediate update

* fix the test run

* factor out common code

* move epp def to shared manifest

* remove extra comments

* revert back to two epps

* update to use  epp filter

* remove extra comments

* add to do for epp image

* switch to GeneralMustHaveConditionTimeout

* undo gateway version changes

* remove unused HTTPRouteMustHaveConditions

* update doc string for GetPod

* update docstring

* fix defaults in timing.go

* Remove resource type from names in manifests.

* remove type from name

* remove health check

* add todo for combining getpod methods

* remove duplicate methods

* revert changes to conformance.go

* revert chagnes to conformance.go

* revert changes to helpers.go

* use epp and pool from shared manifest

* add todo to factor out common constants

* remove port number for EPP call

* remove port number for inf pool ref

* use GetPodsWithLabel

* removed unused method

* fix routing issue

* switch to using MakeRequestAndExpectEventuallyConsistentResponse

* undo changes to GatewayFollowingEPPRouting

* revert changes to traffic.go

---------

Co-authored-by: Lior Lieberman <[email protected]>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
approved Indicates a PR has been approved by an approver from all required OWNERS files. cncf-cla: yes Indicates the PR's author has signed the CNCF CLA. lgtm "Looks good to me", indicates that a PR is ready to be merged. ok-to-test Indicates a non-member PR verified by an org member that is safe to test. size/L Denotes a PR that changes 100-499 lines, ignoring generated files.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

8 participants