The 2015.8.0 feature release of Salt contains several major new features. As usual the release notes are not exhaustive and primarily include the most notable additions and improvements. Hundreds of bugs have been fixed and many modules have been substantially updated and added.
SaltStack now provides installation repositories for several platforms, with more to come. See the following links for instructions:
A fire_event global state keyword argument was added that allows any state to send an event upon completion. Useful for custom progress bars and checking in on long state runs. See fire_event.
If zmq_monitor
is enabled, log all ZMQ events for socket monitoring
purposes. Verbose, but useful.
A new default_top
option was added to load the state top file
from a single, specific environment, rather than merging top data across all
environments. Additionally, new top_file_merge_strategy
and
env_order
options were added for more control over top file
merging. See The Top File.
Implemented a pure-TCP transport, in addition to ZeroMQ and RAET. The new transport uses Tornado, which allows Salt to use a standardized set of libraries for asynchronous behavior, which should greatly improve reliability and performance.
Note
Tornado is considered expiremental in this release. The following known issues were being investigated at the time of release:
- TCP tests show performance degredation over time (issue 26051)
- TCP transport stacktrace on windows minion: Future exception was never retrieved (issue 25718)
- [freebsd] TCP transport not working in 2015.8.0rc3 (issue 26364)
Proxy Minions have undergone a significant overhaul in 2015.8, see Proxy Minion Enhancements.
versions_report
, which appears in both salt
--versions-report
and salt '*' test.versions_report
. Also added is an
alias test.versions
to test.versions_report
. (issue 21906)%(colorlevel)s
, %(colorname)s
, %(colorprocess)s
, %(colormsg)s
in log_fmt_console
in the config file for any of salt-master
,
salt-minion
, and salt-cloud
.The git external pillar has been rewritten to bring it up to feature parity
with gitfs
. Support for pygit2 has been added,
bringing with it the ability to access authenticated repositories.
Using the new features will require updates to the git ext_pillar configuration, further details can be found in the pillar.git_pillar docs.
rename_on_destroy
to be set to True
in the EC2 and AWS drivers.terminated
state.digital_ocean.py
, the number of VMs to include in
a page was changed from 20 (default) to 200 to reduce the number of API calls
to Digital Ocean.Ocean.state
and execution module
).timeout
in jboss7.status.enabled
argument in pkgrepo.managed
in favor of disabled
.archive.tar
and archive.cmd_unzip
module functions, remove the arbitrary prefixing of the options string with
-
. An options string beginning with a --long-option
, would have
uncharacteristically needed its first -
removed under the former scheme.
Also, tar will parse its options differently if short options are used with or
without a preceding -
, so it is better to not confuse the user into
thinking they're using the non- -
format, when really they are using the
with- -
format.__states__
to state modules, for cross-calling states. This enables
using existing states when writing custom states. See cross calling states.win_wua
).Several config options have been renamed to make their naming more consistent. For a list of the winrepo config options, see here for master config options, and here for configuration options for masterless Windows minions.
On the master, the winrepo.update_git_repos
runner has been updated to use either
pygit2 or GitPython to checkout the git repositories containing repo data. If
pygit2 or GitPython is installed, existing winrepo git checkouts should be
removed after upgrading to 2015.8.0, to allow them to be checked out again by
running winrepo.update_git_repos
.
This enhancement also brings new functionality, see the Windows Software Repository documentation for more information.
If neither GitPython nor pygit2 are installed, then Salt will fall back to
the pre-existing behavior for winrepo.update_git_repos
, and a warning will be logged in the
master log.
Note
Standalone Windows minions do not support the new GitPython/pygit2
functionality, and will instead use the git.latest
state to keep repositories up-to-date. More
information on how to use the Windows Software Repo on a standalone minion
can be found here.
The unit of the timeout
parameter in the system.halt
,
system.poweroff
, system.reboot
, and system.shutdown
functions has
been changed from seconds to minutes in order to be consistent with the linux
timeout setting. (issue 24411) Optionally, the unit can be reverted to
seconds by specifying in_seconds=True
.
digital_ocean.py
Salt Cloud driver was removed in favor of the
digital_ocean_v2.py
driver as DigitalOcean has removed support for APIv1.
The digital_ocean_v2.py
was renamed to digital_ocean.py
and supports
DigitalOcean's APIv2.vsphere.py
Salt Cloud driver has been deprecated in favor of the
vmware.py
driver.openstack.py
Salt Cloud driver has been deprecated in favor of the
nova.py
driver.provider
in Salt Cloud provider files to define cloud drivers
has been deprecated in favor of using driver
. Both terms will work until
the Nitrogen release of Salt. Example provider file:my-ec2-cloud-config:
id: 'HJGRYCILJLKJYG'
key: 'kdjgfsgm;woormgl/aserigjksjdhasdfgn'
private_key: /etc/salt/my_test_key.pem
keyname: my_test_key
securitygroup: default
driver: ec2
lock
has been deprecated and from salt.utils.fopen
.
salt.utils.flopen
should be used instead.rabbitmq_vhost.present
state: user
, owner
, conf
, write
, read
, and runas
.runas
has been deprecated from the rabbitmq_vhost.absent
state.output
in mine.get
was removed. --out
should be used
instead.delim
was removed from the following functions in the match
execution module: pillar_pcre
, pillar
, grain_pcre
,