I got tired of having to configure automation on every single instance type. So I set up a Universal Workflow. This is a cool feature. If only it worked in an ideal fashion.
My universal workflow does a couple of things:
- Sends a welcome email to the deployer letting them know their VM deployed, and it contains info about their deployed VM.
- It contacts Service Now, and writes a CMDB record about the VM that is deployed.
Since these are two things “every” VM would need to do, it makes sense for it to be a universal workflow. But…
I learned that the variables you pull for an image in your Blueprints, does not always marry up to the Morpheus variables in a Morpheus System Image (i.e. a Rocky Linux). I did some checking between the two, and learned that you should avoid EVARS, and use the container/server variables.
But guess what? When you deploy a Kubernetes Cluster, this workflow kicks off, and all of the nodes fail - master and workers. Why? Because they don’t (seem to) have these variables! So this is a problem, especially if you are deploying clusters and VMs.
The other problem with a Universal Workflow, is that if you have a task that has Input Fields, you’re totally screwed if someone launches a Morpheus System Image (i.e. Rocky Linux), which doesn’t have, or allow, Input Fields. If your task if validating for the presence of variables and throwing exceptions if those values aren’t found, then all of your Morpheus System Images will fail.
I sure hope we can find a way to deal with this kind of thing because I really liked the idea of using a Universal Workflow.