ae87cd1714
NOTE: This has become a monolithic commit to get gate settings/scripts in place for CI - Add Makefile with UCP standard entrypoints - Move Dockerfile into images/drydock per UCP standards - Add values.yaml entries for uWSGI threads and workers - Add environment variables to chart Deployment manifest for uWSGI thread and workers - Add threads and workers specification to uWSGI commandline in entrypoint - Test that the Drydock API is responding - Test that the Drydock API rejects noauth requests - Fix Makefile utility script to work behind a proxy Correct task success voting Some tasks were incorrectly considered partial_success even when no failure occurred. - Network configuration erroneously marked messages as errors - Update result propagation logic to only use the latest retry The deploy_nodes task ended as incomplete due to a missing subtask assignment Also added a node check step to prepare_nodes so that nodes that are already under provisioner control (MaaS) are not IPMI-rebooted. Tangential changes: - added config item to for leadership claim interval - added some debug logging to bootaction_report task - fix tasks list API endpoint to generate valid JSON Improve task concurrency When tasks are started with a scope of multiple nodes, split the main task so each node is managed independently to de-link the progression of nodes. - Split the prepare_nodes task - Begin reducing cyclomatic complexity to allow for better unit testing - Improved tox testing to include coverage by default - Include postgresql integration tests in coverage Closes #73 Change-Id: I600c2a4db74dd42e809bc3ee499fb945ebdf31f6 |
||
---|---|---|
.. | ||
db | ||
design | ||
__init__.py | ||
readme.rst | ||
state.py |
readme.rst
Statemgmt - Persisted State Management
Statemgmt is the interface to the persistence store for managing task data and build data for nodes. Currently Drydock only supports a Postgres database backend. This module will also resolve design references to retrieve the design data from the specified external reference
Tables
tasks
The tasks
table stores all tasks - Queued, Running,
Complete. The orchestrator will source all tasks from this table.
result_message
The result_message
table is used for storing all of the
detailed messages produced while executing a task. These are sequenced
and attached to the task when serializing a task.
build_data
The build_data
table is used for storing the build
history and details of nodes in the site. When a node is destroyed and
redeployed, the history will persist showing that transition.
active_instance
active_instance
is a small semaphore table so that
multiple instances of Drydock can organize and ensure only a single
orchestrator instance is executing tasks.
Design References
Rather than Drydock storing design data internally, it instead supports a URI-based reference scheme. The URI should specify the driver and transport details required to source the data. Once the data is retrieved by the driver, it will be sent to an ingester for translation into the internal Drydock object model.
Example design reference URI:
deckhand+https://deckhand-api.ucp.svc.cluster.local:8443/e50b4d74-9fab-11e7-b7cc-080027ef795a
Current Drivers
Drydock currently can resolve design references to simple
file://
and http://
endpoints with no
authentication required. Local files must provide absolute paths.
Planned Drivers
There is planned support for https://
and
deckhand+https://
endpoints.