Clone a remote SVN repository and use the filesystem as a Pillar source

This external Pillar source can be configured in the master config file like so:

  - svn: trunk svn://svnserver/repo 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:

    - foo

To use other environments from the same SVN repo as svn_pillar sources, just add additional lines, like so:

  - svn: trunk svn://svnserver/repo
  - svn: dev svn://svnserver/repo

In this case, the dev branch would need its own top.sls with a dev section in it, like this:

    - bar
class salt.pillar.svn_pillar.SvnPillar(branch, repo_location, root, opts)

Deal with the remote SVN repository for Pillar


Returns the directory of the pillars (repo cache + branch + root)

salt.pillar.svn_pillar.ext_pillar(minion_id, pillar, repo_string)

Execute a command and read the output as YAML