Skip to content

Commit 928b1a7

Browse files
committed
refactor(salt-master): move to subcomponents
Add a verifier in each sls to exclude windows platform.
1 parent ede1942 commit 928b1a7

File tree

8 files changed

+146
-89
lines changed

8 files changed

+146
-89
lines changed

salt/master.sls

Lines changed: 0 additions & 89 deletions
This file was deleted.

salt/master/config/files.sls

Lines changed: 60 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,60 @@
1+
# -*- coding: utf-8 -*-
2+
# vim: ft=sls
3+
4+
{#- Get the `tplroot` from `tpldir` #}
5+
{%- set tplroot = tpldir.split("/")[0] %}
6+
{%- set sls_windows_excluded = tplroot ~ ".windows-excluded" %}
7+
{%- set sls_package_install = tplroot ~ ".master.package.install" %}
8+
{%- from tplroot ~ "/map.jinja" import salt_settings with context %}
9+
10+
include:
11+
- {{ sls_windows_excluded }}
12+
- {{ sls_package_install }}
13+
14+
{%- if salt_settings.master_config_use_TOFS %}
15+
{%- set source = files_switch(["master.d"],
16+
lookup="salt-master"
17+
) %}
18+
{%- set template = "" %}
19+
{%- else %}
20+
{%- set source = "salt://" ~ tplroot ~ "/files/master.d" %}
21+
{%- set template = "jinja" %}
22+
{%- endif %}
23+
24+
salt-master-config-files-file.recurse:
25+
file.recurse:
26+
- name: {{ salt_settings.config_path }}/master.d
27+
- source: {{ source }}
28+
- template: {{ template }}
29+
- clean: {{ salt_settings.clean_config_d_dir }}
30+
- exclude_pat:
31+
- _*
32+
- raas.conf
33+
- require:
34+
- sls: {{ sls_windows_excluded }}
35+
- sls: {{ sls_package_install }}
36+
37+
{%- if salt_settings.master_remove_config %}
38+
salt-master-config-files-remove-old-master-conf-file.absent:
39+
file.absent:
40+
- name: {{ salt_settings.config_path }}/master
41+
- require:
42+
- sls: {{ sls_windows_excluded }}
43+
- sls: {{ sls_package_install }}
44+
{%- endif %}
45+
46+
# clean up old _defaults.conf file if they have it around
47+
salt-master-config-files-remove-old-default-master-conf-file.absent:
48+
file.absent:
49+
- name: {{ salt_settings.config_path }}/master.d/_defaults.conf
50+
51+
{%- if grains.os == "MacOS" %}
52+
salt-master-config-files-macos-LaunchDaemons-file.managed:
53+
file.managed:
54+
- name: /Library/LaunchDaemons/com.saltstack.salt.master.plist
55+
- source: https://raw.githubusercontent.com/saltstack/salt/master/pkg/osx/scripts/com.saltstack.salt.master.plist
56+
- source_hash: {{ salt_settings.salt_master_macos_plist_hash }}
57+
- retry: {{ salt_settings.retry_options | json }}
58+
- require:
59+
- sls: {{ sls_package_install }}
60+
{%- endif %}

salt/master/config/init.sls

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
# -*- coding: utf-8 -*-
2+
# vim: ft=sls
3+
4+
include:
5+
- .files

salt/master/init.sls

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
# -*- coding: utf-8 -*-
2+
# vim: ft=sls
3+
4+
include:
5+
- .package
6+
- .config
7+
- .service

salt/master/package/init.sls

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
# -*- coding: utf-8 -*-
2+
# vim: ft=sls
3+
4+
include:
5+
- .install

salt/master/package/install.sls

Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
# -*- coding: utf-8 -*-
2+
# vim: ft=sls
3+
4+
{#- Get the `tplroot` from `tpldir` #}
5+
{%- set tplroot = tpldir.split('/')[0] %}
6+
{%- set sls_windows_excluded = tplroot ~ '.windows-excluded' %}
7+
{%- set sls_pin_version = tplroot ~ '.pin' %}
8+
{%- from tplroot ~ "/map.jinja" import salt_settings with context %}
9+
10+
{#- `salt-master` cannot be installed on Windows machines #}
11+
{%- set sls_dependencies = [sls_windows_excluded] %}
12+
13+
{%- if salt_settings.pin_version and salt_settings.version and grains.os_family|lower == 'debian' %}
14+
{%- do sls_dependencies.append(sls_pin_version) %}
15+
{%- endif %}
16+
17+
include: {{ sls_dependencies }}
18+
19+
{%- if salt_settings.install_packages %}
20+
salt-master-package-install-pkg.installed:
21+
pkg.installed:
22+
- name: {{ salt_settings.salt_master }}
23+
- version: {{ salt_settings.version | default('~') }}
24+
- require:
25+
- sls: {{ sls_windows_excluded }}
26+
{%- endif %}

salt/master/service/init.sls

Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
1+
# -*- coding: utf-8 -*-
2+
# vim: ft=sls
3+
4+
{#- Get the `tplroot` from `tpldir` #}
5+
{%- set tplroot = tpldir.split('/')[0] %}
6+
{%- set sls_windows_excluded = tplroot ~ ".windows-excluded" %}
7+
{%- set sls_config_files = tplroot ~ '.master.config.files' %}
8+
{%- from tplroot ~ "/map.jinja" import salt_settings with context %}
9+
10+
{%- if salt_settings.master_service_details.state != 'ignore' %}
11+
include:
12+
- {{ sls_windows_excluded }}
13+
- {{ sls_config_files }}
14+
15+
{%- set wanted_state = salt_settings.master_service_details.state %}
16+
{%- set retry = {
17+
'darwin': salt_settings.retry_options | json,
18+
}.get(grains.kernel|lower, '')
19+
%}
20+
21+
salt-master-service-{{ wanted_state }}:
22+
service.{{ wanted_state }}:
23+
- enable: {{ salt_settings.master_service_details.enabled }}
24+
- name: {{ salt_settings.master_service }}
25+
- retry: {{ retry }}
26+
- watch:
27+
- sls: {{ sls_config_files }}
28+
{%- endif %}

salt/windows-excluded.sls

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
# -*- coding: utf-8 -*-
2+
# vim: ft=sls
3+
4+
{%- if grains.kernel == 'Windows' %}
5+
salt-windows-excluded-test.fail_without_changes:
6+
test.fail_without_changes:
7+
- name: Verify that current platform is not Windows
8+
- comment: Platform Windows is not supported
9+
{%- else %}
10+
{#- Workaround https://github.com/saltstack/salt/issues/10852 #}
11+
salt-windows-excluded-test.succeed_without_changes:
12+
test.succeed_without_changes:
13+
- name: Verify that current platform is not Windows
14+
- comment: Platform {{ grains.kernel }} is supported
15+
{%- endif %}

0 commit comments

Comments
 (0)