puppet: hook for easy pushing of branches from anywhere

The idea is to be able to push a branch (e.g. for testing) from your local
machine into a puppet master hosted in labs. Due to the way git works this
isn't straightforward as "git push -f labs_host" because pushing to a
non-bare repository is not supported.

The best compromise I found is to have a bare repository hosted somewhere (e.g.
your /home in the labs instance) and push to that, which in turn will
automatically update the canonical repo in /var/lib/git/operations/puppet via
this hook.

So in practice this is the setup on the labs host:

  cd ~
  git clone --bare --no-hardlinks /var/lib/git/operations/puppet/ puppet.git
  install -m755 /var/lib/git/operations/puppet/modules/puppet/files/self-master-post-receive puppet.git/hooks/post-receive

and on the local host add the relevant remote:

  git remote add labs_host ssh://$LABS_HOSTNAME/~/puppet.git

then to test a puppet change in your labs puppet master from your local host
you can:

  git push -f labs_host HEAD:production

and wait for puppet to run.

Change-Id: Ia300ab64b3a6fff3be8358bff6840ee856141602
Merge "puppet: hook for easy pushing of branches from anywhere" into production