[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