-
Notifications
You must be signed in to change notification settings - Fork 532
[WIP]feat(tests): add load testing suite and related setup configurations - AttachedRoutes #11598
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
base: main
Are you sure you want to change the base?
[WIP]feat(tests): add load testing suite and related setup configurations - AttachedRoutes #11598
Conversation
…onfigurations Signed-off-by: MayorFaj <[email protected]>
Co-authored-by: Copilot <[email protected]> Signed-off-by: MayorFaj <[email protected]>
Co-authored-by: Copilot <[email protected]> Signed-off-by: MayorFaj <[email protected]>
…ate TODO comments Signed-off-by: MayorFaj <[email protected]>
…ions - AttachedRoutes Signed-off-by: MayorFaj <[email protected]>
Signed-off-by: MayorFaj <[email protected]>
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Pull Request Overview
Adds a new load testing suite for Gateway API performance benchmarks and updates the DirectResponse tests and CI workflow.
- Introduces a
load_testing
feature with manifests, types, and a comprehensive suite for attached-routes and multi-GW tests. - Registers
LoadTesting
andDirectResponse
in the main E2E runner and adjusts DirectResponse imports, names, and commented tests. - Updates the GitHub Actions workflow to include the DirectResponse suite.
Reviewed Changes
Copilot reviewed 7 out of 7 changed files in this pull request and generated 1 comment.
Show a summary per file
File | Description |
---|---|
test/kubernetes/e2e/tests/kgateway_tests.go | Registered new DirectResponse and LoadTesting suites |
test/kubernetes/e2e/features/load_testing/types.go | Added load-testing resource definitions and test cases |
test/kubernetes/e2e/features/load_testing/testdata/setup.yaml | Added gateway, nginx pod, and service manifests for load tests |
test/kubernetes/e2e/features/load_testing/suite.go | Implemented the load-testing suite logic and helpers |
test/kubernetes/e2e/features/directresponse/types.go | Fixed typo, removed unused import, commented out broken tests |
test/kubernetes/e2e/features/directresponse/suite.go | Updated Curl opt alias, commented invalid tests with TODOs |
.github/workflows/pr-kubernetes-tests.yaml | Extended test regex to run DirectResponse tests |
Comments suppressed due to low confidence (4)
test/kubernetes/e2e/features/directresponse/types.go:16
- [nitpick] Variable name
basicDirectResponseManifests
is plural but holds a single manifest path. Consider renaming tobasicDirectResponseManifest
for clarity.
basicDirectResponseManifests = filepath.Join(fsutils.MustGetThisDir(), "testdata", "basic-direct-response.yaml")
.github/workflows/pr-kubernetes-tests.yaml:46
- The CI regex now includes DirectResponse but doesn’t include the LoadTesting suite. Add
|^TestKgateway$$/^LoadTesting$$
to ensure load tests run in CI.
go-test-run-regex: '^TestKgateway$$/^DynamicForwardProxy$$|^TestKgateway$$/^Deployer$$|^TestKgateway$$/^RouteDelegation$$|^TestKgateway$$/^Lambda$$|^TestKgateway$$/^AccessLog$$|^TestKgateway$$/^LocalRateLimit$$|^TestKgateway$$/^Cors$$|^TestKgateway$$/^BackendConfigPolicy$$|^TestKgateway$$/^Metrics$$|^TestKgateway$$/^HttpListenerPolicy$$|^TestKgateway$$/^Tracing$$|^TestKgateway$$/^DirectResponse$$'
test/kubernetes/e2e/features/directresponse/types.go:3
- The code uses filepath.Join but has no import for "path/filepath". Please add
import "path/filepath"
to avoid compilation errors.
import (
test/kubernetes/e2e/features/directresponse/suite.go:220
- The test now asserts
RouteReasonUnsupportedValue
instead ofRouteReasonBackendNotFound
. Verify that the plugin’s status reason was intentionally changed and matches implementation.
string(gwv1.RouteReasonUnsupportedValue), 10*time.Second, 1*time.Second)
Signed-off-by: MayorFaj <[email protected]>
Signed-off-by: MayorFaj <[email protected]>
- Deleted old setup.yaml and types.go files from load_testing feature. - Moved setup.yaml to loadtesting feature and updated its content. - Created new types.go file for loadtesting feature with necessary imports and variables. - Updated kgateway_tests.go to reference the new loadtesting package. - Implemented a comprehensive testing suite for load testing, including metrics for attached routes and multi-gateway scenarios. - Added detailed reporting for load test results. Signed-off-by: MayorFaj <[email protected]>
Change Type
Changelog