Skip to content

Instantly share code, notes, and snippets.

@apex-omontgomery
Last active November 12, 2019 15:31
Show Gist options
  • Save apex-omontgomery/8af6226e43ae8113ca8a9d4bde3418ad to your computer and use it in GitHub Desktop.
Save apex-omontgomery/8af6226e43ae8113ca8a9d4bde3418ad to your computer and use it in GitHub Desktop.
Organizing pillar data to apply roles with merging of pillar

Pillar match top by minion id

# /srv/pillar/top.sls

base:
  '*':
    - roles.saltstack.minion
    
  '*saltmaster*':
    - roles.saltstack.master

Apply roles after being matched

Apply minion role and include correct environment data

# /srv/pillar/roles/saltstack/minion/init.sls
roles:
  salt-minion:
    enabled: True
    role-data:
      - include: {{ grains['environment'] }}

Correct environment data

# /srv/pillar/roles/saltstack/minion/dev.sls
version: {{ version_default }}
master: dev.salt-master.company.com

Apply master role and include correct environment data

# /srv/pillar/roles/saltstack/master/init.sls
roles:
  salt-master:
  enabled: True
  role-data:
    - include: {{ grains['environment'] }}

Correct environment data

# /srv/pillar/roles/saltstack/master/dev.sls
version: 2019.2.2

Alternative data- incorrect

# /srv/pillar/roles/saltstack/master/stg.sls
version: {{ version_default }}

Apply state using role data

# /srv/states/top.sls

base:
  base:
  'roles.salt-minion':
    - match: pillar
    - new_roles.saltstack.minion
  'roles.salt-master':
    - match: pillar
    - new_roles.saltstack.master  
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment