Custom Resource type managed by Mistral Workflows

Registered by Sharon Mendel-Brin

Currently when deploying a service in heat and using Mistral Workflows as part of the process there isn’t a direct way to control the execution of the workflows by Mistral. There is a workaround that provides a partial solution by using the OS::Mistral::CronTrigger using this workaround a workflow can be executed but there isn’t full control over it:
* There is no feedback whether the execution succeeded or failed - in some cases the workflow execution is an important part of the stack (preparation, post configuration, etc.) and if that fails we would like to fail the stack operation.
* When there is a need as part of the deployment to create resources and run the workflows in a certain order.. Example use cases:
   1. A stack that creates networks and a workflow that configures an external router.
   2. A workflow that searches for existing resources, like a flavor by CPU and RAM or a network by the CIDR and exposes these resources as outputs. These outputs can be used by the other stack resources like servers, etc.
   3. A stack that creates a server (with an image that does not have cloud-init), configures it and than attach a volume.
   4. Check prerequisites - for example, a workflow that check an external system for approval / license before creating the other stack resources.

To support the above missing functionality we suggest to implement a new resource type OS::Mistral::WorkflowExecution which will trigger the workflow exection by Mistral

Blueprint information

Rico Lin
Sharon Mendel-Brin
Giulio Fidente
Series goal:
Accepted for pike
Milestone target:
milestone icon pike-2
Started by
Zane Bitter
Completed by
Zane Bitter

Related branches



Gerrit topic:,topic:bp/mistral-new-resource-type-workflow-execution,n,z

Addressed by:
    Implements execution of Mistral workflows using a Heat resource

Addressed by:
    Custom Resource type managed by Mistral Workflows


Work Items

Dependency tree

* Blueprints in grey have been implemented.

This blueprint contains Public information 
Everyone can see this information.