The template "datastore" ...
Each template has a datastore, which is really just a subdirectory that can be populated with files, and committed to the subversion archive. Note, the datastore os specific to the template itself. The Template Archive link on the Show Template page takes you to the subdirectory, which by convention I am calling "datastore". The directory actually lives in /proj/pid/exp/eid/TGUID-VERS ... but that path is printed out for you on the archive page. Anyway, put stuff in the datastore directory, and then commit the template archive so there is a tag associated with it. When an instance is created, a checkout of the datastore is placed in the experiment directory (/proj/pid/eid/exp/template_datastore). The current tag (from above) is stored with the instance so that we can later recreate the enviroment for the instance, say for rerun. Tarfiles and rpms in the datastore can be referenced as xxx://foo.rpm (in your NS file). tarfiles_setup transforms those when the instance is swapped in, sorta like it does other URLs, only it does not actually fetch them, just need to rewrite the paths so they reference datastore. The program agent gets another environment variable so you can refer to the datastore without hardwiring paths ($DATASTORE). Eventually I want to move the checkout someplace else, but it was easy to drop it into the experiment directory for now.