salt.pillar.rethinkdb_pillar

Provide external pillar data from RethinkDB

New in version 2018.3.0.

depends:

rethinkdb (on the salt-master)

salt master rethinkdb configuration

These variables must be configured in your master configuration file.
  • rethinkdb.host - The RethinkDB server. Defaults to 'salt'

  • rethinkdb.port - The port the RethinkDB server listens on. Defaults to '28015'

  • rethinkdb.database - The database to connect to. Defaults to 'salt'

  • rethinkdb.username - The username for connecting to RethinkDB. Defaults to ''

  • rethinkdb.password - The password for connecting to RethinkDB. Defaults to ''

salt-master ext_pillar configuration

The ext_pillar function arguments are given in single line dictionary notation.

ext_pillar:
  - rethinkdb: {table: ext_pillar, id_field: minion_id, field: pillar_root, pillar_key: external_pillar}
In the example above the following happens.
  • The salt-master will look for external pillars in the 'ext_pillar' table on the RethinkDB host

  • The minion id will be matched against the 'minion_id' field

  • Pillars will be retrieved from the nested field 'pillar_root'

  • Found pillars will be merged inside a key called 'external_pillar'

Module Documentation

salt.pillar.rethinkdb_pillar.ext_pillar(minion_id, pillar, table='pillar', id_field=None, field=None, pillar_key=None)

Collect minion external pillars from a RethinkDB database

Arguments:

  • table: The RethinkDB table containing external pillar information. Defaults to 'pillar'

  • id_field: Field in document containing the minion id. If blank then we assume the table index matches minion ids

  • field: Specific field in the document used for pillar data, if blank then the entire document will be used

  • pillar_key: The salt-master will nest found external pillars under this key before merging into the minion pillars. If blank, external pillars will be merged at top level