Repo-based Profiles
Notes from today's meeting about repo-based profiles.
We have a git repo. Contains stuff, code. Add an rspec or geni lib script in a standard place. I tell manage profile about it, I can instantiate it. When instantiated, the repo is cloned on all my nodes.
Startup scripts can reference the repo, which is in well-known place so that startup scripts can install from the repo. No repo or project names in this path, always the same exact place (/repo).
Work on it, change repo and push to it. ??? (new profile version)?
-
How does git repo get out there?
-
How does the portal find about the new version of the repo?
-
We can almost take a repo we know nothing about, and instantiate an experiment. But that does not really work, since we have no toplogoy or instructions for the profile page.
Good thing about using our own gitlab is we will know lots of things, like a callback about pushing a new version of the geni-lib script, which would cause an update to the profile. Another good thing is that it is a lot faster. Also easier to deal with private profiles. Bad things: if people are already using some other github or repo, it is better to leave it where it was.
githib exports triggers to poke a web url after a commit. github specific, like watching specific repos for an update, and then pulling over new stuff.
List tags and branches in the portal interface, pick from one of the tags.
David says: broken links are a problem, or deletes the rspec.
Rob says, we could keep the a copy of the repo and operate from that. Much faster, but have to treat it as cache so we do not consume all of our disk space.
We do not want a world accessible git server. But we have to be able to clone/pull on an experimental node to/from where the local cache of the repo lives (say on ops). Jon says the node has to point back to the original repo (say, on github), which is easier for us. But Rob says it makes it important that we get triggers from the repo home (github).
github and gitlab expose a "deploy key", need to look at that later. Public repos for now.
How to clone a repo-backed profile? Need to fork that on github first and then come back to Portal to create the new profile.