Salt 3005 (Phosphorus) is Here

August 25, 2022 - Chunga

Salt Project has just released the next major release of Salt: 3005. This release includes some exciting additions that we would like to highlight in this post. For all other changes, you can read the release notes: https://docs.saltproject.io/en/master/topics/releases/3005.html

OneDir Packages

The 3005 release is now using the new Onedir packages. We are still providing OS packages such as rpm’s and deb’s, but the internals of the package are changing. These new packages are self-contained binaries of Salt, which include the version of Python needed by Salt and its required dependencies. The Onedir packages allow users to use Salt without also needing to install Python on the box. The Salt Project team will support both the previous classic packages and Onedir packages for the 3005 release to give users time to upgrade to the new Onedir packages. However, with the 3006 release, only Onedir packages will be supported and provided going forward.

For more information and instructions about how to migrate to the new Onedir packages for each OS platform, see the instructions on the new Salt Install Guide: Upgrade to Onedir.

New Install Guide

To support the new Onedir packaging system and improve the installation process, Salt 3005 is being released with a new Salt Install Guide. The improved guide makes it easier to find accurate and comprehensive installation instructions for various operating systems. It also provides a single source of truth for which operating systems are officially supported, the Salt product version lifecycle, and which versions of Python are supported.

A module for linting YAML (#61182)

3005 includes a new module for linting YAML, which is useful for troubleshooting states and defaults information. The module requires yamllint 1.20.0 or higher to be installed on the minion as well.

Consul State Module (#58101)

A new Consul state module has been added to this release. This new state module now contains two new state functions: consul.acl_present and consul.acl_absent. These state functions can help to manage Consul ACLs.

Restconf Proxy (#59006)

The 3005 release adds an execution, state, and proxy module to help automate network devices that support restconf. The proxy allows a user to initialize a device, test a connection, manage configs, and trigger http requests against the device.

Apt-Key Deprecation (#59785)

The CLI tool apt-key is currently on a deprecation path. The aptpkg.py execution module was updated to support managing repo keys without the apt-key tool. A user would need to set `aptkey: False` and ` signed-by` in the repo’s name of the pkgrepo state. If apt-key is not available, it will automatically set aptkey to False.

Instant Clone VMware Cloud (#60004)

A user can now create an instant clone using the VMware cloud module. An instant clone allows a user to create a virtual machine from another machine that is already running a VM. To use this new feature, you’ll need to set `instant_clone: true` in your cloud profile config.

Added support for etcd API v3 (#60325)

The etcd utilities are now able to use the newer etcd API v3 via etcd3-py. You can use this feature by setting `etcd.use_v2: true` in your etcd profile configuration. You can also choose to encode your keys (not recommended) and values using msgpack in the etcd configuration by setting `etcd.encode_keys` and `etcd.encode_values`. If you’d just like the bytes that etcd v3 returns, you can set `etcd.raw_keys` and `etcd.raw_values` in the configuration. However, be aware that because of interface conflicts between the v3 API (having a flattened key-value space) and the salt cache API, the `etcd_cache` module is unable to use this feature.

Percentage State Summary Output (#60990)

A new configuration was added ` state_output_pct: True`. If set, the summary output will include two new lines showing the percentage of successful and failed states in the run.

Summary for local ———— Succeeded: 2 (changed=2) Failed: 2 Success %: 50.0 Failure %: 50.0 ———— Total states run: 4 Total run time: 4.088 ms

Added new shortcut execution and state module to better handle UNC shortcuts and to test more thoroughly (#61170)

3005 adds a new state module for working with shortcuts in a more Salty way, meaning that it is more declarative. For example, you can now use the following state:

new_shortcut: shortcut.present: – name: C:\path\to\shortcut.lnk – target: C:\Windows\notepad.exe – hot_key: Ctrl+Alt+N

The Salt schedule module allows a user to control the scheduler. Due to its reliance on the Salt event bus, previous versions of this module required the Salt minion to be running. With the 3005 release, the functions within the schedule module now include an offline option, which cause those functions to act in an offline mode and update the schedule-related configuration files directly.

Deprecate Azure Cloud Modules (#62184)

The Azurearm cloud modules have been set on a deprecation path in favor of the new Azure Salt Extension (https://github.com/salt-extensions/saltext-azurerm).

The Salt Project Core Team wishes to thank everyone in the Salt Project community for your contributions for the 3005 release!