[openstack-dev] [heat][tripleo] Making diskimage-builder install from forked repo?

Gregory Haynes greg at greghaynes.net
Thu Jan 8 18:13:18 UTC 2015


Excerpts from Gregory Haynes's message of 2015-01-08 18:06:16 +0000:
> Excerpts from Steven Hardy's message of 2015-01-08 17:37:55 +0000:
> > Hi all,
> > 
> > I'm trying to test a fedora-software-config image with some updated
> > components.  I need:
> > 
> > - Install latest master os-apply-config (the commit I want isn't released)
> > - Install os-refresh-config fork from https://review.openstack.org/#/c/145764
> > 
> > I can't even get the o-a-c from master part working:
> > 
> > export PATH="${PWD}/dib-utils/bin:$PATH"
> > export
> > ELEMENTS_PATH=tripleo-image-elements/elements:heat-templates/hot/software-config/elements
> > export DIB_INSTALLTYPE_os_apply_config=source
> > 
> > diskimage-builder/bin/disk-image-create vm fedora selinux-permissive \
> >   os-collect-config os-refresh-config os-apply-config \
> >   heat-config-ansible \
> >   heat-config-cfn-init \
> >   heat-config-docker \
> >   heat-config-puppet \
> >   heat-config-salt \
> >   heat-config-script \
> >   ntp \
> >   -o fedora-software-config.qcow2
> > 
> > This is what I'm doing, both tools end up as pip installed versions AFAICS,
> > so I've had to resort to manually hacking the image post-DiB using
> > virt-copy-in.
> > 
> > Pretty sure there's a way to make DiB do this, but don't know what, anyone
> > able to share some clues?  Do I have to hack the elements, or is there a
> > better way?
> > 
> > The docs are pretty sparse, so any help would be much appreciated! :)
> > 
> > Thanks,
> > 
> > Steve
> > 
> 
> Hey Steve,
> 
> source-repositories is your friend here :) (check out
> dib/elements/source-repositires/README). One potential gotcha is that
> because source-repositires is an element it really only applies to tools
> used within images (and os-apply-config is used outside the image). To
> fix this we have a shim in tripleo-incubator/scripts/pull-tools which
> emulates the functionality of source-repositories.
> 
> Example usage:
> 
> * checkout os-apply-config to the ref you wish to use
> * export DIB_REPOLOCATION_os_apply_config="/path/to/oac"
> * export DIB_REPOREF_os_refresh_config="refs/changes/64/145764/1"
> * start your devtesting

Actually, Chris's response is 100% correct. Even in the source
installtype we appear to be pip installing these tools so this will not
work.

In our CI we work around this by creating a local pypi mirror and
configuring pip to fall back to an upstream mirror. We then build
sdist's for anything we want to install via git and add them to our
'overlay mirror':

Code:
http://git.openstack.org/cgit/openstack-infra/tripleo-ci/tree/toci_devtest.sh#n139

Obviously, this isnt the most user friendly approach, but its an option.

Good luck,
Greg



More information about the OpenStack-dev mailing list