Skip to content

feat(formula): add metastate per community convention #421

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 1 commit into from
Feb 20, 2020
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
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