Git Repository Deployment¶
The globalrepo service is used to checkout and refresh a Git repository.
Tip
You can still clone repositories manually by SSH or through a CI job, which will be better in most use cases. If in doubt, contact us and we will help to select the best approach.
Options¶
source¶
Repository source address, e.g. git@git.example.net:myproject.git
you can add a hash of multiple sources and select the appropriate one through the remote parameter
this is the only mandatory parameter
path¶
local path where the data ends up on the server
default: /opt/global/<name>
ensure¶
latest enable configuration and refresh repository
present enable configuration but do not refresh repository
absent to disable and remove this configuration and folder
default: latest
provider¶
provider used to fetch repository, see module description of the vcsrepo Puppet module
default: git
Tip
git is the only vcs provider officially supported by Puppet
remote¶
used git remote
default: origin
revision¶
desired revision (branch, tag, commit-id)
default: master
ssh_private_key¶
SSH private key used to fetch a private repository
default: empty
Tip
use cat /tmp/private_key | sed -e ':a;N;$!ba;s/\n/\\n/g'
to convert key into a single line with escaped linebreaks
exec_after¶
command executed after update, e.g. composer update
default: empty
Minimal configuration¶
Use the Custom JSON at the Server Level Configuration.
{
"globalrepo::repo": {
"myproject": {
"source": "git@git.example.net:myproject.git"
}
}
}
Full example¶
Use the Custom JSON at the Server Level Configuration.
{
"globalrepo::repo": {
"myproject": {
"source": {
"origin": "git@git.example.net:myproject.git",
"upstream": "git@git.example.com:myproject.git",
"mirror": "git@git.example.org:myproject.git"
},
"path": "/opt/global/myproject",
"ensure": "present",
"provider": "git",
"remote": "origin",
"revision": "master",
"ssh_private_key": "ssh-private-key",
"exec_after": "composer update"
}
}
}