Skip to content

Match real gcp behavior in MockGCP for NetworkServicesHTTPRoute #11747

Description

@daedalus-agent-bot

Please first check if a mock for the GCP networkservices,httpRoutes corresponding to the NetworkServicesHTTPRoute already exists in the codebase. Check under mockgcp/ folder.
If it doesnt exist, please follow the skill .gemini/skills/add-new-mockgcp-resource/SKILL.md to implement the mock for networkservices, httpRoutes first.

Next please follow the skill .gemini/skills/match-mockgcp-with-realgcp/SKILL.md to match with realgcp for networkservices, httpRoutes

CRITICAL: You MUST run hack/record-gcp against real GCP to record the initial baseline _http.log. Generating golden logs (_http.log) directly from MockGCP (e.g., by running with E2E_GCP_TARGET=mock and WRITE_GOLDEN_OUTPUT=1) is strictly forbidden, as it freezes mock-only behavior and bypasses actual GCP contract validation. And you MUST commit files modified by running hack/record-gcp in its own commit.

API ENABLEMENT TROUBLESHOOTING:
If hack/record-gcp fails with a 403 error indicating that the GCP API is disabled (e.g., "API has not been used in project ... before or it is disabled"), do NOT assume this is a permissions blocker.
To resolve this, you must enable the API manually using gcloud command in the project being used for E2E tests:

gcloud services enable networkservices.googleapis.com --project <gcp-project-id>

Do NOT add the Service resource to dependencies.yaml because this is forbidden for E2E test fixtures to prevent unit test failures from pre-enabled check enforcement.

GCP RECORDING PR REPORTING REQUIREMENT:
In the created PR description, you MUST explicitly document whether record-gcp was successfully run against real GCP. If it was run, state the GCP project used. If it was not run (e.g., due to disabled APIs, missing permissions, or rate limits), you must document the specific command run, the full error message encountered, and the fallback approach you used to generate/align the HTTP logs.

If you find any shortcomings in these skills (that likely apply to other resources), you may update them. Also keep a journal of any less general observations etc. To avoid git merge conflicts, use a file under their respective journal/ folders, named after the kind or a similarly unique name.

The created PR must include these labels: direct-migration and overseer

Metadata

Metadata

Labels

Type

No type

Fields

No fields configured for issues without a type.

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions