Clone a remote git repository and use the filesystem as a Pillar source
Currently GitPython is the only supported provider for git Pillars
This external Pillar source can be configured in the master config file like so:
ext_pillar:
- git: master git://gitserver/git-pillar.git root=subdirectory
The root= parameter is optional and used to set the subdirectory from where
to look for Pillar files (such as top.sls
).
Changed in version 2014.7.0: The optional root
parameter will be added.
Note that this is not the same thing as configuring pillar data using the
pillar_roots
parameter. The branch referenced in the
ext_pillar
entry above (master
), would evaluate to the
base
environment, so this branch needs to contain a top.sls
with a
base
section in it, like this:
base:
'*':
- foo
To use other environments from the same git repo as git_pillar sources, just add additional lines, like so:
ext_pillar:
- git: master git://gitserver/git-pillar.git
- git: dev git://gitserver/git-pillar.git
To remap a specific branch to a specific environment separate the branch name and the environment name with a colon:
ext_pillar:
- git: develop:dev git://gitserver/git-pillar.git
- git: master:prod git://gitserver/git-pillar.git
In this case, the dev
branch would need its own top.sls
with a dev
section in it, like this:
dev:
'*':
- bar
salt.pillar.git_pillar.
GitPillar
(branch, repo_location, opts)Deal with the remote git repository for Pillar
salt.pillar.git_pillar.
envs
(branch, repo_location)Return a list of refs that can be used as environments