salt/doc/topics/releases/2014.7.0.rst
2014-10-08 16:40:34 -06:00

307 lines
10 KiB
ReStructuredText

=============================================
Salt 2014.7.0 Release Notes - Codename Helium
=============================================
This release is the largest Salt release ever, with more features and commits
then any previous release of Salt. Everything from the new RAET transport to
major updates in Salt Cloud and the merging of Salt API into the main project.
New Transport!
==============
RAET Transport Option
---------------------
This has been a HUGE amount of work, but the beta release of Salt with RAET is
ready to go. RAET is a reliable queuing transport system that has been
developed in partnership with a number of large enterprises to give Salt an
alternative to ZeroMQ and a way to get Salt to scale well beyond tens of
thousands of servers. Unlike ZeroMQ, RAET is completely asynchronous in every
aspect of its operation and has been developed using the flow programming
paradigm. This allows for many new capabilities to be added to Salt in the
upcoming releases.
Please keep in mind that this is a beta release of RAET and we hope for bugs to
be worked out, performance to be better realized and more in the Lithium
release.
Simply stated, users running Salt with RAET should expect some hiccups as we
hammer out the update. This is a BETA release of Salt RAET.
For information about how to use Salt with RAET please see the :doc:`tutorial </topics/transports/raet/programming_intro>`.
Salt SSH Enhancements
=====================
Salt SSH has just entered a new league, which substantial updates and
improvements to make salt-ssh more reliable and easier then ever! From new
features like the ansible roster and fileserver backends to the new pypi
salt-ssh installer to lowered deps and a swath of bugfixes, salt-ssh is
basically reborn!
Pip install salt-ssh
--------------------
Salt ssh is now pip installable!
https://pypi.python.org/pypi/salt-ssh/
Pip will bring in all of the required deps, and while some deps are compiled,
they all include pure python implementations, meaning that any compile errors
which may be seen can be safely ignored.
.. code-block:: bash
pip install salt-ssh
Fileserver Backends
-------------------
Salt-ssh can now use the salt fileserver backend system, this allows for
the gitfs, hgfs, s3, and many more ways to centrally store states to be easily
used with salt-ssh. This also allows for a distributed team to easily use
a centralized source.
No More sshpass
---------------
Thanks to the enhancements in the salt vt system salt-ssh no longer requires
sshpass to send passwords to ssh, this also makes the manipulation of ssh
calls substantially more flexible, allowing for intercepting ssh calls in
a much more fluid way.
Pure Python Shim
----------------
The salt-ssh call originally used a shell script to discover what version of
python to execute with and determine the state of the ssh code deployment.
This shell script has been replaced with a pure python version making it easy
to increase the capability of the code deployment without causing platform
inconsistency issues with different shell interpreters.
Custom Module Delivery
----------------------
Custom modules are now seamlessly delivered. This makes the deployment of
custom grains, states, execution modules and returners a seamless process.
State System Enhancements
=========================
New Imperative State Keyword "Listen"
-------------------------------------
The new listen keyword allows for completely imperative states by calling the
mod_watch routine after all states have run instead of re-ordering the states.
Mod Aggregate Runtime Manipulator
---------------------------------
The new mod_aggregate system allows for the state system to rewrite the state
data during execution. This allows for state definitions to be aggregated
dynamically at runtime.
The best example is found in the pkg state. If mod_aggregate is turned on,
then when the first pkg state is reached the state system will scan all of the
other running states for pkg states and take all other packages set for install
and install them all at once in the first pkg state.
These runtime modifications make it easy groups of states together, in future
versions we hope to fill out the mod_aggregate system to build in more and
more optimizations.
For more documentation on mod_aggregate, see :doc:`the documentation
</ref/states/aggregate>`.
New Requisites: onchanges and onfail
------------------------------------
New requisites!
Global onlyif and unless
------------------------
The ``onlyif`` and ``unless`` options can now be used for any state declaration.
Use ``names`` to expand and override values
-------------------------------------------
The :ref:`names declaration <names-declaration>` in Salt's state system can now
override or add values to the expanded data structure. For example:
.. code-block:: yaml
my_users:
user.present:
- names:
- larry
- curly
- moe:
- shell: /bin/zsh
- groups:
- wheel
- shell: /bin/bash
Major Features
==============
Scheduler Additions
-------------------
The Salt scheduler system has received MAJOR enhancements, allowing for
cron-like scheduling and much more granular timing routines. See :mod:`here
<salt.modules.schedule>` for more info.
Red Hat 7 Family Support
------------------------
All the needed additions have been made to run Salt on RHEL 7 and derived OSes
like CentOS and Scientific.
Fileserver Backends in salt-call
--------------------------------
Standalone modes just got easier, now fileserver backends like gitfs can be
used without a salt master! Just add the fileserver backend configuration to
the minion config and execute salt-call.
Amazon Execution Modules
------------------------
An entire family of execution modules further enhancing Salt's Amazon Cloud
support. They include the following:
- :mod:`Autoscale Groups <salt.modules.boto_asg>` (includes :mod:`state support <salt.states.boto_asg>`) -- related: :mod:`Launch Control <salt.states.boto_lc>` states
- :mod:`Cloud Watch <salt.modules.boto_cloudwatch>` (includes :mod:`state support <salt.states.boto_cloudwatch_alarm>`)
- :mod:`Elastic Cache <salt.modules.boto_elasticache>` (includes :mod:`state support <salt.states.boto_elasticache>`)
- :mod:`Elastic Load Balancer <salt.modules.boto_elb>` (includes :mod:`state support <salt.states.boto_elb>`)
- :mod:`IAM Identity and Access Management <salt.modules.boto_iam>` (includes :mod:`state support <salt.states.boto_iam_role>`)
- :mod:`Route53 DNS <salt.modules.boto_route53>` (includes :mod:`state support <salt.states.boto_route53>`)
- :mod:`Security Groups <salt.modules.boto_secgroup>` (includes :mod:`state support <salt.states.boto_secgroup>`)
- :mod:`Simple Queue Service <salt.modules.boto_sqs>` (includes :mod:`state support <salt.states.boto_sqs>`)
LXC Runner Enhancements
-----------------------
BETA
The Salt LXC management system has received a number of enhancements which make
running an LXC cloud entirely from Salt an easy proposition.
Next Gen Docker Management
--------------------------
The Docker support in Salt has been increased at least ten fold. The Docker API
is now completely exposed and Salt ships with Docker data tracking systems
which make automating Docker deployments very easy.
Peer System Performance Improvements
------------------------------------
The peer system communication routines have been refined to make the peer
system substantially faster.
SDB
---
Encryption at rest for configs
GPG Renderer
------------
Encrypted pillar at rest
OpenStack Expansion
-------------------
Lots of new OpenStack stuff
Queues System
-------------
Ran change external queue systems into Salt events
Multi Master Failover Additions
-------------------------------
Connecting to multiple masters is more dynamic then ever
Chef Execution Module
---------------------
Managing Chef with Salt just got even easier!
Fileserver Backend Enhancements
-------------------------------
All of the fileserver backends have been overhauled to be faster, lighter and more reliable
Pyobjects Renderer
------------------
Salt now ships with with the :mod:`Pyobjects Renderer <salt.renderers.pyobjects>` that
allows for construction of States using pure Python with an idiomatic object interface.
New Modules
===========
In addition to the Amazon modules mentioned above, there are also several other
new execution modules:
- :mod:`Oracle <salt.modules.oracle>`
- :mod:`Random <salt.modules.mod_random>`
- :mod:`Redis <salt.modules.redismod>`
- :mod:`Amazon Simple Queue Service <salt.modules.aws_sqs>`
- :mod:`Block Device Management <salt.modules.blockdev>`
- :mod:`CoreOS etcd <salt.modules.etcd_mod>`
- :mod:`Genesis <salt.modules.genesis>`
- :mod:`InfluxDB <salt.modules.influx>`
- :mod:`Server Density <salt.modules.serverdensity_device>`
- :mod:`Twilio Notifications <salt.modules.twilio_notify>`
- :mod:`Varnish <salt.modules.varnish>`
- :mod:`ZNC IRC Bouncer <salt.modules.znc>`
- :mod:`SMTP <salt.modules.smtp>`
New Runners
===========
- :mod:`Map/Reduce Style <salt.runners.survey>`
- :mod:`Queue <salt.runners.queue>`
New External Pillars
====================
- :mod:`CoreOS etcd <salt.pillar.etcd_pillar>`
New Salt-Cloud Providers
========================
- :mod:`Aliyun ECS Cloud <salt.cloud.clouds.aliyun>`
- :mod:`LXC Containers <salt.cloud.clouds.lxc>`
- :mod:`Proxmox KVM Containers <salt.cloud.clouds.proxmox>`
Deprecations
============
:mod:`salt.modules.virturalenv_mod`
-----------------------------------
- Removed deprecated ``memoize`` function from ``salt/utils/__init__.py`` (deprecated)
- Removed deprecated ``no_site_packages`` argument from ``create`` function (deprecated)
- Removed deprecated ``check_dns`` argument from ``minion_config`` and ``apply_minion_config`` functions (deprecated)
- Removed deprecated ``OutputOptionsWithTextMixIn`` class from ``salt/utils/parsers.py`` (deprecated)
- Removed the following deprecated functions from ``salt/modules/ps.py``:
- ``physical_memory_usage`` (deprecated)
- ``virtual_memory_usage`` (deprecated)
- ``cached_physical_memory`` (deprecated)
- ``physical_memory_buffers`` (deprecated)
- Removed deprecated cloud arguments from ``cloud_config`` function in ``salt/config.py``:
- ``vm_config`` (deprecated)
- ``vm_config_path`` (deprecated)
- Removed deprecated ``libcloud_version`` function from ``salt/cloud/libcloudfuncs.py`` (deprecated)
- Removed deprecated ``CloudConfigMixIn`` class from ``salt/utils/parsers.py`` (deprecated)