Skip to content

Azure discovery gaps block cost E2E: Container Apps, Azure ML, Storage Account ARG projection #334

Description

@NitinKumar004

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.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions