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 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 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 only consumer of Mistral is tripleoclient. This means that Mistral now adds
unnecessary complexity. unnecessary overhead and complexity.
Proposed Change Proposed Change
@ -56,6 +56,7 @@ Security Impact
therefore they shouldn't create a new attack vector. therefore they shouldn't create a new attack vector.
Upgrade Impact Upgrade Impact
-------------- --------------
@ -65,7 +66,7 @@ Upgrade Impact
* Older versions of tripleoclient will no longer work with the undercloud as * Older versions of tripleoclient will no longer work with the undercloud as
they will expect Mistral to be present. 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. 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 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 workflow ID will no longer be included and other Ansible specific output will
included. Where possible we will favour streaming Ansible output to the user, be included. Where possible we will favour streaming Ansible output to the
making tripleoclient very light and transparent user, making tripleoclient very light and transparent.
Some CLI commands, such as introspection will need to fundamentally change their Some CLI commands, such as introspection will need to fundamentally change
output. Currently they send real time updates and progress to the client with their output. Currently they send real time updates and progress to the client
Zaqar. Despite moving the execution locally, we are unable to easily get 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 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. 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 Performance Impact
------------------ ------------------
There is no expected performance impact as the workflow should be largely the There is no expected performance impact as the internal logic should be largely
same. However, the Ansible playbooks will be executed where the user runs the the same. However, the Ansible playbooks will be executed where the user runs
CLI rather than by the Mistral server. This could then be slower or faster 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 depending on the resources available to the machine and the network connection
to the undercloud. to the undercloud.
@ -124,15 +125,19 @@ Primary assignee:
d0ugal d0ugal
Other contributors: Other contributors:
apetrich
ekultails - apetrich
sshnaidm - ekultails
cloudnull - sshnaidm
- cloudnull
Work Items 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. - 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` playbooks committed to tripleo-ansible, which will include our new `cli`
prefixed playbooks. 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 Dependencies
============ ============
@ -175,3 +201,5 @@ References
* https://bugs.launchpad.net/tripleo/+bugs?field.tag=mistral-removal * https://bugs.launchpad.net/tripleo/+bugs?field.tag=mistral-removal
* http://lists.openstack.org/pipermail/openstack-discuss/2019-October/010384.html * http://lists.openstack.org/pipermail/openstack-discuss/2019-October/010384.html
* https://storyboard.openstack.org/#!/board/208