Add spec for the Mistral to Ansible work
Change-Id: Id4a71934bad616e0d9f5aa98fdde8ef2608b2eb2 Signed-off-by: Kevin Carter <kecarter@redhat.com>
This commit is contained in:
parent
0451811258
commit
9b35c4ba1c
|
@ -1,3 +0,0 @@
|
|||
======
|
||||
Ussuri
|
||||
======
|
|
@ -0,0 +1,177 @@
|
|||
..
|
||||
This work is licensed under a Creative Commons Attribution 3.0 Unported
|
||||
License.
|
||||
|
||||
http://creativecommons.org/licenses/by/3.0/legalcode
|
||||
|
||||
============================
|
||||
Replace Mistral with Ansible
|
||||
============================
|
||||
|
||||
Include the URL of your launchpad blueprint:
|
||||
|
||||
https://blueprints.launchpad.net/tripleo/+spec/tripleo-mistral-to-ansible
|
||||
|
||||
The goal of this proposal is to replace Mistral in TripleO with Ansible
|
||||
playbooks.
|
||||
|
||||
|
||||
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.
|
||||
|
||||
|
||||
Proposed Change
|
||||
===============
|
||||
|
||||
Overview
|
||||
--------
|
||||
|
||||
Remove Mistral from the TripleO undercloud and convert all Mistral workbooks,
|
||||
workflows and actions to Ansible playbooks within tripleo-ansible. tripleoclient
|
||||
will then be updated to execute the Ansible playbooks rather than the Mistral
|
||||
workflows.
|
||||
|
||||
Alternatives
|
||||
------------
|
||||
|
||||
The only other alternative candidate is to keep using Mistral and accept the
|
||||
complexity and reinvest in the project.
|
||||
|
||||
Security Impact
|
||||
---------------
|
||||
|
||||
* As the code will be re-writing Mistral workflows that currently deal with
|
||||
passwords, tokens and secrets we will need to be careful. However the logic
|
||||
should be largely the same.
|
||||
|
||||
* With the eventual removal of Mistral and Zaqar two complex systems can be
|
||||
removed which will reduce the surface area for security issues.
|
||||
|
||||
* The new Ansible playbooks will only use the undercloud OpenStack APIs,
|
||||
therefore they shouldn't create a new attack vector.
|
||||
|
||||
|
||||
Upgrade Impact
|
||||
--------------
|
||||
|
||||
* Upgrades will need to remove Mistral services and make sure the Ansible
|
||||
playbooks are in place.
|
||||
|
||||
* 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
|
||||
in Mistral environments. This data will likely be moved to Swift.
|
||||
|
||||
|
||||
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
|
||||
|
||||
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.
|
||||
|
||||
|
||||
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
|
||||
depending on the resources available to the machine and the network connection
|
||||
to the undercloud.
|
||||
|
||||
The undercloud itself should have more resources available since it wont be
|
||||
running Mistral or Zaqar.
|
||||
|
||||
|
||||
Other Deployer Impact
|
||||
---------------------
|
||||
|
||||
If anyone is using the Mistral workflows directly, they will stop working. We
|
||||
currently don't know of any users doing this and it was never documented.
|
||||
|
||||
|
||||
Developer Impact
|
||||
----------------
|
||||
|
||||
Developers will need to contribute to Ansible playbooks instead of Mistral
|
||||
workflows. As the pool of developers that know Ansible is larger than those
|
||||
that know Mistral this should make development easier. Ansible contributions
|
||||
will likely expect unit/functional tests.
|
||||
|
||||
|
||||
Implementation
|
||||
==============
|
||||
|
||||
Assignee(s)
|
||||
-----------
|
||||
|
||||
|
||||
Primary assignee:
|
||||
d0ugal
|
||||
|
||||
Other contributors:
|
||||
apetrich
|
||||
ekultails
|
||||
sshnaidm
|
||||
cloudnull
|
||||
|
||||
Work Items
|
||||
----------
|
||||
|
||||
- Migrate each Mistral workflows to Ansible playbooks.
|
||||
|
||||
- Migrate or replace custom Mistral actions to Ansible native components.
|
||||
|
||||
- Remove Mistral and Zaqar.
|
||||
|
||||
- Update documentation specific to Mistral.
|
||||
|
||||
- Extend our auto-documentation plugin to support playbooks within
|
||||
tripleo-ansible. This will allow us to generate API documentation for all
|
||||
playbooks committed to tripleo-ansible, which will include our new `cli`
|
||||
prefixed playbooks.
|
||||
|
||||
|
||||
Dependencies
|
||||
============
|
||||
|
||||
None
|
||||
|
||||
|
||||
Testing
|
||||
=======
|
||||
|
||||
Since this change will largely be a re-working of existing code the changes
|
||||
will be tested by the existing CI coverage. This should be improved and
|
||||
expanded as is needed.
|
||||
|
||||
|
||||
Documentation Impact
|
||||
====================
|
||||
|
||||
Any references to Mistral will need to be updated to point to the new ansible
|
||||
playbook.
|
||||
|
||||
|
||||
References
|
||||
==========
|
||||
|
||||
* https://review.opendev.org/#/q/topic:mistral-removal+OR+topic:mistral_to_ansible
|
||||
|
||||
* https://bugs.launchpad.net/tripleo/+bugs?field.tag=mistral-removal
|
||||
|
||||
* http://lists.openstack.org/pipermail/openstack-discuss/2019-October/010384.html
|
Loading…
Reference in New Issue