[tripleo] please avoid creating ansible playbooks that call modules for trivial tasks
Bogdan Dobrelya
bdobreli at redhat.com
Thu Oct 29 11:24:20 UTC 2020
Hi,
In today TripleO client development we invoke ansible playbooks instead
of Mistral workflows. I believe this may only be justified for
non-trivial things. Otherwise please just import python modules into the
client command actions without introducing additional moving parts in
the form of ansible modules (that import the same python modules as well).
Ansible brings declarative DSL that sometimes can better and simpler and
faster describes things to do and shape inputs data, than if the same
would be done in python, in the client.
What should be the trivial thing and non-trivial then?
Well, I think that example [0] illustrates such a trivial thing. A new
playbook [1] would only install a few packages then "returns" back into
python and calls a new ansible module [2]. And that new module only
wraps [3] the same code being removed from the client:
from tripleo_common.image import build
...
manager = build.ImageBuildManager(<args>)
I see no point of adding a new playbook and a new module for that
trivial example. Those 4 packages could (and should) be as well
installed from the client caller code without any ansible involved in
the middle IMO.
[0] https://review.opendev.org/#/c/759954/
[1]
https://review.opendev.org/#/c/759953/3/tripleo_ansible/playbooks/cli-overcloud-image-build.yaml
[2]
https://review.opendev.org/#/c/759953/3/tripleo_ansible/ansible_plugins/modules/tripleo_overcloud_image_build.py@26
--
Best regards,
Bogdan Dobrelya,
Irc #bogdando
More information about the openstack-discuss
mailing list