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
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-gcpagainst real GCP to record the initial baseline_http.log. Generating golden logs (_http.log) directly from MockGCP (e.g., by running withE2E_GCP_TARGET=mockandWRITE_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 runninghack/record-gcpin its own commit.API ENABLEMENT TROUBLESHOOTING:
If
hack/record-gcpfails 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:
Do NOT add the Service resource to
dependencies.yamlbecause 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-gcpwas 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-migrationandoverseer