Restart salt-minion on config change
Change-Id: Ie1f1397817b47f299107e4f44dfb4c5ffe1c010c
diff --git a/salt/minion/service.sls b/salt/minion/service.sls
index 0cb5215..ca40863 100644
--- a/salt/minion/service.sls
+++ b/salt/minion/service.sls
@@ -43,6 +43,10 @@
- name: /etc/salt/minion.d/_{{ name }}.conf
- contents: |
{{ conf|yaml(False)|indent(8) }}
+ {%- if not grains.get('noservices', False) %}
+ - watch_in:
+ - cmd: salt_minion_service_restart
+ {%- endif %}
- require:
- {{ minion.install_state }}
@@ -52,8 +56,8 @@
- watch:
- file: salt_minion_config_{{ service_name }}_{{ name }}
{%- if not grains.get('noservices', False) %}
- - watch_in:
- - service: salt_minion_service
+ - require_in:
+ - cmd: salt_minion_service_restart
{%- endif %}
{%- endfor %}
{%- endif %}
@@ -64,6 +68,15 @@
service.running:
- name: {{ minion.service }}
- enable: true
+
+{#- Restart salt-minion if needed but after all states are executed #}
+salt_minion_service_restart:
+ cmd.wait:
+ - name: 'while true; do salt-call saltutil.running|grep fun: && continue; salt-call --local service.restart {{ minion.service }}; done'
+ - shell: /bin/bash
+ - bg: true
+ - require:
+ - service: salt_minion_service
{%- endif %}
salt_minion_sync_all: