Inventory fabric
Craton's inventory should support seamlessly wrapping other inventory sources of truth; and join with its own inventory, especially devices.
Blueprint information
- Status:
- Not started
- Approver:
- None
- Priority:
- Undefined
- Drafter:
- Jim Baker
- Direction:
- Needs approval
- Assignee:
- None
- Definition:
- New
- Series goal:
- None
- Implementation:
- Unknown
- Milestone target:
- None
- Started by
- Completed by
Related branches
Related bugs
Sprints
Whiteboard
Craton needs to integrate with other sources of truth, which may co-reside in the same database; in an external system with a REST API; or by user usage, such as against Nova host/VM mappings.
Virtualized variables, where variables are made available by a plugin; and are accessible through the standard variable interface can offer most of what is necessary here. Much like a symbolic link, the *actual* variables can be used as a symbolic link to provide the necessary lookup context.
An example of a virtualized variable would be a 'nova' key on a host which provides read-only information about the host as known to Nova, such as the VMs running on this host. A virtualized variable plugin would register ownership of the 'nova' key and then determine specifics, including any caching policy. oslo.cache should be used to avoid dogpile problems upon retrieval.
We should also look at virtualizing the device hierarchy, and possibly labels; but this most likely should be another blueprint.