Add some additional information to the mistral-to-ansible spec

These extra details are attempting to establish a pattern that can be
replicated by any other contributors.

Change-Id: I4505a37385cbf15d7fe41314fbf223b46d691f53
This commit is contained in:
Dougal Matthews 2020-01-23 14:35:38 +00:00
parent 9b35c4ba1c
commit 2c34ac880c

View File

@ -22,7 +22,7 @@ Problem Description
Mistral was originally added to take the place of an “API” and provide common
logic for tripleoclient and TripleO UI. After the TripleO UI was removed, the
only consumer of Mistral is tripleoclient. This means that Mistral now adds
unnecessary complexity.
unnecessary overhead and complexity.
Proposed Change
@ -56,6 +56,7 @@ Security Impact
therefore they shouldn't create a new attack vector.
Upgrade Impact
--------------
@ -65,7 +66,7 @@ Upgrade Impact
* Older versions of tripleoclient will no longer work with the undercloud as
they will expect Mistral to be present.
* Most of the data in Mistral in ephemeral, but some longer term data is stored
* Most of the data in Mistral is ephemeral, but some longer term data is stored
in Mistral environments. This data will likely be moved to Swift.
@ -73,13 +74,13 @@ Other End User Impact
---------------------
The output of CLI commands will change format. For example, the Mistral
workflow ID will no longer be included and other Ansible specific output may be
included. Where possible we will favour streaming Ansible output to the user,
making tripleoclient very light and transparent
workflow ID will no longer be included and other Ansible specific output will
be included. Where possible we will favour streaming Ansible output to the
user, making tripleoclient very light and transparent.
Some CLI commands, such as introspection will need to fundamentally change their
output. Currently they send real time updates and progress to the client with
Zaqar. Despite moving the execution locally, we are unable to easily get
Some CLI commands, such as introspection will need to fundamentally change
their output. Currently they send real time updates and progress to the client
with Zaqar. Despite moving the execution locally, we are unable to easily get
messages from a Ansible playbook while it is running. This means the user may
need to wait a long time before they get any feedback.
@ -87,9 +88,9 @@ need to wait a long time before they get any feedback.
Performance Impact
------------------
There is no expected performance impact as the workflow should be largely the
same. However, the Ansible playbooks will be executed where the user runs the
CLI rather than by the Mistral server. This could then be slower or faster
There is no expected performance impact as the internal logic should be largely
the same. However, the Ansible playbooks will be executed where the user runs
the CLI rather than by the Mistral server. This could then be slower or faster
depending on the resources available to the machine and the network connection
to the undercloud.
@ -124,15 +125,19 @@ Primary assignee:
d0ugal
Other contributors:
apetrich
ekultails
sshnaidm
cloudnull
- apetrich
- ekultails
- sshnaidm
- cloudnull
Work Items
----------
- Migrate each Mistral workflows to Ansible playbooks.
Storyboard is being used to track this work:
https://storyboard.openstack.org/#!/board/208
- Migrate the Mistral workflows to Ansible playbooks.
- Migrate or replace custom Mistral actions to Ansible native components.
@ -145,6 +150,27 @@ Work Items
playbooks committed to tripleo-ansible, which will include our new `cli`
prefixed playbooks.
Converting Mistral Workflows to Ansible
***************************************
For each Mistral workflow the following steps need to be taken to port them
to Ansible.
- Re-write the Mistral workflow logic in Ansible, reusing the Mistral Python
actions where appropriate.
- Update python-tripleoclient to use the new Ansible playbooks. It should
prefer showing the native Ansible output rather than attempting to replicate
the previous output.
- The Workflows and related code should be deleted from tripleo-common.
A complete example can be seen for the `openstack undercloud backup` command.
- `Ansible Playbook <https://opendev.org/openstack/tripleo-ansible/src/branch/master/tripleo_ansible/playbooks/cli-undercloud-backup.yaml>`_
- `Updated tripleoclient <https://review.opendev.org/#/c/665690/>`_
- `Removal of all workflow code <https://review.opendev.org/#/c/703966/>`_
Dependencies
============
@ -175,3 +201,5 @@ References
* https://bugs.launchpad.net/tripleo/+bugs?field.tag=mistral-removal
* http://lists.openstack.org/pipermail/openstack-discuss/2019-October/010384.html
* https://storyboard.openstack.org/#!/board/208