feat: add Azure ephemeral full-caching preview#186
Conversation
|
Codex review: needs maintainer review before merge. Reviewed May 29, 2026, 10:30 PM ET / 02:30 UTC. Summary Reproducibility: not applicable. this is a feature PR, not a bug report. The PR body supplies after-change live Azure proof instead of a failing reproduction path. Review metrics: 2 noteworthy metrics.
Merge readiness Overall follows the weaker of proof and patch quality, so missing proof can cap an otherwise strong patch. Rank-up moves:
Risk before merge
Maintainer options:
Next step before merge
Security Review detailsBest possible solution: Either merge the opt-in preview mode with the documented preview caveat and live proof preserved, or defer it until maintainers are comfortable owning Azure public-preview support. Do we have a high-confidence way to reproduce the issue? Not applicable: this is a feature PR, not a bug report. The PR body supplies after-change live Azure proof instead of a failing reproduction path. Is this the best way to solve the issue? Unclear as a product decision: the implementation is narrow and provider-scoped, but maintainers must decide whether Crabbox should expose Azure public-preview full-caching behavior now. AGENTS.md: found and applied where relevant. Codex review notes: model gpt-5.5, reasoning high; reviewed against 0b131572702b. Label changesLabel justifications:
Evidence reviewedWhat I checked:
Likely related people:
What the crustacean ranks mean
Shiny media proof means a screenshot, video, or linked artifact directly shows the changed behavior. Runtime, network, CSP, and security claims still need visible diagnostics. How this review workflow works
|
Summary
--azure-os-disk ephemeral-preview/azure.osDisk: ephemeral-previewfor Azure ephemeral OS disk full cachingdiffDiskSettings.enableFullCaching: truewith Compute API2025-04-01on direct CLI and Worker VM create pathsLive findings
armcompute/v6and checkedv7.3.0do not exposeenableFullCaching, so only the preview VM create path uses a narrow raw ARM PUTStandard_D8ads_v6and brokered Linux x64Standard_D8ads_v6both returneddiffDiskSettings.enableFullCaching: truefrom Azure after createpds_v6SKUs advertise ephemeral OS disk support and NVMe placement in East US; live ARM64 create is blocked in this tenant by Dpdsv6 and spot vCPU quotasStandard_D8ads_v6DiskSpd, 4K random write, 512 MiB, 15s, QD32 x 4:ephemeral= 138.58 MiB/s, 35475.34 IOPS, 3.416 ms avg latency;ephemeral-preview= 139.09 MiB/s, 35607.92 IOPS, 3.551 ms avg latencyVerification
go build -trimpath -o bin/crabbox ./cmd/crabboxgo test ./internal/cli -run 'Azure|CoordinatorCreateLease.*Azure|ApplyNativeCheckpointForkConfigHonorsAzureOSDisk'go test ./internal/providers/azurego vet ./...npm run format:check --prefix workernpm run lint --prefix workernpm run check --prefix workernpm test --prefix worker -- test/azure.test.ts test/config.test.tsnpm run build --prefix workergit diff --checkCRABBOX_CONFIG=/dev/null CRABBOX_AZURE_LOCATION=eastus bin/crabbox run --provider azure --target windows --type Standard_D8ads_v6 --azure-os-disk ephemeral --market on-demand --no-sync --preflight --stop-after always --slug diskspd-ephemeral --shell '<DiskSpd workload>'CRABBOX_CONFIG=/dev/null CRABBOX_AZURE_LOCATION=eastus bin/crabbox run --provider azure --target windows --type Standard_D8ads_v6 --azure-os-disk ephemeral-preview --market on-demand --no-sync --preflight --stop-after always --slug diskspd-preview --shell '<DiskSpd workload>'az resource list -g crabbox-leases --query "[?contains(name,'diskspd') || contains(name,'ephem-preview')].{type:type,name:name}" -o tablereturned no leftover resources