Closed michaelquigley closed 4 years ago
First cut will be a "linked" infrastructure strategy, that allows a model to be initialized from the label of an existing, initialized model.
The first model (zitilab/characterization/ziti
, for example) will be expressed using the terraform
strategy. The second model (zitilab/characterization/internet
) will be expressed using the linked
strategy. Then anytime the infrastructure is expressed in the internet
model, it will update the linked expression from the parent model.
This will allow us to keep models relatively independent and covariant, sharing the same infrastructure.
Closing for now, as we now incorporate the linked
infrastructure strategy, allowing models to piggyback on the expressed infrastructure of other models.
Future enhancement issues will express requirements for specific strategy implementations.
The
0.3.x
series is currently hardcoded to useterraform
as it's framework for expressing infrastructure. The infrastructure expression lifecycle stage is currently idempotent, becauseterraform apply
itself is idempotent.We're going to want to be able to swap in different infrastructure expression strategies. In a lot of cases, we may want multiple models to share a single chunk of infrastructure (characterization, for example). So, we may want to be able to express additional models on shared infrastructure.
Possibly co-develop an "inventory-based" infrastructure expression strategy. The existing
terraform
-based strategy could emit inventory data, which could then be re-used to express additional models on top of.