feat(metastate): add metastate per community convention

This commit is contained in:
N 2020-02-18 13:34:38 +00:00
parent 4955737f84
commit fbaa456ca6
No known key found for this signature in database
GPG Key ID: 55A292EAB4E54067
6 changed files with 74 additions and 12 deletions

View File

@ -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``
^^^^^^^^^^^^^^^

View File

@ -80,6 +80,7 @@ salt:
# salt master config
master_config_use_TOFS: true
master:
standalone: false
fileserver_backend:
- git
- s3fs
@ -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
@ -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

View File

@ -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:
@ -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:

30
salt/init.sls Executable file
View File

@ -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 %}

View File

@ -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 %}

View File

@ -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 %}
- version: {{ salt_settings.version }}
{%- endif %}
{% endif %}
{% endif %}
file.recurse:
- name: {{ salt_settings.config_path }}/minion.d
- template: jinja
@ -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: