Skip to content

test: add hermetic coverage for standalone mode#2175

Merged
k8s-ci-robot merged 1 commit intokubernetes-sigs:mainfrom
LukeAVanDrie:test/standalone
Jan 20, 2026
Merged

test: add hermetic coverage for standalone mode#2175
k8s-ci-robot merged 1 commit intokubernetes-sigs:mainfrom
LukeAVanDrie:test/standalone

Conversation

@LukeAVanDrie
Copy link
Copy Markdown
Contributor

What type of PR is this?

/kind test

What this PR does / why we need it:

This PR adds hermetic integration test coverage for the EPP Standalone Mode.

Recently, a regression in Standalone mode startup logic (fixed in #2092) went undetected because existing integration tests only exercised the Standard (CRD-based) mode. This PR bridges that gap by:

  1. Updating Test Harness: Extending test/integration/epp/harness.go with WithStandaloneMode(). This simulates the CLI-based configuration path by injecting a static EndpointPool and disabling Gateway API CRD watchers.
  2. Refactoring Hermetic Tests: Updating hermetic_test.go to run test permutations in both Standard and Standalone modes using a table-driven approach.
  3. Improving Test Infrastructure: Centralizing default test ports in wrappers.go to ensure consistency between the harness and mock pod definitions.

Which issue(s) this PR fixes:

Fixes #2091

Does this PR introduce a user-facing change?:

NONE

This adds hermetic integration tests for the EPP Standalone deployment
mode. Previously, the suite only exercised the Standard (CRD-based)
path, leaving the static configuration logic vulnerable to regressions.

The test harness is updated with `WithStandaloneMode` to simulate
CLI-based configuration and disable CRD watchers. Hermetic tests now
execute table-driven permutations to verify behavior in both Standard
and Standalone modes.
@k8s-ci-robot
Copy link
Copy Markdown
Contributor

@LukeAVanDrie: The label(s) kind/test cannot be applied, because the repository doesn't have them.

Details

In response to this:

What type of PR is this?

/kind test

What this PR does / why we need it:

This PR adds hermetic integration test coverage for the EPP Standalone Mode.

Recently, a regression in Standalone mode startup logic (fixed in #2092) went undetected because existing integration tests only exercised the Standard (CRD-based) mode. This PR bridges that gap by:

  1. Updating Test Harness: Extending test/integration/epp/harness.go with WithStandaloneMode(). This simulates the CLI-based configuration path by injecting a static EndpointPool and disabling Gateway API CRD watchers.
  2. Refactoring Hermetic Tests: Updating hermetic_test.go to run test permutations in both Standard and Standalone modes using a table-driven approach.
  3. Improving Test Infrastructure: Centralizing default test ports in wrappers.go to ensure consistency between the harness and mock pod definitions.

Which issue(s) this PR fixes:

Fixes #2091

Does this PR introduce a user-facing change?:

NONE

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.

@netlify
Copy link
Copy Markdown

netlify Bot commented Jan 17, 2026

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

Name Link
🔨 Latest commit 700b660
🔍 Latest deploy log https://app.netlify.com/projects/gateway-api-inference-extension/deploys/696ad8b8f0f8670007fc33fc
😎 Deploy Preview https://deploy-preview-2175--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 Jan 17, 2026
@LukeAVanDrie
Copy link
Copy Markdown
Contributor Author

/assign @capri-xiyue

Comment thread go.mod
require (
github.com/go-logr/zapr v1.3.0
github.com/spf13/pflag v1.0.10
go.opentelemetry.io/otel/trace v1.39.0
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

what triggered adding this?

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

I'm not sure actually. I ran go mod tidy and this continuously gets applied, but I do not think this should be triggered by my delta.

for _, tc := range tests {
t.Run(tc.name, func(t *testing.T) {
if mode.standalone && tc.requiresCRDs {
t.Skipf("Skipping test %q: requires CRDs, but running in Standalone mode", tc.name)
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

@capri-xiyue I expect to support standalone with inference CRDs, standalone can have two modes of operation, one with the Inference* CRDs (a richer mode of operation that allows using InfObj for example) and one without (using pod selector and completely decoupled from all CRDs). The stable thing in standalone is running without the Gateway API dependency.

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

mode.standalone may have been a misunderstanding on my part. You can consider this PR covering:

one without (using pod selector and completely decoupled from all CRDs)

We can add a third harness for standalone w/ CRDs.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Got it. I agree that we can add a third harness for standalone w/ CRDs.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

ok, @capri-xiyue can you pls add that in a follow up PR?

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Sure.

@ahg-g
Copy link
Copy Markdown
Contributor

ahg-g commented Jan 20, 2026

/lgtm
/approve

@k8s-ci-robot k8s-ci-robot added lgtm "Looks good to me", indicates that a PR is ready to be merged. approved Indicates a PR has been approved by an approver from all required OWNERS files. labels Jan 20, 2026
@k8s-ci-robot
Copy link
Copy Markdown
Contributor

[APPROVALNOTIFIER] This PR is APPROVED

This pull-request has been approved by: ahg-g, capri-xiyue, LukeAVanDrie

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

The pull request process is described here

Details 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 merged commit 22b2f33 into kubernetes-sigs:main Jan 20, 2026
11 checks passed
RyanRosario pushed a commit to RyanRosario/gateway-api-inference-extension that referenced this pull request Jan 20, 2026
This adds hermetic integration tests for the EPP Standalone deployment
mode. Previously, the suite only exercised the Standard (CRD-based)
path, leaving the static configuration logic vulnerable to regressions.

The test harness is updated with `WithStandaloneMode` to simulate
CLI-based configuration and disable CRD watchers. Hermetic tests now
execute table-driven permutations to verify behavior in both Standard
and Standalone modes.
elevran pushed a commit to llm-d/llm-d-inference-scheduler that referenced this pull request Apr 23, 2026
…way-api-inference-extension#2175)

This adds hermetic integration tests for the EPP Standalone deployment
mode. Previously, the suite only exercised the Standard (CRD-based)
path, leaving the static configuration logic vulnerable to regressions.

The test harness is updated with `WithStandaloneMode` to simulate
CLI-based configuration and disable CRD watchers. Hermetic tests now
execute table-driven permutations to verify behavior in both Standard
and Standalone modes.
elevran pushed a commit to llm-d/llm-d-inference-scheduler that referenced this pull request May 3, 2026
…way-api-inference-extension#2175)

This adds hermetic integration tests for the EPP Standalone deployment
mode. Previously, the suite only exercised the Standard (CRD-based)
path, leaving the static configuration logic vulnerable to regressions.

The test harness is updated with `WithStandaloneMode` to simulate
CLI-based configuration and disable CRD watchers. Hermetic tests now
execute table-driven permutations to verify behavior in both Standard
and Standalone modes.
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. 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.

[Standalone] Add integration tests for EPP standalone mode

4 participants