doc/topics/releases/3004.rst
.. _release-3004:
A transactional system, like MicroOS, can present some challenges
when the user decided to manage it via Salt.
MicroOS provide a read-only rootfs and a tool,
transactional-update, that takes care of the management of the
system (updating, upgrading, installation or reboot, among others) in
an atomic way.
Atomicity is the main feature of MicroOS, and to guarantee this
property, this model leverages snapper, zypper, btrfs and
overlayfs to create snapshots that will be updated independently
of the currently running system, and that are activated after the
reboot. This implies, for example, that some changes made on the
system are not visible until the next reboot, as those changes are
living in a different snapshot of the file system.
Salt 3004 (Silicon) support this type of system via two new modules
(transactional_update and rebootmgr) and a new executor
(transactional_update).
The new modules will provide all the low level API for interacting with transactional systems, like defining a mantenance window where the system is free to reboot and activate the new state, or install new software in a new transaction. It will also provide hight level of abstractions that will allows us to execute Salt module functions or applying states inside new transactions.
The execution module will help us to treat the transactional system
transparently (like the traditional ones), using a mechanism that will
delegate some Salt modules execution into the new
transactional_update module.
gid_from_name from the user state module (#60565)salt.payload.Serial (#60953)nginx/ prefix. (#57111)utils.pycrypto.secure_password() to include symbols and implemented arguments to control the used character set. (#59486)salt.ext.six to six (#60966)KeyError that occurs when there exists any subnets with no tags when profiles use subnetname (#44330)salt.modules.iptables would call cmd.run and receive and interpret interspersed stdout and stderr output from subprocesses. (#55262)ansiblegate module now correctly passes keyword arguments to Ansible module calls (#59792)runas is passed to cmd.exec_code_all (#60072)ansiblegate module which was broken on the 3001 release. (#60207)pwd.getpwnam caching issue on macOS user module (#60676)success_stdout and success_stderr arguments to cmd.run, to override default return code behavior. (#50597)allow_one_of() and require_one_of() (#58742)nosync switch to disable initial raid synchronization (#59193)detect_remote_minions and remote_minions_port options to allow the master to detect remote ports for connected minions. This will allow users to detect Heist-Salt minions the master is connected to over port 22 by default. (#60612)