Blueprint-nova-planned-resource-reservation-api
- Created: Julien Danjou
- Contributors: Julien Danjou, Patrick Petit, François Rossigneux
Summary
This blueprint introduces a reservation planning concept.
The aims of this blueprint is:
- to allow resources to be reserved in advance for a certain amount of time by users
- to allow operators to do capacity planning based on made reservation
- to allow resources to be reserved in advance with extra criteria and hints for the scheduler
- to allow instances to be created from and accounted in a reservation
Design
A reservation, or lease, is tight to a project. It has a start and an end timestamp, during which the lease is valid. It also has a number of nodes and their flavors associated with, so it can be quantified. A lease has a set of scheduler hints set that are immutable. An API call allows a user to retrieve the list and combination of applicable hints. When a user tries to creates a lease, the list of scheduler hints is checked for validity: an operator can refuse a lease with invalid or too strict hints.
When an instance is created, it's registered as being part of the lease when the user passes the information at creation time. It's taken from the lease when it's destroyed. If an instance is created as being part of a lease, the scheduler has to launch the instance with the requirements fulfilled.