Salt 2016.3.0 Release Notes - Codename Boron

Backwards-incompatible Changes

  • The default path for the extension_modules master config option has been changed. Prior to this release, the location was a directory named extmods in the Salt cachedir. On most platforms, this would put the extension_modules directory in /var/cache/salt/extmods. It has been moved one directory down, into the master cachedir. On most platforms, this is /var/cache/salt/master/extmods. Most users won't have to worry about this, but those who have been manually placing custom runners into /var/cache/salt/extmods/runners, or ouputters into /var/cache/salt/extmods/output, etc. will be affected by this. To transition, it is recommended not to simply move the extmods directory into /var/cache/salt/master, but to copy the custom modules into the salt fileserver under salt://_runners, salt://_output, etc. and sync them using the functions in the new saltutil runner.

Core Changes

  • The onchanges requisite now fires if _any_ watched state changes. Refs #19592.
  • The ext_pillar functions must now accept a minion ID as the first argument. This stops the deprecation path started in Salt 0.17.x. Before this minion ID first argument was introduced, the minion ID could be retrieved accessing __opts__['id'] loosing the reference to the master ID initially set in opts. This is no longer the case, __opts__['id'] will be kept as the master ID.
  • Custom types can now be synced to the master using the new saltutil runner. Before, these needed to manually be placed under the extension_modules directory. This allows custom modules to easily be synced to the master to make them available when compiling Pillar data. Just place custom runners into salt://_runners, custom outputters into salt://_output, etc. and use the functions from the saltutil runner to sync them.
  • the client_acl configuration options were renamed to publisher_acl. todo: describe the new behavior of publisher_acl

External Module Packaging

Modules may now be packaged via entry-points in setuptools. See external module packaging </topics/tutorials/packaging_modules tutorial for more information.

Cloud Changes

  • Refactored the OpenNebula driver and added numerous ``--function``s and ``--action``s to enhance Salt support for image, template, security group, virtual network and virtual machine management in OpenNebula.

Platform Changes

  • Renamed modules related to OS X. The following module filenames were changed. The virtual name remained unchanged.
  • PR #30558: renamed osxdesktop.py to mac_desktop.py
  • PR #30557: renamed macports.py to mac_ports.py
  • PR #30556: renamed darwin_sysctl.py to mac_sysctl.py
  • PR #30555: renamed brew.py to mac_brew.py
  • PR #30552: renamed darwin_pkgutil.py to mac_pkgutil.py

New Features

Thorium - Provisional New Reactor

The 2016.3 release introduces the new Thorium Reactor. This reactor is an experimental new feature that implements a flow programing interface using the salt state system as the engine. This means that the Thorium reactor uses a classic state tree approach to create a reactor that can aggregate event data from multiple sources and make aggregate decisions about executing reactions.

This feature is both experimental and provisional, it may be removed and apis may be changed. This system should be considered as ambitious as the Salt State System in that the scope of adding a programmable logic engine of this scale into the event systems is non trivial.

Simplified Custom Module Deployment

saltutil runner

Improved Mac OS Support

Tornado Transport

Windows DSC Integration (Experiemental)

Dimension Data Cloud Support

Minion Blackout

New Modules

The following list contains a link to the new modules added in this release. Many additional modules were updated with new functionality, these changes are indicated with New in version Boron throughout the documentation.

Proxy

Notable Bug Fixes

issue 25816: Fixed an issue that caused the Windows installer to not stop the old minion processes, resulting in a failed installation.