With this element other elements can register source code repositories by placing their details in the file source-repository-\*. An example of an element "custom-element" that wants to retrieve the ironic source from git and pbr from a tarball would be *File : elements/custom-element/source-repository-ironic* # [] # defaults to master if not specified ironic git /usr/local/ironic git://github.com/openstack/ironic.git *File : elements/custom-element/source-repository-pbr* pbr tar /usr/local/pbr http://tarballs.openstack.org/pbr/pbr-master.tar.gz diskimage-builder will then retrieve the sources specified and place them at the directory \ A number of environment variables can be set by the process calling diskimage-builder which can change the details registered by the element, these are DIB_REPOTYPE_ : change the registered type DIB_REPOLOCATION_ : change the registered location DIB_REPOREF_ : change the registered reference for example if you would like diskimage-builder to get ironic from a local mirror you could set DIB_REPOLOCATION_ironic=git://localgitserver/ironic.git Alternatively if you would like to use the keystone element and build an image with keystone from a stable branch then you would set DIB_REPOREF_keystone=stable/grizzly Git sources will be cloned to \ Tarballs will be extracted to \. Tarballs should contain a single topleval directory, regardless of the name of this top level directory it will be renamed to \ If mulitple elements register a source location with the same then source-repositories will exit with an error. Care should therefore be taken to only use elements together that download source to different locations.