A python REST orchestrator to translate a YAML host topology to a provisioned set of hosts and provide a set of cloud-init post-provisioning instructions.
To run:
$ docker build . -t drydock
$ docker run -v /path/to/drydock/repo/examples:/etc/drydock -P --name='drydock' drydock
$ DDPORT=$(docker ps -f name=drydock | grep -oE '0.0.0.0:[0-9]+' | cut -d':' -f 2)
$ curl -v http://localhost:${DDPORT}/api/v1.0/designs
aka ingester
Pluggable service to ingest a inventory/design specification, convert it to a standard internal representaion, and persist it to the Design State API. Initial implementation is the consumer of YAML schema.
aka statemgmt
API for querying and updating the current design specification and persisted orchestration status. CRUD support of CIs that are not bootstrap-related, but can be used by other automation.
aka control
User-approachable API for initiating orchestration actions or accessing other internal APIs
aka orchestrator
Handle validation of complete design, ordering and managing downstream API calls for hardware provisioning/bootstrapping
Pluggable provider for server OOB (ILO) management
aka driver/oob
aka driver/node
Pluggable provisioner for server bootstrapping. Initial implementation is MaaS client.
aka introspection
API for bootstrapping nodes to load self data. Possibly pluggable as this is basically an authenticated bridge to the Design State API