A declarative host provisioning system.
Go to file
Scott Hussey 80b3a1e99d Orchestration of MaaS enlistment (#42)
* WIP - Initial API implementation with Falcon

* API service for /designs and /tasks endpoints

REST API using falcon library
Middleware for authentication (stubbed until Keystone is avail)
Middleware for context and logging
Request logging and initial error logging
README updates

* Cleanup readme formatting

* Rename helm_drydock to drydock_provisioner

* Fixed missing except statement

* Fixed missing except statement

* Reorganize API paths in a list
Fix duplication of context init
Add API version prefix to URLs

* DRYD-2 MVP - phase 1 - node enlistment

Add node driver task for IdentifyNode
Implement MaaS API interface for Machines and Interfaces
2017-06-15 20:42:53 -07:00
drydock_provisioner Orchestration of MaaS enlistment (#42) 2017-06-15 20:42:53 -07:00
examples Orchestration of MaaS enlistment (#42) 2017-06-15 20:42:53 -07:00
tests Orchestration of MaaS enlistment (#42) 2017-06-15 20:42:53 -07:00
.gitignore Adding Python .gitignore 2017-06-12 15:41:12 +01:00
LICENSE Initial commit 2017-02-14 17:23:35 -05:00
README.md Orchestration of MaaS enlistment (#42) 2017-06-15 20:42:53 -07:00
requirements.txt Last commit to push changes to master. Will use feature branches 2017-03-15 14:53:46 -05:00
setup.py Orchestration of MaaS enlistment (#42) 2017-06-15 20:42:53 -07:00
testrequirements.txt Convert the object model to use oslo.versionedobjects (OVO) 2017-05-02 10:57:22 -05:00
tox.ini Initial Python skeleton and the model 2017-02-22 17:32:55 -06:00

README.md

drydock_provisioner

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:

$ virtualenv -p python3 /var/tmp/drydock
$ . /var/tmp/drydock/bin/activate
$ python setup.py install
$ uwsgi --http :9000 -w drydock_provisioner.drydock --callable drydock --enable-threads -L

Modular service

Design Consumer

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.

Design State API

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.

Control API

aka control

User-approachable API for initiating orchestration actions or accessing other internal APIs

Infrastructure Orchestrator

aka orchestrator

Handle validation of complete design, ordering and managing downstream API calls for hardware provisioning/bootstrapping

OOB Driver

Pluggable provider for server OOB (ILO) management

aka driver/oob

Node Driver

aka driver/node

Pluggable provisioner for server bootstrapping. Initial implementation is MaaS client.

Introspection API

aka introspection

API for bootstrapping nodes to load self data. Possibly pluggable as this is basically an authenticated bridge to the Design State API