Repository navigation
test: add live Functions VNet routing diagnostics - #3481
KarishmaGhiya wants to merge 51 commits into
Conversation
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> Copilot-Session: 277bdab8-4b39-4631-92e7-b6ec8d849424
Details# 🔍 Token Analysis Report
fatal: path 'evals/azure-skills/azure-diagnostics/fixture/functions-vnet-routing/README.md' exists on disk, but not in 'origin/main' 📊 Token Change ReportComparing Summary
Changed Files
📊 Token Limit Check ReportChecked: 1 files ✅ All files within token limits
📊 Token Limit Check ReportChecked: 1 files ✅ All files within token limitsAutomated token analysis. See skill authoring guidelines for best practices. |
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> Copilot-Session: 277bdab8-4b39-4631-92e7-b6ec8d849424
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> Copilot-Session: 277bdab8-4b39-4631-92e7-b6ec8d849424
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> Copilot-Session: 277bdab8-4b39-4631-92e7-b6ec8d849424
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> Copilot-Session: 277bdab8-4b39-4631-92e7-b6ec8d849424
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> Copilot-Session: 277bdab8-4b39-4631-92e7-b6ec8d849424
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> Copilot-Session: 277bdab8-4b39-4631-92e7-b6ec8d849424
Use the Function App hostNames collection with the deterministic Azure Websites hostname fallback because defaultHostName is absent for some Flex Consumption resource responses. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> Copilot-Session: 277bdab8-4b39-4631-92e7-b6ec8d849424
Retry bounded Azure deployment failures when a dependent network operation is still in progress, while preserving immediate failure for all other ARM errors. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> Copilot-Session: 277bdab8-4b39-4631-92e7-b6ec8d849424
There was a problem hiding this comment.
🟡 Changes recommended
Windows shell parsing can break resource discovery, and deployment retries can continue after known lease loss, risking failed provisioning and orphaned deployments.
4 open issues
1 file not reviewed
evals/azure-skills/azure-diagnostics/fixture/functions-vnet-routing/app/package-lock.json: Generated file
What changed in this PR
Extends the existing live Azure Diagnostics evaluations with a temporary Flex Consumption fixture that isolates private-storage routing failures while keeping the Function host healthy.
Changes:
- Adds key-protected health and blob-read endpoints, validates healthy private connectivity, then injects a narrow
/32blackhole route. - Adds two read-only diagnostic evaluations and includes them in the skill-improvement plan with a 536-call ceiling.
- Updates fixture provisioning and workflows with coordination fallbacks, configurable timeouts, deployment retries, and resource-provider registration.
| File | Description |
|---|---|
tests/skill-improvement/specs/azure-diagnostics.yaml |
Includes the routing suite and adjusts call budgets. |
tests/skill-improvement/__tests__/workflow.test.ts |
Checks coordination fallbacks and provider registration. |
tests/skill-improvement/__tests__/config.test.ts |
Checks plan budgets and fixture constraints. |
tests/azure-fixtures/provision-fixture.ts |
Adds timeout overrides, deployment retries, and stderr progress logging. |
tests/azure-fixtures/fixture-common.ts |
Defines the optional provisioning timeout. |
tests/azure-fixtures/__tests__/provision-workflow-fixture.test.ts |
Covers coordination timing, retries, and logging. |
tests/azure-fixtures/__tests__/provision-budget.test.ts |
Covers timeout overrides and invalid values. |
evals/azure-skills/azure-diagnostics/functions-vnet-routing.eval.yaml |
Adds symptom-first and change-correlation evaluations. |
evals/azure-skills/azure-diagnostics/fixture/functions-vnet-routing/README.md |
Documents topology, fault injection, and safety constraints. |
evals/azure-skills/azure-diagnostics/fixture/functions-vnet-routing/post-provision.ts |
Deploys the app, verifies baseline connectivity, and injects the fault. |
evals/azure-skills/azure-diagnostics/fixture/functions-vnet-routing/main.bicep |
Defines Functions, networking, keyless storage, and telemetry resources. |
evals/azure-skills/azure-diagnostics/fixture/functions-vnet-routing/azure-manifest.json |
Configures temporary reuse and a 40-minute provisioning budget. |
evals/azure-skills/azure-diagnostics/fixture/functions-vnet-routing/app/src/functions/read-blob.js |
Adds bounded managed-identity blob reads and diagnostic logging. |
evals/azure-skills/azure-diagnostics/fixture/functions-vnet-routing/app/src/functions/health.js |
Adds a storage-independent health endpoint. |
evals/azure-skills/azure-diagnostics/fixture/functions-vnet-routing/app/package.json |
Declares the runtime and application dependencies. |
evals/azure-skills/azure-diagnostics/fixture/functions-vnet-routing/app/package-lock.json |
Locks application dependency versions. |
evals/azure-skills/azure-diagnostics/fixture/functions-vnet-routing/app/host.json |
Disables telemetry sampling for diagnostic evidence. |
.github/workflows/test-all-integration.yml |
Adds coordination settings and Microsoft.App registration. |
.github/workflows/skill-improvement.yml |
Adds coordination settings and Microsoft.App registration. |
Review effort: Balanced
| try { | ||
| return execFileSync(AZ_COMMAND, args, { | ||
| encoding: "utf8", | ||
| shell: process.platform === "win32", |
| `${FIXTURE_COMPONENT_TAG}=${config.resourceGroupNameBase}`, | ||
| retentionTag, | ||
| ], | ||
| dependencies.runAz, |
| return execFileSync(AZ_COMMAND, args, { | ||
| encoding: "utf8", | ||
| shell: process.platform === "win32", | ||
| timeout, |
Replace test-authored diagnostic instructions with symptom-first customer reports and add a temporary baseline-only specification for targeted validation. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> Copilot-Session: 277bdab8-4b39-4631-92e7-b6ec8d849424
The baseline-only workflow completed successfully, so remove the temporary targeted run specification from the permanent branch. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> Copilot-Session: 277bdab8-4b39-4631-92e7-b6ec8d849424
Seed deterministic outbound connection-pressure telemetry on the live Flex topology, add customer-style diagnosis and ZIP support-bundle evals, and include them in Azure Diagnostics hill climbing. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> Copilot-Session: 277bdab8-4b39-4631-92e7-b6ec8d849424
Make critical Flex topology, causal evidence, remediation, and recovery details explicit final-answer gates so tool-only evidence cannot satisfy the routing evals. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> Copilot-Session: 277bdab8-4b39-4631-92e7-b6ec8d849424
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> Copilot-Session: 277bdab8-4b39-4631-92e7-b6ec8d849424
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> Copilot-Session: 277bdab8-4b39-4631-92e7-b6ec8d849424
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> Copilot-Session: 277bdab8-4b39-4631-92e7-b6ec8d849424
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> Copilot-Session: 277bdab8-4b39-4631-92e7-b6ec8d849424
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> Copilot-Session: 277bdab8-4b39-4631-92e7-b6ec8d849424
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> Copilot-Session: 277bdab8-4b39-4631-92e7-b6ec8d849424
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> Copilot-Session: 277bdab8-4b39-4631-92e7-b6ec8d849424
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> Copilot-Session: 277bdab8-4b39-4631-92e7-b6ec8d849424
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> Copilot-Session: 277bdab8-4b39-4631-92e7-b6ec8d849424
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> Copilot-Session: 277bdab8-4b39-4631-92e7-b6ec8d849424
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> Copilot-Session: 277bdab8-4b39-4631-92e7-b6ec8d849424
Resolve the sdk-agent-executor test import overlap in the merged tree. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> Copilot-Session: 277bdab8-4b39-4631-92e7-b6ec8d849424
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> Copilot-Session: 277bdab8-4b39-4631-92e7-b6ec8d849424
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> Copilot-Session: 277bdab8-4b39-4631-92e7-b6ec8d849424
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> Copilot-Session: 277bdab8-4b39-4631-92e7-b6ec8d849424
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> Copilot-Session: 277bdab8-4b39-4631-92e7-b6ec8d849424
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> Copilot-Session: 277bdab8-4b39-4631-92e7-b6ec8d849424
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> Copilot-Session: 277bdab8-4b39-4631-92e7-b6ec8d849424
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> Copilot-Session: 277bdab8-4b39-4631-92e7-b6ec8d849424
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> Copilot-Session: 277bdab8-4b39-4631-92e7-b6ec8d849424


Description
Adds live Azure Functions Flex Consumption VNet diagnostics and remediation
coverage for routing faults, outbound connection pressure, support-bundle
generation, and persistent outbound-capacity pressure.
private-endpoint subnet, private DNS, keyless host/test storage, route table,
Application Insights, and Log Analytics.
endpoint DNS, route changes, and Activity Log evidence.
causal
/32 -> Noneroute and verifies recovery with an actual blob read.scenarios, including deterministic checks for required files, structured
evidence, redaction, and a clickable ZIP link.
connection improvements first, then provisions a Standard public IP and NAT
Gateway, associates only the Function integration subnet, and verifies that
the observed outbound IP matches the NAT public IP under recovery load.
retaining Vally's required original
workDir, then removes restored andsnapshot workspaces after grading.
Microsoft.Appregistration, JSONL-safelogging, bounded provisioning timeouts, and targeted retries for Azure
Network
AnotherOperationInProgressfailures.of 44 development prompts, 10 held-out prompts, and 608 maximum answer/judge
calls.
Validation
npm run build— passed.cd tests && npm test -- --run vally/__tests__/sdk-agent-executor.test.ts skill-improvement/__tests__/evaluation.test.ts— passed, 27/27 tests.cd tests && npm test -- --run skill-improvement/__tests__/config.test.ts— passed, 74/74 tests.cd tests && npm run typecheck— passed.cd tests && npm run lint -- --quiet— passed.cd scripts && npm run vally validate-stimulus— passed.functions-vnet-snat.eval.yaml,functions-vnet-snat-comparative.eval.yaml, andfunctions-vnet-nat-capacity.eval.yaml— passed.passed.
cd tests && npm run skill-improvement -- validate --config ../tests/skill-improvement/specs/azure-diagnostics.yaml— passed; 44 development prompts, 10 held-out prompts, and 608 maximum calls.skill structure, token analysis, line endings, shell permissions, markdown
references, and evaluations.
Checklist
cd tests && npm test)fix:,feat:,feature:,chore:,misc:,test:,eval:tests/,npm run test:vally -- --plugin <plugin-dirname> --skill <skill>) — Not applicable; no skill description changed.Related Issues
Extends the merged Azure Diagnostics evaluation work in #3374 and the live
diagnostics fixture work in #3477.