-
Notifications
You must be signed in to change notification settings - Fork 2
backport: apisix ingress pr #2476 #2467 #2472 #204
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
Conversation
Signed-off-by: ashing <[email protected]>
Signed-off-by: ashing <[email protected]>
Signed-off-by: ashing <[email protected]>
Signed-off-by: ashing <[email protected]>
conformance test report - apisix modeapiVersion: gateway.networking.k8s.io/v1
date: "2025-07-21T16:56:35Z"
gatewayAPIChannel: standard
gatewayAPIVersion: v1.2.0
implementation:
contact: null
organization: APISIX
project: apisix-ingress-controller
url: https://github.com/apache/apisix-ingress-controller.git
version: v2.0.0
kind: ConformanceReport
mode: default
profiles:
- core:
result: partial
skippedTests:
- HTTPRouteHTTPSListener
statistics:
Failed: 0
Passed: 32
Skipped: 1
name: GATEWAY-HTTP
summary: Core tests partially succeeded with 1 test skips. |
conformance test report - apisix-standalone modeapiVersion: gateway.networking.k8s.io/v1
date: "2025-07-21T16:56:40Z"
gatewayAPIChannel: standard
gatewayAPIVersion: v1.2.0
implementation:
contact: null
organization: APISIX
project: apisix-ingress-controller
url: https://github.com/apache/apisix-ingress-controller.git
version: v2.0.0
kind: ConformanceReport
mode: default
profiles:
- core:
failedTests:
- HTTPRouteInvalidBackendRefUnknownKind
result: failure
skippedTests:
- HTTPRouteHTTPSListener
statistics:
Failed: 1
Passed: 31
Skipped: 1
name: GATEWAY-HTTP
summary: Core tests failed with 1 test failures. |
conformance test reportapiVersion: gateway.networking.k8s.io/v1
date: "2025-07-21T17:01:11Z"
gatewayAPIChannel: standard
gatewayAPIVersion: v1.2.0
implementation:
contact: null
organization: APISIX
project: apisix-ingress-controller
url: https://github.com/apache/apisix-ingress-controller.git
version: v2.0.0
kind: ConformanceReport
mode: default
profiles:
- core:
result: partial
skippedTests:
- HTTPRouteHTTPSListener
statistics:
Failed: 0
Passed: 32
Skipped: 1
name: GATEWAY-HTTP
summary: Core tests partially succeeded with 1 test skips. |
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
This PR backports multiple changes from upstream Apache APISIX Ingress Controller to improve test execution, add request assertion utilities, and update configurations. The changes focus on enhancing the test infrastructure and adding features to support better integration testing.
Key Changes
- Consolidates HTTP request testing with new assertion framework for better test reliability
- Introduces
RetryAssertionutility for robust eventually-based testing with timeouts - Adds namespace-specific RBAC configurations and improves resource isolation in tests
Reviewed Changes
Copilot reviewed 27 out of 35 changed files in this pull request and generated 5 comments.
Show a summary per file
| File | Description |
|---|---|
| test/e2e/scaffold/assertion.go | New assertion utilities for HTTP requests and retry logic with timeout controls |
| test/e2e/scaffold/k8s.go | Replaces Eventually pattern with new RetryAssertion for better timeout handling |
| test/e2e/scaffold/apisix_deployer.go | Updates controller naming and finalizer execution order |
| test/e2e/gatewayapi/httproute.go | Refactors HTTP tests to use new RequestAssert framework |
| test/e2e/framework/manifests/ingress.yaml | Adds namespace-specific RBAC naming for better resource isolation |
| multiple test files | Updates various test files to use new assertion framework |
Comments suppressed due to low confidence (1)
test/e2e/scaffold/assertion.go:79
- The panic message could be more informative by listing the supported HTTP methods (GET, POST, PUT, DELETE, PATCH) to help developers understand what methods are available.
panic("unsupported method: " + method)
| }).Should( | ||
| And( | ||
| ContainSubstring(`status: "True"`), | ||
| ContainSubstring("message: the gateway has been accepted by the apisix-ingress-controlle"), |
Copilot
AI
Jul 22, 2025
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.
The expected message text appears to be truncated. It should be 'apisix-ingress-controller' instead of 'apisix-ingress-controlle'.
| ContainSubstring("message: the gateway has been accepted by the apisix-ingress-controlle"), | |
| ContainSubstring("message: the gateway has been accepted by the apisix-ingress-controller"), |
| }).Should( | ||
| And( | ||
| ContainSubstring(`status: "True"`), | ||
| ContainSubstring("message: the gateway has been accepted by the apisix-ingress-controlle"), |
Copilot
AI
Jul 22, 2025
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.
The expected message text appears to be truncated. It should be 'apisix-ingress-controller' instead of 'apisix-ingress-controlle'.
| ContainSubstring("message: the gateway has been accepted by the apisix-ingress-controlle"), | |
| ContainSubstring("message: the gateway has been accepted by the apisix-ingress-controller"), |
| time.Sleep(5 * time.Second) | ||
|
|
Copilot
AI
Jul 22, 2025
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.
Using time.Sleep instead of the assertion framework defeats the purpose of the new retry mechanism. Consider using the RequestAssert framework or RetryAssertion to wait for the expected state.
| time.Sleep(5 * time.Second) | |
| s.RetryAssertion(func() bool { | |
| resp := s.NewAPISIXClient().GET("/get"). | |
| WithHeader("Host", "httpbin.example"). | |
| Expect() | |
| return resp.Raw().StatusCode == http.StatusOK | |
| }).WithTimeout(30 * time.Second).Should(BeTrue()) |
backport:
Type of change:
What this PR does / why we need it:
Pre-submission checklist: