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:
* https://github.com/saltstack/salt/blob/45cc49daed1618dbe89e1f012128c8dcab00b356/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 ##}
```