Skip to content

Inventory (M6): operator discovery, get/describe, and activity query for inventory.miloapis.com #204

@ecv

Description

@ecv

Downstream client work for milo-os/inventory#34 — M6: Audit & query, under the physical-inventory enhancement datum-cloud/enhancements#713.

Context

The inventory operator (inventory.miloapis.com/v1alpha1) ships cluster-scoped CRDs — Region, Site, Cluster, Node, NetworkDevice, Link, Provider, Rack, Port, Cable, Circuit, VirtualMachine — on the Milo control plane. M6 makes them auditable (Activity capability) and queryable (printer columns, topology.* labels, field indexers). datumctl is the first operator-facing client.

Audience is staff / operators, not per-project consumers.

Goal

Confirm operators can discover, read, and audit inventory through datumctl — mostly via the existing kubectl-style surface, plus activity query. New code only where gaps exist.

Tasks

  • datumctl api-resources lists all inventory kinds against a control plane with the CRDs installed
  • datumctl get <kind> / describe <kind> work and render the printer columns M6 defines (key refs, type, topology)
  • --selector topology.inventory.miloapis.com/...=… returns assets by region/site/cluster/rack
  • datumctl activity query --filter "<CEL>" returns readable inventory timelines (verify against the ActivityPolicies M6 ships) — e.g. filter objectRef.apiGroup == 'inventory.miloapis.com'
  • Identify and file any gaps (missing convenience views, output formatting) as follow-ups; no new view code unless a gap blocks operators

Depends on

Non-goals

  • No project-scoped / consumer-facing inventory surfacing — operators only.

cc @scotwells

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions