Summary
Four Azure resource types cannot be verified end-to-end through the real ZopNight discoverer against cloudemu today, because they are either not emulated or not projected into the Resource Graph (ARG) walker. This blocks E2E coverage of several Azure cost-accuracy fixes.
Follow-up to #323 (ARG cost-field projection) — same spirit, four more types.
Gaps
| Type |
Status |
Needed for cost E2E |
Container Apps (Microsoft.App/containerApps) |
Not emulated at all |
ARG row projecting properties.template.containers[].resources.cpu / .memory and properties.template.scale.minReplicas — the vCPU/memory/replica cost inputs a discoverer prices on |
Azure ML AmlCompute (Microsoft.MachineLearningServices/workspaces/computes) |
Not emulated |
Compute-cluster read exposing properties.vmSize, properties.vmPriority (Dedicated/LowPriority), properties.scaleSettings.minNodeCount, properties.currentNodeCount |
Storage Account (Microsoft.Storage/storageAccounts) |
Server exists (server/azure/storageaccount) but the resourcediscovery walker does not emit storage accounts to ARG |
ARG row carrying sku.name/sku.tier (e.g. Premium_LRS), kind (BlockBlobStorage), and properties.accessTier so premium-vs-hot pricing can be verified |
| Databricks instance pools |
Emulated via the Databricks REST dataplane (CreateInstancePool), not surfaced to the discovery path the ARG harness uses |
Either an ARG/discovery surface, or documented guidance for pointing a Databricks-REST discoverer at the emulator; and expose idleCount / usedCount alongside minIdleInstances |
Why it matters
ZopNight's cost engine prices these from exactly the fields above (Container Apps per-vCPU/memory/replica; AmlCompute low-priority = ~20% of dedicated; Premium storage = ~8–11x Hot; Databricks pool cost = idle instances, not the min-idle floor). Without an emulated discovery surface, these fixes can only be unit-tested against hand-shaped inputs — the emulator would let them be verified against an independent, real-SDK round-trip like the disk/VM/SQL-MI/VMSS/AKS types already are.
Suggested shape
Mirror the #323 pattern: add each type to the resourcediscovery walker with the cost-relevant properties/sku projected, and wire the ARM create paths so the fields survive create → discover.
Summary
Four Azure resource types cannot be verified end-to-end through the real ZopNight discoverer against cloudemu today, because they are either not emulated or not projected into the Resource Graph (ARG) walker. This blocks E2E coverage of several Azure cost-accuracy fixes.
Follow-up to #323 (ARG cost-field projection) — same spirit, four more types.
Gaps
Microsoft.App/containerApps)properties.template.containers[].resources.cpu/.memoryandproperties.template.scale.minReplicas— the vCPU/memory/replica cost inputs a discoverer prices onMicrosoft.MachineLearningServices/workspaces/computes)properties.vmSize,properties.vmPriority(Dedicated/LowPriority),properties.scaleSettings.minNodeCount,properties.currentNodeCountMicrosoft.Storage/storageAccounts)server/azure/storageaccount) but theresourcediscoverywalker does not emit storage accounts to ARGsku.name/sku.tier(e.g.Premium_LRS),kind(BlockBlobStorage), andproperties.accessTierso premium-vs-hot pricing can be verifiedCreateInstancePool), not surfaced to the discovery path the ARG harness usesidleCount/usedCountalongsideminIdleInstancesWhy it matters
ZopNight's cost engine prices these from exactly the fields above (Container Apps per-vCPU/memory/replica; AmlCompute low-priority = ~20% of dedicated; Premium storage = ~8–11x Hot; Databricks pool cost = idle instances, not the min-idle floor). Without an emulated discovery surface, these fixes can only be unit-tested against hand-shaped inputs — the emulator would let them be verified against an independent, real-SDK round-trip like the disk/VM/SQL-MI/VMSS/AKS types already are.
Suggested shape
Mirror the #323 pattern: add each type to the
resourcediscoverywalker with the cost-relevantproperties/skuprojected, and wire the ARM create paths so the fields survive create → discover.