PolicyGuidedFulfillmentLibertyPlanning WorkflowBasedDeployment

This topic is part of PolicyGuidedFulfillmentLibertyPlanning

Workflow Based Deployment
When all components in an environment will be embraced/built from workflows, it will be possible to create master workflow which orchestrate deployment of whole environment. Complete deployment execution on workflow engine will be scalable, reliable and robust.

Creating Master Workflow for Murano Environment Deployment
The idea is to use power of workflow engines (e.g, Mistral,...) to orchestrate deployment of an environment. To do that it is necessary to generate so called master flow orchestrating deployment of individual components in an environment. It can be done if we have all components embraced from workflow.

Prerequisite
 * we have workflow based variants of core components defined in core package (e.g., all components in io.murano....)
 * deploy action decides whether to use ordinary MuranoPL based deployment, or generate master flow

Notes
 * status reporting to Murano environment log
 * (master) workflow shall be able to report its log/status to the Murano, which will be ultimate storage of environments. We will use RabbitMQ for that, so Murano will listen on predefined queue(s) and stores logs/statuses in Murano as expected


 * state management in Murano
 * result of the master workflow will be all values of properties of all components in an environment.
 * Murano will periodically check state of the workflow (pull), and Mistral will send notification to Murano using RabbitMQ (push)