Software to automate the management and configuration of infrastructure and applications at scale.
Find a file
Megan Wilhite 66cf74140b
Merge Freeze into Master (#60074)
* Merge 3002.6 bugfix changes (#59822)

* Pass `CI_RUN` as an environment variable to the test run.

This allows us to know if we're running the test suite under a CI
environment or not and adapt/adjust if needed

* Migrate `unit.setup` to PyTest

* Backport ae36b15 just for test_install.py

* Only skip tests on CI runs

* Always store git sha in _version.py during installation

* Fix PEP440 compliance.

The wheel metadata version 1.2 states that the package version MUST be
PEP440 compliant.

This means that instead of `3002.2-511-g033c53eccb`, the salt version
string should look like `3002.2+511.g033c53eccb`, a post release of
`3002.2` ahead by 511 commits with the git sha `033c53eccb`

* Fix and migrate `tests/unit/test_version.py` to PyTest

* Skip test if `easy_install` is not available

* We also need to be PEP440 compliant when there's no git history

* Allow extra_filerefs as sanitized kwargs for SSH client

* Fix regression on cmd.run when passing tuples as cmd

Co-authored-by: Alexander Graul <agraul@suse.com>

* Add unit tests to ensure cmd.run accepts tuples

* Add unit test to check for extra_filerefs on SSH opts

* Add changelog file

* Fix comment for test case

* Fix unit test to avoid failing on Windows

* Skip failing test on windows

* Fix test to work on Windows

* Add all ssh kwargs to sanitize_kwargs method

* Run pre-commit

* Fix pylint

* Fix cmdmod loglevel and module_names tests

* Fix pre-commit

* Skip ssh tests if binary does not exist

* Use setup_loader for cmdmod test

* Prevent argument injection in restartcheck

* Add changelog for restartcheck fix

* docs_3002.6

* Add back tests removed in merge

Co-authored-by: Pedro Algarvio <pedro@algarvio.me>
Co-authored-by: Megan Wilhite <megan.wilhite@gmail.com>
Co-authored-by: Bryce Larson <brycel@vmware.com>
Co-authored-by: Pablo Suárez Hernández <psuarezhernandez@suse.com>
Co-authored-by: Alexander Graul <agraul@suse.com>
Co-authored-by: Frode Gundersen <fgundersen@saltstack.com>

* Remove glance state module in favor of glance_image

* update wording in changelog

* bump deprecation warning to Silicon.

* Updating warnutil version to Phosphorous.

* Update salt/modules/keystone.py

Co-authored-by: Megan Wilhite <megan.wilhite@gmail.com>

* Check $HOMEBREW_PREFIX when linking against libcrypto

When loading `libcrypto`, Salt checks for a Homebrew installation of `openssl`
at Homebrew's default prefix of `/usr/local`. However, on Apple Silicon Macs,
Homebrew's default installation prefix is `/opt/homebrew`. On all platforms,
the prefix is configurable.  If Salt doesn't find one of those `libcrypto`s,
it will fall back on the un-versioned `/usr/lib/libcrypto.dylib`, which will
cause the following crash:

    Application Specific Information:
    /usr/lib/libcrypto.dylib
    abort() called
    Invalid dylib load. Clients should not load the unversioned libcrypto dylib as it does not have a stable ABI.

This commit checks $HOMEBREW_PREFIX instead of hard-coding `/usr/local`.

* Add test case

* Add changelog for 59808

* Add changelog entry

* Make _find_libcrypto fail on Big Sur if it can't find a library

Right now, if `_find_libcrypto` can't find any externally-managed versions of
libcrypto, it will fall back on the pre-Catalina un-versioned system libcrypto.
This does not exist on Big Sur and it would be better to raise an exception
here rather than crashing later when trying to open it.

* Update _find_libcrypto tests

This commit simplifies the unit tests for _find_libcrypto by mocking out the
host's filesystem and testing the common libcrypto installations (brew, ports,
etc.) on Big Sur. It simplifies the tests for falling back on system versions
of libcrypto on previous versions of macOS.

* Fix description of test_find_libcrypto_with_system_before_catalina

* Patch sys.platform for test_rsax931 tests

* modules/match: add missing "minion_id" in Pillar example

The documented Pillar example for `match.filter_by` lacks the `minion_id` parameter. Without it, the assignment won't work as expected.
- fix documentation
- add tests:
  - to prove the misbehavior of the documented example
  - to prove the proper behaviour when supplying `minion_id`
  - to ensure some misbehaviour observed with compound matchers doesn't occur

* Fix for issue #59773

- When instantiating the loader grab values of grains and pillars if
  they are NamedLoaderContext instances.
- The loader uses a copy of opts.
- Impliment deepcopy on NamedLoaderContext instances.

* Add changelog for #59773

* _get_initial_pillar function returns pillar

* Fix linter issues

* Clean up test

* Bump deprecation release for neutron

* Uncomment Sulfur release name

* Removing the _ext_nodes deprecation warning and alias.

* Adding changelog.

* Renaming changelog file.

* Update 59804.removed

* Initial pass at fips_mode config option

* Fix pre-commit

* Fix tests and add changelog

* update docs 3003

* update docs 3003 - newline

* Fix warts in changelog

* update releasenotes 3003

* add ubuntu-2004-amd64 m2crypto pycryptodome and tcp tests

* add distro_arch

* changing the cloud platforms file missed in 1a9b7be0e2

* Update __utils__ calls to import utils in azure

* Add changelog for 59744

* Fix azure unit tests and move to pytest

* Use contextvars from site-packages for thin

If a contextvars package exists one of the site-packages locations use
it for the generated thin tarball. This overrides python's builtin
contextvars and allows salt-ssh to work with python <=3.6 even when the
master's python is >3.6 (Fixes #59942)

* Add regression test for #59942

* Add changelog for #59942

* Update filemap to include test_py_versions

* Fix broken thin tests

* Always install the `contextvars` backport, even on Py3.7+

Without this change, salt-ssh cannot target systems with Python <= 3.6

* Use salt-factories to handle the container. Don't override default roster

* Fix thin tests on windows

* No need to use warn log level here

* Fix getsitepackages for old virtualenv versions

* Add explicit pyobjc reqs

* Add back the passthrough stuff

* Remove a line so pre-commit will run

* Bugfix release docs

* Bugfix release docs

* Removing pip-compile log files

* Fix failing test tests.unit.grains.test_core.CoreGrainsTestCase.test_xen_virtual

* Fix pre-commit for docs.txt reqs

Co-authored-by: Daniel Wozniak <dwozniak@saltstack.com>
Co-authored-by: Pedro Algarvio <pedro@algarvio.me>
Co-authored-by: Bryce Larson <brycel@vmware.com>
Co-authored-by: Pablo Suárez Hernández <psuarezhernandez@suse.com>
Co-authored-by: Alexander Graul <agraul@suse.com>
Co-authored-by: Frode Gundersen <fgundersen@saltstack.com>
Co-authored-by: Gareth J. Greenaway <gareth@saltstack.com>
Co-authored-by: Gareth J. Greenaway <gareth@wiked.org>
Co-authored-by: Hoa-Long Tam <hoalong@apple.com>
Co-authored-by: krionbsd <krion@freebsd.org>
Co-authored-by: Elias Probst <e.probst@ssc-services.de>
Co-authored-by: Daniel A. Wozniak <dwozniak@vmware.com>
Co-authored-by: Frode Gundersen <frogunder@gmail.com>
Co-authored-by: twangboy <slee@saltstack.com>
Co-authored-by: twangboy <leesh@vmware.com>
Co-authored-by: ScriptAutomate <derek@icanteven.io>
2021-04-27 11:47:47 -04:00
.github Update email and LinkedIn links; use Salt Project 2021-04-16 06:52:52 -04:00
.pre-commit-hooks Prevent badly named changelog files from being committed 2021-02-04 17:48:50 +00:00
changelog Parsing Epoch out of version provided during pkg remove (#57881) 2021-04-22 14:02:07 -04:00
cicd Add ARM64 support for Ubuntu20 pipeline 2021-04-26 11:24:57 -07:00
conf Set state_output_profile as option and update docs 2021-02-23 13:46:14 -05:00
doc Merge Freeze into Master (#60074) 2021-04-27 11:47:47 -04:00
pkg Clarify requirements for macOS builds 2021-03-05 12:19:04 -05:00
requirements Merge Freeze into Master (#60074) 2021-04-27 11:47:47 -04:00
rfcs Port #50553 to master 2020-10-07 16:09:36 -07:00
salt Merge Freeze into Master (#60074) 2021-04-27 11:47:47 -04:00
scripts Fix: code quality issues (#59385) 2021-02-16 12:51:45 -05:00
tasks Only run check-docs on deleted files on CI. 2021-03-02 08:42:19 -05:00
templates fix: changes made by pre-commit scripts 2020-10-07 13:43:41 -07:00
tests Merge Freeze into Master (#60074) 2021-04-27 11:47:47 -04:00
.bandit Address Bandit's B602(subprocess_popen_with_shell_equals_true) on the test suite 2021-03-03 06:21:53 -05:00
.codeclimate.yml Tweak codeclimate settings for less noise 2019-05-09 14:03:53 +01:00
.codecov.yml Set codecov's status setting to false 2020-05-06 00:21:37 -07:00
.coveragerc Teach coverage a bit more about salt paths. 2020-08-11 10:21:27 -07:00
.editorconfig Added .editorconfig for easier editing. 2015-10-04 21:35:51 -04:00
.git-blame-ignore-revs Update ignored revisions for git-blame 2021-02-22 14:12:11 -05:00
.gitattributes Update changelog 2020-01-27 09:33:43 -06:00
.gitignore Properly ignore requirements logs 2021-04-16 06:53:18 -04:00
.gitlab-ci.yml Revert "Add ShiftLeft Scan to the pipeline" 2020-07-14 15:25:04 -07:00
.mention-bot Always notify tkwilliams when changes occur on boto files 2017-08-25 19:34:29 -04:00
.pre-commit-config.yaml Merge Freeze into Master (#60074) 2021-04-27 11:47:47 -04:00
.pylintrc Bump pytest-salt-factories to 0.92.x 2020-09-14 07:55:09 +01:00
.rstcheck.cfg Start checking rst files at pre-commit level with rstcheck 2020-10-13 13:53:16 -07:00
AUTHORS Updating email references from nmadhok@clemson.edu to nmadhok@g.clemson.edu 2021-02-16 11:15:39 -05:00
CHANGELOG.md Merge Freeze into Master (#60074) 2021-04-27 11:47:47 -04:00
CODE_OF_CONDUCT.md Updating to v2.0 of contributor covenant 2020-09-30 13:28:39 -07:00
CONTRIBUTING.rst Updating Twitch links 2021-03-02 07:42:07 -05:00
DEPENDENCIES.md Add dates of copyright to dependencies 2020-09-04 10:14:56 -07:00
Gemfile Start using upstream test-kitchen 2021-03-05 07:19:21 +00:00
kitchen.yml Add changelog entry for bugfix for #57184. 2020-05-21 20:49:31 -07:00
LICENSE Fix path in license 2020-09-30 09:31:48 +01:00
MANIFEST.in add run.py to the sdist tarball 2021-03-31 11:43:37 -04:00
noxfile.py Ensure base upgrades in docs venv before run 2021-03-19 06:30:57 -04:00
pyproject.toml Fix for changelog project dir 2020-07-24 14:11:38 -07:00
pytest.ini Upgrade to PyTest 5.x 2020-05-22 09:17:36 -07:00
README.rst Update email and LinkedIn links; use Salt Project 2021-04-16 06:52:52 -04:00
run.py add run.py to the sdist tarball 2021-03-31 11:43:37 -04:00
SECURITY.md Updating links to point to master branch docs 2021-02-23 09:12:30 +00:00
setup.py update setup.py 2021-04-01 14:18:52 -07:00
SUPPORT.rst Updating develop branch targets to master 2021-02-19 09:20:44 -05:00

Salt Project License: Apache v2.0

PyPi Package Downloads

PyPi Package Downloads

Salt Project Slack Community

Salt Project Twitch Channel

Salt Project subreddit

Follow SaltStack on Twitter

https://gitlab.com/saltstack/open/salt-branding-guide/-/raw/master/logos/SaltProject_altlogo_teal.png?inline=true

Salt is the worlds fastest, most intelligent and scalable automation engine.

About Salt

Built on python, Salt uses simple and human-readable YAML combined with event-driven automation to deploy and configure complex IT systems. In addition to leveling-up vRealize Automation SaltStack Config, Salt can be found under the hood of products from Juniper, Cisco, Cloudflare, Nutanix, SUSE, and Tieto, to name a few.

About SaltStack

SaltStack was acquired by VMware in 2020. Salt Project remains an open source ecosystem that VMware supports and contributes to.

Download Salt

Salt is tested and packaged to run on CentOS, Debian, RHEL, Ubuntu, MacOS, Windows, and more. Download Salt and get started now.

Salt Project Documentation

Installation instructions, getting started guides, in-depth API documentation, and contributing to Salt.

Security Advisories

Keep an eye on the Salt Project Security Announcements landing page. Salt Project recommends subscribing to the Salt Project Security RSS feed to receive notification when new information is available regarding security announcements.

Other channels to receive security announcements include the Salt Community mailing list and the Salt Community Slack Channel.

Responsibly Reporting Security Vulnerabilities

When reporting security vulnerabilities for Salt or other SaltStack projects, refer to the SECURITY.md file found in this repository.

Engage the Salt Project and The Community

Please be sure to review our Code of Conduct. Also, check out some of our community resources including:

There are lots of ways to get involved in our community. Every month, there are around a dozen opportunities to meet with other contributors and the Salt Core team and collaborate in real time. The best way to keep track is by subscribing to the Salt Project Community Events Calendar on the main https://saltproject.io website.

If you have additional questions, email us at saltproject@vmware.com or reach out directly to the Community Manager, Janae Andrus via Slack. Wed be glad to have you join our community!

License

Salt is licensed under the Apache 2.0 license. Please see the LICENSE file for the full text of the Apache license, followed by a full summary of the licensing used by external modules.

A complete list of attributions and dependencies can be found here: salt/DEPENDENCIES.md