PolicyGuidedFulfillmentLibertyPlanning WorkflowEmbracement
This topic is part of PolicyGuidedFulfillmentLibertyPlanning
Workflow Embracement
Currently it is possible to use Mistral workflow in Murano component action. The next step is to create component completely from the Mistral workflow, so any component action will be implemented by an action. During embracement (i.e., process of component creation from workflows) it should be possible to specify a) dependencies of the component on other components (e.g., Instance); b) mapping of workflow's input and output from/to component properties.
Creating Murano Component From Mistral Workflow
Mistral workflow is another Murano component action implementation (currently Murano support Murano PL and HOT template). The difference is implementation style - action is building from existing Mistral actions which are scheduled and executed by Mistral engine.
Mistral workflow typically won't be creating infrastructure (e.g., server, network, ...), thus we want to support contracts in workflow embraced components. Further workflow Input properties shall be able to get values from either user using UI, or contract .
Workflow output properties shall be available on the component.
Example
workflow.yaql contains workflow implementing deploy action.
version: '2.0' create_vm: description: Install apache using package tools, configures apache for given port, and starts it. It uses Murano agent for execution of commands on the Murano instance. type: direct input: - queue_id - port output: url: <% $.url %> ....
definition.yaml contains various mappings
component-properties: port contracts: instance workflows
$ murano create-package --mistral-workflow <workflow.yaql> <definition.yaml>
where
Workflow Implementation Support
Murano agent integration
Command execution