Sub-issue of datum-cloud/enhancements#713 — Physical inventory for Milo, follow-on to datum-cloud/infra#2675.
Goal
A datumctl data view over the inventory service so operators can read the fleet from the CLI — providers, regions, sites, clusters, nodes (and later networkdevices) — against the inventory.miloapis.com/v1alpha1 CRDs now populated on prod.
Today the only way to view loaded inventory is raw datumctl get sites -L topology.inventory.miloapis.com/region (works, but bare). This issue is the first purpose-built read experience.
Context
Real data is loaded on prod (#2675): 4 providers, 18 regions, 19 sites (#2677), 18 clusters, 90 nodes from Omni (#2680). This view consumes that.
Scope
- Commands to list/get inventory kinds with sensible default columns (e.g. site → region, provider, ISO_ID; cluster → site, node count).
- Surface
topology.inventory.miloapis.com/* topology labels and key cross-refs (providerRef/regionRef/siteRef) in output.
- Filtering by region/provider/site;
-o json|yaml|wide parity with existing datumctl get.
- Read-only.
Open questions
- Dedicated
datumctl inventory ... subtree vs. relying on generic datumctl get <kind> with improved column printers.
- Rollup views (e.g. nodes-per-site, sites-per-region) in-CLI vs. deferred to the portal.
Exit criteria
Relates
- Sibling: staff-portal inventory view (separate issue).
- Data loaded by datum-cloud/infra#2675.
Sub-issue of datum-cloud/enhancements#713 — Physical inventory for Milo, follow-on to datum-cloud/infra#2675.
Goal
A
datumctldata view over the inventory service so operators can read the fleet from the CLI — providers, regions, sites, clusters, nodes (and later networkdevices) — against theinventory.miloapis.com/v1alpha1CRDs now populated on prod.Today the only way to view loaded inventory is raw
datumctl get sites -L topology.inventory.miloapis.com/region(works, but bare). This issue is the first purpose-built read experience.Context
Real data is loaded on prod (#2675): 4 providers, 18 regions, 19 sites (#2677), 18 clusters, 90 nodes from Omni (#2680). This view consumes that.
Scope
topology.inventory.miloapis.com/*topology labels and key cross-refs (providerRef/regionRef/siteRef) in output.-o json|yaml|wideparity with existingdatumctl get.Open questions
datumctl inventory ...subtree vs. relying on genericdatumctl get <kind>with improved column printers.Exit criteria
datumctlwith readable default columns.-o yamlspelunking.Relates