Deprecate append_minionid_config_dirs — redundant with explicit path config
Nobody has claimed this yet.
- Dominant language
- Python
- Stars
- 15.7k
- Forks
- 5.6k
- Avg merge
- 2d 44m
- Merged PRs (30d)
- 80
Description
append_minionid_config_dirs (docs: https://docs.saltproject.io/en/3006/ref/configuration/minion.html#append-minionid-config-dirs) is a 2016-era convenience (PR #35178) that auto-appends opts["id"] to pki_dir / cachedir / extension_modules / default_include / pidfile.
Redundant: each of those paths is directly configurable in /etc/salt/minion (or minion.d/*.conf), so operators running multiple minions/proxies on one host can just write the per-minion path they want:
pki_dir: /etc/salt/pki/minion/{{ opts["id"] }}
cachedir: /var/cache/salt/minion/{{ opts["id"] }}
pidfile: /run/salt/minion/{{ opts["id"] }}.pid
The convenience option adds a second, less-discoverable way to do the same thing and forces salt/config/__init__.py:4152-4169 to special-case each supported key (with an unrelated sock_dir truncation hack right after).
Proposal:
- Emit
DeprecationWarningon 3008.x/master when the key is set in loaded opts. - Remove in the release after next.
- Docs: replace the section with an example of explicit per-minion path config.
No runtime behavior change for existing users on 3006.x/3007.x; only a docs cite + warning + removal timeline.
/cc @dwoz
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start in salt/config/init.py:4152-4169 to understand how append_minionid_config_dirs is applied to configured paths, then read its documentation section in the minion configuration reference. Done means the configured key emits the proposed deprecation warning, the documentation shows explicit per-minion paths, and the removal timeline is recorded without changing 3006.x/3007.x behavior.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- python
- Domain
- devops, infrastructure
- Issue type
- Refactor
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Quiet
- Clarity
- Mostly clear
- Newbie friendliness
- 55/100