Skip to content

Conversation

@ronething
Copy link
Contributor

@ronething ronething commented Jul 21, 2025

backport:

Type of change:

  • Bugfix
  • New feature provided
  • Improve performance
  • Backport patches
  • Documentation
  • Refactor
  • Chore
  • CI/CD or Tests

What this PR does / why we need it:

Pre-submission checklist:

  • Did you explain what problem does this PR solve? Or what new features have been added?
  • Have you added corresponding test cases?
  • Have you modified the corresponding document?
  • Is this PR backward compatible? If it is not backward compatible, please discuss on the mailing list first

@ronething ronething changed the title fix: route names with the same prefix were mistakenly deleted (#2472) chore: backport pr. Jul 21, 2025
Signed-off-by: ashing <[email protected]>
@ronething ronething changed the title chore: backport pr. chore: backport pr Jul 21, 2025
@ronething ronething changed the title chore: backport pr chore: backport apisix ingress pr Jul 21, 2025
Signed-off-by: ashing <[email protected]>
@github-actions
Copy link
Contributor

conformance test report - apisix mode

apiVersion: 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.

@github-actions
Copy link
Contributor

conformance test report - apisix-standalone mode

apiVersion: 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.

@github-actions
Copy link
Contributor

conformance test report

apiVersion: 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.

@ronething ronething requested a review from Copilot July 22, 2025 01:32
Copy link
Contributor

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

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 RetryAssertion utility 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"),
Copy link

Copilot AI Jul 22, 2025

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'.

Suggested change
ContainSubstring("message: the gateway has been accepted by the apisix-ingress-controlle"),
ContainSubstring("message: the gateway has been accepted by the apisix-ingress-controller"),

Copilot uses AI. Check for mistakes.
}).Should(
And(
ContainSubstring(`status: "True"`),
ContainSubstring("message: the gateway has been accepted by the apisix-ingress-controlle"),
Copy link

Copilot AI Jul 22, 2025

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'.

Suggested change
ContainSubstring("message: the gateway has been accepted by the apisix-ingress-controlle"),
ContainSubstring("message: the gateway has been accepted by the apisix-ingress-controller"),

Copilot uses AI. Check for mistakes.
Comment on lines +1691 to 1692
time.Sleep(5 * time.Second)

Copy link

Copilot AI Jul 22, 2025

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.

Suggested change
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())

Copilot uses AI. Check for mistakes.
@ronething ronething changed the title chore: backport apisix ingress pr backport: apisix ingress pr 2476&2467&2472 Jul 22, 2025
@ronething ronething changed the title backport: apisix ingress pr 2476&2467&2472 backport: apisix ingress pr #2476 #2467 #2472 Jul 22, 2025
@ronething ronething merged commit 007fe7e into release-v2-dev Jul 22, 2025
17 checks passed
@ronething ronething deleted the feat/cherry-pick branch July 22, 2025 01:38
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants