[tripleo][ansible] ensure python dependencies on hosts for modules/plugins
On Wed, Sep 9, 2020 at 8:43 AM CÃ©dric Jeanneret <cjeanner at redhat.com> wrote:
> On 9/9/20 10:25 AM, Bogdan Dobrelya wrote:
> > Since most of tripleo-ansible modules do 'import foobar', we should
> > ensure that we have the corresponding python packages installed on
> > target hosts. Some of them, like python3-dmidecode may be in base
> > Centos8 images. But some may not, especially for custom deployed-servers
> > provided by users for deployments.
> > Those packages must be tracked and ensured to be installed by tripleo
> > (preferred), or validated deploy-time (nah...), or at least documented
> > as the modules get created or changed by devs.
> > That also applies to adding action plugins' deps for
> > python-tripleoclient or tripleo-ansible perhaps.
> > Shall we write a spec for that or just address that as a bug ?
> >  https://bugs.launchpad.net/tripleo/+bug/1894957
> If we're talking only about tripleo-ansible, we might "just" add the new
> dependencies in the spec file in tripleo-ansible-distgit.
> If we're talking more broadly, as said in the LP, a meta-package
> (tripleo-dependencies for instance) might be a nice thing, since it
> would allow to take care of:
> - package pinning (staring at YOU, podman)
> - package dependencies
So the problem here is tripleo-ansible is not installed on the remote
system. So modules need packages installed there. Currently this is
solved in two ways:
1) overcloud-full contains all the packages
2) use tripleo_bootstrap role to install dependencies
While having a meta-package that we install that lists all the deps
would be nice you still have the same issue to ensure it ends up where
it needs to be. I don't think we need to over engineer this as we
already have two ways that have been in place for many releases now.
> As for a proper spec, it might be interesting for future reference. Not
> really sure if it's really needed, but...
> CÃ©dric Jeanneret (He/Him/His)
> Sr. Software Engineer - OpenStack Platform
> Deployment Framework TC
> Red Hat EMEA