Git Fileserver Backend
With this backend, branches and tags in a remote git repository are exposed to salt as different environments.
To enable, add git
to the fileserver_backend
option in the
Master config file.
fileserver_backend:
- git
As of Salt 2014.7.0, the Git fileserver backend supports GitPython, pygit2, and dulwich to provide the Python interface to git. If more than one of these are present, the order of preference for which one will be chosen is the same as the order in which they were listed: pygit2, GitPython, dulwich (keep in mind, this order is subject to change).
An optional master config parameter (gitfs_provider
) can be used
to specify which provider should be used.
More detailed information on how to use gitfs can be found in the Gitfs Walkthrough.
Note
Minimum requirements
To use GitPython for gitfs requires a minimum GitPython version of 0.3.0, as well as the git CLI utility. Instructions for installing GitPython can be found here.
To use pygit2 for gitfs requires a minimum pygit2 version of 0.20.3. pygit2 0.20.3 requires libgit2 0.20.0. pygit2 and libgit2 are developed alongside one another, so it is recommended to keep them both at the same major release to avoid unexpected behavior. For example, pygit2 0.21.x requires libgit2 0.21.x, pygit2 0.22.x will require libgit2 0.22.x, etc.
To find stale refs, pygit2 additionally requires the git CLI utility to be installed.
salt.fileserver.gitfs.
clear_cache
()¶Completely clear gitfs cache
salt.fileserver.gitfs.
clear_lock
(remote=None)¶Clear update.lk
remote
can either be a dictionary containing repo configuration
information, or a pattern. If the latter, then remotes for which the URL
matches the pattern will be locked.
salt.fileserver.gitfs.
dir_list
(load)¶Return a list of all directories on the master
salt.fileserver.gitfs.
envs
(ignore_cache=False, skip_clean=False)¶Return a list of refs that can be used as environments
salt.fileserver.gitfs.
file_hash
(load, fnd)¶Return a file hash, the hash type is set in the master config file
salt.fileserver.gitfs.
file_list
(load)¶Return a list of all files on the file server in a specified environment
salt.fileserver.gitfs.
file_list_emptydirs
(load)¶Return a list of all empty directories on the master
salt.fileserver.gitfs.
find_file
(path, tgt_env='base', **kwargs)¶Find the first file to match the path and ref, read the file out of git and send the path to the newly cached file
salt.fileserver.gitfs.
init
()¶Return the git repo object for this session
salt.fileserver.gitfs.
lock
(remote=None)¶Place an update.lk
remote
can either be a dictionary containing repo configuration
information, or a pattern. If the latter, then remotes for which the URL
matches the pattern will be locked.
salt.fileserver.gitfs.
serve_file
(load, fnd)¶Return a chunk from a file based on the data received
salt.fileserver.gitfs.
symlink_list
(load)¶Return a dict of all symlinks based on a given path in the repo
salt.fileserver.gitfs.
update
()¶Execute a git fetch on all of the repos