Skip to content

Workflow

A Workflow defines an ordered sequence of stages that a machine progresses through during provisioning or lifecycle management. It is the top-level orchestration object that drives machine state transitions from discovery through OS installation to final configuration.

When a Workflow is applied to a Machine, the machine's current task list is replaced with the expanded contents of each stage in the workflow. For each stage, the expansion produces: a stage:stageName entry, an optional bootenv:bootEnvName entry (if the stage has a non-empty BootEnv), and then the stage's individual tasks. This flattened task list becomes the machine's execution plan.

While a Workflow is active on a machine, the machine's Stage and BootEnv fields become read-only. Stage and boot environment transitions occur automatically as the machine progresses through its task list, and manual changes to those fields are not permitted. The Workflow's Stages field can also include direct task references (prefixed with task:), action references (prefixed with action:), and context switches (prefixed with context:), providing flexibility in composing execution sequences.

Workflows are applied to Machine objects and contain references to Stage objects. They work in concert with BootEnv, Tasks, and Profile objects to define complete provisioning pipelines.

Metadata

Field Description Value
universal Describes the entry point for the workflow.
The entry point for pipelines. start
Performs provision operations for pipelines. provision

Fields

Field Definition
Description Description is a string for providing a simple description
Documentation Documentation is a string for providing additional in depth information.
Meta Meta contains the meta data of the object.

The type of this field is a key / value map/dictionary.
The key type is string.
The value type is also string.

The general content of the field is undefined and can be an arbritary store.
There are some common known keys:

color - The color the UX uses when displaying
icon - The icon the UX uses when displaying
* title - The UX uses this for additional display information. Often the source of the object.

Specific Object types use additional meta data fields. These are described at:
https://docs.rackn.io/stable/redirect/?ref=rs_object_metadata
Name Name defines the name of the workflow
Stages Stages contains the list of stages that make up the workflow.

Additionally, tasks can be directly specified by prepending task: to the task name.
Additionally, actions can be directly specified by prepending action: to the action name.
Additionally, context changes can be directly specified by prepending context: to the context name.

When the workflow field on a machine is set, the current task list on the machine is replaced with the results of expanding each stage in the workflow using the following items:

  • stage:stageName
  • bootenv:bootEnvName (if the stage has a non-empty bootenv field)
  • task0...taskN (the content of the stage's Tasks field)

Additionally, the Stage and BootEnv fields of the machine become read-only, as stage and bootenv transitions will occur as dictated by the machine task list, and when the stage changes it does not affect the task list.