saltstack / saltstack/salt

Deprecate append_minionid_config_dirs — redundant with explicit path config

Open
#69,975 0 comments 0 reactions 0 assignees View on GitHub

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 DeprecationWarning on 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

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. 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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.