Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Salt the Salt master #350

Merged
merged 5 commits into from Aug 17, 2016
Merged

Salt the Salt master #350

merged 5 commits into from Aug 17, 2016

Commits on Aug 4, 2016

  1. Salt the Salt master

    Use Salt to install the Salt master.
    The Salt master will not get restarted automatically,
    neither on configuration changes nor on package changes.
    Instead, it will need to be manually restarted to avoid interrupting
    the in-progress highstate as well as allow for proper update ordering.
    (Salt masters must be updated before Salt minions.)
    
    Use Jinja to generate the config file YAML directly, preventing
    typos in the master config file and providing access to master
    configuration options in the SLS file (e.g. the file_roots locations).
    aneeshusa committed Aug 4, 2016
  2. Use explicit masterless args, not minion config

    Previously, the minion config was used to specify that a local set
    of file trees should be used. However, in order to test that the Salt
    master states function, and to more closely match the actual deployment
    of our minions, amend the minion config to point to a localhost master.
    Additionally, amend our Travis config and Vagrantfile to explicitly
    pass options to set the local file and pillar trees.
    Only sync them via Vagrant shared folders for the Salt master, which
    should have them available to allow debugging. Because using Salt is
    the only way to learn which minions (ids) would have a Salt master
    running on them, hardcode the salt-master\d+ regex into the Vagrantfile.
    
    In the future, this will allow adding a smoke test that check if the
    master can test.ping a local minion (on the same VM). However, this
    requires the minion to be started, which requires that the Salt minion
    also be salted, (which requires this PR to backport the launchctl.py
    execution module).
    aneeshusa committed Aug 4, 2016
  3. Enable gitfs for Salt master

    Use gitfs backed by the saltfs repo (https://github.com/servo/saltfs/)
    as the main source for the Salt file tree.
    
    For local testing, additionally configure a local directory in /tmp as
    a Salt file tree root, and give it precedence over the gitfs tree.
    This allows temporarily cloning the saltfs repo into that directory
    and makes local changes to iterate on them.
    Add an ADMIN_README file with some ground rules about proper usage of
    the directory; this file should be set as immutable, but Salt does not
    yet have a module/state for this.
    aneeshusa committed Aug 4, 2016

Commits on Aug 11, 2016

  1. Backport updated launchctl.py execution module

    Also update the buildbot slave state to use the
    now-working service state on OS X, and update the
    name of the service from 'buildslave' to
    'buildbot-slave' for better distinguishability.
    
    Add a note to README.md about licensing of files
    taken and/or modified from the main Salt repo.
    aneeshusa committed Aug 11, 2016
  2. Backport updated pip execution and state modules

    The backported versions support old and new pips more robustly without
    depending on pip internals.
    
    Recently (in version 8.1.2), pip changed their internals in a
    non-backwards compatible way, breaking the Salt pip modules.
    Salt used to depend on these internals, but has since been updated
    to no longer depend on them as they have no compatibility guarantees.
    We have been encountering issues where Salt is finding a new pip
    version, even though the installed pip is old (6.1.1). To work around
    this issue, backport updated modules that handle both old and new pips.
    aneeshusa committed Aug 11, 2016
You can’t perform that action at this time.