The Operator API should provide a mechanism to observe the current capacity of a system, at both a "virtually provisioned" layer, and a "physical" layer.
#1782 is necessary for showing the "virtually provisioned" layer.
For the physical provisioning layer, we can break this into some sub-tasks:
- [ ] Nexus: External API
- [ ] Nexus: External API: Should be able to answer: "What disks are attached to a sled?"
- [ ] Nexus: External API: Should be able to answer: "What's the historical usage information of a disk?"
- [ ] Nexus: DB Structures
- [ ] Nexus: Internal API for Sled Agent to inform nexus about disks (u.2 vs m.2, slot number), partitions, etc.
- [ ] Sled Agent: Scraping disk list from the Sled Agent
- [ ] Sled Agent: Scraping disk utilization from Sled Agent
- [ ] Sled Agent: Emitting this info to Nexus' internal API (what disks/partition exist)
- [ ] Sled Agent: Emitting this info to Clickhouse (utilization)
The Operator API should provide a mechanism to observe the current capacity of a system, at both a "virtually provisioned" layer, and a "physical" layer.
#1782 is necessary for showing the "virtually provisioned" layer.
For the physical provisioning layer, we can break this into some sub-tasks: