Use the `retry_options` already being used for the Salt minion service,
since we're getting failures such as this one:
* https://github.com/myii/salt-formula/runs/2415072504
This is made worse by the fact that GitHub Actions cannot re-run a
single job (at the current time).
Right now when you set module_config entries in your pillar data
like this:
salt:
minion:
module_config:
smtp.from: 'Kali Salt <admins+salt@kali.org>'
smtp.to: 'Kali Admins <admins+salt@kali.org>'
smtp.host: localhost
smtp.subject: 'Results of salt actions on'
smtp.fields: id,fun
On each run, you will always a different ordering of the various
fields in the minion configuration file, leading to spurious restart
of the minion and admin annoyance:
ID: salt-minion
Function: file.recurse
Name: /etc/salt/minion.d
Result: True
Comment: Recursively updated /etc/salt/minion.d
Started: 13:39:25.689775
Duration: 874.318 ms
Changes:
----------
/etc/salt/minion.d/f_defaults.conf:
----------
diff:
---
+++
@@ -930,10 +930,10 @@
# A dict for the test module:
#test.baz: {spam: sausage, cheese: bread}
#
+smtp.fields: id,fun
+smtp.from: Kali Salt <admins+salt@kali.org>
smtp.to: Kali Admins <admins+salt@kali.org>
-smtp.fields: id,fun
smtp.host: localhost
-smtp.from: Kali Salt <admins+salt@kali.org>
smtp.subject: Results of salt actions on
With the change here, this bad behaviour is gone...
Make the upstream salt package repository selectable, thus allowing the
use of archived salt versions (hosted in
https://archive.repo.saltproject.io), as well as custom salt versions
hosted in alternate repositories.
* CVE-2021-25283 enables Jinja2 safe mode, which breaks use of
`'dict' in x.__class__.__name__` workaround
* Workaround no longer needed as CentOS 6 is EOL
Use ugly `zypper lr --uri` hack to get around failure if the `base_url`
already exists under a different name:
```
ID: salt-pkgrepo-install-saltstack-suse
Function: pkgrepo.managed
Name: systemsmanagement_saltstack_products
Result: False
Comment: Failed to configure repo 'systemsmanagement_saltstack_products':
Repository 'systemsmanagement_saltstack_products' already exists as 'systemsmanagement_saltstack'.
Started: 09:28:39.154054
Duration: 2760.727 ms
```
Upstream code:
* 45cc49daed/salt/modules/zypperpkg.py (L1262-L1265)
When running a high-state on the salt-master to deploy itself, the run fails
with an Authentication error occurred because the master restarts half way though.
Instead of the default service.running + enabled, you can control
the actual state, via pillar.
And you can even say 'state = ignore' and no state will be generated
to control the service
```bash
Examining salt/minion.sls of type state
[210] Numbers that start with `0` should always be encapsulated in quotation marks
salt/minion.sls:20
- mode: 0644
```
```bash
Examining salt/map.jinja of type state
[209] Jinja comment should have spaces before and after: {# comment #}
salt/map.jinja:4
{## Start imports ##}
[209] Jinja comment should have spaces before and after: {# comment #}
salt/map.jinja:21
{## Merge in salt pillar ##}
[209] Jinja comment should have spaces before and after: {# comment #}
salt/map.jinja:24
{## Merge in salt_formulas pillar ##}
```
* Semi-automated using https://github.com/myii/ssf-formula/pull/31
* Includes:
- Update TOFS
- Use `bin/kitchen`
- Use `dist: bionic` in Travis
- Add `yamllint` and apply rules
- Use `pillars_from_files` throughout
- Replace EOL images in Kitchen & Travis
- Add `develop` images in Kitchen & Travis
* Fix (or ignore) errors shown below:
```bash
salt-formula$ yamllint -s .
./pillar.example
1:1 warning missing document start "---" (document-start)
5:23 warning truthy value should be one of [false, true] (truthy)
8:25 warning truthy value should be one of [false, true] (truthy)
11:25 warning truthy value should be one of [false, true] (truthy)
19:21 warning truthy value should be one of [false, true] (truthy)
40:89 error line too long (108 > 88 characters) (line-length)
41:89 error line too long (112 > 88 characters) (line-length)
43:89 error line too long (112 > 88 characters) (line-length)
45:89 error line too long (110 > 88 characters) (line-length)
47:89 error line too long (89 > 88 characters) (line-length)
74:27 warning truthy value should be one of [false, true] (truthy)
82:9 error wrong indentation: expected 10 but found 8 (indentation)
101:14 warning truthy value should be one of [false, true] (truthy)
102:20 warning truthy value should be one of [false, true] (truthy)
103:89 error line too long (119 > 88 characters) (line-length)
121:7 warning comment not indented like content (comments-indentation)
122:24 error syntax error: found character '%' that cannot start any token
310:89 error line too long (102 > 88 characters) (line-length)
330:89 error line too long (113 > 88 characters) (line-length)
433:1 error too many blank lines (1 > 0) (empty-lines)
./salt/osmap.yaml
4:2 error syntax error: found character '%' that cannot start any token
6:89 error line too long (93 > 88 characters) (line-length)
22:89 error line too long (137 > 88 characters) (line-length)
23:89 error line too long (134 > 88 characters) (line-length)
33:89 error line too long (149 > 88 characters) (line-length)
34:89 error line too long (146 > 88 characters) (line-length)
./salt/osfamilymap.yaml
4:2 error syntax error: found character '%' that cannot start any token
6:89 error line too long (94 > 88 characters) (line-length)
24:89 error line too long (149 > 88 characters) (line-length)
25:89 error line too long (146 > 88 characters) (line-length)
39:89 error line too long (105 > 88 characters) (line-length)
40:89 error line too long (127 > 88 characters) (line-length)
56:89 error line too long (101 > 88 characters) (line-length)
./salt/ospyvermap.yaml
4:1 warning missing document start "---" (document-start)
./salt/defaults.yaml
3:1 warning missing document start "---" (document-start)
7:21 warning truthy value should be one of [false, true] (truthy)
8:12 warning truthy value should be one of [false, true] (truthy)
9:23 warning truthy value should be one of [false, true] (truthy)
10:19 warning truthy value should be one of [false, true] (truthy)
14:25 warning truthy value should be one of [false, true] (truthy)
15:25 warning truthy value should be one of [false, true] (truthy)
16:27 warning truthy value should be one of [false, true] (truthy)
17:27 warning truthy value should be one of [false, true] (truthy)
39:28 warning truthy value should be one of [false, true] (truthy)
41:28 warning truthy value should be one of [false, true] (truthy)
45:24 warning truthy value should be one of [false, true] (truthy)
49:30 warning truthy value should be one of [false, true] (truthy)
54:28 warning truthy value should be one of [false, true] (truthy)
63:25 warning truthy value should be one of [false, true] (truthy)
68:15 warning truthy value should be one of [false, true] (truthy)
```