A workflow visualization tool for OpenStack Mistral (https://github.com/openstack/mistral)
http://rawgit.com/nokia/CloudFlow/master/docs/index.html
- Visualize the flow of workflow executions
- Identify the execution path of a single task in huge workflows
- Easily distinguish between simple task (an action) and a sub workflow execution
- Follow tasks with a
retry
and/orwith-items
- 1-click to copy task's input/output/publish/params values
- See complete workflow definition and per task definition YAML
- And more...
CloudFlow requires Mistral Pike or greater, as we rely on new runtime_context added to Mistral Pike.
CloudFlow has no dedicated backend service and passes the API calls to Mistral via Proxy settings.
In the scripts
folder there are 2 configuration files: one for
when using ngnix and one for apache.
To run CloudFlow on your Mistral instance:
- Go to releases tab and
download the latest release. Extract into a known location (i.e.
/opt
) so you'll have a/opt/CloudFlow/
folder.- There will be 2 folders in there:
dist
which holds the UI application, andscripts
for the various web servers options.
- There will be 2 folders in there:
- Copy the appropriate configuration file to the configuration directory on
your Mistral machine:
- nginx: usually:
/etc/nginx/conf.d/http/servers/
- Apache2:
- Linux:
/etc/apache2/sites-enabled/
. - Mac:
/etc/apache2/other/
. Also make sure that the environment variable APACHE_LOG_DIR is set to the proper value. On Mac computers it's usually/var/log/apache2
. - Note that for apache2 several modules need to be enabled. See file for more info.
- Linux:
- nginx: usually:
- Optionally update the path in the configuration file(s) to point to the
dist
folder (i.e./opt/CloudFlow/dist
) - Optionally update the port for which CloudFlow will be served in the browser (currently: 8000)
- Optionally enable HTTPS in the configuration file.
- Restart nginx/apache.
- Open the browser and navigate to
http[s]://<your_mistral_ip>:8000
. - Whenever there is an update to CloudFlow, simply download the latest version and extract it in the same place.
A Dockerfile will be provided in future release.
CloudFlow supports the OpenID Connect protocol (and was tested against KeyCloak).
If your Mistral requires authentication and uses the OpenID Connect protocol,
create the following auth.json
file under the assets/
folder (i.e. assets/auth.json
):
{
"_type": "openid-connect",
"issuer": "<Url of the Identity Provider>",
"loginUrl": "<Url for login endpoint>",
"clientId": "<Client Identifier valid at the Authorization Server>"
}
You can obtain all the URLs by examining the output of https://<openid-server-ip>:<port>/auth/realms/<realm>/.well-known/openid-configuration
If you want to work w/o authentication, make sure your Mistral does not require authentication to perform REST API
requests, by setting the following in /etc/mistral/mistral.conf
:
[pecan]
auth_enable=False
Also, make sure there is no auth.json
file under the assets/
directory.
- Clone this repo
yarn install
(preferred) ornpm install
- Edit
proxy.conf.json
to point your Mistral instance. - Edit the
auth.json
file (if needed) npm run start
- Clone this repo
yarn install
(preferred) ornpm install
npm run build
- The artifacts will be stored in
dist
folder.