You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
This feature spec proposes a new automation experience that is much less complicated. The underlying driver for this change is actually to create an improved service catalog experience. However, as one builds out their service catalog, the first stumbling block is the need to build a dialog, and the automation behind it. Writing Automate is incredibly complicated, and requires a lot of knowledge of the system in addition to Automate itself (there's literally an entire book). This feature spec is to design a new experience that is much more user friendly, and allows users to build automation in a much more natural way.
We will create a new a new step based automation system. Each step will execute a container. We will support import/export and even in-browser development by serializing to Amazon State Languages (ASL). It is the responsibility of the end user to build and support the containers with the execution of each step.
Considerations
There are some considerations about the current system that we need to take into account.
One of the more widely used features of Automate is the ability to create and modify a State Machine, being able to execute custom code at each state. Currently users create and modify existing state machines, but doing so within Automate is complicated and the interface is not user friendly.
Users want to reuse existing state machines within other state machines.
Users want to be able to execute in any language they are familiar with, and not just Ruby or Ansible, however Ruby and Ansible will be required for existing users that have already written automation in Automate.
Design
For the purposes of this document I am referring to this step-function-like automation as "workflows".
The above 2 forms can be represented with tabs or with an icon indicator similar to how we used to do Grid-Tile-List view
Copy from Embedded Ansible to start. Later we may want to consolidate with Embedded Ansible's Playbooks
Credentials
Credential types should come from the provider similar to how Embedded Ansible credentials come from the provider
Documentation
All of the above
Need a way to document adding docker registries and their credential
How to add to an appliance
How to add to a kubernetes cluster
Phase 2
New UI for workflow instances
Not sure where this should live.
Requests? / My Tasks?
A tab in a request similar to how Ansible playbooks show their output?
Show the current runtime state of the workflow
Text version is a table showing the state's start/end time, inputs/outputs errors, logs, etc
Also need to be able to see the JSON format of the workflow that was used to execute the instance as it may be different from the original workflow.
Graph UI (reuse the graph UI for runtime presentation)
Highlight current step
Have details available if a previous step is clicked on
Show start/end time, inputs/outputs, errors, logs, etc
If a step fails we can highlight it red, if a step succeeds highlight it green, current step highlight in yellow?
Future Plans
Out of the box base containers for at least Ruby (later: Shell, Ansible Execution Environments (EE), Python, Javascript)
Predefined Steps
Send Email
Call Webhook
Maybe more complex stuff like Open a ServiceNow ticket?
Dev/Test/Prod workflow
How to test / dry-run workflows; Simulate action? (or is this just Launch with a dry-run parameter?)
Rely on git branches?
Allow providers to bring their own workflows, such as provisioning.
Optimization to fetch all images ahead of time
Authoring without a git repository
UI under "Workflows" to create/update/delete a workflow or import from a JSON file
Export workflows to .zip or .tgz
More details in graph view of a workflow
Details in right side panel when a node is clicked
In authoring mode have a toolbar palette of different node types
All ASL node types
In the future, allow for selection other workflows to embed one workflow within another.
More integration points
Automate methods
Event handlers
Policy actions
Backward Compatibility
We do not intend for this to be directly backward compatible with Automate, and therefore we don't intend for there to be a migration plan. If this new Workflow system is better, we will manually migrate existing things, such as the provisioning and retirement Automate models.
This issue has been automatically marked as stale because it has not been updated for at least 3 months.
If you can still reproduce this issue on the current release or on master, please reply with all of the information you have about it in order to keep the issue open.
Thank you for all your contributions! More information about the ManageIQ triage process can be found in the triage process documentation.
This feature spec proposes a new automation experience that is much less complicated. The underlying driver for this change is actually to create an improved service catalog experience. However, as one builds out their service catalog, the first stumbling block is the need to build a dialog, and the automation behind it. Writing Automate is incredibly complicated, and requires a lot of knowledge of the system in addition to Automate itself (there's literally an entire book). This feature spec is to design a new experience that is much more user friendly, and allows users to build automation in a much more natural way.
Tracking issues:
Overview
We will create a new a new step based automation system. Each step will execute a container. We will support import/export and even in-browser development by serializing to Amazon State Languages (ASL). It is the responsibility of the end user to build and support the containers with the execution of each step.
Considerations
There are some considerations about the current system that we need to take into account.
Design
For the purposes of this document I am referring to this step-function-like automation as "workflows".
Backend
ASL Runtime/Orchestration
Modeling
ConfigurationScriptSource
model as a baseAuthentication
model as a baseConfigurationScriptPayload
model as a basepayload
column to be used to embed the ASL directlycredentials
column to be used for credential mapping needed by the workflow to know which fields map to which credentialsConfigurationScript
model as a basecontext
field will store the running context of the workflow.context
encapsulates the entire workspace of the workflowAPI
/api/configuration_script_sources
for repositories/api/configuration_script_payloads
for workflows/api/configuration_scripts
for workflow instances/api/authentications
(or/api/providers/:id/authentications
) for credentialsUI
Automate -> Embedded Workflows
(can be mostly copied from Embedded Ansible)Repositories
Workflows
Credentials
Documentation
Phase 2
Future Plans
Backward Compatibility
We do not intend for this to be directly backward compatible with Automate, and therefore we don't intend for there to be a migration plan. If this new Workflow system is better, we will manually migrate existing things, such as the provisioning and retirement Automate models.
Alternatives considered
Videos
The text was updated successfully, but these errors were encountered: