Skip to content

Commit

Permalink
Merge pull request #421 from noelmcloughlin/metastate
Browse files Browse the repository at this point in the history
feat(formula): add metastate per community convention
  • Loading branch information
myii authored Feb 20, 2020
2 parents 4955737 + fbaa456 commit 718f5c7
Show file tree
Hide file tree
Showing 6 changed files with 74 additions and 12 deletions.
7 changes: 7 additions & 0 deletions docs/README.rst
Original file line number Diff line number Diff line change
Expand Up @@ -45,6 +45,13 @@ Available states
.. contents::
:local:

``salt``
^^^^^^^^

*Meta-state (This is a state that includes other states)*.

This calls all runable states based on configured pillar data.

``salt.minion``
^^^^^^^^^^^^^^^

Expand Down
11 changes: 11 additions & 0 deletions pillar.example
Original file line number Diff line number Diff line change
Expand Up @@ -80,6 +80,7 @@ salt:
# salt master config
master_config_use_TOFS: true
master:
standalone: false
fileserver_backend:
- git
- s3fs
Expand Down Expand Up @@ -163,6 +164,9 @@ salt:
minion_config_use_TOFS: true
minion:

# standalone setup
master_type: false # see init.sls & standalone.sls

# single master setup
master: salt

Expand Down Expand Up @@ -268,6 +272,13 @@ salt:
- test.ping
- saltutil.find_job

# init.sls skips salt.api and salt.syndic states
# unless those dicts are populated with something
api:
somekey: somevalue
syndic:
somekey: somevalue

# salt cloud config
cloud:
master: salt
Expand Down
6 changes: 6 additions & 0 deletions salt/defaults.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -30,11 +30,16 @@ salt:
salt_api: salt-api
salt_ssh: salt-ssh

pkgrepo: '' # see osfamilymap
ssh_roster: {} # see pillar data

python_git: python-git
python_dulwich: python-dulwich

master:
gitfs_provider: gitpython
minion:
master_type: true # see init.sls & standalone.sls

gitfs:
dulwich:
Expand Down Expand Up @@ -62,6 +67,7 @@ salt:
maps: salt://salt/files/cloud.maps.d

salt_formulas:
list: {} # via pillar data
checkout_orig_branch: false
git_opts:
default:
Expand Down
30 changes: 30 additions & 0 deletions salt/init.sls
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
# -*- coding: utf-8 -*-
# vim: ft=sls

include:
- salt.pkgrepo
{%- if salt.config.get('salt_formulas:list') %}
- salt.formulas
{%- endif %}
{%- if salt.config.get('salt:master')|length > 1 %}
- salt.master
{%- endif %}
{%- if salt.config.get('salt:cloud')|length > 1 %}
- salt.cloud
{%- endif %}
{%- if salt.config.get('salt:ssh_roster') %}
- salt.ssh
{%- endif %}
{%- if salt.config.get('salt:minion')|length > 1 %}
{%- if salt.config.get('salt:minion:master_type') %}
- salt.minion
{%- else %}
- salt.standalone
{%- endif %}
{%- endif %}
{%- if salt.config.get('salt:api') %}
- salt.api
{%- endif %}
{%- if salt.config.get('salt:syndic') %}
- salt.syndic
{%- endif %}
8 changes: 8 additions & 0 deletions salt/pkgrepo/init.sls
Original file line number Diff line number Diff line change
@@ -1,2 +1,10 @@
# -*- coding: utf-8 -*-
# vim: ft=sls
{% from "salt/map.jinja" import salt_settings with context %}
{%- if salt_settings.pkgrepo %}
include:
- .{{ grains['os_family']|lower }}
{%- endif %}
24 changes: 12 additions & 12 deletions salt/standalone.sls
Original file line number Diff line number Diff line change
@@ -1,14 +1,14 @@
{%- set tplroot = tpldir.split('/')[0] %}
{% from "salt/map.jinja" import salt_settings with context %}
salt-minion:
{% if salt_settings.install_packages %}
salt-minion-standalone:
{% if salt_settings.install_packages %}
pkg.installed:
- name: {{ salt_settings.salt_minion }}
{%- if salt_settings.version is defined %}
{%- if salt_settings.version is defined %}
- version: {{ salt_settings.version }}
{%- endif %}
{% endif %}
{%- endif %}
{% endif %}
file.recurse:
- name: {{ salt_settings.config_path }}/minion.d
- template: jinja
Expand All @@ -17,19 +17,19 @@ salt-minion:
- exclude_pat: _*
- context:
standalone: True
{%- if salt_settings.minion.master_type is defined and salt_settings.minion.master_type == 'disable' %}
{%- if not salt_settings.minion.master_type %}
service.running:
- enable: True
{%- else %}
{%- else %}
service.dead:
- enable: False
{%- endif %}
{%- endif %}
- name: {{ salt_settings.minion_service }}
- require:
{% if salt_settings.install_packages %}
- pkg: salt-minion
{% endif %}
- file: salt-minion
{% if salt_settings.install_packages %}
- pkg: salt-minion-standalone
{% endif %}
- file: salt-minion-standalone
# clean up old _defaults.conf file if they have it around
remove-old-standalone-conf-file:
Expand Down

0 comments on commit 718f5c7

Please sign in to comment.