Skip to content

[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

Open
wants to merge 10 commits into
base: main
Choose a base branch
from

Conversation

MayorFaj
Copy link
Contributor

@MayorFaj MayorFaj commented Jul 6, 2025

Change Type

/kind new_feature

Changelog

NONE

MayorFaj and others added 6 commits July 5, 2025 23:23
Co-authored-by: Copilot <[email protected]>
Signed-off-by: MayorFaj <[email protected]>
Co-authored-by: Copilot <[email protected]>
Signed-off-by: MayorFaj <[email protected]>
Signed-off-by: MayorFaj <[email protected]>
@Copilot Copilot AI review requested due to automatic review settings July 6, 2025 20:24
@github-actions github-actions bot added kind/feature Categorizes issue or PR as related to a new feature. release-note-none labels Jul 6, 2025
Copy link
Contributor

@Copilot Copilot AI left a 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 and DirectResponse 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 to basicDirectResponseManifest 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 of RouteReasonBackendNotFound. Verify that the plugin’s status reason was intentionally changed and matches implementation.
		string(gwv1.RouteReasonUnsupportedValue), 10*time.Second, 1*time.Second)

MayorFaj added 3 commits July 6, 2025 21:42
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]>
@MayorFaj MayorFaj closed this Jul 7, 2025
@MayorFaj MayorFaj reopened this Jul 7, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
kind/feature Categorizes issue or PR as related to a new feature. release-note-none
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant