[Proposal] - Bootstrapping + support for different resource types #290
Description
There are more types of resources in a computing infrastructure landscape than just instances (compute). The current focus on managing instances have led to the development of top level concepts like groups, instances, and flavors. While these primitives and their operations (rolling update, scale, destroy) are quite general, we need to see how they can be applied to other resource types and if they don't fit, define new abstractions and models where they make sense.
The resource types that are important and need to be addressed include
- networks
- volumes
- security groups / firewalls
- load balancers
As state convergence of more resource types are addressed, it will also solve the bootstrapping problem. Bootstrapping is defined as the process to set up the environment enough such that InfraKit can then take over and ensure the convergence of infrastructure state to user specification. Carried to the extreme, the bootstrapping process can be reduced to the creation of a single node, the seed, from which everything else will be created, as InfraKit drives the entire infrastructure towards the user's specification.