[tripleo] please avoid creating ansible playbooks that call modules for trivial tasks
Bogdan Dobrelya
bdobreli at redhat.com
Thu Oct 29 13:22:16 UTC 2020
On 10/29/20 1:45 PM, Rabi Mishra wrote:
> On Thu, Oct 29, 2020 at 4:59 PM Bogdan Dobrelya <bdobreli at redhat.com
> <mailto:bdobreli at redhat.com>> wrote:
>
> 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?
>
>
> Yes, we did create a number of playbooks/ansible modules for some
> trivial things starting with https://review.opendev.org/#/c/716286/ (I
> had a comment about it in that patch and it seems you reviewed the patch
> too), that could have been achieved by making a simple tripleo-common
> api calls.
Yes, that change belongs to a massive conversion effort that contains
hundreds of patches in the topic. Also the created ansible module
doesn't look trivial to me, since the result [0] of that work looked
much simpler than the original parts [1], [2], [3] of workflow and its
code. And "trivial" playbook for the given example only wraps the
ansible module for the caller. So that approach taken for that example
looks justified.
[0]
https://review.opendev.org/#/c/712604/7/tripleo_ansible/ansible_plugins/modules/tripleo_plan_parameters_update.py
[1]
https://review.opendev.org/#/c/298682/23/tripleo_common/actions/parameters.py
[2]
https://review.opendev.org/#/c/716286/4/tripleoclient/v1/overcloud_deploy.py
[3] https://review.opendev.org/#/c/540398/2/workbooks/plan_management.yaml
>
> IMO, creating playbooks for every cli action and moving all logic from
> tripleoclient to ansible modules/playboos would have helped us in either
> getting rid of tripleoclient or make it very thin. We did discuss that
> in the victoria PTG[1]. Agreed that we would end up with some
> inefficient stuff (like what you've mentioned) during the transition and
> later, but the user experience with ansible playbooks compared to
> current logging in cli actions would have outweighed that.
>
> However, over the last cycle I've seen some resistance to go in that
> direction (i.e moving everything from tripleoclient to
> playbooks/role/ansible mddules), If we want to keep some stuff in
> tripleolcient (and some in ansible modules/playbooks), then I would
> agree we should not make it complex by writing playbooks/modules for
> things that could be achieved by simple tripleo-common api calls.
>
> [1] https://etherpad.opendev.org/p/tripleo-future-of-tripleoclient
>
> 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
>
>
>
>
> --
> Regards,
> Rabi Mishra
>
--
Best regards,
Bogdan Dobrelya,
Irc #bogdando
More information about the openstack-discuss
mailing list