saltstack / saltstack/salt

Add Ability to Reload Environments

Open
#56,229 2 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Feature ZD
Dominant language
Python
Stars
15.7k
Forks
5.6k
Avg merge
2d 44m
Merged PRs (30d)
80

Description

Description of Issue

I run my masters in containers with the salt-master being the command that I run. From time to time I have need to update my file_roots setting. This seems to require a full restart of the master daemon for the environments to work correctly. I can see the environment on the master with salt-run fileserver.envs without restarting the master, but the minion never seems to see the new environment until I restart the daemon.

The feature request is to have the master updated to allow for refreshing the environments configuration.

Setup

Add a new file_root configuration while Salt master is running.

Run salt-run fileserver.envs to show the new environment appears on the master.
Try running salt-call cp.list_master saltenv=new.environment to show the minion does not see the new environment.

# After adding v1.3 file_root to /etc/salt/master.d/fileserver.conf
[root@master1 v1.3]# salt-run fileserver.envs
- base
- v1.2
- v1.3
[root@master1 v1.3]# salt master1 cp.list_master saltenv=v1.3

master1:
    ----------
# After restarting the master daemon
[root@master1 v1.3]# salt master1 cp.list_master saltenv=v1.3
master1:
    - test12.sls
    - testnew.sls
    - top.sls

Versions Report
Salt Version:
           Salt: 2019.2.2

Dependency Versions:
           cffi: 1.6.0
       cherrypy: Not Installed
       dateutil: Not Installed
      docker-py: Not Installed
          gitdb: Not Installed
      gitpython: Not Installed
          ioflo: Not Installed
         Jinja2: 2.7.2
        libgit2: Not Installed
        libnacl: Not Installed
       M2Crypto: Not Installed
           Mako: Not Installed
   msgpack-pure: Not Installed
 msgpack-python: 0.5.6
   mysql-python: Not Installed
      pycparser: 2.14
       pycrypto: 2.6.1
   pycryptodome: Not Installed
         pygit2: Not Installed
         Python: 2.7.5 (default, Aug  7 2019, 00:51:29)
   python-gnupg: Not Installed
         PyYAML: 3.11
          PyZMQ: 15.3.0
           RAET: Not Installed
          smmap: Not Installed
        timelib: Not Installed
        Tornado: 4.2.1
            ZMQ: 4.1.4

System Versions:
           dist: centos 7.6.1810 Core
         locale: UTF-8
        machine: x86_64
        release: 5.4.13-201.fc31.x86_64
         system: Linux
        version: CentOS Linux 7.6.1810 Core

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 by tracing the master fileserver behavior exercised by salt-run fileserver.envs and salt-call cp.list_master, using the file_roots setting in /etc/salt/master.d/fileserver.conf as the configuration entry point. Reproduce the setup with a newly added environment, then verify that the minion lists it without restarting the master daemon.

Written by the indexing model from the issue text.

Assessment

Tech stack
python
Domain
devops, infrastructure
Issue type
Feature
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.