Skip to content

Minion/master connection-resilience defaults, dedicated namespaces, GHCR-first quickstart - #4

Merged
saifuddinrangwala merged 1 commit into
mainfrom
saifuddin/best-practices-namespaces-quickstart
Sep 8, 2026
Merged

Minion/master connection-resilience defaults, dedicated namespaces, GHCR-first quickstart#4
saifuddinrangwala merged 1 commit into
mainfrom
saifuddin/best-practices-namespaces-quickstart

Conversation

@saifuddinrangwala

Copy link
Copy Markdown
Collaborator

What

  • Minion connection resilience (both salt-minion-vcf and salt-minion-kubernetes, chart + Docker/env entrypoint paths): auth_timeout: 60, master_alive_interval: 60, recon_default/recon_max/recon_randomize - reduces thundering-herd retry storms and ensures minions detect a dead/rescheduled master and reconnect (previously disabled by default in Salt).
  • Master resilience (salt-master-kubernetes): presence_events: true - so manage.present/manage.status reflect which minions are actually connected, useful since minion pods in Kubernetes come and go independently of their accepted-key status.
  • Dedicated default namespaces (previously kube-system for both charts):
    • salt-master-kubernetessalt-master
    • salt-minion-kubernetessalt (both namespace and kubeBench.namespace, kept in sync - see updated docs/kubernetes-compliance-guide.md for the kube-bench-job coordination note)
    • salt-minion-vcf docs updated from the vcf-salt example to salt for consistency (this chart has no explicit namespace value of its own).
  • README/docs: main README.md now leads with GHCR quick-install (Helm OCI charts + docker run against the published image) instead of local build steps; new docs/building.md holds the from-source build path.

Verification

  • helm lint + helm template (all documented --set combinations) on all 3 charts: clean.
  • hadolint --failure-threshold info on all 4 Dockerfiles: clean.
  • shellcheck on both entrypoint scripts: clean.
  • bash -n on the master entrypoint: clean.

🤖 Generated with Claude Code

…HCR-first quickstart

Minion resilience (salt-minion-vcf chart + salt-minion-kubernetes chart/
entrypoint, and salt-minion-vcf's own entrypoint for Docker/env users):
- auth_timeout: 60 - allow more time for minions to authenticate against
  the master before timing out and retrying, reducing thundering-herd
  retry storms.
- master_alive_interval: 60 - proactively checks the master TCP connection
  and reconnects if it's gone stale; disabled (0) by default in Salt
  itself, so minions previously only noticed a dead/rescheduled master at
  the next job dispatch attempt.
- recon_default/recon_max/recon_randomize - ZeroMQ reconnect backoff with
  jitter, Salt's own documented fix for reconnect thundering herds when
  many minions reconnect at once (e.g. after a master restart).

Master resilience (salt-master-kubernetes chart + docker/salt-master
entrypoint):
- presence_events: true - fires salt/presence/present|change events so
  manage.present/manage.status reflect which minions are actually
  connected right now, useful in Kubernetes where minion pods come and go
  independently of their accepted-key status.

Dedicated default namespaces (previously kube-system for both):
- salt-master-kubernetes now defaults to namespace `salt-master`.
- salt-minion-kubernetes now defaults to namespace `salt` (both its own
  `namespace` and `kubeBench.namespace`, which must stay in sync with each
  other and with kube-bench-job's own namespace - see updated
  docs/kubernetes-compliance-guide.md).
- salt-minion-vcf docs updated from the `vcf-salt` example namespace to
  `salt` for consistency (this chart has no explicit namespace value of
  its own - it deploys wherever `helm install -n` targets).

README/docs:
- Main README now leads with GHCR quick-install commands (Helm OCI charts
  + a plain `docker run` against the published salt-minion-vcf image)
  instead of local build instructions.
- New docs/building.md consolidates the from-source build path (Docker
  images, chart packaging) that used to live in the main README.

Verified: helm lint/template on all 3 charts, hadolint on all 4
Dockerfiles, shellcheck on both entrypoint scripts, bash -n on the master
entrypoint - all clean.
@saifuddinrangwala
saifuddinrangwala merged commit 2d80e95 into main Sep 8, 2026
4 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant