This is theoretical atm
To perform testing of changes you will do this in your own instance or deploy a completely new non-production instance of the host to hal (this cannot be done yet, perhaps we clone the vm for testing - sai)
Pre-requisites
For testing you will need these in place
fork buildvm repo
fork kickstarts repo
fork puppet-common
Process
Do this once
Install libvirt, kvm and qemu locally
Update your forked buildvm to pull from your forked kickstarts repo
Update your forked kickstarts to pull from your forked kickstarts
Update your forked kickstarts to configure networking appropriate for the host on your network
Clone your forked buildvm script locally and use it to deploy
Configure halnet to exist in an appropriate format for your network update your own buildvm fork as appropriate
Do this everytime
Ensure your forked repo is up to date with the master repo for the change you are doing (it is unlikely the networking kickstarts will be to be updated - sai)
Update your configs and push them back to your fork
Log into the local host and pull the changes (as applicable) from your fork
For puppet changes run the apply (see root crontab) manually or wait ~15m for it run manually
For kickstart changes, redeploy the host
Confirm your changes
Check /tmp/puppet-apply for status of run
Final testing
Consideration of this process due to complexity of the change
FAQ
Why a fork?
buildvm will pull the production config from the master branches of the repositories during deploy if you are redeploying to completely test changes the kickstarts will need to be updated to pull from the appropriate repo
Why not branch?
This may make sense for some changes. (i am still working though it - sai)
Why not clone?
the production host you will have to be reconfigured to look at the testing branches for all the deployed puppet repos as they will be pointing to the puppet config (perhaps the repofix script should take this into account, we could automate it on hostname naming convention like tupper-testing-<owner> and disarm the repofix while testing - sai)
potential to rob resources from production