Compare commits

...

615 commits

Author SHA1 Message Date
Salt Project Packaging
dd49d607b9 Update README.rst with 2025.02.24 release sha256sum 2025-02-24 22:10:42 +00:00
Salt Project Packaging
b5c92f7a28 Update develop branch for the v2025.02.24 release 2025-02-24 22:09:49 +00:00
Shane Lee
420dc293c6
Merge pull request #2076 from dmurphy18/fix_2075
Remove support for macos-12, as deprecated by github
2025-02-24 14:42:21 -07:00
David Murphy
4498c20596
Remove support for macos-12, as deprecated by github 2025-02-24 14:27:07 -07:00
David Murphy
911349a8d3
Merge pull request #2074 from twangboy/fix_windows
Fix powershell instructions
2025-02-24 13:30:07 -07:00
Twangboy
fba522c464
Fix powershell instructions 2025-02-24 12:54:58 -07:00
David Murphy
bb988c99d6
Merge pull request #2022 from mrichar1/shallow_clone
Use treeless clone to 'shallow' clone again.
2025-01-29 15:25:37 -07:00
David Murphy
b626403ace
Merge branch 'develop' into shallow_clone 2025-01-29 14:44:31 -07:00
David Murphy
b58596dec3
Merge pull request #2073 from twangboy/update_reqs
Update requirements to address security issues
2025-01-29 14:29:11 -07:00
twangboy
a2b422512d
Update requirements to address security issues 2025-01-13 14:38:57 -07:00
Matthew Richardson
82faed1938
Merge remote-tracking branch 'upstream/develop' into shallow_clone
Fixed to use GIT_REV_ADJ
2024-12-21 22:33:51 +00:00
Salt Project Packaging
2058991403 Update README.rst with 2024.12.12 release sha256sum 2024-12-12 20:17:42 +00:00
Salt Project Packaging
db07164315 Update develop branch for the v2024.12.12 release 2024-12-12 20:16:55 +00:00
David Murphy
e85ff18bbc
Merge pull request #2071 from dmurphy18/adj_containers_used
Updating container usage to that used in new Salt pipelines for CI/CD, fix Amazon Linux
2024-12-12 13:15:24 -07:00
David Murphy
73475d2505
Removed Debian-13 container and cleaned up debug statements 2024-12-12 12:24:29 -07:00
David Murphy
1040775f56
Added Debian 11 and 13 containers, removed Amazon Linux 2 container, updated test 2024-12-12 10:55:42 -07:00
David Murphy
316e65a979
Updated tests, and debugging, min Python version 3.6 2024-12-12 10:24:19 -07:00
David Murphy
0075aa9902
Updated Amazon dependencies, and tests 2024-12-11 16:56:41 -07:00
David Murphy
651d50aa05
Updated tests to allow for older Python versions, add Amazon containers 2024-12-11 16:02:26 -07:00
David Murphy
f47986ffd5
Update tests - debugging 2024-12-11 16:02:25 -07:00
David Murphy
dc01eea317
More actions work 2024-12-11 16:02:25 -07:00
David Murphy
d4cc7c1184
Updating actions 2024-12-11 16:02:25 -07:00
David Murphy
a3971ee993
More actions usage 2024-12-11 16:02:24 -07:00
David Murphy
b6683d5e5e
More actions work 2024-12-11 16:02:24 -07:00
David Murphy
9d69e8a49d
Working on actions 2024-12-11 16:02:23 -07:00
David Murphy
a0285f3e6e
Fixing actions 2024-12-11 16:02:23 -07:00
David Murphy
852a98fce4
Updating github actions used 2024-12-11 16:02:23 -07:00
David Murphy
ac14d1d0fe
Updating container usage to reflect that used in new Salt pipelines for CI/CD 2024-12-11 16:02:22 -07:00
David Murphy
fa5ae443bc
Merge pull request #2070 from dmurphy18/fix_amzn2_yum
Restrict use of dnf to Fedora only, otherwise use yum when dealing with RedHat family
2024-12-11 15:50:15 -07:00
David Murphy
a4c84236d8
Adjust Amazon support since their yum (v3) doesn't support config-manager 2024-12-11 11:08:54 -07:00
David Murphy
e5c03a53aa
Restrict use of dnf to Fedora only, otherwise use yum when dealing with RedHat family 2024-12-10 11:26:38 -07:00
Salt Project Packaging
54243fea9c Update README.rst with 2024.12.09 release sha256sum 2024-12-09 23:11:16 +00:00
Salt Project Packaging
0bd577de50 Update develop branch for the v2024.12.09 release 2024-12-09 23:10:33 +00:00
David Murphy
04c959b723
Merge pull request #2066 from dmurphy18/upd_suse_support
Utilize salt-project packages with SUSE
2024-12-09 16:09:15 -07:00
David Murphy
644dfd1c57
Updates to correctly support SLES 15 (sled), with allowance for minor versions 2024-12-09 13:59:19 -07:00
David Murphy
1b98100152
Removed unused variable 2024-12-04 10:33:09 -07:00
David Murphy
e4b43b099b
Merge pull request #2065 from twangboy/update_quickstart
Fix quickstart for Windows with new repo
2024-12-04 10:13:09 -07:00
twangboy
c4fdafaef3
Fix quickstart for Windows with new repo 2024-12-04 08:40:04 -07:00
Salt Project Packaging
bbaa32a888 Update README.rst with 2024.11.29 release sha256sum 2024-11-29 17:58:54 +00:00
Salt Project Packaging
ce687f4066 Update develop branch for the v2024.11.29 release 2024-11-29 17:58:13 +00:00
David Murphy
1a016b6ed7
Merge pull request #2061 from dmurphy18/fix_release
Updated date
2024-11-29 10:56:58 -07:00
David Murphy
5689a93c79
Updated date 2024-11-29 10:41:05 -07:00
David Murphy
670c0bfdd6
Merge pull request #2060 from dmurphy18/revert_force_git_tag
Revert forcing git tag, other issues with check sums calculated, easiest solution is wait a day to release
2024-11-27 12:51:14 -07:00
David Murphy
777c3ad055
Revert forcing git tag, other issues with check sums calculated, easy solution is wait a day to release 2024-11-27 12:47:45 -07:00
Salt Project Packaging
ab523a74dc Update develop branch for the v2024.11.27 release 2024-11-27 19:40:25 +00:00
David Murphy
5b183f4111
Merge pull request #2059 from dmurphy18/fix_date_tag
Fix date tag
2024-11-27 12:38:17 -07:00
David Murphy
eaf75272b7
Merge branch 'develop' into fix_date_tag 2024-11-27 12:36:55 -07:00
David Murphy
72254edd67
Forcing git tag for release 2024.11.27 due to existing tag which was set by accident 2024-11-27 12:31:39 -07:00
Salt Project Packaging
578ee0eeeb Update develop branch for the v2024.11.27 release 2024-11-27 19:20:52 +00:00
David Murphy
70219648f8
Merge pull request #2058 from dmurphy18/fix_date_tag
Updated date to overcome issue with existing tag for 2024.11.27
2024-11-27 12:19:37 -07:00
David Murphy
677ecee801
Updated date to overcome issue with existing tag for 2024.11.27 2024-11-27 12:04:52 -07:00
David Murphy
ff5d46dddd
Merge branch 'develop' into fix_date_tag 2024-11-27 12:03:56 -07:00
David Murphy
535a53ea36
Updated date to overcome issue with existing tag for 2024.11.27 2024-11-27 12:01:16 -07:00
Salt Project Packaging
5339251d59 Update README.rst with 2024.11.27 release sha256sum 2024-11-27 18:57:41 +00:00
Salt Project Packaging
fdcfec993b Update develop branch for the v2024.11.27 release 2024-11-27 18:57:26 +00:00
Salt Project Packaging
7492ff27f3 Update develop branch for the v2024.11.27 release 2024-11-27 18:56:47 +00:00
David Murphy
bd9d776046
Merge pull request #2057 from dmurphy18/fix_git_rh
Testing git install methods
2024-11-27 11:48:40 -07:00
David Murphy
3c0f302b77
Added support for AlmaLinux, removed Rocky Linux 9 from git testing 2024-11-27 11:26:48 -07:00
David Murphy
d0bd4612a6
Testing pip installs from PyPI 2024-11-26 17:32:02 -07:00
David Murphy
9b3055b1bd
Testing fixes for PyPI requirements clashes 2024-11-26 15:06:24 -07:00
David Murphy
e4b3164136
Updated containers, and added back in AlmaLinux 2024-11-26 11:40:09 -07:00
David Murphy
a79cd05fa0
Updated to install jaraco.functools v4.0.0 for splat on Linux 2024-11-26 10:45:49 -07:00
David Murphy
b96a669d39
Testin ggit install methods 2024-11-26 09:57:47 -07:00
Salt Project Packaging
124e62e9fa Update README.rst with 2024.11.26 release sha256sum 2024-11-26 16:41:23 +00:00
Salt Project Packaging
7a445852b4 Update develop branch for the v2024.11.26 release 2024-11-26 16:40:38 +00:00
David Murphy
8e3f5e1c83
Merge pull request #2056 from ScriptAutomate/update-readme-help
Update README script help output and scriptversions
2024-11-26 09:25:02 -07:00
ScriptAutomate
a336478623
Update README script help output and scriptversions 2024-11-26 10:16:06 -06:00
David Murphy
40e91846d8
Merge pull request #2052 from dmurphy18/fix_bt2049
Updated URLs in README, and fix deps download issue on RedHat family
2024-11-26 09:12:01 -07:00
David Murphy
13e00e0bbc
Limited the containers tested on, and skip git testing till Salt requirements fixed 2024-11-25 19:01:19 -07:00
David Murphy
ba0a5f2759
Added back more containers to test on, revised git usage due to Salt git errors, see https://github.com/saltstack/salt/issues/67070 2024-11-25 17:28:36 -07:00
David Murphy
6629b40bfc
Trying using requirements pkg file 2024-11-25 17:11:35 -07:00
David Murphy
6b27fc3e97
Restored pip check, updated README and Windows ps1 for packages.broadcom.com 2024-11-25 16:52:36 -07:00
David Murphy
d7d03738da
Adjusting install from git 2024-11-25 16:35:33 -07:00
David Murphy
f8da32f34b
Upgrade pip using python3 -m pip install 2024-11-25 13:29:21 -07:00
David Murphy
6360fd19f2
Adjust version test to allow for git versions of salt 2024-11-25 13:07:35 -07:00
David Murphy
543d831312
Fixed typo 2024-11-25 12:58:58 -07:00
David Murphy
8fa55b714e
Adjust allowing for git version input 3006 or 3007 2024-11-25 12:32:09 -07:00
David Murphy
86d1bb9662
Added missing procps for Debian / Ubuntu container, and reduced containers used 2024-11-25 12:15:39 -07:00
David Murphy
344b942c28
Fixed git build issue with deps on RedHat family, and added more systemd containers to test against 2024-11-25 11:35:17 -07:00
David Murphy
320b3b787e
Fixed help output and README 2024-11-22 15:02:06 -07:00
David Murphy
c2071bd443
Update README.rst
Co-authored-by: Derek Ardolf <ScriptAutomate@users.noreply.github.com>
2024-11-22 14:13:48 -07:00
David Murphy
b5d70f024c
Update README.rst
Co-authored-by: Derek Ardolf <ScriptAutomate@users.noreply.github.com>
2024-11-22 14:13:39 -07:00
David Murphy
d0d73fa9f4
Update README.rst
Co-authored-by: Derek Ardolf <ScriptAutomate@users.noreply.github.com>
2024-11-22 14:13:17 -07:00
David Murphy
360a923190
Update README.rst
Co-authored-by: Derek Ardolf <ScriptAutomate@users.noreply.github.com>
2024-11-22 14:13:07 -07:00
David Murphy
6c22d58dac
Update README.rst
Co-authored-by: Derek Ardolf <ScriptAutomate@users.noreply.github.com>
2024-11-22 14:12:46 -07:00
David Murphy
e894ebce3e
Update README.rst
Co-authored-by: Derek Ardolf <ScriptAutomate@users.noreply.github.com>
2024-11-22 14:12:30 -07:00
David Murphy
0e00e1d3ca
Updated RUL for downloading the bootstrap script etc to GitHub repository 2024-11-22 12:38:27 -07:00
Salt Project Packaging
6ac1dcddaa Update README.rst with 2024.11.21 release sha256sum 2024-11-21 22:10:53 +00:00
Salt Project Packaging
f2abbd4e2f Update develop branch for the v2024.11.21 release 2024-11-21 22:10:08 +00:00
David Murphy
aca7925571
Merge pull request #2048 from ruslantum/fix_2047
[WIP] hwclock check missing additional condition on major version
2024-11-21 15:04:10 -07:00
David Murphy
007c9663e6
Merge branch 'develop' into fix_2047 2024-11-21 14:10:39 -07:00
David Murphy
b37f1d8f32
Merge pull request #2039 from dmurphy18/fix_2038
Update bootstrap shell CI/CD to utilize containers and clean up
2024-11-21 14:09:40 -07:00
David Murphy
edaa710bcb
Updated date for bootstrap script 2024-11-21 13:57:55 -07:00
David Murphy
c7705ab73e
Add quiet option for wget, and hand-tested Photon usage 2024-11-21 13:56:18 -07:00
David Murphy
bcffbb3aff
Updated for MacOS 14 and pip 2024-11-21 12:34:43 -07:00
David Murphy
9ef4b48bc5
Added testing for macos-14 2024-11-21 12:19:48 -07:00
David Murphy
27461c79bb
Clean up of most of the debug code and commented out code 2024-11-19 14:13:01 -07:00
David Murphy
a9cddcf5c6
Removed Rocky 9 from testing with git master 2024-11-19 13:55:50 -07:00
David Murphy
035d769e60
more debuging 2024-11-19 13:19:44 -07:00
David Murphy
cc583da80c
More debugging 2024-11-19 12:48:24 -07:00
David Murphy
f6906be830
debugging 2024-11-19 12:18:28 -07:00
David Murphy
95ff9355c5
Updated Redhat family minor salt version commands 2024-11-19 11:28:37 -07:00
Ruslan Tumarkin
8f07647b1e
fix issue 2047
hwclock check missing additional condition on major version
2024-11-19 18:48:40 +01:00
David Murphy
3de9da512b
Updated minor verson handling for RedHat families 2024-11-19 10:33:08 -07:00
David Murphy
12dd54c332
Fixed up script to better allow for Redhat family minor versions of salt 2024-11-18 16:15:26 -07:00
David Murphy
5bd00aca9c
Debugging install for minor version 2024-11-18 15:32:01 -07:00
David Murphy
db5d548d1a
debugging 2024-11-18 14:48:55 -07:00
David Murphy
0c1de07494
Updated date, and makecache for RedHat family 2024-11-18 14:22:26 -07:00
David Murphy
f2b7f56ceb
Minor updates to README, remove support for Redhat 7, Raspbian 8 & 9 2024-11-18 10:17:55 -07:00
David Murphy
e16cda4c14
Updated to use _REPO_URL instead of explicit packages.broadcom.com when accessing 2024-11-15 13:59:12 -07:00
David Murphy
043f8e0b78
Updated container-slug to prefix systemd- for Linux containers 2024-11-15 13:59:12 -07:00
David Murphy
2a72acf0e4
Updated to install sudo, needed for testing 2024-11-15 13:59:11 -07:00
David Murphy
f33f58e6c4
Container does not have sudo 2024-11-15 13:59:11 -07:00
David Murphy
8a5c2d8598
Attempting using systemd container, only Ubuntu 22.04 is currently valid 2024-11-15 13:59:10 -07:00
David Murphy
623b50e826
Revert to using containers, cleaned up MacOS workflow 2024-11-15 13:59:10 -07:00
David Murphy
90c19c02f7
Fix typo 2024-11-15 13:59:10 -07:00
David Murphy
447e01db26
Allow for specifying minor version of Salt 2024-11-15 13:59:09 -07:00
David Murphy
d0d9fa7ed1
Allow for minor version on MacOS and Debian family 2024-11-15 13:59:09 -07:00
David Murphy
0bbe715ad8
Fix MacOS grep -E pattern to allow for no '.x' versions 2024-11-15 13:59:08 -07:00
David Murphy
5a704ec503
adjusting for command line arguments 2024-11-15 13:59:08 -07:00
David Murphy
ce84347128
Fixed typo 2024-11-15 13:59:08 -07:00
David Murphy
f52fea9e1d
Added debugging and setting test version as github environment variable 2024-11-15 13:59:07 -07:00
David Murphy
736e8c0bc3
Linux using Ubuntu runner till systemd support on containers 2024-11-15 13:59:07 -07:00
David Murphy
a50227f2fe
Running script as sudo 2024-11-15 13:59:06 -07:00
David Murphy
dbfd3b0f19
Updated testing 2024-11-15 13:59:06 -07:00
David Murphy
22c7173a22
Fixing test 2024-11-15 13:59:06 -07:00
David Murphy
ba77751f99
Adjusted test 2024-11-15 13:59:05 -07:00
David Murphy
c1e7783a84
trying sudo 2024-11-15 13:59:05 -07:00
David Murphy
f2a5fc19a4
Update testing 2024-11-15 13:59:04 -07:00
David Murphy
1f885ee091
Debug tests output 2024-11-15 13:59:04 -07:00
David Murphy
55f219224c
Fixed using ' in conditional github actions 2024-11-15 13:59:04 -07:00
David Murphy
03fd45ba97
Fix typo 2024-11-15 13:59:03 -07:00
David Murphy
1fa8125a51
Playing with conditionals 2024-11-15 13:59:03 -07:00
David Murphy
90fc657e71
more debug 2024-11-15 13:59:02 -07:00
David Murphy
03d451820d
More debugging parm usage 2024-11-15 13:59:02 -07:00
David Murphy
5776297744
Debugging pip conditional 2024-11-15 13:59:02 -07:00
David Murphy
ef3d82c1a8
Adding conditionals for needing break-system-packages on Linux wiht pip 2024-11-15 13:59:01 -07:00
David Murphy
0c255cfb80
Testing 2024-11-15 13:59:01 -07:00
David Murphy
e1e8f208a0
Added '--break-system-packages' for pip install 2024-11-15 13:59:00 -07:00
David Murphy
5d0e68b3ee
Updated Python dependencies 2024-11-15 13:59:00 -07:00
David Murphy
a902af3c53
Added container-slug to MacOS and Windows workflows (unused on those platforms) 2024-11-15 13:59:00 -07:00
David Murphy
906d38d941
Added container_slug 2024-11-15 13:58:59 -07:00
David Murphy
c7e11a7637
Using Salt CI containers, removed OSs not supported by them 2024-11-15 13:58:59 -07:00
David Murphy
9dc22a8178
fixed yaml 2024-11-15 13:58:58 -07:00
David Murphy
78b4b24b42
More linux debugging 2024-11-15 13:58:58 -07:00
David Murphy
62040848a8
Debugging linux tests 2024-11-15 13:58:58 -07:00
David Murphy
a8b1804f18
[WIP] initial testing for CI/CD clean up 2024-11-15 13:58:57 -07:00
David Murphy
8782a3b79a
Merge pull request #2045 from twangboy/update_bootstrap
Make universal repo url
2024-11-15 13:55:58 -07:00
twangboy
e6e5cd64e9
Make universal repo url 2024-11-15 10:43:48 -07:00
Salt Project Packaging
b2545a20a7 Update README.rst with 2024.11.07 release sha256sum 2024-11-07 21:42:26 +00:00
Salt Project Packaging
bf7943e78c Update develop branch for the v2024.11.07 release 2024-11-07 21:41:35 +00:00
David Murphy
b01acd2fa4
Merge pull request #2037 from dmurphy18/fix_release_3
Fixing git tag signing issue
2024-11-07 14:40:20 -07:00
David Murphy
cda77be3a3
Fixing git tag signing issue 2024-11-07 14:38:49 -07:00
Salt Project Packaging
549a47f94b Update develop branch for the v2024.11.07 release 2024-11-07 21:35:23 +00:00
David Murphy
b13e9279d6
Merge pull request #2036 from dmurphy18/fix_release_2
Forcing git tag to not sign
2024-11-07 14:33:57 -07:00
David Murphy
ced8291c04
Forcing git tag to not sign 2024-11-07 14:32:08 -07:00
Salt Project Packaging
2fe253a9c0 Update develop branch for the v2024.11.07 release 2024-11-07 21:21:20 +00:00
Shane Lee
24a275494a
Merge pull request #2035 from dmurphy18/fix_release
Changed release runners and shell script date
2024-11-07 14:19:34 -07:00
David Murphy
ee72db1f2a
Changed release runners and sheel script date 2024-11-07 14:13:39 -07:00
David Murphy
8cdedfbec2
Merge pull request #2033 from dmurphy18/fix_2032
Disabling signing of commits on release updates
2024-11-07 13:45:25 -07:00
David Murphy
2a4e6a3552
Disabling signing of commits on release updates 2024-11-07 11:32:51 -07:00
David Murphy
aaa123adef
Merge pull request #2029 from twangboy/update_bootstrap
Update windows bootstrap for new repo
2024-11-07 11:08:53 -07:00
twangboy
3316de34f1
Update docs for RepoUrl 2024-11-07 10:51:47 -07:00
twangboy
f56ce5c866
Add missing newline 2024-11-07 10:47:48 -07:00
twangboy
6414095b60
Remove duplicate job step from rebase 2024-11-07 10:47:05 -07:00
twangboy
94b61ec940
Add back other OS's for testing 2024-11-07 10:45:20 -07:00
twangboy
1156b28cb2
Add back RepoUrl for air-gap scenarios 2024-11-07 10:03:18 -07:00
twangboy
d018ef7ebb
Lookup version correctly 2024-11-07 10:03:18 -07:00
twangboy
8686ca3a39
Parse versions from artifactory 2024-11-07 10:03:14 -07:00
twangboy
f1a5e97125
Get version from instance name 2024-11-07 10:02:08 -07:00
twangboy
7c350c4f48
Don't start windows service in tests 2024-11-07 10:02:03 -07:00
twangboy
f36c2c06a3
Trim what we're testing on 2024-11-07 10:01:13 -07:00
twangboy
d013827c06
Refresh environment variables 2024-11-07 10:01:13 -07:00
twangboy
f09afd7cee
Generate workflow 2024-11-07 10:01:13 -07:00
twangboy
2fa863a9e6
Add -UseBasicParsing switch 2024-11-07 10:01:13 -07:00
twangboy
de5f8d4292
Update tests on Windows 2024-11-07 10:01:09 -07:00
twangboy
aef73e4b56
Update windows bootstrap for new repo 2024-11-07 09:52:06 -07:00
David Murphy
0d4b031941
Merge pull request #2028 from dmurphy18/fix_2027
Bootstrap shell script to support new packages.broadcom.com infrastructure
2024-11-07 09:51:26 -07:00
David Murphy
4a6228abc4
Removed MacOs debug, and updated Photon to allow for no config-manager with tdnf 2024-11-07 07:08:45 -07:00
David Murphy
505e796387
Updated fetching MacOS Salt URL for package 2024-11-06 22:17:10 -07:00
David Murphy
86bc98ad4d
Updated method of getting latest MacOS version for Salt 2024-11-06 21:29:44 -07:00
David Murphy
e5f0e78c67
Attempting to get string latest for MacOS 2024-11-06 18:28:46 -07:00
David Murphy
081590b816
Enabled MacOS bootstrap in CI/CD and a little more debug output for MacOS 2024-11-06 18:12:40 -07:00
David Murphy
1b8b907636
Removed debugging apart from macos latest pick, disabled CI/CI testing 2024-11-06 17:55:51 -07:00
David Murphy
687144336a
Saving functioning Linux shell script with debug output 2024-11-06 17:19:43 -07:00
David Murphy
6335ea1eab
Updated debugging output 2024-11-06 11:02:23 -07:00
David Murphy
3c2af3b920
Updated how systemd is assummed functional, do not rely on systemctl present 2024-11-05 16:56:32 -07:00
David Murphy
ff6c817bfe
Revert to ubuntu 22.04 container, and fix multiple .repo typo 2024-11-05 15:42:35 -07:00
David Murphy
67a0bef81d
Trying to use init.rc to start / stop in case using container which do not have full systemd implementation, but have systemctl present 2024-11-05 15:19:26 -07:00
David Murphy
6050a0b217
Renamed REPO_FILE to YUM_REPO_FILE and created default 2024-11-05 14:32:58 -07:00
David Murphy
efe775e630
Removed use of sudo 2024-11-05 13:57:10 -07:00
David Murphy
46fdd9ed68
Using salt-ci-containers 2024-11-05 13:44:54 -07:00
David Murphy
7d5b7c1ace
Trying Rocky Linux 9 container 2024-11-05 11:42:47 -07:00
David Murphy
ef6d6b6d7e
Trying container 2024-11-05 11:35:37 -07:00
David Murphy
ded5813ead
Debugging tests 2024-11-05 11:18:29 -07:00
David Murphy
581f650d6e
Set version defaults to 'latest' 2024-11-05 09:59:50 -07:00
David Murphy
d5ff514a6b
Fixed typo gpg -> pgp 2024-11-05 09:39:33 -07:00
David Murphy
0c7cf7353c
Updated security url for single slash 2024-11-04 16:59:20 -07:00
David Murphy
0a3b4f9b64
Trying to run scripts as root, using sudo 2024-11-04 16:50:23 -07:00
David Murphy
0828aa5e41
Added debugging output 2024-11-04 16:31:53 -07:00
David Murphy
892c7cbadc
Updated to using bootstrap-salt.sh 2024-11-04 16:13:39 -07:00
David Murphy
63bdbaf392
Debugging 2024-11-04 16:03:56 -07:00
David Murphy
b4a632180e
Further debugging 2024-11-04 15:54:01 -07:00
David Murphy
239f979957
Debug 2024-11-04 15:47:59 -07:00
David Murphy
db974361f7
Initial Shell pytest 2024-11-04 15:40:40 -07:00
David Murphy
0899e72c34
Disabling Kitchen tests, and updated quick-start 2024-11-01 15:11:22 -06:00
David Murphy
e8236eedad
Initial changes to support new packages.broadcom.com infrastructure 2024-11-01 13:26:51 -06:00
Matthew Richardson
699ade0c04
Use treeless clone to do a 'shallow' clone preserving metadata for version.py 2024-10-17 21:03:41 +01:00
Salt Project Packaging
bc0e6be136
Update README.rst with 2024.09.24 release sha256sum 2024-09-24 21:44:42 +00:00
Salt Project Packaging
8da0764163
Update develop branch for the v2024.09.24 release 2024-09-24 21:39:51 +00:00
David Murphy
7e64ec0e2a
Merge pull request #2021 from dmurphy18/fix_actions
Further action updates
2024-09-24 14:36:19 -06:00
David Murphy
3d58d55fba
Converted name exitstatus to pattern usage 2024-09-24 13:50:01 -06:00
David Murphy
48a22b1722
Another attempt to resolve duplicate exitstatus detection 2024-09-23 15:36:32 -06:00
David Murphy
d67a79b3cb
Revert exitstatus changes for test OS yml files 2024-09-23 15:04:33 -06:00
David Murphy
12e5a8d80c
Further fixes for exitstatus 2024-09-23 14:29:59 -06:00
David Murphy
b2a38085d1
Further action updates 2024-09-23 14:02:03 -06:00
Salt Project Packaging
8d0aca6ab7
Update develop branch for the v2024.09.23 release 2024-09-23 19:25:27 +00:00
David Murphy
023e160b71
Merge pull request #2020 from dmurphy18/fix_actions
Updated deprecated versions for actions for upload, download, checkout for release
2024-09-23 11:59:14 -06:00
David Murphy
ffaa18e7ae
Updated deprecated versions for actions for upload, download, checkout, etc 2024-09-23 11:31:30 -06:00
Salt Project Packaging
681fd9a2db
Update develop branch for the v2024.09.23 release 2024-09-23 17:12:15 +00:00
David Murphy
0da4f9aa21
Merge pull request #2019 from dmurphy18/fix_2015
Reset _PIP_INSTALL_ARGS to empty for Alpine, similar to Ubuntu and Debian
2024-09-20 15:07:10 -06:00
David Murphy
09a36c52ca
Updated script date 2024-09-20 14:47:57 -06:00
David Murphy
27198d2b91
Reset _PIP_INSTALL_ARGS to empty for Alpine, similar to Ubuntu and Debian 2024-09-20 14:27:39 -06:00
David Murphy
6f36d5053c
Merge pull request #2018 from dmurphy18/fix_builds
Debugging build failures on Arch, Fedora and Tumbleweed
2024-09-20 14:23:56 -06:00
David Murphy
f7eae7c3fa
Fix typo 2024-09-20 13:49:17 -06:00
David Murphy
a4b8359357
Finialize changes for working Arch git-master 2024-09-20 12:51:23 -06:00
David Murphy
425fb310f6
Setting cryptography to 42.0.7 for Arch, its current version - debugging 2024-09-20 11:19:13 -06:00
David Murphy
ec457c25ae
more debugging 2024-09-20 10:22:37 -06:00
David Murphy
7c6a4a0da7
debugging 2024-09-20 09:47:04 -06:00
David Murphy
ae440cb321
Fix typo 2024-09-19 14:49:28 -06:00
David Murphy
70558b1768
Forcing pip install on Arch 2024-09-19 14:29:55 -06:00
David Murphy
da9ad0b8bf
Force Arch git deps to use cryptography 42.0.0 2024-09-19 14:05:23 -06:00
David Murphy
d7baa83fc6
Fixed typo 2024-09-19 09:18:35 -06:00
David Murphy
fba26a227b
Forcing setuptools to Salt requirements/constraints.txt setuptools >= 65.6.3,< 69.0 2024-09-19 09:17:30 -06:00
David Murphy
8c9e6621db
Removed testing for OpenSUSE Tumbleweed and install contextvars for Fedora git 2024-09-18 17:00:36 -06:00
David Murphy
9848c3311e
Git shallow cloning removal of depth 2024-09-18 09:58:40 -06:00
David Murphy
6c37a9a9c3
Getting Salt version directly 2024-09-17 17:33:51 -06:00
David Murphy
b17e02b4b3
Added Salt version information and debug info 2024-09-17 16:32:36 -06:00
David Murphy
3c48309906
Merge pull request #2016 from digitalkram/develop
Add KDE neon to list of Ubuntu derivates (again)
2024-09-17 15:31:37 -06:00
thilo
064d13cf41
Added KDE neon to list of Ubuntu derivates (again) 2024-09-06 08:32:05 +02:00
Salt Project Packaging
725d18f6c8
Update README.rst with 2024.07.23 release sha256sum 2024-07-23 21:48:31 +00:00
Salt Project Packaging
7d55680ddd
Update develop branch for the v2024.07.23 release 2024-07-23 21:45:31 +00:00
Shane Lee
21137fb9ad
Merge pull request #2013 from dmurphy18/add_salt_api
Added support with -W for installing salt-api
2024-07-23 14:51:41 -06:00
David Murphy
62dc912401
Make help output alphabetical for option '-W' 2024-07-23 14:16:11 -06:00
David Murphy
3e207e087f
Added support with -W for installing salt-api 2024-07-23 13:51:53 -06:00
David Murphy
4f5a393916
Merge pull request #2011 from dmurphy18/cleanup_post_neon
Cleanup use of the term 'Post Neon' given only support 3006 and up
2024-07-19 14:01:16 -06:00
David Murphy
ba565658e9
Cleanup use of the term 'Post Neon' given only support 3006 and up 2024-07-19 13:39:45 -06:00
Shane Lee
e5f785b422
Merge pull request #2010 from dmurphy18/fix_supported_oss
Updated link for Supported Operating Systems and Repository supported by Salt
2024-07-19 11:25:17 -06:00
David Murphy
10377e548d
Updated link for Salt Project Repository 2024-07-19 11:13:00 -06:00
David Murphy
98dc1368ac
Updated link to Supported Operating Systems supported by Salt 2024-07-19 11:06:37 -06:00
Salt Project Packaging
d7e05db988
Update README.rst with 2024.07.18 release sha256sum 2024-07-18 16:25:21 +00:00
Salt Project Packaging
3d78111d7b
Update develop branch for the v2024.07.18 release 2024-07-18 16:20:02 +00:00
David Murphy
76519f2b7f
Merge pull request #2009 from dmurphy18/upd_readme
Updated README, and removed experimental  to ability install different Python version which was limited to RHEL 7, which is EOL
2024-07-17 15:25:18 -06:00
David Murphy
8696f41b7c
Updated README, and removed experimental abilty to install different Python version which was limited to RHEL 7, which is EOL 2024-07-17 14:52:38 -06:00
Salt Project Packaging
9473a4b52c
Update README.rst with 2024.07.16 release sha256sum 2024-07-16 15:14:56 +00:00
Salt Project Packaging
a8703157e1
Update develop branch for the v2024.07.16 release 2024-07-16 15:11:31 +00:00
David Murphy
d88e9c3b3d
Merge pull request #2006 from dmurphy18/no_sort_lists_dicts
Don't sort lists and dicts, as order of items matters
2024-07-15 15:30:41 -06:00
David Murphy
c6344035d6
Updated to not sort list or dicts, as in closed PR https://github.com/saltstack/salt-bootstrap/pull/1969 2024-07-15 15:08:05 -06:00
David Murphy
2068ae4024
Merge pull request #2004 from dmurphy18/update_github_actions
Updated GitHub actions to later v4
2024-07-15 14:36:01 -06:00
David Murphy
7c0c04dc4f
Updated delete-artifact to v5, due to deprecated v4, for corresponding upload-artifact v4 2024-07-15 14:17:13 -06:00
David Murphy
a52ba3b64d
Trying earlier version of delete-artifact 2024-07-15 14:17:12 -06:00
David Murphy
9ef40698b0
Debugging pipeline exit failure 2024-07-15 14:17:12 -06:00
David Murphy
69a5a7c79c
Reverting to download-artifact v3, to debug exit pipeline failure 2024-07-15 14:17:12 -06:00
David Murphy
b36f307bbc
Readjust some action values 2024-07-15 14:17:11 -06:00
David Murphy
0daa3c47d1
Revert download-artifact for release 2024-07-15 14:17:11 -06:00
David Murphy
79264af6eb
Revert delete-artifact for release 2024-07-15 14:17:10 -06:00
David Murphy
4637ef0863
Adjust delete-artifact version 2024-07-15 14:17:10 -06:00
David Murphy
4554169a6a
Adjust actions upload-artifact 2024-07-15 14:17:10 -06:00
David Murphy
bb8d8a892d
Updated GitHunb actions to later v4 2024-07-15 14:17:09 -06:00
David Murphy
93e7841e4c
Merge pull request #2005 from javatask/patch-1
Update bootstrap-salt.sh
2024-07-15 14:03:07 -06:00
Andrii Melashchenko
272ed35db8
Update bootstrap-salt.sh
On arm64 platforms, bootstrap fails to finish installation due to missing variable 'error_msg=""' in case statement.
This change adds a single line to fix the bug.
2024-07-15 10:33:54 +02:00
Salt Project Packaging
8166b71854
Update README.rst with 2024.07.12 release sha256sum 2024-07-12 15:25:03 +00:00
Salt Project Packaging
aae98dbd9d
Update develop branch for the v2024.07.12 release 2024-07-12 15:21:52 +00:00
David Murphy
9a788851ff Final cleanup of debugging, and add support for Arm64 for MacOS 2024-07-11 15:00:20 -07:00
David Murphy
bc7fa40ed7 Revert uses of geekyeggo delete-artifact to original values for version 2024-07-11 15:00:20 -07:00
David Murphy
de725f809f Using v3 for upload-artifact 2024-07-11 15:00:20 -07:00
David Murphy
a5124f90e5 Cleaned up code and removed Amazon 2023 for now, till it's container curl issue is resolved 2024-07-11 15:00:20 -07:00
David Murphy
0cc372f66b Reverted to using original Ruby 2.6.10 since 3.3.4 has exceptions creating Amazon 2023 Test Instance 2024-07-11 15:00:20 -07:00
David Murphy
06702a81aa Trying Ruby version 3.2.3 since exception with 3.3.4 for Amazon 2023 2024-07-11 15:00:20 -07:00
David Murphy
4029e24d74 Testing current stable version of Ruby 3.3.4 2024-07-11 15:00:20 -07:00
David Murphy
26f92489f3 Debugging Amazon 2023 2024-07-11 15:00:20 -07:00
David Murphy
02aa3bbdfc Debugging Ubuntu 22.04 git-master, default pip not recognizing sys_platform == 'win32' 2024-07-11 15:00:20 -07:00
David Murphy
c2f0375167 Debugging more 2024-07-11 15:00:20 -07:00
David Murphy
41563ad1de Debugging 2024-07-11 15:00:20 -07:00
David Murphy
9afa614e2a Debugging Debina 12 and Ubutnu 22.054 git-master 2024-07-11 15:00:20 -07:00
David Murphy
b1d1ec6b26 Debugging Amazon-2023 and Ubuntu 22.04 2024-07-11 15:00:20 -07:00
David Murphy
1c244ea427 Debugging Oracle Linux 9 2024-07-11 15:00:20 -07:00
David Murphy
210db17a78 Adjusted GIT 3006 & 3007 blacklists 2024-07-11 15:00:20 -07:00
David Murphy
e221fff82c Reverting to building on Ubuntu 20.04 2024-07-11 15:00:20 -07:00
David Murphy
a8dba0748a Disable Git Master for Phonton 4 & 5 due to setup.py gcc failures 2024-07-11 15:00:20 -07:00
David Murphy
ca1d8d679f Increased tiemout to 40, updated to Ubuntu 24.04 2024-07-11 15:00:20 -07:00
David Murphy
8ee4de5ca4 Added gcc for Photon git deps 2024-07-11 15:00:20 -07:00
David Murphy
138b4ec78b Further shell check disabling 2024-07-11 15:00:20 -07:00
David Murphy
16ad6a8d0c Disable Shell Check SC2329 - Warnings for functions not invoked 2024-07-11 15:00:20 -07:00
David Murphy
7881998765 Disable Shell Check SC2086, Double quote to prevent globbing and word splitting 2024-07-11 15:00:20 -07:00
David Murphy
4351f20a34 Trying koalaman/shellcheck-alpine:latest to see if Lint error is resolved for secure_getenv: symbol not found 2024-07-11 15:00:20 -07:00
David Murphy
2ba74d33bc Revert actions versions to what worked last week 2024-07-11 15:00:20 -07:00
David Murphy
f8cfdc5f07 Trying to resolve Lint issue that suddenly arose 2024-07-11 15:00:20 -07:00
David Murphy
bb51f9fd63 Resolve lint error 2024-07-11 15:00:20 -07:00
David Murphy
a79bffeb20 Added tornado for Photon 4 git, and systemd for Photon 5 2024-07-11 15:00:20 -07:00
David Murphy
1ca3e432ae Updated some more pip3 install to utilize --break-system-packages if sufficient pip3 version 2024-07-11 15:00:20 -07:00
David Murphy
fdd6b3240b Adjust Photon git install, and corrected check for break-system-packages using pip3 2024-07-11 15:00:20 -07:00
David Murphy
69d2645f70 Added debugging and fix Photon git 2024-07-11 15:00:20 -07:00
David Murphy
97afdfbce5 Updated git install for Ubuntu and Debian 2024-07-11 15:00:20 -07:00
David Murphy
bbd6498cd8 Removed support for Centos Stream 8, EOL 2024-05-31, and added more debug, and revisited git for Debian and Ubuntu 2024-07-11 15:00:20 -07:00
David Murphy
c43d47000a Added debugging for Debian git-master 2024-07-11 15:00:20 -07:00
David Murphy
91e7e8922f Adjust code for 'break-system-packages' on pip install and fix missing oraclelinux-9 2024-07-11 15:00:20 -07:00
David Murphy
0cc3cc57ac Updates some more 2024-07-11 15:00:20 -07:00
David Murphy
5d9f9f89f0 Updates to bootstrap etc 2024-07-11 15:00:20 -07:00
David Murphy
af44d56373 Updates some more 2024-07-11 15:00:20 -07:00
David Murphy
7aad81c0a8 Disabled transport docker 2024-07-11 15:00:20 -07:00
David Murphy
4cb4fc8c2f added transport docker for MacOS and Windows 2024-07-11 15:00:20 -07:00
David Murphy
b178397b18 Added transport field for docker 2024-07-11 15:00:20 -07:00
David Murphy
02bf0e33c1 Updates 2024-07-11 15:00:20 -07:00
David Murphy
3aaa73bbb4 Updated bootstrap script to install tornado, since missing in pkg for 3006.x, fixed debian/ubuntu urls for repos 2024-07-11 15:00:20 -07:00
David Murphy
62b8a7341a Updates quotes to match develop branch 2024-07-11 15:00:20 -07:00
David Murphy
2feff7baa4 Updated testings 2024-07-11 15:00:20 -07:00
David Murphy
74bae42128 Adjusted keyring for Debian and Ubuntu 2024-07-11 15:00:20 -07:00
David Murphy
8ac6918056 Updated bootstrap, more quoting handling and other changes 2024-07-11 15:00:20 -07:00
David Murphy
289a5a2d0b Checking quotes issue on input to OS install command 2024-07-11 15:00:20 -07:00
David Murphy
969584dd95 Updated bootstrap 2024-07-11 15:00:20 -07:00
David Murphy
dddcd3b67c Added debugging 2024-07-11 15:00:20 -07:00
David Murphy
06107058d9 Revert some changes for centos/redhat install 2024-07-11 15:00:20 -07:00
David Murphy
8a14ff6c04 Updated code 2024-07-11 15:00:20 -07:00
David Murphy
9716ff0b91 Updated to use procps-ng for Redhat family 2024-07-11 15:00:20 -07:00
David Murphy
f88a320855 Made defaults Python 3, and other fixes for chkconfig and procps 2024-07-11 15:00:20 -07:00
David Murphy
679bc97156 Revert PR 1985 changes to artiface@v3, etc. 2024-07-11 15:00:20 -07:00
David Murphy
1ad1dbe0fc Reverted to using kitchen-salt in order to get this out faster 2024-07-11 15:00:20 -07:00
David Murphy
1812ec20e6 Saving before revert to using kitchen in interest of speed 2024-07-11 15:00:20 -07:00
David Murphy
bd84c9c4df Fix typo 2024-07-11 15:00:20 -07:00
David Murphy
71094027fa WIP - adjustments before using runners for testing etc. 2024-07-11 15:00:20 -07:00
David Murphy
3535de7284 WIP - Changes 2024-07-11 15:00:20 -07:00
David Murphy
69495e9ee0 Updating changes to bootstrap 2024-07-11 15:00:20 -07:00
David Murphy
6f543b7a66 Updated for Fedora 40, Ubuntu 24.04, etc 2024-07-11 15:00:20 -07:00
David Murphy
64866eb574 Removed use of procps for RedHat 9 and above, since only exists for 8 and below 2024-07-11 15:00:20 -07:00
David Murphy
20c2d4cac8 Updated test for yum-utils install 2024-07-11 15:00:20 -07:00
David Murphy
db9ce9ba03 Removed use of yum-utils and dnf-utils (doesn't exist) 2024-07-11 15:00:20 -07:00
David Murphy
739784c608 Fix up use of dnf-utils which no longer exists 2024-07-11 15:00:20 -07:00
David Murphy
179b24d9f8 Fix __PY_VERSION_REPO 2024-07-11 15:00:20 -07:00
David Murphy
8f36f1371b Corrected for fedora_provision_command 2024-07-11 15:00:20 -07:00
David Murphy
67c52529d9 Updated ruby to version 3.2.3, a supported version of ruby 2024-07-11 15:00:20 -07:00
David Murphy
100fab8fbe Removed support for SLES 12 and updated pre-commit versions 2024-07-11 15:00:20 -07:00
David Murphy
10d602791d Added macos-12, removed Photon-3, and added further cleanup of old OSs and Salt versions 2024-07-11 15:00:20 -07:00
David Murphy
78ecaec870 Updated 3005.1 to 3005.5 2024-07-11 15:00:20 -07:00
David Murphy
15bea28fa9 Update minimum versions and correct Redat 7 base key 2024-07-11 15:00:20 -07:00
David Murphy
9fee6196f6 Updated workflows for Debian 12, Fedora 39, Amazon 2023 2024-07-11 15:00:20 -07:00
David Murphy
93f001f94a Pre-commit clean up 2024-07-11 15:00:20 -07:00
David Murphy
e77e9227d4 Initial removal of support for Python 2.7, and pre-Neon support (since assumption is they are Python 2 mostly) 2024-07-11 15:00:20 -07:00
David Murphy
a43d139520 Added support for Amazon 2023 and cleaned up with shellcheck 2024-07-11 15:00:20 -07:00
David Murphy
de361546ab
Merge pull request #1997 from jhubbardnso/mint-21-support
Add support for mint-21
2024-04-25 11:48:21 -06:00
John Hubbard
ac23048cd6 Add support for mint-21
Mint 21 is an Ubuntu 22.04 derivative so add it to the list.
2024-04-24 10:52:13 -06:00
Shane Lee
1d1ef48353
Merge pull request #1996 from twangboy/add_version_win
Add script version to powershell script
2024-04-12 08:34:55 -06:00
Shane Lee
e55bccd52e
Add script version to powershell script 2024-04-11 10:56:44 -06:00
Salt Project Packaging
4987f08ad8
Update README.rst with 2024.04.03 release sha256sum 2024-04-03 15:19:13 +00:00
Salt Project Packaging
88f935ed90
Update develop branch for the v2024.04.03 release 2024-04-03 15:15:43 +00:00
David Murphy
ce4c9db3c6
Merge pull request #1993 from twangboy/support_rc
Fix script to support installing RC on Windows
2024-04-02 11:42:02 -06:00
Shane Lee
e8e28c0a4d
Try to get the bootstrap to run on Windows runner 2024-03-28 15:19:04 -06:00
Shane Lee
0c8f4470bc
Remove pythonVersion option from test 2024-03-28 09:09:26 -06:00
Shane Lee
84f02cf3ab
Add working directory 2024-03-25 15:51:01 -06:00
Shane Lee
a0c99153f9
Fix script to support installing RC on Windows 2024-03-25 15:13:38 -06:00
Shane Lee
e05d70558f
Merge pull request #1983 from Dudek-AMS/develop
Fix DEBIAN Keyring url
2024-01-23 09:34:30 -07:00
Shane Lee
59af6ad185
Merge pull request #1985 from twangboy/update_actions
Update actions
2024-01-23 09:34:04 -07:00
Shane Lee
4b031af693
Update actions 2024-01-22 08:08:45 -07:00
Derek Ardolf
dffac087f8
Merge pull request #1984 from ScriptAutomate/remove-auto-pr-creation
Remove automated PR against salt repo at release
2024-01-19 09:03:55 -06:00
ScriptAutomate
ec283baa3f
Remove automated PR against salt repo at release 2024-01-18 16:51:42 -06:00
Dennis Dudek
cecea60a06
Update bootstrap-salt.sh
fixed missing quotes
2024-01-09 19:47:53 +01:00
Dennis Dudek
e5a814c9df
Fix DEBIAN Keyring url
URL was invalid (old) and breaks
2024-01-08 12:05:24 +01:00
Salt Project Packaging
d6ed8ea269
Update README.rst with 2024.01.04 release sha256sum 2024-01-04 22:34:58 +00:00
Salt Project Packaging
8aa272b236
Update develop branch for the v2024.01.04 release 2024-01-04 22:32:10 +00:00
Shane Lee
928daba98a
Merge pull request #1981 from twangboy/fix_1980
Add arm support for Debian 10
2024-01-04 11:14:57 -07:00
Shane Lee
cb148ad4ad
Add arm support for Debian 10 2024-01-02 14:26:40 -07:00
Salt Project Packaging
c32e0b2040
Update README.rst with 2023.11.16 release sha256sum 2023-11-16 19:54:36 +00:00
Salt Project Packaging
f5783bec2a
Update develop branch for the v2023.11.16 release 2023-11-16 19:51:23 +00:00
Felippe Burk
fe3783432e checking out stable branch on update-s3-bucket job 2023-11-16 11:47:25 -08:00
Salt Project Packaging
a01c7205de
Update README.rst with 2023.11.07 release sha256sum 2023-11-07 18:38:07 +00:00
Salt Project Packaging
2b3080c737
Update develop branch for the v2023.11.07 release 2023-11-07 18:35:16 +00:00
Shane Lee
1ba50d57d4 Update requirements 2023-11-07 10:30:48 -08:00
Shane Lee
6a8c47141e
Merge pull request #1973 from saltstack/quick_update_salt_call_config_location
Fixes to salt-quick-start.sh
2023-11-02 15:35:19 -06:00
Gareth J. Greenaway
3dd0ad3065
Update the location for the configuration directory for salt-call in the Saltfile 2023-11-02 14:14:42 -07:00
twangboy
0d5ecbac05 Add asterisks to the output 2023-10-04 14:03:09 -07:00
twangboy
45f0b37d23 Mirror Linux output, display root_dir 2023-10-04 13:51:04 -07:00
Joel Michael
9ec52ead47 temporarily use bullseye packages until bookworm packages are available 2023-10-04 12:30:17 -07:00
Joel Michael
910265ce6a add Debian 12 bookworm codename 2023-10-04 12:30:17 -07:00
Joel Michael
65201d47ed fix debian arm64 apt repo selection logic 2023-10-04 12:30:17 -07:00
twangboy
33dc0c4753 Fix global variable 2023-09-22 12:05:00 -07:00
twangboy
a8f7674e7b Suppress progress bar 2023-09-21 12:16:51 -07:00
Gareth J. Greenaway
82279abbe9 Moving quick start scripts to bootstrap repo. 2023-09-11 13:13:57 -07:00
Gareth J. Greenaway
61709aac2b do not test git-master on photon-3, tornado build issues due to docker and kernel headders. 2023-08-11 18:09:50 +01:00
Gareth J. Greenaway
9a512e5c4b move the linux-devel.x86_64 package back to install section. remove the upgrade function. 2023-08-11 18:09:50 +01:00
Gareth J. Greenaway
244a052a5e correct name for the package. 2023-08-11 18:09:50 +01:00
Gareth J. Greenaway
8293f79f6f Upgrade linux-devel. 2023-08-11 18:09:50 +01:00
Gareth J. Greenaway
ed16e585df A couple fixes for git-master tests on PhotonOS 3. 2023-08-11 18:09:50 +01:00
Gareth J. Greenaway
479eb74d7e removing reference to armhf 2023-08-11 18:09:50 +01:00
Gareth J. Greenaway
4c3111898f swapping out SaltProject for Salt Project 2023-08-11 18:09:50 +01:00
Gareth J. Greenaway
ad787193e2 cleanup old information in the README.rst file 2023-08-11 18:09:50 +01:00
Salt Project Packaging
6c3e5d4548
Update README.rst with 2023.08.03 release sha256sum 2023-08-03 16:34:03 +00:00
Salt Project Packaging
aca7a469fe
Update develop branch for the v2023.08.03 release 2023-08-03 16:30:30 +00:00
twangboy
a9daa35db7 Update windows commands to support TLS1.2 2023-08-02 13:47:30 -07:00
Pedro Algarvio
3bae220e0c Bump to certifi==2023.07.22 due to https://github.com/advisories/GHSA-xqr8-7jwr-rhp7
Signed-off-by: Pedro Algarvio <palgarvio@vmware.com>
2023-07-28 16:40:49 +01:00
twangboy
4d33f86007 Set RootDir depending on Salt Version 2023-07-26 01:00:41 +01:00
Salt Project Packaging
fdbe7db9ee
Update README.rst with 2023.07.25 release sha256sum 2023-07-25 20:07:13 +00:00
Salt Project Packaging
ad48035b7e
Update develop branch for the v2023.07.25 release 2023-07-25 20:04:28 +00:00
Jamie Murphy
fc63231b3c fix install_amazon_linux_ami_2_onedir nightly gpg key path 2023-07-19 15:11:21 -07:00
Gareth J. Greenaway
ab7bf7901c need some defaults for quickstart and auto accept keys. 2023-07-13 22:10:38 +01:00
Gareth J. Greenaway
0f636544eb moving the logic for quickstart down to ensure install type and install revision are set correctly for quickstart. 2023-07-13 22:10:38 +01:00
Gareth J. Greenaway
01b3886fd7 Initial pass at adding a quick start option to the bootstrap script. 2023-07-13 22:10:38 +01:00
Jamie Murphy
77ea398385 fix rhel_onedir_repository for nightly gpg file 2023-07-12 21:50:37 -07:00
Salt Project Packaging
850563bef2
Update README.rst with 2023.06.28 release sha256sum 2023-06-28 20:31:21 +00:00
Salt Project Packaging
24161893b6
Update develop branch for the v2023.06.28 release 2023-06-28 20:27:05 +00:00
Gareth J. Greenaway
4fefc1cbed
Test out the minor versions (#1936)
* Test out the minor versions

* update the maxsplit for the target_salt_version to account for minor versions passed in with dashes because kitchen does not like dots.

* Blacklist 3005-1 and 3006-1 for git.

* different approach to getting the target salt version

* Adding missing kitchen files.
2023-06-26 15:48:10 -07:00
Gareth J. Greenaway
7867723e2f
Add old_stable type (#1934)
* add an old_stable install type to avoid cluttering up stable with older non-onedir installs

* removing note about default install type.

* update kitchen file.

* updating github workflows to tests with old_stable type

* blacklist versions 3003 and 3004 for stable, those are now in old_stable.

* fix script to include old_stable during the installation type check.

* make sure old-stable is consistent.

* use install_centos_onedir_deps when installing via git on centos like distros

* Handle stable install of 3005 version without a minor version

* block git-master on amazon-2 and debian-10

* need seperate blacklists for Mac, since stable 3005 is not available as a onedir package.

* update kitchen.macos.yml to ensure 3003, 3004, and 3005 are old-stable.

* need to include the salt_bootstrap_options to ensure we get the right install type.

* ensure ITYPE is set to stable when minor version is included.

* git master installs failing on freebsd
2023-06-25 11:07:38 -07:00
Gareth J. Greenaway
e44fc45b5d
SUSE Fixes (#1925)
* Updating the bootstrap script with fixes to install properly on SUSE.  Since we are not building onedir packages and providing them in the Salt project repo, we fall back to the previous stable installs and use the SUSE repos.  Removing _DOWNSTREAM_PKG_REPO as it is no longer used.

* Gentoo installs are broken because of the Gentoo ebuild.  Remove Mac 10.15 as it is EOL.  Update BSD tests tor run on MacOS 11.

* If the brew update vagrant fails because it is not installed then install it.

* blacklist gentoo from latest packages.

* Make sure virtualbox is installed

* removing cask argument

* swap macos-11 for macos-12 to run BSD tests in vagrant.
2023-06-24 10:30:47 -07:00
Salt Project Packaging
6de279db39
Update README.rst with 2023.04.26 release sha256sum 2023-04-26 18:47:59 +00:00
Salt Project Packaging
9cd478022d
Update develop branch for the v2023.04.26 release 2023-04-26 18:44:10 +00:00
Gareth J. Greenaway
f457cc3dcc
Fixing defaults (#1921)
* Fixing a bug when no type or version is specified.  Adding tests for when no type or version is passed.

* skip test_installation when using default type as we do not have a version to compare.

* adding rockylinux-9 and centos-stream9 to stable distros.

* adding rockylinux-9 and centos-stream9 to stable distros.

* Adding debugging for BSDs.

* Update Vagrant.

* Use upgrade instead of install to ensure vagrant is upgraded.

* cleanup code adding default type.

* better cleanup for default bootstrap type.
2023-04-26 10:30:40 -07:00
Gareth J. Greenaway
28b82ea761 uppercasing more variables 2023-04-24 07:41:18 +01:00
Gareth J. Greenaway
ca1142dfc1 some fixes to ensure git install works on Photon, in particular Photon 4. 2023-04-24 07:41:18 +01:00
Gareth J. Greenaway
2d40944962 Adding 3006 onedir back in for Fedora 2023-04-24 07:41:18 +01:00
Gareth J. Greenaway
5c92383199 Adding 3006 back in for Fedora 2023-04-24 07:41:18 +01:00
Gareth J. Greenaway
6e86441e9b Fixing typos. 2023-04-24 07:41:18 +01:00
Gareth J. Greenaway
0c1f20b03c making GPG_KEY and REPO_FILE uppercase. 2023-04-24 07:41:18 +01:00
Gareth J. Greenaway
399d27b623 Do not run git-master on Photon 4 2023-04-24 07:41:18 +01:00
Gareth J. Greenaway
442cb1b180 removing Fedora 35, as it is EOL as of December 13, 2022. 2023-04-24 07:41:18 +01:00
Gareth J. Greenaway
6a5002fb51 Blacklist Fedora-35 from latest so those are not available 2023-04-24 07:41:18 +01:00
Gareth J. Greenaway
bd661179c1 removing extra GIT_VERSIONS_BLACKLIST 2023-04-24 07:41:18 +01:00
Gareth J. Greenaway
b4b058c4d5 blacklist Photon 3 and 4 from a couple git installs. 2023-04-24 07:41:18 +01:00
Gareth J. Greenaway
49bfcffa30 fixing photon git installs, Using repo files for fedora and photon. 2023-04-24 07:41:18 +01:00
Gareth J. Greenaway
40a072f231 removing distros from latest blacklist which have latest packages available. 2023-04-24 07:41:18 +01:00
Gareth J. Greenaway
5f8d1b4c00 need to add photon-3 and photon-4 to list of Linux of distributions 2023-04-24 07:41:18 +01:00
Gareth J. Greenaway
7dd787baf2 Updating bootstratp to install Salt built Fedora packages. Initial support for installing on Photon via bootstrap script 2023-04-24 07:41:18 +01:00
Salt Project Packaging
39c6cbe2ea
Update README.rst with 2023.04.21 release sha256sum 2023-04-21 16:58:35 +00:00
Salt Project Packaging
8d0c7e4d5f
Update develop branch for the v2023.04.21 release 2023-04-21 16:56:31 +00:00
Pedro Algarvio
4183713e82
Don't use GITHUB_OUTPUT (#1911)
Signed-off-by: Pedro Algarvio <palgarvio@vmware.com>
2023-04-21 08:59:12 -07:00
Gareth J. Greenaway
14ae685f96
Merge pull request #1912 from saltstack/adding_3006_to_tests
Fixes for 3006
2023-04-21 07:06:30 -07:00
Gareth J. Greenaway
3d29c384a7
merging upstream 2023-04-20 17:45:12 -07:00
Gareth J. Greenaway
beea555254
Merge pull request #1918 from twangboy/win_script
Add support for 3006 on windows bootstrap script
2023-04-20 17:39:45 -07:00
Gareth J. Greenaway
3c8b08c2d1
removing nightly from onedir until S3 buckets are fixed. 2023-04-20 17:24:49 -07:00
Gareth J. Greenaway
7825da5e89
Revert to installing 3006 from the tag but blacklist any distribution that was running it until 3006.1 is out. 2023-04-20 17:23:30 -07:00
Twangboy
5e6bcb5815
Fix the 3006 tests 2023-04-20 16:44:17 -06:00
Gareth J. Greenaway
8d02826be7
account for salt_version ending in .x, eg. 3006.x branch. 2023-04-20 15:30:38 -07:00
Twangboy
fe0c975555
Add 3006 to the tests, fix salt_call_command 2023-04-20 16:02:53 -06:00
Gareth J. Greenaway
d9a8f4a6d8
Fixing kitchen.yml file. 2023-04-20 14:40:02 -07:00
Gareth J. Greenaway
c2c6bd1e70
revert GIT_VERSIONS code. 2023-04-20 14:23:12 -07:00
Twangboy
15dfb8efdd
Add support for 3006 on windows bootstrap script 2023-04-20 14:31:28 -06:00
Gareth J. Greenaway
e7c8f7698b
If the passed version begins with v, eg. it's a tag, remove it before comparison. 2023-04-20 13:01:58 -07:00
Gareth J. Greenaway
719422adfe
fixing kitchen.yml for git installs. 2023-04-20 11:58:04 -07:00
Gareth J. Greenaway
a8b32ab040
Fixing bootstrap and CICD to install via tag only if version begins with v and use branch otherwise. 2023-04-20 11:39:52 -07:00
Gareth J. Greenaway
a3fed785f8
More MacOS fixes. 2023-04-19 13:17:46 -07:00
Gareth J. Greenaway
f823932131
Some fixes for MacOS. 2023-04-19 12:39:29 -07:00
Gareth J. Greenaway
142eb80305
removing check for whether to use the new GPG key. 2023-04-19 09:25:08 -07:00
Gareth J. Greenaway
6dbae5e916
fixing version for git-3006. 2023-04-18 22:07:14 -07:00
Gareth J. Greenaway
d8a7e90953
fixing 3006 tag name 2023-04-18 19:51:33 -07:00
Gareth J. Greenaway
e1fd4987bf
updating kitchen.yml with 3006. 2023-04-18 18:50:26 -07:00
Gareth J. Greenaway
1367b096ca
couple places that 3006 is needed for git installs. 2023-04-18 18:10:18 -07:00
Gareth J. Greenaway
717db99ef4
Adding 3006.0 to kitchen.windows.yml and kitchen.macos.yml 2023-04-18 18:00:00 -07:00
Gareth J. Greenaway
ef70886fd0
removing check for different GPG keys for latest & nightly now that 3006 is available with the new GPG format. 2023-04-18 17:32:39 -07:00
Gareth J. Greenaway
27eef7d396
Update to MacOS latest install. Need to install procps on onedir centos installs. 2023-04-18 17:19:34 -07:00
Gareth J. Greenaway
90cc157b9d
Adding 3006 to tests. 2023-04-18 16:53:29 -07:00
Gareth J. Greenaway
9fa32bd95c
Merge pull request #1906 from saltstack/3006_release_stable_install
Update with 3006 stable installs
2023-04-14 19:04:42 -07:00
Gareth J. Greenaway
2af0e6c0b6
All Mac packages are now signed. 2023-04-14 09:27:39 -07:00
Gareth J. Greenaway
be030c1958
suggested fixes 2023-04-14 09:25:04 -07:00
Gareth J. Greenaway
1aa72d9c2d
Need to set STABLE_REV to ONEDIR_REV when install_gentoo_onedir is called. 2023-04-14 08:14:00 -07:00
Gareth J. Greenaway
b57d37475e
removing python 3.6 related code which is no longer needed. 2023-04-14 07:08:28 -07:00
Gareth J. Greenaway
4a74744f06
Remove end of line from grep for 3005. 2023-04-14 06:21:35 -07:00
Gareth J. Greenaway
0f39aca8c1
Fixing Arch by adding additional onedir functions to call stable functions. 2023-04-14 05:56:44 -07:00
Gareth J. Greenaway
efbd416607
parse json first, since different versions have different naming schemes and we need to parse that part afterwards 2023-04-14 05:46:31 -07:00
Gareth J. Greenaway
d0032c7495
fixing SALTPKGCONFURL, same one for onedir locations just populated with different values for different variables. 2023-04-14 05:33:12 -07:00
Gareth J. Greenaway
b03a99ee53
Need _ONEDIR_REV defined in a couple more places. 2023-04-14 05:18:17 -07:00
Gareth J. Greenaway
f976efc570
different approach to setting the _ONEDIR_REV from the parse repo.json function 2023-04-13 21:55:25 -07:00
Gareth J. Greenaway
779cfbf55d
first pass at parsing the repo.json for Mac when using onedir and latest. 2023-04-13 18:58:29 -07:00
Gareth J. Greenaway
84b4e2a1a4
Merge pull request #1908 from s0undt3ch/develop
Update release process
2023-04-13 09:17:42 -07:00
Pedro Algarvio
ce4a071943
Bump to geekyeggo/delete-artifact@v2
Signed-off-by: Pedro Algarvio <palgarvio@vmware.com>
2023-04-12 16:28:38 +01:00
Pedro Algarvio
6c6291bdd5
Don't rely on GH runners during the release process once started.
Signed-off-by: Pedro Algarvio <palgarvio@vmware.com>
2023-04-12 16:28:38 +01:00
Pedro Algarvio
3d3c7c7a9f
Fix opening PR against the Salt repository
Signed-off-by: Pedro Algarvio <palgarvio@vmware.com>
2023-04-12 16:28:38 +01:00
Pedro Algarvio
2a4f2ad3f6
Allow testing releases from forks
Signed-off-by: Pedro Algarvio <palgarvio@vmware.com>
2023-04-12 16:28:38 +01:00
Pedro Algarvio
0184635370
Use the installed python on the runners
Signed-off-by: Pedro Algarvio <palgarvio@vmware.com>
2023-04-12 16:28:38 +01:00
Pedro Algarvio
c07acc326e
Respect the old directory layout
Signed-off-by: Pedro Algarvio <palgarvio@vmware.com>
2023-04-12 16:28:38 +01:00
Pedro Algarvio
453812a6ea
Switch to using tools when uploading to S3
Signed-off-by: Pedro Algarvio <palgarvio@vmware.com>
2023-04-12 16:28:38 +01:00
Pedro Algarvio
af258021fa
Some echo's so that we know what we're doing
Signed-off-by: Pedro Algarvio <palgarvio@vmware.com>
2023-04-12 15:05:03 +01:00
Pedro Algarvio
c981eae0cb
Sign release scripts. Nightly develop version of scripts upload.
Signed-off-by: Pedro Algarvio <palgarvio@vmware.com>
2023-04-12 15:05:03 +01:00
Pedro Algarvio
b51840eda4
Use our runners to publish a release. Update S3 bucket in the process.
Signed-off-by: Pedro Algarvio <palgarvio@vmware.com>
2023-04-12 15:05:03 +01:00
Pedro Algarvio
359a8e80f7
Add actionlint to pre-commit
Signed-off-by: Pedro Algarvio <palgarvio@vmware.com>
2023-04-11 14:36:57 +01:00
github-actions[bot] on behalf of @garethgreenaway
6eacf22f8a Update README.rst with 2023.04.06 release sha256sum 2023-04-06 18:02:17 +00:00
github-actions[bot] on behalf of garethgreenaway
08708a0310 Update develop branch for the v2023.04.06 release 2023-04-06 17:46:46 +00:00
Gareth J. Greenaway
67a0df2dd1
need a dummy install_arch_linux_onedir_post that calls install_arch_linux_stable_post. 2023-03-31 16:01:43 -07:00
Gareth J. Greenaway
07ab70922c
need a dummy install_fedora_onedir_post that calls install_fedora_stable_post. 2023-03-31 16:00:31 -07:00
Gareth J. Greenaway
499f895bae
Adding +install_macosx_onedir and friends 2023-03-31 12:57:37 -07:00
Gareth J. Greenaway
4eaf22fc59
Don't include SALT-PROJECT-GPG-PUBKEY-2023.pub if it's not found. 2023-03-30 17:21:59 -07:00
Gareth J. Greenaway
edd4b6fbe6
Ensure STABLE_REV is still set for a couple functions that still use it, eg. Fedora. 2023-03-30 15:51:38 -07:00
Gareth J. Greenaway
40eb43e2ef
on RH based systems, check that the updated GPG key exists otherwise fall back to the previous GPG key. 2023-03-30 15:29:56 -07:00
Gareth J. Greenaway
88319abee8
add some dummy install onedir functions to call the stable version for certain OSes, eg. freebsd, openbsd, smartos. 2023-03-30 12:57:20 -07:00
Gareth J. Greenaway
829094e3fc
account for the older key in latest until latest points to 3006 and is using the newer key. 2023-03-30 12:31:47 -07:00
Gareth J. Greenaway
1a7a7087f2
Fix REV variable to be ONEDIR_REV to match ITYPE 2023-03-29 15:52:05 -07:00
Gareth J. Greenaway
baebf62941
Adding support for installing 3006 via bootstrap. Updating stable type to install onedir packages starting in 3006. 2023-03-29 14:57:31 -07:00
Gareth J. Greenaway
b9988d1d63
Merge pull request #1902 from saltstack/add_3006_0_rc2
Adding 3006.0rc2 to bootstrap tests.
2023-03-19 16:55:56 -07:00
Gareth J. Greenaway
c009da691f
Adding 3006.0rc2 to bootstrap tests. 2023-03-19 14:14:48 -07:00
Gareth J. Greenaway
ec4df56749 Add a workaround for stable 3005 and latest on CentOS Stream 8 2023-03-16 07:41:49 +00:00
Gareth J. Greenaway
b3c3753f42 Fixing Amazon2 GPG key for releases 3006 and higher. 2023-03-16 07:41:49 +00:00
Gareth J. Greenaway
52e4f97fa9 swap out the dash for an underscore, onedir-rc to onedir_rc 2023-03-16 07:41:49 +00:00
Gareth J. Greenaway
605902d931 swap out the dash for an underscore, onedir-rc to onedir_rc 2023-03-16 07:41:49 +00:00
Gareth J. Greenaway
9ae48da3fd fixing github actions, cannot have a dot in the name 2023-03-16 07:41:49 +00:00
Gareth J. Greenaway
8ece9b9cba Adding 3006.0rc1 to Github actions. 2023-03-16 07:41:49 +00:00
Gareth J. Greenaway
d40c7f12e7 Adding nightly to the check for the older GPG key until 3006 release. 2023-03-10 18:43:45 +00:00
Gareth J. Greenaway
1d4776cdba fix for amazon2 GPG key logic. 2023-03-10 18:43:45 +00:00
Gareth J. Greenaway
44198af5eb Look for version in ONEDIR_REV. Use older key for nightly builds unitl the 3006 release. 2023-03-10 18:43:45 +00:00
Gareth J. Greenaway
e1fb1c512c Update regex for determining the GPG key to use. 2023-03-10 18:43:45 +00:00
Gareth J. Greenaway
537d2eecd0 Update repo GPG keys for debian and Ubuntu. 2023-03-10 18:43:45 +00:00
Gareth J. Greenaway
01f5db67bd fixes for 3006 release. 2023-03-10 18:43:45 +00:00
Gareth J. Greenaway
8605f7040b Addin --upgrade back in. 2023-03-09 16:33:58 +00:00
Gareth J. Greenaway
c1a928e2f3 pin requests-ntlm to 1.1.0 2023-03-09 16:33:58 +00:00
Gareth J. Greenaway
b0dad4a52d Fixing typo. Blacklist centos-stream9 in latest pkg tests.
removing --upgrade
2023-03-09 16:33:58 +00:00
Gareth J. Greenaway
68e1fdc39e When installing setuptools and wheel, upgrade if available. 2023-03-09 16:33:58 +00:00
Gareth J. Greenaway
03bcfbc76b swap kitchen-docker URL for official one. Use centosstream platform for rockylinux9 2023-03-09 16:33:58 +00:00
Gareth J. Greenaway
98f30a8a56 seperate branch for adding and testing rockylinux:9, swapping out the kitchen-docker Github until PR is merged. 2023-03-09 16:33:58 +00:00
Gareth J. Greenaway
be5c6cb39e
Merge pull request #1886 from saltstack/remove_16_04_references
Removing Ubuntu 16.04
2023-02-09 15:26:35 -08:00
Gareth J. Greenaway
4ab6fe4170
Merge pull request #1894 from digitalkram/develop
Add support for KDE neon based on Ubuntu 22.04
2023-02-09 15:25:20 -08:00
Gareth J. Greenaway
45f3a44247
Merge branch 'develop' into develop 2023-02-09 14:01:22 -08:00
Gareth J. Greenaway
e46863a49d
Merge pull request #1890 from saltstack/adding_more_systems
Adding newer versions of CentOS Stream and AlmaLinux
2023-02-09 13:54:44 -08:00
Gareth J. Greenaway
35e360189a
Adding platform: centosstraem to centosstream:9 2023-02-09 12:12:50 -08:00
Gareth J. Greenaway
e5981993ca
fixing centos:stream9 docker URL 2023-02-09 11:24:36 -08:00
Gareth J. Greenaway
eeeaddd21d
removing bits not needed for rockylinux:8, oraclelinux:8, or oraclelinux:9 2023-02-08 16:26:21 -08:00
Gareth J. Greenaway
3b9439856d
removing update-crypto-policies --set DEFAULT:SHA1, no longer needed for rockylinux:8 2023-02-08 15:38:36 -08:00
Gareth J. Greenaway
349cd7928a
Merge branch 'develop' into adding_more_systems 2023-02-08 15:18:35 -08:00
Gareth J. Greenaway
b1f5203f50
Removing rockylinux:9 until PR into kitchen-docker has been merged. 2023-02-08 12:25:36 -08:00
Dafydd Jones
247fa77229 ci: update shellcheck container version 2023-02-07 13:52:29 -07:00
Dafydd Jones
a740729d8c bootstrap-salt.ps1: [docs] improve links 2023-02-07 13:52:29 -07:00
Dafydd Jones
ccd67c4f66 readme: improve windows install guidance 2023-02-07 13:52:29 -07:00
Gareth J. Greenaway
123bae77b1
Adding some logging to be able to find the command. 2023-02-03 18:56:22 -08:00
Gareth J. Greenaway
e301b91ad4
Adding to install_gentoo_git_deps to update setuptools to fix bootstrap install with git master. 2023-02-03 18:27:12 -08:00
Gareth J. Greenaway
1fc0b89e3e
Swapping ${_POST_NEON_PIP_INSTALL_ARGS} for ${_PIP_DOWNLOAD_ARGS} 2023-02-03 16:39:35 -08:00
Gareth J. Greenaway
4d74e818e4
only use --use-pep517 with Arch. 2023-02-03 14:56:32 -08:00
Gareth J. Greenaway
af44e88261
fixing typo. --use-pep517 instead of --use-517 2023-02-03 10:55:41 -08:00
Gareth J. Greenaway
78b9d765e9
Need to add --use-517 when installing dependencies from PIP when building on Arch and Gentoo. 2023-02-03 10:25:51 -08:00
Gareth J. Greenaway
4358274986
Update install_ubuntu_git and install_debian_git to account for different locations for the systemd service files. 2023-02-02 13:59:20 -08:00
Gareth J. Greenaway
db46fb94e4
Account for new location for systemd files on Gentoo. 2023-02-02 10:28:31 -08:00
Gareth J. Greenaway
465ec9a8e9
Account for new location for systemd files on Arch. 2023-02-02 10:24:12 -08:00
Gareth J. Greenaway
59da03a73c
Account for new location for systemd files on OpenSUSE. 2023-02-02 10:20:50 -08:00
Gareth J. Greenaway
84604ae7f9
Account for new location for systemd files on Fedora. 2023-02-02 10:12:59 -08:00
Gareth J. Greenaway
aea71469ec
Account for new location for systemd and upstart files on Debian and Ubuntu. 2023-02-02 08:51:12 -08:00
Gareth J. Greenaway
4eabf0aeb6
account for different paths for the systemd service files in later versions. 2023-02-01 18:52:13 -08:00
Gareth J. Greenaway
0280cde59a
bump the version of koalaman/shellcheck-alpine up 2023-01-31 14:24:23 -08:00
Gareth J. Greenaway
bfa9bcf5b0
Merge branch 'develop' into adding_more_systems 2023-01-31 13:35:45 -08:00
thilo
cc0e70ab80
Add support for KDE neon based on Ubuntu 22.04 2023-01-16 09:05:15 +01:00
Gareth J. Greenaway
ca683c6ac3
Set ONEDIR_REV incase we end up calling install_centos_onedir_deps. 2022-12-21 10:40:46 -08:00
Gareth J. Greenaway
4779cc92ff
when installing git_deps, fall back to onedir_deps if stable_deps fails. will happens if installing on a Red Hat based host, eg. CentOS Stream 9, Alma Linux 9, etc, as the classic package repos do not exist there. 2022-12-21 09:47:22 -08:00
Gareth J. Greenaway
7e53753536
blacklist almalinux-9, rockylinux-9, and centos-stream9 for latest. 2022-12-20 16:53:09 -08:00
Gareth J. Greenaway
b6328e2b4b
fixing typo. procps-ng instead of procps-nf. 2022-12-20 14:25:58 -08:00
Gareth J. Greenaway
aeb74bc865
Need procps-ng on Almalinux 9 and Rockylinux 9 2022-12-20 13:37:41 -08:00
Gareth J. Greenaway
2c4d317b51
fixing YAML. 2022-12-20 12:18:10 -08:00
Gareth J. Greenaway
7cfca56c17
need to install and run update-crypto-policies to allow RSA keys to work via SSH on RockLinux and Almalinux. 2022-12-20 11:56:11 -08:00
Gareth J. Greenaway
ffef0b1746
Need ssh-rsa for RockyLinux 9. 2022-12-20 08:12:52 -08:00
Gareth J. Greenaway
b9bc07ac06
Adding entries to kitchen.yml 2022-12-19 12:39:55 -08:00
Gareth J. Greenaway
156120e4da Do not need check for Ubuntu. Workaround already in place to use older 20.04 packages for stable. 2022-12-15 18:54:04 +00:00
Gareth J. Greenaway
d299431326 removing debian 11. 2022-12-15 18:54:04 +00:00
Gareth J. Greenaway
59ffb10a71 Classic packages, done via stable install type, is no longer supported on later versions of Ubuntu, Debian, and Red Hat variants. If the bootstrap script is run with stable type on those systems, log an error and exit. 2022-12-15 18:54:04 +00:00
Gareth J. Greenaway
80f6059d12
Adding newer versions of CentOS Stream, AlmaLinux, and Rocky Linux 2022-12-14 12:19:14 -08:00
Gareth J. Greenaway
97b656bdd6
Merge pull request #1888 from shombando/shombando-add_popOS_as_ubuntu_derivative
Added Pop!_OS as a Ubuntu derivative
2022-12-13 13:01:02 -08:00
Gareth J. Greenaway
7fc91aeea8
Merge pull request #1887 from saltstack/debian_arm_fix
Debian ARM Fix
2022-12-10 13:45:23 -08:00
Shom Bandopadhaya
294096c248
Added Pop!_OS as a Ubuntu derivative
Only added 22 as a variant of Ubuntu 22.04 since that's all I can test, other versions should work equally well.
2022-12-10 13:27:23 -06:00
Gareth J. Greenaway
02034112ea
Use amd64 repos for anything older than Debian 11 since the packages are arch-indepedant 2022-12-09 17:01:57 -08:00
Gareth J. Greenaway
9133a6e776
Merge pull request #1840 from myii/ci/add-fedora-37
ci: add `fedora-37` & `fedora-38`
2022-12-09 08:33:02 -08:00
Imran Iqbal
705dc7b801
feat(generate): use temp. workaround to avoid git builds on Fedora 37+ 2022-12-09 07:20:04 +00:00
Imran Iqbal
4f8fa0bf45
ci(fedora-38): add platform 2022-12-09 07:20:04 +00:00
Imran Iqbal
e8b4966e1d
ci(fedora-37): add platform 2022-12-09 07:20:03 +00:00
Imran Iqbal
9cd72ffb3b
fix(salt-bootstrap): use correct installation type in error messages 2022-12-09 07:20:03 +00:00
Imran Iqbal
efb45ff7bf
refactor(salt-bootstrap): use virtual pyzmq package on Tumbleweed 2022-12-08 20:54:55 +00:00
Gareth J. Greenaway
c327961f2a
removing references that might indicate that Ubuntu 16.04 might be supported by the bootstrap script. 2022-12-08 11:54:33 -08:00
Gareth J. Greenaway
7a4f2ca0e2
Merge pull request #1885 from myii/feat/add-onedir-nightly-support
feat: add `onedir nightly` support
2022-12-08 08:25:30 -08:00
Imran Iqbal
3c3dba8a6d
feat(generate): add onedir-nightly generation => CI 2022-12-08 13:49:22 +00:00
Imran Iqbal
ad8d9667b2
refactor(generate): use STABLE_VERSION_BLACKLIST consistently 2022-12-08 13:49:22 +00:00
Imran Iqbal
9b5017dd03
ci(kitchen): add onedir-nightly suite 2022-12-08 13:49:22 +00:00
Imran Iqbal
83f9c1e190
test(conftest): skip Salt version test for nightly 2022-12-08 13:49:21 +00:00
Imran Iqbal
100d972703
feat(bootstrap-salt): add Amazon-specific onedir nightly 2022-12-08 13:49:21 +00:00
Imran Iqbal
599ec89559
feat(bootstrap-salt): add RedHat-specific onedir nightly 2022-12-08 13:49:21 +00:00
Imran Iqbal
4d55d1b26d
feat(bootstrap-salt): add Ubuntu-specific onedir nightly 2022-12-08 13:49:20 +00:00
Imran Iqbal
f9c561adb0
feat(bootstrap-salt): add Debian-specific onedir nightly 2022-12-08 13:49:20 +00:00
Imran Iqbal
be6b928ac8
feat(bootstrap-salt): add common onedir nightly adjustments 2022-12-08 13:49:19 +00:00
Gareth J. Greenaway
36fc77d9b3
Merge pull request #1871 from pjcreath/develop
Add support for the -R flag on macOS.
2022-12-07 09:02:09 -08:00
Gareth J. Greenaway
564ea55c6e
Merge branch 'develop' into develop 2022-12-06 17:33:45 -08:00
Gareth J. Greenaway
fa45a784b8 removing more EPEL references. Ensuring procps is installed on Red Hat based hosts. 2022-12-06 19:01:37 +00:00
Gareth J. Greenaway
861dfd082b Removing EPEL, which is no longer needed. 2022-12-06 19:01:37 +00:00
Gareth J. Greenaway
043068bba3 revert back to official repo, fix merged in. 2022-12-06 15:07:07 +00:00
Gareth J. Greenaway
b5ec569df2 testing change to kitcken-docker for Gentoo hosts. 2022-12-06 15:07:07 +00:00
Gareth J. Greenaway
e4e12f1f84 disable gentoo tests 2022-12-06 15:07:07 +00:00
Gareth J. Greenaway
e458a9c475 Do not change the systemd files for Fedora 36+ 2022-12-06 15:07:07 +00:00
Pedro Algarvio
db9d0e5f05 Fix runner label. 2022-12-06 15:07:07 +00:00
Gareth J. Greenaway
6781b25504 removing tmate. 2022-12-06 15:07:07 +00:00
Gareth J. Greenaway
f7aa417271 test forcing the docker tests to run on ubuntu 20.04. 2022-12-06 15:07:07 +00:00
Gareth J. Greenaway
07712b7855 single quotes not double quotes. 2022-12-06 15:07:07 +00:00
Gareth J. Greenaway
14976f90c8 just run tmate on onedir jobs 2022-12-06 15:07:07 +00:00
Gareth J. Greenaway
b67b707b6f adjusting if statement. 2022-12-06 15:07:07 +00:00
Gareth J. Greenaway
97d6ae9bb9 Adding conditional for tmate step so it only (hopefully) runs for onedir-3005-amazon-2 2022-12-06 15:07:07 +00:00
Gareth J. Greenaway
8d902281ab moving tmate step down. 2022-12-06 15:07:07 +00:00
Gareth J. Greenaway
8185dbda1e swapping upterm for tmate 2022-12-06 15:07:07 +00:00
Gareth J. Greenaway
e07a30ec9f Adding upterm to debug 2022-12-06 15:07:07 +00:00
Gareth J. Greenaway
3199872ab1 trying to limit the number of parallel jobs 2022-12-06 15:07:07 +00:00
Gareth J. Greenaway
dda81fa242 Adding stable 3005 instanes to MacOS and Windows. 2022-12-06 15:07:07 +00:00
Gareth J. Greenaway
f209b55ff0 adding 3005 kitchen instances. 2022-12-06 15:07:07 +00:00
Gareth J. Greenaway
38b5f3d042 removing debian 9 2022-12-06 15:07:07 +00:00
Gareth J. Greenaway
6a613d0dea Only add onedir for supported versions. 2022-12-06 15:07:07 +00:00
Gareth J. Greenaway
081b81d2e3 Adding 3005 and onedir to various bits 2022-12-06 15:07:07 +00:00
Gareth J. Greenaway
4686d55c5a Adding tests for installing onedir packages 2022-12-06 15:07:07 +00:00
Gareth J. Greenaway
d5c5646b49
Merge pull request #1881 from saltstack/update_openbsd_to_7
update openbsd to 7, seems like 6 (6.9) is no longer available.
2022-11-08 14:03:40 -08:00
Gareth J. Greenaway
dd2a95a17c
Adding default vagrant credentials to openbsd to get past initial SSH key setup. 2022-11-07 15:36:45 -08:00
Gareth J. Greenaway
949029ff5a
Merge pull request #1882 from saltstack/update_gemfile
Update gemfile
2022-11-04 12:37:29 -07:00
Gareth J. Greenaway
c24f492f8c
Update the URL for kitchen-docker to include the new branch. 2022-11-04 10:34:16 -07:00
Gareth J. Greenaway
d34ebbc94b account for adding the .0 back into the release versions starting in 3006. 2022-11-04 06:15:24 +00:00
Gareth J. Greenaway
5be3b6a62e
update templates for openbsd-7 2022-11-03 21:50:20 -07:00
Gareth J. Greenaway
2562523fd2
update openbsd to 7, seems like 6 (6.9) is no longer available. 2022-11-03 17:26:54 -07:00
Gareth J. Greenaway
ae19813dc1
Merge pull request #1877 from ggiesen/fix_el_onedir_post_installation
Fix missing functions for post-installation on EL clones
2022-11-03 16:31:51 -07:00
Gary T. Giesen
2d6a1decc8
Fix missing functions for post-installation on EL clones 2022-10-31 15:14:25 -04:00
github-actions[bot] on behalf of @s0undt3ch
e5fca86998 Update README.rst with 2022.10.04 release sha256sum 2022-10-04 17:32:54 +00:00
github-actions[bot] on behalf of s0undt3ch
b1e153cdd0 Update develop branch for the v2022.10.04 release 2022-10-04 17:17:03 +00:00
Gareth J. Greenaway
835289ce17
Merge branch 'develop' into develop 2022-09-30 13:46:36 -07:00
pjcreath
ad4cb2d040
Add support for the -R flag on macOS. 2022-09-20 19:32:59 +00:00
40 changed files with 5151 additions and 4699 deletions

4
.github/actionlint.yaml vendored Normal file
View file

@ -0,0 +1,4 @@
self-hosted-runner:
# Labels of self-hosted runner in array of string
labels:
- repo-release

View file

@ -16,19 +16,17 @@ jobs:
outputs:
run-tests: ${{ steps.set-output.outputs.run-tests }}
steps:
- uses: actions/checkout@v3
- uses: actions/checkout@v4
with:
fetch-depth: 0
- name: Get specific changed files
id: changed-files
uses: tj-actions/changed-files@v25
uses: tj-actions/changed-files@v42
with:
separator: ","
files: |
bootstrap-salt.*
Gemfile
kitchen*.yml
tests/**
.github/workflows/**
files_ignore: |
@ -47,10 +45,10 @@ jobs:
- name: Upload Exit Status
if: always()
uses: actions/upload-artifact@v3
uses: actions/upload-artifact@v4
with:
name: exitstatus
path: exitstatus
name: exitstatus-${{ github.job }}
path: exitstatus/
generate-actions-workflow:
name: Generate The Actions Workflow
@ -59,12 +57,12 @@ jobs:
if: github.event_name == 'push' || needs.collect-changed-files.outputs.run-tests == 'true'
steps:
- uses: actions/checkout@v3
- uses: actions/checkout@v4
- name: Set up Python 3.9
uses: actions/setup-python@v4
- name: Set up Python 3.10
uses: actions/setup-python@v5
with:
python-version: 3.9
python-version: "3.10"
- name: Install Pre-Commit
run: |
@ -84,19 +82,19 @@ jobs:
- name: Upload Exit Status
if: always()
uses: actions/upload-artifact@v3
uses: actions/upload-artifact@v4
with:
name: exitstatus
path: exitstatus
name: exitstatus-${{ github.job }}
path: exitstatus/
lint:
name: Lint
runs-on: ubuntu-latest
needs: collect-changed-files
container: koalaman/shellcheck-alpine:v0.6.0
container: koalaman/shellcheck-alpine:latest
if: github.event_name == 'push' || needs.collect-changed-files.outputs.run-tests == 'true'
steps:
- uses: actions/checkout@v3
- uses: actions/checkout@v4
- name: ShellCheck
run: |
shellcheck -s sh -f tty bootstrap-salt.sh
@ -109,118 +107,45 @@ jobs:
- name: Upload Exit Status
if: always()
uses: actions/upload-artifact@v3
uses: actions/upload-artifact@v4
with:
name: exitstatus
path: exitstatus
freebsd-131:
name: FreeBSD 13.1
if: github.event_name == 'push' || needs.collect-changed-files.outputs.run-tests == 'true'
uses: ./.github/workflows/test-bsd.yml
needs:
- lint
- generate-actions-workflow
with:
distro-slug: freebsd-131
display-name: FreeBSD 13.1
timeout: 20
runs-on: macos-10.15
instances: '["git-master", "latest"]'
freebsd-123:
name: FreeBSD 12.3
if: github.event_name == 'push' || needs.collect-changed-files.outputs.run-tests == 'true'
uses: ./.github/workflows/test-bsd.yml
needs:
- lint
- generate-actions-workflow
with:
distro-slug: freebsd-123
display-name: FreeBSD 12.3
timeout: 20
runs-on: macos-10.15
instances: '["git-master", "latest"]'
openbsd-6:
name: OpenBSD 6
if: github.event_name == 'push' || needs.collect-changed-files.outputs.run-tests == 'true'
uses: ./.github/workflows/test-bsd.yml
needs:
- lint
- generate-actions-workflow
with:
distro-slug: openbsd-6
display-name: OpenBSD 6
timeout: 20
runs-on: macos-10.15
instances: '["latest"]'
name: exitstatus-${{ github.job }}
path: exitstatus/
macos-1015:
name: macOS 10.15
macos-13:
name: macOS 13
if: github.event_name == 'push' || needs.collect-changed-files.outputs.run-tests == 'true'
uses: ./.github/workflows/test-macos.yml
needs:
- lint
- generate-actions-workflow
with:
distro-slug: macos-1015
display-name: macOS 10.15
distro-slug: macos-13
display-name: macOS 13
container-slug: macos-13
timeout: 20
runs-on: macos-10.15
instances: '["stable-3003", "stable-3004", "latest"]'
runs-on: macos-13
instances: '["stable-3006", "stable-3006-8", "stable-3007", "stable-3007-1", "latest"]'
macos-11:
name: macOS 11
macos-14:
name: macOS 14
if: github.event_name == 'push' || needs.collect-changed-files.outputs.run-tests == 'true'
uses: ./.github/workflows/test-macos.yml
needs:
- lint
- generate-actions-workflow
with:
distro-slug: macos-11
display-name: macOS 11
distro-slug: macos-14
display-name: macOS 14
container-slug: macOS 14
timeout: 20
runs-on: macos-11
instances: '["stable-3003", "stable-3004", "latest"]'
runs-on: macos-14
instances: '["stable-3006", "stable-3006-8", "stable-3007", "stable-3007-1", "latest"]'
macos-12:
name: macOS 12
if: github.event_name == 'push' || needs.collect-changed-files.outputs.run-tests == 'true'
uses: ./.github/workflows/test-macos.yml
needs:
- lint
- generate-actions-workflow
with:
distro-slug: macos-12
display-name: macOS 12
timeout: 20
runs-on: macos-12
instances: '["stable-3003", "stable-3004", "latest"]'
windows-2019:
name: Windows 2019
if: github.event_name == 'push' || needs.collect-changed-files.outputs.run-tests == 'true'
uses: ./.github/workflows/test-windows.yml
needs:
- lint
- generate-actions-workflow
with:
distro-slug: windows-2019
display-name: Windows 2019
timeout: 20
runs-on: windows-2019
instances: '["stable-3003", "stable-3004", "latest"]'
windows-2022:
name: Windows 2022
@ -232,94 +157,26 @@ jobs:
with:
distro-slug: windows-2022
display-name: Windows 2022
container-slug: windows-2022
timeout: 20
runs-on: windows-2022
instances: '["stable-3003", "stable-3004", "latest"]'
instances: '["stable-3006", "stable-3006-8", "stable-3007", "stable-3007-1", "latest"]'
almalinux-8:
name: AlmaLinux 8
amazonlinux-2023:
name: Amazon 2023
if: github.event_name == 'push' || needs.collect-changed-files.outputs.run-tests == 'true'
uses: ./.github/workflows/test-linux.yml
needs:
- lint
- generate-actions-workflow
with:
distro-slug: almalinux-8
display-name: AlmaLinux 8
distro-slug: amazonlinux-2023
display-name: Amazon 2023
container-slug: amazonlinux-2023
timeout: 20
instances: '["stable-3003", "git-3003", "stable-3004", "git-3004", "git-master", "latest"]'
amazon-2:
name: Amazon 2
if: github.event_name == 'push' || needs.collect-changed-files.outputs.run-tests == 'true'
uses: ./.github/workflows/test-linux.yml
needs:
- lint
- generate-actions-workflow
with:
distro-slug: amazon-2
display-name: Amazon 2
timeout: 20
instances: '["stable-3003", "stable-3004", "git-master", "latest"]'
arch:
name: Arch
if: github.event_name == 'push' || needs.collect-changed-files.outputs.run-tests == 'true'
uses: ./.github/workflows/test-linux.yml
needs:
- lint
- generate-actions-workflow
with:
distro-slug: arch
display-name: Arch
timeout: 20
instances: '["git-master", "latest"]'
centos-7:
name: CentOS 7
if: github.event_name == 'push' || needs.collect-changed-files.outputs.run-tests == 'true'
uses: ./.github/workflows/test-linux.yml
needs:
- lint
- generate-actions-workflow
with:
distro-slug: centos-7
display-name: CentOS 7
timeout: 20
instances: '["stable-3003", "git-3003", "stable-3004", "git-3004", "git-master", "latest"]'
centos-stream8:
name: CentOS Stream 8
if: github.event_name == 'push' || needs.collect-changed-files.outputs.run-tests == 'true'
uses: ./.github/workflows/test-linux.yml
needs:
- lint
- generate-actions-workflow
with:
distro-slug: centos-stream8
display-name: CentOS Stream 8
timeout: 20
instances: '["stable-3003", "git-3003", "stable-3004", "git-3004", "git-master", "latest"]'
debian-10:
name: Debian 10
if: github.event_name == 'push' || needs.collect-changed-files.outputs.run-tests == 'true'
uses: ./.github/workflows/test-linux.yml
needs:
- lint
- generate-actions-workflow
with:
distro-slug: debian-10
display-name: Debian 10
timeout: 20
instances: '["stable-3003", "stable-3004", "git-master", "latest"]'
instances: '["stable-3006", "onedir-3006", "stable-3006-8", "stable-3007", "onedir-3007", "stable-3007-1", "latest", "default"]'
debian-11:
@ -332,134 +189,39 @@ jobs:
with:
distro-slug: debian-11
display-name: Debian 11
container-slug: debian-11
timeout: 20
instances: '["stable-3004", "git-master", "latest"]'
instances: '["stable-3006", "onedir-3006", "stable-3006-8", "stable-3007", "onedir-3007", "stable-3007-1", "latest", "default"]'
debian-9:
name: Debian 9
debian-12:
name: Debian 12
if: github.event_name == 'push' || needs.collect-changed-files.outputs.run-tests == 'true'
uses: ./.github/workflows/test-linux.yml
needs:
- lint
- generate-actions-workflow
with:
distro-slug: debian-9
display-name: Debian 9
distro-slug: debian-12
display-name: Debian 12
container-slug: debian-12
timeout: 20
instances: '["stable-3003", "git-3003", "stable-3004", "git-3004", "git-master", "latest"]'
instances: '["stable-3007", "git-3007", "onedir-3007", "stable-3007-1", "git-master", "latest", "default"]'
fedora-35:
name: Fedora 35
photon-5:
name: Photon OS 5
if: github.event_name == 'push' || needs.collect-changed-files.outputs.run-tests == 'true'
uses: ./.github/workflows/test-linux.yml
needs:
- lint
- generate-actions-workflow
with:
distro-slug: fedora-35
display-name: Fedora 35
distro-slug: photon-5
display-name: Photon OS 5
container-slug: photon-5
timeout: 20
instances: '["git-master", "latest"]'
fedora-36:
name: Fedora 36
if: github.event_name == 'push' || needs.collect-changed-files.outputs.run-tests == 'true'
uses: ./.github/workflows/test-linux.yml
needs:
- lint
- generate-actions-workflow
with:
distro-slug: fedora-36
display-name: Fedora 36
timeout: 20
instances: '["git-master", "latest"]'
gentoo:
name: Gentoo
if: github.event_name == 'push'
uses: ./.github/workflows/test-linux.yml
needs:
- lint
- generate-actions-workflow
with:
distro-slug: gentoo
display-name: Gentoo
timeout: 90
instances: '["git-master", "latest"]'
gentoo-systemd:
name: Gentoo (systemd)
if: github.event_name == 'push'
uses: ./.github/workflows/test-linux.yml
needs:
- lint
- generate-actions-workflow
with:
distro-slug: gentoo-systemd
display-name: Gentoo (systemd)
timeout: 90
instances: '["git-master", "latest"]'
opensuse-15:
name: Opensuse 15
if: github.event_name == 'push' || needs.collect-changed-files.outputs.run-tests == 'true'
uses: ./.github/workflows/test-linux.yml
needs:
- lint
- generate-actions-workflow
with:
distro-slug: opensuse-15
display-name: Opensuse 15
timeout: 20
instances: '["git-master", "latest"]'
opensuse-tumbleweed:
name: Opensuse Tumbleweed
if: github.event_name == 'push' || needs.collect-changed-files.outputs.run-tests == 'true'
uses: ./.github/workflows/test-linux.yml
needs:
- lint
- generate-actions-workflow
with:
distro-slug: opensuse-tumbleweed
display-name: Opensuse Tumbleweed
timeout: 20
instances: '["git-master", "latest"]'
oraclelinux-7:
name: Oracle Linux 7
if: github.event_name == 'push' || needs.collect-changed-files.outputs.run-tests == 'true'
uses: ./.github/workflows/test-linux.yml
needs:
- lint
- generate-actions-workflow
with:
distro-slug: oraclelinux-7
display-name: Oracle Linux 7
timeout: 20
instances: '["stable-3003", "git-3003", "stable-3004", "git-3004", "git-master", "latest"]'
oraclelinux-8:
name: Oracle Linux 8
if: github.event_name == 'push' || needs.collect-changed-files.outputs.run-tests == 'true'
uses: ./.github/workflows/test-linux.yml
needs:
- lint
- generate-actions-workflow
with:
distro-slug: oraclelinux-8
display-name: Oracle Linux 8
timeout: 20
instances: '["stable-3003", "git-3003", "stable-3004", "git-3004", "git-master", "latest"]'
instances: '["stable-3006", "onedir-3006", "stable-3006-8", "stable-3007", "onedir-3007", "stable-3007-1", "latest", "default"]'
rockylinux-8:
@ -472,36 +234,24 @@ jobs:
with:
distro-slug: rockylinux-8
display-name: Rocky Linux 8
container-slug: rockylinux-8
timeout: 20
instances: '["stable-3004", "git-3004", "git-master", "latest"]'
instances: '["stable-3006", "onedir-3006", "stable-3006-8", "stable-3007", "onedir-3007", "stable-3007-1", "latest", "default"]'
ubuntu-1804:
name: Ubuntu 18.04
rockylinux-9:
name: Rocky Linux 9
if: github.event_name == 'push' || needs.collect-changed-files.outputs.run-tests == 'true'
uses: ./.github/workflows/test-linux.yml
needs:
- lint
- generate-actions-workflow
with:
distro-slug: ubuntu-1804
display-name: Ubuntu 18.04
distro-slug: rockylinux-9
display-name: Rocky Linux 9
container-slug: rockylinux-9
timeout: 20
instances: '["stable-3003", "git-3003", "stable-3004", "git-3004", "git-master", "latest"]'
ubuntu-2004:
name: Ubuntu 20.04
if: github.event_name == 'push' || needs.collect-changed-files.outputs.run-tests == 'true'
uses: ./.github/workflows/test-linux.yml
needs:
- lint
- generate-actions-workflow
with:
distro-slug: ubuntu-2004
display-name: Ubuntu 20.04
timeout: 20
instances: '["stable-3003", "stable-3004", "git-master", "latest"]'
instances: '["stable-3006", "onedir-3006", "stable-3006-8", "stable-3007", "onedir-3007", "stable-3007-1", "latest", "default"]'
ubuntu-2204:
@ -514,8 +264,9 @@ jobs:
with:
distro-slug: ubuntu-2204
display-name: Ubuntu 22.04
container-slug: ubuntu-22.04
timeout: 20
instances: '["stable-3004", "git-master", "latest"]'
instances: '["stable-3006", "git-3006", "onedir-3006", "stable-3006-8", "stable-3007", "git-3007", "onedir-3007", "stable-3007-1", "git-master", "latest", "default"]'
set-pipeline-exit-status:
@ -526,49 +277,32 @@ jobs:
needs:
- lint
- generate-actions-workflow
- freebsd-131
- freebsd-123
- openbsd-6
- macos-1015
- macos-11
- macos-12
- windows-2019
- macos-13
- macos-14
- windows-2022
- almalinux-8
- amazon-2
- arch
- centos-7
- centos-stream8
- debian-10
- amazonlinux-2023
- debian-11
- debian-9
- fedora-35
- fedora-36
- gentoo
- gentoo-systemd
- opensuse-15
- opensuse-tumbleweed
- oraclelinux-7
- oraclelinux-8
- debian-12
- photon-5
- rockylinux-8
- ubuntu-1804
- ubuntu-2004
- rockylinux-9
- ubuntu-2204
if: always()
steps:
- name: Download Exit Status Files
if: always()
uses: actions/download-artifact@v3
uses: actions/download-artifact@v4
with:
name: exitstatus
path: exitstatus
path: exitstatus/
pattern: exitstatus-*
merge-multiple: true
- name: Delete Exit Status Artifacts
if: always()
uses: geekyeggo/delete-artifact@v1
uses: geekyeggo/delete-artifact@v5
with:
name: exitstatus
pattern: exitstatus-*
failOnError: false
- name: Set Pipeline Exit Status

43
.github/workflows/nightly.yml vendored Normal file
View file

@ -0,0 +1,43 @@
name: Nightly S3 Update
run-name: "Nightly S3 (branch: ${{ github.ref_name }})"
on:
workflow_dispatch: {}
schedule:
# https://docs.github.com/en/actions/using-workflows/workflow-syntax-for-github-actions#onschedule
- cron: '0 1 * * *' # Every day at 1AM
jobs:
workflow-requirements:
name: Check Workflow Requirements
runs-on: ubuntu-latest
outputs:
requirements-met: ${{ steps.check-requirements.outputs.requirements-met }}
steps:
- name: Check For Admin Permission
if: ${{ github.event_name != 'schedule' }}
uses: actions-cool/check-user-permission@v2
with:
require: admin
username: ${{ github.triggering_actor }}
- name: Check Requirements
id: check-requirements
run: |
if [ "${{ vars.RUN_SCHEDULED_BUILDS }}" = "1" ]; then
MSG="Running workflow because RUN_SCHEDULED_BUILDS=1"
echo "${MSG}"
echo "${MSG}" >> "${GITHUB_STEP_SUMMARY}"
echo "requirements-met=true" >> "${GITHUB_OUTPUT}"
elif [ "${{ github.event.repository.fork }}" = "true" ]; then
MSG="Not running workflow because ${{ github.repository }} is a fork"
echo "${MSG}"
echo "${MSG}" >> "${GITHUB_STEP_SUMMARY}"
echo "requirements-met=false" >> "${GITHUB_OUTPUT}"
else
MSG="Running workflow because ${{ github.repository }} is not a fork"
echo "${MSG}"
echo "${MSG}" >> "${GITHUB_STEP_SUMMARY}"
echo "requirements-met=true" >> "${GITHUB_OUTPUT}"
fi

View file

@ -3,13 +3,11 @@ name: Cut Release
on: workflow_dispatch
jobs:
update-develop:
name: Update CHANGELOG.md and bootstrap-salt.sh
check-requirements:
name: Check Requirements
runs-on: ubuntu-latest
if: github.repository == 'saltstack/salt-bootstrap'
permissions:
contents: write # To be able to publish the release
environment: Release
environment: release-check
steps:
- name: Check For Admin Permission
uses: actions-cool/check-user-permission@v2
@ -17,42 +15,76 @@ jobs:
require: admin
username: ${{ github.triggering_actor }}
- name: Check Branch Triggering Release
- name: Check Repository
run: |
if [ "${{ github.ref_name }}" != "develop" ]
then
echo "This workflow should only be triggered from the develop branch"
exit 1
if [ "${{ vars.RUN_RELEASE_BUILDS }}" = "1" ]; then
MSG="Running workflow because RUN_RELEASE_BUILDS=1"
echo "${MSG}"
echo "${MSG}" >> "${GITHUB_STEP_SUMMARY}"
exit 0
fi
echo "Trying to run the release workflow from repository ${{ github.repository }}"
if [ "${{ github.repository }}" != "saltstack/salt-bootstrap" ]; then
MSG="Running the release workflow from the ${{ github.repository }} repository is not allowed"
echo "${MSG}"
echo "${MSG}" >> "${GITHUB_STEP_SUMMARY}"
MSG="Allowed repository: saltstack/salt-bootstrap"
echo "${MSG}"
echo "${MSG}" >> "${GITHUB_STEP_SUMMARY}"
exit 1
else
MSG="Allowed to release from repository ${{ github.repository }}"
echo "${MSG}"
echo "${MSG}" >> "${GITHUB_STEP_SUMMARY}"
fi
- uses: actions/checkout@v3
- name: Check Branch
run: |
echo "Trying to run the release workflow from branch ${{ github.ref_name }}"
if [ "${{ github.ref_name }}" != "develop" ]; then
echo "Running the release workflow from the ${{ github.ref_name }} branch is not allowed"
echo "Allowed branches: develop"
exit 1
else
echo "Allowed to release from branch ${{ github.ref_name }}"
fi
update-develop:
name: Update CHANGELOG.md and bootstrap-salt.sh
runs-on: ubuntu-latest
permissions:
contents: write # To be able to publish the release
environment: release
needs:
- check-requirements
outputs:
release-version: ${{ steps.update-repo.outputs.release-version }}
steps:
- uses: actions/checkout@v4
with:
ref: develop
repository: ${{ github.repository }}
ssh-key: ${{ secrets.SALT_BOOTSTRAP_RELEASE_KEY }}
- name: Update Git Settings
run: |
git config --local user.email "41898282+github-actions[bot]@users.noreply.github.com"
git config --local user.name "github-actions[bot] on behalf of ${{ github.event.sender.login }}"
- name: Set up Python 3.7
uses: actions/setup-python@v4
with:
python-version: 3.9
- name: Install Requirements
run: |
python3 -m pip install requests pre-commit
python3 -m pip install -r requirements/release.txt
pre-commit install --install-hooks
- name: Configure Git
shell: bash
run: |
git config --global --add safe.directory "$(pwd)"
git config --global user.name "Salt Project Packaging"
git config --global user.email saltproject-packaging@vmware.com
git config --global commit.gpgsign false
- name: Update Repository
id: update-repo
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
run: |
python3 .github/workflows/scripts/cut-release.py --repo ${{ github.repository }}
export CUT_RELEASE_VERSION=$(cat .cut_release_version)
echo "CUT_RELEASE_VERSION=${CUT_RELEASE_VERSION}" >> $GITHUB_ENV
- name: Show Changes
run: |
@ -61,115 +93,113 @@ jobs:
- name: Commit Changes
run: |
git commit -am "Update develop branch for the ${CUT_RELEASE_VERSION} release" || \
git commit -am "Update develop branch for the ${CUT_RELEASE_VERSION} release"
git commit -am "Update develop branch for the ${{ steps.update-repo.outputs.release-version }} release" || \
git commit -am "Update develop branch for the ${{ steps.update-repo.outputs.release-version }} release"
- name: Push Changes
uses: ad-m/github-push-action@master
uses: ad-m/github-push-action@b87afee92c6e70ea888be6203a3e9426fda49839
with:
repository: ${{ github.repository }}
branch: develop
ssh: true
atomic: true
branch: develop
repository: ${{ github.repository }}
- name: Upload Release Details
uses: actions/upload-artifact@v3
uses: actions/upload-artifact@v4
with:
name: release-details
path: |
.cut_release_version
.cut_release_changes
include-hidden-files: true
merge-develop-into-stable:
name: Merge develop into stable
runs-on: ubuntu-latest
if: github.repository == 'saltstack/salt-bootstrap'
needs: update-develop
environment: Release
needs:
- update-develop
environment: release
permissions:
contents: write # To be able to publish the release
steps:
- uses: actions/checkout@v3
- uses: actions/checkout@v4
with:
ref: stable
repository: ${{ github.repository }}
ssh-key: ${{ secrets.SALT_BOOTSTRAP_RELEASE_KEY }}
fetch-depth: 0
- name: Update Git Settings
- name: Configure Git
shell: bash
run: |
git config --local user.email "41898282+github-actions[bot]@users.noreply.github.com"
git config --local user.name "github-actions[bot] on behalf of @${{ github.event.sender.login }}"
git config --global --add safe.directory "$(pwd)"
git config --global user.name "Salt Project Packaging"
git config --global user.email saltproject-packaging@vmware.com
git config --global commit.gpgsign false
- name: Download Release Details
uses: actions/download-artifact@v3
uses: actions/download-artifact@v4
with:
name: release-details
- name: Update Environment
run: |
export CUT_RELEASE_VERSION=$(cat .cut_release_version)
echo "CUT_RELEASE_VERSION=${CUT_RELEASE_VERSION}" >> $GITHUB_ENV
- name: Merge develop into stable
run: |
git merge --no-ff -m "Merge develop into stable for ${CUT_RELEASE_VERSION} release" origin/develop || touch .git-conflicts
git merge --no-ff -m "Merge develop into stable for ${{ needs.update-develop.outputs.release-version }} release" origin/develop || touch .git-conflicts
if [ -f .git-conflicts ]
then
git diff
for f in $(git status | grep 'both modified' | awk '{ print $3 }')
do
git checkout --theirs $f
pre-commit run -av --files $f
git add $f
git checkout --theirs "$f"
pre-commit run -av --files "$f"
git add "$f"
done
git commit -a -m "Merge develop into stable for ${CUT_RELEASE_VERSION} release(auto resolving conflicts to the develop version)"
git commit -a -m "Merge develop into stable for ${{ needs.update-develop.outputs.release-version }} release(auto resolving conflicts to the develop version)"
fi
- name: Tag Release
uses: mathieudutour/github-tag-action@v6.0
with:
github_token: ${{ secrets.GITHUB_TOKEN }}
custom_tag: ${{ env.CUT_RELEASE_VERSION }}
tag_prefix: ""
create_annotated_tag: true
- name: Tag The ${{ needs.update-develop.outputs.release-version }} Release
run: |
git tag --no-sign -m "Release ${{ needs.update-develop.outputs.release-version }}" -a ${{ needs.update-develop.outputs.release-version }}
- name: Update bootstrap-salt.sh sha256sum's
run: |
echo "$(sha256sum bootstrap-salt.sh | awk '{ print $1 }')" > bootstrap-salt.sh.sha256
echo "$(sha256sum bootstrap-salt.ps1 | awk '{ print $1 }')" > bootstrap-salt.ps1.sha256
sha256sum bootstrap-salt.sh | awk '{ print $1 }' > bootstrap-salt.sh.sha256
sha256sum bootstrap-salt.ps1 | awk '{ print $1 }' > bootstrap-salt.ps1.sha256
git commit -a -m "Update sha256 checksums" || git commit -a -m "Update sha256 checksums"
- name: Push Changes
uses: ad-m/github-push-action@master
uses: ad-m/github-push-action@b87afee92c6e70ea888be6203a3e9426fda49839
with:
repository: ${{ github.repository }}
branch: stable
tags: true
ssh: true
tags: true
atomic: true
branch: stable
repository: ${{ github.repository }}
publish-release:
name: Create GitHub Release
runs-on: ubuntu-latest
if: github.repository == 'saltstack/salt-bootstrap'
needs: merge-develop-into-stable
environment: Release
needs:
- merge-develop-into-stable
environment: release
permissions:
contents: write # To be able to publish the release
steps:
- uses: actions/checkout@v3
- uses: actions/checkout@v4
with:
ref: stable
repository: ${{ github.repository }}
ssh-key: ${{ secrets.SALT_BOOTSTRAP_RELEASE_KEY }}
- name: Download Release Details
uses: actions/download-artifact@v3
uses: actions/download-artifact@v4
with:
name: release-details
- name: Update Environment
run: |
export CUT_RELEASE_VERSION=$(cat .cut_release_version)
echo "CUT_RELEASE_VERSION=${CUT_RELEASE_VERSION}" >> $GITHUB_ENV
CUT_RELEASE_VERSION=$(cat .cut_release_version)
echo "CUT_RELEASE_VERSION=${CUT_RELEASE_VERSION}" >> "$GITHUB_ENV"
- name: Create Github Release
uses: softprops/action-gh-release@v1
@ -189,7 +219,7 @@ jobs:
LICENSE
- name: Delete Release Details Artifact
uses: geekyeggo/delete-artifact@v1
uses: geekyeggo/delete-artifact@v5
with:
name: release-details
failOnError: false
@ -197,15 +227,15 @@ jobs:
update-develop-checksums:
name: Update Release Checksums on Develop
runs-on: ubuntu-latest
if: github.repository == 'saltstack/salt-bootstrap'
needs: publish-release
environment: Release
needs:
- publish-release
environment: release
permissions:
contents: write # For action peter-evans/create-pull-request
pull-requests: write # For action peter-evans/create-pull-request
steps:
- uses: actions/checkout@v3
- uses: actions/checkout@v4
with:
ref: stable
repository: ${{ github.repository }}
@ -213,24 +243,22 @@ jobs:
- name: Get bootstrap-salt.sh on stable branch sha256sum
run: |
echo "SH=$(sha256sum bootstrap-salt.sh | awk '{ print $1 }')" >> $GITHUB_ENV
echo "BS_VERSION=$(sh bootstrap-salt.sh -v | awk '{ print $4 }')" >> $GITHUB_ENV
echo "SH=$(sha256sum bootstrap-salt.sh | awk '{ print $1 }')" >> "$GITHUB_ENV"
echo "BS_VERSION=$(sh bootstrap-salt.sh -v | awk '{ print $4 }')" >> "$GITHUB_ENV"
- uses: actions/checkout@v3
- uses: actions/checkout@v4
with:
ref: develop
repository: ${{ github.repository }}
ssh-key: ${{ secrets.SALT_BOOTSTRAP_RELEASE_KEY }}
- name: Update Git Settings
- name: Configure Git
shell: bash
run: |
git config --local user.email "41898282+github-actions[bot]@users.noreply.github.com"
git config --local user.name "github-actions[bot] on behalf of @${{ github.event.sender.login }}"
- name: Set up Python 3.7
uses: actions/setup-python@v4
with:
python-version: 3.7
git config --global --add safe.directory "$(pwd)"
git config --global user.name "Salt Project Packaging"
git config --global user.email saltproject-packaging@vmware.com
git config --global commit.gpgsign false
- name: Update Latest Release on README
run: |
@ -247,55 +275,9 @@ jobs:
git commit -am "Update README.rst with ${{ env.BS_VERSION }} release sha256sum"
- name: Push Changes
uses: ad-m/github-push-action@master
uses: ad-m/github-push-action@b87afee92c6e70ea888be6203a3e9426fda49839
with:
repository: ${{ github.repository }}
branch: develop
ssh: true
salt:
name: Update Release on Salt Repo
runs-on: ubuntu-latest
if: github.repository == 'saltstack/salt-bootstrap'
needs: update-develop-checksums
environment: Open PR Against Salt
permissions:
contents: write # For action peter-evans/create-pull-request
pull-requests: write # For action peter-evans/create-pull-request
steps:
- uses: actions/checkout@v3
with:
ref: stable
atomic: true
branch: develop
repository: ${{ github.repository }}
- name: Get bootstrap version
run: |
echo "BS_VERSION=$(sh bootstrap-salt.sh -v | awk '{ print $4 }')" >> $GITHUB_ENV
- uses: actions/checkout@v3
with:
repository: saltstack/salt
ref: master
path: salt-checkout
token: ${{ secrets.SALT_REPO_WRITE_TOKEN }}
- name: Update Git Settings
run: |
git config --local user.email "41898282+github-actions[bot]@users.noreply.github.com"
git config --local user.name "github-actions[bot] on behalf of @${{ github.event.sender.login }}"
- name: Update bootstrap script on Salt
run: |
cp bootstrap-salt.sh salt-checkout/salt/cloud/deploy/bootstrap-salt.sh
- name: Create Pull Request Against Develop
uses: peter-evans/create-pull-request@v4
with:
title: "Update the bootstrap script to v${{ env.BS_VERSION }}"
path: salt-checkout
base: master
token: ${{ secrets.SALT_REPO_WRITE_TOKEN }}
commit-message: Update the bootstrap script to v${{ env.BS_VERSION }}
delete-branch: true

View file

@ -1,12 +1,13 @@
#!/usr/bin/env python
import argparse
import os
import pathlib
import re
import sys
import pathlib
import argparse
import requests
from datetime import datetime
import requests
REPO_ROOT = pathlib.Path(__file__).resolve().parent.parent.parent.parent
@ -155,6 +156,8 @@ def main():
message=f"Unable to generate changelog. HTTP Response:\n{changelog}",
)
github_output = os.environ.get("GITHUB_OUTPUT")
cut_release_version = REPO_ROOT / ".cut_release_version"
print(
f"* Writing {cut_release_version.relative_to(REPO_ROOT)} ...",
@ -162,6 +165,9 @@ def main():
flush=True,
)
cut_release_version.write_text(options.release_tag)
if github_output is not None:
with open(github_output, "a", encoding="utf-8") as wfh:
wfh.write(f"release-version={options.release_tag}\n")
cut_release_changes = REPO_ROOT / ".cut_release_changes"
print(
@ -170,7 +176,6 @@ def main():
flush=True,
)
cut_release_changes.write_text(changelog["body"])
print(
f"* Updating {changelog_file.relative_to(REPO_ROOT)} ...",
file=sys.stderr,
@ -183,6 +188,7 @@ def main():
+ changelog_file.read_text()
)
# Update Script Version for the bash script
bootstrap_script_path = REPO_ROOT / "bootstrap-salt.sh"
print(
f"* Updating {bootstrap_script_path.relative_to(REPO_ROOT)} ...",
@ -196,6 +202,22 @@ def main():
bootstrap_script_path.read_text(),
)
)
# Update the Script Version for the powershell script
bootstrap_script_path = REPO_ROOT / "bootstrap-salt.ps1"
print(
f"* Updating {bootstrap_script_path.relative_to(REPO_ROOT)} ...",
file=sys.stderr,
flush=True,
)
bootstrap_script_path.write_text(
re.sub(
r'\$__ScriptVersion = "(.*)"',
f'$__ScriptVersion = "{options.release_tag.lstrip("v")}"',
bootstrap_script_path.read_text(),
)
)
parser.exit(status=0, message="CHANGELOG.md and bootstrap-salt.sh updated\n")

View file

@ -11,16 +11,17 @@
- name: Download Exit Status Files
if: always()
uses: actions/download-artifact@v3
uses: actions/download-artifact@v4
with:
name: exitstatus
path: exitstatus
path: exitstatus/
pattern: exitstatus-*
merge-multiple: true
- name: Delete Exit Status Artifacts
if: always()
uses: geekyeggo/delete-artifact@v1
uses: geekyeggo/delete-artifact@v5
with:
name: exitstatus
pattern: exitstatus-*
failOnError: false
- name: Set Pipeline Exit Status

View file

@ -16,19 +16,17 @@ jobs:
outputs:
run-tests: ${{ steps.set-output.outputs.run-tests }}
steps:
- uses: actions/checkout@v3
- uses: actions/checkout@v4
with:
fetch-depth: 0
- name: Get specific changed files
id: changed-files
uses: tj-actions/changed-files@v25
uses: tj-actions/changed-files@v42
with:
separator: ","
files: |
bootstrap-salt.*
Gemfile
kitchen*.yml
tests/**
.github/workflows/**
files_ignore: |
@ -47,10 +45,10 @@ jobs:
- name: Upload Exit Status
if: always()
uses: actions/upload-artifact@v3
uses: actions/upload-artifact@v4
with:
name: exitstatus
path: exitstatus
name: exitstatus-${{ github.job }}
path: exitstatus/
generate-actions-workflow:
name: Generate The Actions Workflow
@ -59,12 +57,12 @@ jobs:
if: github.event_name == 'push' || needs.collect-changed-files.outputs.run-tests == 'true'
steps:
- uses: actions/checkout@v3
- uses: actions/checkout@v4
- name: Set up Python 3.9
uses: actions/setup-python@v4
- name: Set up Python 3.10
uses: actions/setup-python@v5
with:
python-version: 3.9
python-version: "3.10"
- name: Install Pre-Commit
run: |
@ -84,19 +82,19 @@ jobs:
- name: Upload Exit Status
if: always()
uses: actions/upload-artifact@v3
uses: actions/upload-artifact@v4
with:
name: exitstatus
path: exitstatus
name: exitstatus-${{ github.job }}
path: exitstatus/
lint:
name: Lint
runs-on: ubuntu-latest
needs: collect-changed-files
container: koalaman/shellcheck-alpine:v0.6.0
container: koalaman/shellcheck-alpine:latest
if: github.event_name == 'push' || needs.collect-changed-files.outputs.run-tests == 'true'
steps:
- uses: actions/checkout@v3
- uses: actions/checkout@v4
- name: ShellCheck
run: |
shellcheck -s sh -f tty bootstrap-salt.sh
@ -109,7 +107,7 @@ jobs:
- name: Upload Exit Status
if: always()
uses: actions/upload-artifact@v3
uses: actions/upload-artifact@v4
with:
name: exitstatus
path: exitstatus
name: exitstatus-${{ github.job }}
path: exitstatus/

View file

@ -1,187 +1,234 @@
#!/usr/bin/env python
# -*- coding: utf-8 -*-
import os
import json
import pathlib
#!/usr/bin/env python3
import datetime
import json
import os
import pathlib
os.chdir(os.path.abspath(os.path.dirname(__file__)))
# "amazonlinux-2",
# "debian-13",
# "fedora-40",
# "photon-4",
# "ubuntu-2004",
# "ubuntu-2404",
LINUX_DISTROS = [
"almalinux-8",
"amazon-2",
"arch",
"centos-7",
"centos-stream8",
"debian-10",
"amazonlinux-2023",
"debian-11",
"debian-9",
"fedora-35",
"fedora-36",
"gentoo",
"gentoo-systemd",
"opensuse-15",
"opensuse-tumbleweed",
"oraclelinux-7",
"oraclelinux-8",
"debian-12",
"photon-5",
"rockylinux-8",
"ubuntu-1804",
"ubuntu-2004",
"rockylinux-9",
"ubuntu-2204",
]
WINDOWS = [
"windows-2019",
"windows-2022",
]
OSX = [
"macos-1015",
"macos-11",
"macos-12",
]
BSD = [
"freebsd-131",
"freebsd-123",
"openbsd-6",
"macos-13",
"macos-14",
]
# "amazonlinux-2",
# "debian-13",
# "fedora-40",
# "photon-4",
# "ubuntu-2004",
# "ubuntu-2404",
STABLE_DISTROS = [
"almalinux-8",
"amazon-2",
"arch",
"centos-7",
"centos-stream8",
"debian-10",
"amazonlinux-2023",
"debian-11",
"debian-9",
"fedora-35",
"fedora-36",
"gentoo",
"gentoo-systemd",
"opensuse-15",
"opensuse-tumbleweed",
"oraclelinux-7",
"oraclelinux-8",
"debian-12",
"photon-5",
"rockylinux-8",
"ubuntu-1804",
"ubuntu-2004",
"rockylinux-9",
"ubuntu-2204",
]
BLACKLIST_3003 = [
"arch",
# "amazonlinux-2",
# "debian-13",
# "fedora-40",
# "photon-4",
# "ubuntu-2004",
# "ubuntu-2404",
ONEDIR_DISTROS = [
"amazonlinux-2023",
"debian-11",
"fedora-35",
"fedora-36",
"gentoo",
"gentoo-systemd",
"opensuse-15",
"opensuse-tumbleweed",
"debian-12",
"photon-5",
"rockylinux-8",
"rockylinux-9",
"ubuntu-2204",
]
BLACKLIST_GIT_3003 = [
"amazon-2",
"arch",
"debian-10",
# "amazonlinux-2",
# "amazonlinux-2023",
# "photon-4",
# "photon-5",
# "rockylinux-8",
# "ubuntu-2404",
ONEDIR_RC_DISTROS = [
"debian-12",
"photon-5",
"rockylinux-9",
"ubuntu-2204",
]
BLACKLIST_3006 = [
"debian-12",
"fedora-40",
"ubuntu-2404",
]
# "photon-5",
BLACKLIST_3007 = [
"photon-4",
]
# "ubuntu-2204",
BLACKLIST_GIT_3006 = [
"amazonlinux-2",
"amazonlinux-2023",
"debian-11",
"fedora-35",
"fedora-36",
"gentoo",
"gentoo-systemd",
"opensuse-15",
"opensuse-tumbleweed",
"rockylinux-8",
"debian-12",
"debian-13",
"fedora-40",
"photon-4",
"photon-5",
"rockylinux-9",
"ubuntu-2004",
"ubuntu-2110",
"ubuntu-2204",
"ubuntu-2404",
]
BLACKLIST_3004 = [
"arch",
"fedora-35",
"fedora-36",
"gentoo",
"gentoo-systemd",
"opensuse-15",
"opensuse-tumbleweed",
]
BLACKLIST_GIT_3004 = [
"amazon-2",
"arch",
"debian-10",
# "debian-12",
# "ubuntu-2204",
BLACKLIST_GIT_3007 = [
"amazonlinux-2",
"amazonlinux-2023",
"debian-11",
"fedora-35",
"fedora-36",
"gentoo",
"gentoo-systemd",
"opensuse-15",
"opensuse-tumbleweed",
"debian-13",
"fedora-40",
"photon-4",
"photon-5",
"rockylinux-9",
"ubuntu-2004",
"ubuntu-2110",
"ubuntu-2204",
"ubuntu-2404",
]
# "debian-12",
BLACKLIST_GIT_MASTER = [
"amazonlinux-2",
"amazonlinux-2023",
"debian-11",
"debian-13",
"fedora-40",
"photon-4",
"photon-5",
"rockylinux-9",
]
SALT_VERSIONS = [
"3003",
"3004",
"3006",
"3006-8",
"3007",
"3007-1",
"master",
"latest",
"nightly",
]
ONEDIR_SALT_VERSIONS = [
"3006",
"3007",
"latest",
]
ONEDIR_RC_SALT_VERSIONS = []
VERSION_DISPLAY_NAMES = {
"3003": "v3003",
"3004": "v3004",
"3006": "v3006",
"3006-8": "v3006.8",
"3007": "v3007",
"3007-1": "v3007.1",
"master": "Master",
"latest": "Latest",
"nightly": "Nightly",
}
STABLE_VERSION_BLACKLIST = []
STABLE_VERSION_BLACKLIST = [
"master",
"nightly",
]
MAC_STABLE_VERSION_BLACKLIST = [
"master",
"nightly",
]
GIT_VERSION_BLACKLIST = [
"3006-8",
"3007-1",
"nightly",
]
# TODO: Revert the commit relating to this section, once the Git-based builds
# have been fixed for the distros listed below
#
# Apparent failure is:
#
# /usr/lib/python3.11/site-packages/setuptools/command/install.py:34:
# SetuptoolsDeprecationWarning: setup.py install is deprecated.
# Use build and pip and other standards-based tools.
#
GIT_DISTRO_BLACKLIST = [
"rockylinux-8",
]
LATEST_PKG_BLACKLIST = []
DISTRO_DISPLAY_NAMES = {
"almalinux-8": "AlmaLinux 8",
"amazon-2": "Amazon 2",
"arch": "Arch",
"centos-7": "CentOS 7",
"centos-stream8": "CentOS Stream 8",
"debian-10": "Debian 10",
"amazonlinux-2": "Amazon 2",
"amazonlinux-2023": "Amazon 2023",
"debian-11": "Debian 11",
"debian-9": "Debian 9",
"fedora-35": "Fedora 35",
"fedora-36": "Fedora 36",
"gentoo": "Gentoo",
"gentoo-systemd": "Gentoo (systemd)",
"opensuse-15": "Opensuse 15",
"opensuse-tumbleweed": "Opensuse Tumbleweed",
"oraclelinux-7": "Oracle Linux 7",
"oraclelinux-8": "Oracle Linux 8",
"debian-12": "Debian 12",
"debian-13": "Debian 13",
"fedora-40": "Fedora 40",
"photon-4": "Photon OS 4",
"photon-5": "Photon OS 5",
"rockylinux-8": "Rocky Linux 8",
"ubuntu-1804": "Ubuntu 18.04",
"rockylinux-9": "Rocky Linux 9",
"ubuntu-2004": "Ubuntu 20.04",
"ubuntu-2204": "Ubuntu 22.04",
"macos-1015": "macOS 10.15",
"macos-11": "macOS 11",
"macos-12": "macOS 12",
"freebsd-131": "FreeBSD 13.1",
"freebsd-123": "FreeBSD 12.3",
"openbsd-6": "OpenBSD 6",
"windows-2019": "Windows 2019",
"ubuntu-2404": "Ubuntu 24.04",
"macos-13": "macOS 13",
"macos-14": "macOS 14",
"windows-2022": "Windows 2022",
}
TIMEOUT_DEFAULT = 20
TIMEOUT_OVERRIDES = {
"gentoo": 90,
"gentoo-systemd": 90,
CONTAINER_SLUG_NAMES = {
"amazonlinux-2": "amazonlinux-2",
"amazonlinux-2023": "amazonlinux-2023",
"debian-11": "debian-11",
"debian-12": "debian-12",
"debian-13": "debian-13",
"fedora-40": "fedora-40",
"photon-4": "photon-4",
"photon-5": "photon-5",
"rockylinux-8": "rockylinux-8",
"rockylinux-9": "rockylinux-9",
"ubuntu-2004": "ubuntu-20.04",
"ubuntu-2204": "ubuntu-22.04",
"ubuntu-2404": "ubuntu-24.04",
"macos-13": "macos-13",
"macos-14": "macOS 14",
"windows-2022": "windows-2022",
}
VERSION_ONLY_OVERRIDES = [
"gentoo",
"gentoo-systemd",
]
TIMEOUT_DEFAULT = 20
TIMEOUT_OVERRIDES = {}
VERSION_ONLY_OVERRIDES = []
TEMPLATE = """
{distro}:
@ -193,6 +240,7 @@ TEMPLATE = """
with:
distro-slug: {distro}
display-name: {display_name}
container-slug: {container_name}
timeout: {timeout_minutes}{runs_on}
instances: '{instances}'
"""
@ -202,82 +250,10 @@ def generate_test_jobs():
test_jobs = ""
needs = ["lint", "generate-actions-workflow"]
for distro in BSD:
test_jobs += "\n"
runs_on = "macos-10.15"
runs_on = f"\n runs-on: {runs_on}"
ifcheck = "\n if: github.event_name == 'push' || needs.collect-changed-files.outputs.run-tests == 'true'"
uses = "./.github/workflows/test-bsd.yml"
instances = []
timeout_minutes = (
TIMEOUT_OVERRIDES[distro]
if distro in TIMEOUT_OVERRIDES
else TIMEOUT_DEFAULT
)
for salt_version in SALT_VERSIONS:
if salt_version == "latest":
if distro in LATEST_PKG_BLACKLIST:
continue
instances.append(salt_version)
continue
if distro == "openbsd-6":
# Only test latest on OpenBSD 6
continue
if salt_version != "master":
# Only test the master branch on BSD's
continue
# BSD's don't have a stable release, only use git
for bootstrap_type in ("git",):
BLACKLIST = {
"3003": BLACKLIST_3003,
"3004": BLACKLIST_3004,
}
if bootstrap_type == "git":
BLACKLIST = {
"3003": BLACKLIST_GIT_3003,
"3004": BLACKLIST_GIT_3004,
}
# .0 versions are a virtual version for pinning to the first
# point release of a major release, such as 3003,
# there is no git version.
if salt_version.endswith("-0"):
continue
if (
salt_version in ("3003", "3004")
and distro in BLACKLIST[salt_version]
):
continue
kitchen_target = f"{bootstrap_type}-{salt_version}"
instances.append(kitchen_target)
if instances:
needs.append(distro)
test_jobs += TEMPLATE.format(
distro=distro,
runs_on=runs_on,
uses=uses,
ifcheck=ifcheck,
instances=json.dumps(instances),
display_name=DISTRO_DISPLAY_NAMES[distro],
timeout_minutes=timeout_minutes,
)
test_jobs += "\n"
for distro in OSX:
test_jobs += "\n"
if distro == "macos-1015":
runs_on = "macos-10.15"
else:
runs_on = distro
runs_on = distro
runs_on = f"\n runs-on: {runs_on}"
ifcheck = "\n if: github.event_name == 'push' || needs.collect-changed-files.outputs.run-tests == 'true'"
uses = "./.github/workflows/test-macos.yml"
@ -289,20 +265,22 @@ def generate_test_jobs():
)
for salt_version in SALT_VERSIONS:
if salt_version == "latest":
instances.append(salt_version)
continue
for bootstrap_type in ("stable",):
for bootstrap_type in ["stable"]:
if bootstrap_type == "stable":
if salt_version == "master":
# For the master branch there's no stable build
if salt_version in MAC_STABLE_VERSION_BLACKLIST:
continue
kitchen_target = f"{bootstrap_type}-{salt_version}"
instances.append(kitchen_target)
test_target = f"{bootstrap_type}-{salt_version}"
instances.append(test_target)
for bootstrap_type in ["default"]:
if distro not in STABLE_DISTROS:
continue
instances.append(bootstrap_type)
if instances:
needs.append(distro)
@ -313,6 +291,7 @@ def generate_test_jobs():
ifcheck=ifcheck,
instances=json.dumps(instances),
display_name=DISTRO_DISPLAY_NAMES[distro],
container_name=CONTAINER_SLUG_NAMES[distro],
timeout_minutes=timeout_minutes,
)
@ -336,14 +315,18 @@ def generate_test_jobs():
instances.append(salt_version)
continue
for bootstrap_type in ("stable",):
for bootstrap_type in ["stable"]:
if bootstrap_type == "stable":
if salt_version == "master":
# For the master branch there's no stable build
if salt_version in STABLE_VERSION_BLACKLIST:
continue
kitchen_target = f"{bootstrap_type}-{salt_version}"
instances.append(kitchen_target)
test_target = f"{bootstrap_type}-{salt_version}"
instances.append(test_target)
for bootstrap_type in ["default"]:
if distro not in STABLE_DISTROS:
continue
instances.append(bootstrap_type)
if instances:
needs.append(distro)
@ -354,6 +337,7 @@ def generate_test_jobs():
ifcheck=ifcheck,
instances=json.dumps(instances),
display_name=DISTRO_DISPLAY_NAMES[distro],
container_name=CONTAINER_SLUG_NAMES[distro],
timeout_minutes=timeout_minutes,
)
@ -381,29 +365,47 @@ def generate_test_jobs():
instances.append(salt_version)
continue
for bootstrap_type in ("stable", "git"):
for bootstrap_type in (
"stable",
"git",
"onedir",
"onedir-rc",
):
if bootstrap_type == "onedir":
if salt_version not in ONEDIR_SALT_VERSIONS:
continue
if distro not in ONEDIR_DISTROS:
continue
if bootstrap_type == "onedir-rc":
if salt_version not in ONEDIR_RC_SALT_VERSIONS:
continue
if distro not in ONEDIR_RC_DISTROS:
continue
if bootstrap_type == "stable":
if salt_version == "master":
# For the master branch there's no stable build
if salt_version in STABLE_VERSION_BLACKLIST:
continue
if distro not in STABLE_DISTROS:
continue
if salt_version in STABLE_VERSION_BLACKLIST:
if bootstrap_type == "git":
if salt_version in GIT_VERSION_BLACKLIST:
continue
if distro.startswith("fedora") and salt_version != "latest":
# Fedora does not keep old builds around
if distro in GIT_DISTRO_BLACKLIST:
continue
BLACKLIST = {
"3003": BLACKLIST_3003,
"3004": BLACKLIST_3004,
"3006": BLACKLIST_3006,
"3006-8": BLACKLIST_3006,
"3007": BLACKLIST_3007,
"3007-1": BLACKLIST_3007,
}
if bootstrap_type == "git":
BLACKLIST = {
"3003": BLACKLIST_GIT_3003,
"3004": BLACKLIST_GIT_3004,
"3006": BLACKLIST_GIT_3006,
"3007": BLACKLIST_GIT_3007,
"master": BLACKLIST_GIT_MASTER,
}
# .0 versions are a virtual version for pinning to the first
@ -413,13 +415,18 @@ def generate_test_jobs():
continue
if (
salt_version in ("3003", "3004")
salt_version in ("3006", "3006-8", "3007", "3007-1", "master")
and distro in BLACKLIST[salt_version]
):
continue
kitchen_target = f"{bootstrap_type}-{salt_version}"
instances.append(kitchen_target)
test_target = f"{bootstrap_type}-{salt_version}"
instances.append(test_target)
for bootstrap_type in ["default"]:
if distro not in STABLE_DISTROS:
continue
instances.append(bootstrap_type)
if instances:
needs.append(distro)
@ -430,6 +437,7 @@ def generate_test_jobs():
ifcheck=ifcheck,
instances=json.dumps(instances),
display_name=DISTRO_DISPLAY_NAMES[distro],
container_name=CONTAINER_SLUG_NAMES[distro],
timeout_minutes=timeout_minutes,
)

View file

@ -1,97 +0,0 @@
name: Test FreeBSD & OpenBSD
on:
workflow_call:
inputs:
distro-slug:
type: string
required: true
description: The Distribution Slug
display-name:
type: string
required: true
description: The Display Name For The Job
runs-on:
type: string
required: true
description: The GitHub MacOS Worker To Run Workflow On
instances:
type: string
required: true
description: The Instances To Test
timeout:
type: number
required: false
default: 20
description: The timeout(in minutes) for the workflow
env:
VAGRANT_HOME: '${{ github.workspace }}/.vagrant.d'
KITCHEN_LOCAL_YAML: 'kitchen.bsd.yml'
jobs:
Test:
name: ${{ matrix.instance }}
runs-on: ${{ inputs.runs-on }}
timeout-minutes: ${{ inputs.timeout }}
strategy:
fail-fast: false
matrix:
instance: ${{ fromJSON(inputs.instances) }}
steps:
- uses: actions/checkout@v3
- name: Setup Ruby
uses: ruby/setup-ruby@v1
with:
ruby-version: 2.6.10
bundler-cache: true
- name: Setup Vagrant Cache
uses: actions/cache@v3
with:
path: |
${{ github.workspace }}/.kitchen
${{ github.workspace }}/.vagrant.d/
key: "${{ runner.os }}|vagrant|${{ inputs.distro-slug }}|${{ hashFiles('Gemfile', '.github/workflows/test-bsd.yml', 'kitchen.bsd.yml') }}"
- name: Set up Python 3.9
uses: actions/setup-python@v4
with:
python-version: 3.9
- name: Install Python Dependencies
run: |
pip install -U pip
pip install -r tests/requirements.txt
- name: Create Test Instance
run: |
bundle exec kitchen create ${{ matrix.instance }}-${{ inputs.distro-slug }} || \
(sleep 10 && bundle exec kitchen create ${{ matrix.instance }}-${{ inputs.distro-slug }})
- name: Test Bootstrap
run: |
bundle exec kitchen verify ${{ matrix.instance }}-${{ inputs.distro-slug }}
- name: Destroy Test Instance
if: always()
run: |
bundle exec kitchen destroy ${{ matrix.instance }}-${{ inputs.distro-slug }}
- name: Set Exit Status
if: always()
run: |
mkdir exitstatus
echo "${{ job.status }}" > exitstatus/${{ github.job }}-${{ matrix.instance }}-${{ inputs.distro-slug }}
- name: Upload Exit Status
if: always()
uses: actions/upload-artifact@v3
with:
name: exitstatus
path: exitstatus

View file

@ -17,6 +17,11 @@ on:
required: true
description: The Instances To Test
container-slug:
type: string
required: true
description: The Container Slug
timeout:
type: number
required: false
@ -29,42 +34,56 @@ jobs:
runs-on: ubuntu-latest
timeout-minutes: ${{ inputs.timeout }}
strategy:
max-parallel: 2
fail-fast: false
matrix:
instance: ${{ fromJSON(inputs.instances) }}
steps:
- uses: actions/checkout@v3
- uses: actions/checkout@v4
- name: Setup Ruby
uses: ruby/setup-ruby@v1
with:
ruby-version: 2.6.10
bundler-cache: true
- name: Set up Python 3.9
uses: actions/setup-python@v4
with:
python-version: 3.9
- name: Install Python Dependencies
- name: Get Version
run: |
python3 -m pip install -U pip
python3 -m pip install -r tests/requirements.txt
# We need to get the version here and make it an environment variable
# It is used to install via bootstrap and in the test
# The version is in the instance name
# sed 1st - becomes space, 2nd - becomes dot
vt_parm_ver=$(echo "${{ matrix.instance }}" | sed 's/-/ /' | sed 's/-/./' | awk -F ' ' '{print $2}')
echo "SaltVersion=$vt_parm_ver" >> $GITHUB_ENV
- name: Create Test Instance
- name: "Pull container ${{ inputs.container-slug }}"
run: |
bundle exec kitchen create ${{ matrix.instance }}-${{ inputs.distro-slug }} || \
(sleep 10 && bundle exec kitchen create ${{ matrix.instance }}-${{ inputs.distro-slug }})
docker pull ghcr.io/saltstack/salt-ci-containers/testing:${{ inputs.container-slug }}
- name: "Create container ${{ inputs.container-slug }}"
run: |
/usr/bin/docker create --name ${{ github.run_id }}_salt-test --workdir /_w/ --privileged -e "HOME=/github/home" -e GITHUB_ACTIONS=true -e CI=true -e $GITHUB_ENV -v "/var/run/docker.sock":"/var/run/docker.sock" -v "/home/runner/work":"/__w" -v "/home/runner/work/_temp":"/__w/_temp" -v "/home/runner/work/_actions":"/__w/_actions" -v "/opt/hostedtoolcache":"/__t" -v "/home/runner/work/_temp/_github_home":"/github/home" -v "/home/runner/work/_temp/_github_workflow":"/github/workflow" -v "/home/runner/work/salt-bootstrap/salt-bootstrap":"/_w/btstrap" --entrypoint "/usr/lib/systemd/systemd" ghcr.io/saltstack/salt-ci-containers/testing:${{ inputs.container-slug }} --systemd --unit rescue.target
- name: "Start container ${{ inputs.container-slug }}"
run: |
/usr/bin/docker start ${{ github.run_id }}_salt-test
- name: "Install Python Dependencies with pip breakage in container ${{ inputs.container-slug }}"
if: ${{ ( inputs.distro-slug == 'debian-12' ) || ( inputs.distro-slug == 'debian-13' ) || ( inputs.distro-slug == 'ubuntu-2404' ) }}
run: |
docker exec ${{ github.run_id}}_salt-test python3 -m pip install --break-system-packages -r /_w/btstrap/tests/requirements.txt
- name: "Install Python Dependencies without pip breakage in container ${{ inputs.container-slug }}"
if: ${{ ( inputs.distro-slug != 'debian-12' ) && ( inputs.distro-slug != 'debian-13' ) && ( inputs.distro-slug != 'ubuntu-2404' ) }}
run: |
docker exec ${{ github.run_id}}_salt-test python3 -m pip install -r /_w/btstrap/tests/requirements.txt
- name: Bootstrap Salt
run: |
# sed 1st - becomes space, 2nd - becomes dot
bt_arg1=$(echo "${{ matrix.instance }}" | sed 's/-/ /' | sed 's/-/./' | awk -F ' ' '{print $1}')
bt_arg2=$(echo "${{ matrix.instance }}" | sed 's/-/ /' | sed 's/-/./' | awk -F ' ' '{print $2}')
echo "bt parms ,$bt_parms, bt_arg1 ,$bt_arg1, bt_arg2 ,$bt_arg2,"
docker exec ${{ github.run_id}}_salt-test sh -x /_w/btstrap/bootstrap-salt.sh "$bt_arg1" "$bt_arg2"
- name: Test Bootstrap
run: |
bundle exec kitchen verify ${{ matrix.instance }}-${{ inputs.distro-slug }}
- name: Destroy Test Instance
if: always()
run: |
bundle exec kitchen destroy ${{ matrix.instance }}-${{ inputs.distro-slug }}
docker exec ${{ github.run_id}}_salt-test pytest --cache-clear -v -s -ra --log-cli-level=debug /_w/btstrap/tests/integration/
- name: Set Exit Status
if: always()
@ -74,7 +93,7 @@ jobs:
- name: Upload Exit Status
if: always()
uses: actions/upload-artifact@v3
uses: actions/upload-artifact@v4
with:
name: exitstatus
path: exitstatus
name: exitstatus-${{ github.job }}-${{ matrix.instance }}-${{ inputs.distro-slug }}
path: exitstatus/

View file

@ -22,19 +22,22 @@ on:
required: true
description: The Instances To Test
container-slug:
type: string
required: true
description: The Container Slug
timeout:
type: number
required: false
default: 20
description: The timeout(in minutes) for the workflow
env:
KITCHEN_LOCAL_YAML: 'kitchen.macos.yml'
jobs:
Test:
name: ${{ matrix.instance }}
runs-on: ${{ inputs.runs-on }}
## runs-on: macos-13
timeout-minutes: ${{ inputs.timeout }}
strategy:
fail-fast: false
@ -42,37 +45,39 @@ jobs:
instance: ${{ fromJSON(inputs.instances) }}
steps:
- uses: actions/checkout@v3
- uses: actions/checkout@v4
- name: Setup Ruby
uses: ruby/setup-ruby@v1
with:
ruby-version: 2.6.10
bundler-cache: true
- name: Set up Python 3.9
uses: actions/setup-python@v4
with:
python-version: 3.9
- name: Install Python Dependencies
- name: Install Python Dependencies with pip breakage
if: ${{ inputs.distro-slug != 'macos-13' }}
run: |
pip install -U pip
pip install -r tests/requirements.txt
python3 -m pip install --break-system-packages -r tests/requirements.txt
- name: Create Test Instance
- name: Install Python Dependencies without pip breakage
if: ${{ inputs.distro-slug == 'macos-13' }}
run: |
bundle exec kitchen create ${{ matrix.instance }}-${{ inputs.distro-slug }} || \
(sleep 10 && bundle exec kitchen create ${{ matrix.instance }}-${{ inputs.distro-slug }})
python3 -m pip install -r tests/requirements.txt
- name: Get Version
run: |
# We need to get the version here and make it an environment variable
# It is used to install via bootstrap and in the test
# The version is in the instance name
# sed 1st - becomes space, 2nd - becomes dot
vt_parms=$(echo "${{ matrix.instance }}" | sed 's/-/ /' | sed 's/-/./')
vt_parm_ver=$(echo "$vt_parms" | awk -F ' ' '{print $2}')
echo "SaltVersion=$vt_parm_ver" >> $GITHUB_ENV
- name: Bootstrap Salt
run: |
# sed 1st - becomes space, 2nd - becomes dot
bt_parms=$(echo "${{ matrix.instance }}" | sed 's/-/ /' | sed 's/-/./')
bt_arg1=$(echo "$bt_parms" | awk -F ' ' '{print $1}')
bt_arg2=$(echo "$bt_parms" | awk -F ' ' '{print $2}')
sudo sh ./bootstrap-salt.sh "$bt_arg1" "$bt_arg2"
- name: Test Bootstrap
run: |
bundle exec kitchen verify ${{ matrix.instance }}-${{ inputs.distro-slug }}
- name: Destroy Test Instance
if: always()
run: |
bundle exec kitchen destroy ${{ matrix.instance }}-${{ inputs.distro-slug }}
pytest --cache-clear -v -s -ra --log-cli-level=debug tests/integration/
- name: Set Exit Status
if: always()
@ -82,7 +87,7 @@ jobs:
- name: Upload Exit Status
if: always()
uses: actions/upload-artifact@v3
uses: actions/upload-artifact@v4
with:
name: exitstatus
path: exitstatus
name: exitstatus-${{ github.job }}-${{ matrix.instance }}-${{ inputs.distro-slug }}
path: exitstatus/

View file

@ -22,22 +22,21 @@ on:
required: true
description: The Instances To Test
container-slug:
type: string
required: true
description: The Container Slug
timeout:
type: number
required: false
default: 20
description: The timeout(in minutes) for the workflow
env:
machine_user: kitchen
machine_pass: Password1
machine_port: 5985
KITCHEN_LOCAL_YAML: 'kitchen.windows.yml'
jobs:
Test:
name: ${{ matrix.instance }}
runs-on: ${{ inputs.runs-on }}
runs-on: windows-latest
timeout-minutes: ${{ inputs.timeout }}
strategy:
fail-fast: false
@ -45,58 +44,36 @@ jobs:
instance: ${{ fromJSON(inputs.instances) }}
steps:
- uses: actions/checkout@v3
- uses: actions/checkout@v4
- name: Setup Ruby
uses: ruby/setup-ruby@v1
- name: Set up Python 3.10
uses: actions/setup-python@v5
with:
ruby-version: 2.6.10
bundler-cache: true
- name: Install Chef
uses: actionshub/chef-install@1.1.0
with:
project: chef
version: 16.10.8
- name: Add Chef bindir to PATH
uses: myci-actions/export-env-var-powershell@1
with:
name: PATH
value: "C:\\opscode\\chef\\bin;C:\\opscode\\chef\\embedded\\bin;$env:PATH"
- name: Setup test user
run: |
$password = ConvertTo-SecureString $env:machine_pass -AsPlainText -Force
New-LocalUser $env:machine_user -Password $password
Add-LocalGroupMember -Group "Administrators" -Member $env:machine_user
- name: Set up WinRM
run: |
Set-WSManQuickConfig -Force
- name: Set up Python 3.9
uses: actions/setup-python@v4
with:
python-version: 3.9
python-version: "3.10"
- name: Install Python Dependencies
run: |
pip install -U pip
pip install -r tests/requirements.txt
python3 -m pip install -r tests/requirements.txt
- name: Create Test Instance
- name: Get Version
run: |
bundle exec kitchen create ${{ matrix.instance }}-${{ inputs.distro-slug }}
# We need to get the version here and make it an environment variable
# It is used to install via bootstrap and in the test
# The version is in the instance name
$instance = "${{ matrix.instance }}"
$version = $instance -split "-",2
if ( $version.Count -gt 1 ) {
$version = $version[1].Replace("-", ".")
}
Write-Output "SaltVersion=$version" | Out-File -FilePath $env:GITHUB_ENV -Encoding utf8 -Append
- name: Bootstrap Salt
run: |
. .\bootstrap-salt.ps1 -RunService $false -Version $env:SaltVersion
- name: Test Bootstrap
run: |
bundle exec kitchen verify ${{ matrix.instance }}-${{ inputs.distro-slug }}
- name: Destroy Test Instance
if: always()
run: |
bundle exec kitchen destroy ${{ matrix.instance }}-${{ inputs.distro-slug }}
pytest --cache-clear -v -s -ra --log-cli-level=debug tests/integration/
- name: Set Exit Status
if: always()
@ -106,7 +83,7 @@ jobs:
- name: Upload Exit Status
if: always()
uses: actions/upload-artifact@v3
uses: actions/upload-artifact@v4
with:
name: exitstatus
path: exitstatus
name: exitstatus-${{ github.job }}-${{ matrix.instance }}-${{ inputs.distro-slug }}
path: exitstatus/

10
.gitignore vendored
View file

@ -1,12 +1,10 @@
/.project
*.sw?
*.un~
.vagrant
*__pycache__
tools
venv
# Pycharm
.idea
# test-kitchen
.kitchen.local.yml
kitchen.local.yml
.kitchen/
.bundle/

View file

@ -2,7 +2,7 @@
minimum_pre_commit_version: 1.15.2
repos:
- repo: https://github.com/pre-commit/pre-commit-hooks
rev: v4.3.0
rev: v4.5.0
hooks:
- id: check-merge-conflict # Check for files that contain merge conflict strings.
- id: trailing-whitespace # Trims trailing whitespace.
@ -12,14 +12,76 @@ repos:
- id: end-of-file-fixer # Makes sure files end in a newline and only a newline.
- repo: https://github.com/executablebooks/mdformat
rev: 0.7.14
rev: 0.7.17
hooks:
- id: mdformat
- repo: https://github.com/s0undt3ch/python-tools-scripts
rev: "0.18.6"
hooks:
- id: tools
alias: actionlint
name: Lint GitHub Actions Workflows
files: "^.github/workflows/"
types:
- yaml
args:
- pre-commit
- actionlint
- repo: https://github.com/jazzband/pip-tools
rev: 7.4.1
hooks:
- id: pip-compile
files: ^requirements/release\.(in|txt)$
args:
- requirements/release.in
- repo: https://github.com/asottile/pyupgrade
rev: v3.15.0
hooks:
- id: pyupgrade
name: Rewrite Code to be Py3.6+
args: [--py36-plus]
## DGM name: Rewrite Code to be Py3.9+
## DGM args: [--py39-plus]
- repo: https://github.com/asottile/reorder_python_imports
rev: v3.12.0
hooks:
- id: reorder-python-imports
args: [--py310-plus]
- repo: https://github.com/psf/black
rev: 22.6.0
rev: 24.10.0
hooks:
- id: black
args: []
# - repo: https://github.com/PyCQA/flake8
# rev: 3.9.2
# hooks:
# - id: flake8
# language_version: python3
# additional_dependencies:
# - flake8-mypy-fork
# - flake8-docstrings
# - flake8-typing-imports
#
# - repo: https://github.com/pre-commit/mirrors-mypy
# rev: v1.0.0
# hooks:
# - id: mypy
# alias: mypy-tools
# name: Run mypy against tools
# files: ^tools/.*\.py$
# #args: [--strict]
# additional_dependencies:
# - attrs
# - rich
# - types-attrs
# - types-pyyaml
# - types-requests
- repo: local
hooks:

View file

@ -54,6 +54,7 @@ Daniel Wallace gtmanfred danielwallace@gtmanfred.com
Darko Cerdic darkocerdic
Daryl Turner darylturner d.turner@arkadin.com
David J. Felix DavidJFelix
David Murphy daithi david-dm.murphy@broadcom.com
denmat denmat
Denys Havrysh vutny denys.gavrysh@gmail.com
deployboy deployboy

View file

@ -1,3 +1,366 @@
# v2025.02.24
## What's Changed
- Update requirements to address security issues by @twangboy in https://github.com/saltstack/salt-bootstrap/pull/2073
- Use treeless clone to 'shallow' clone again. by @mrichar1 in https://github.com/saltstack/salt-bootstrap/pull/2022
- Fix powershell instructions by @twangboy in https://github.com/saltstack/salt-bootstrap/pull/2074
- Remove support for macos-12, as deprecated by github by @dmurphy18 in https://github.com/saltstack/salt-bootstrap/pull/2076
**Full Changelog**: https://github.com/saltstack/salt-bootstrap/compare/v2024.12.12...v2025.02.24
# v2024.12.12
## What's Changed
- Restrict use of dnf to Fedora only, otherwise use yum when dealing with RedHat family by @dmurphy18 in https://github.com/saltstack/salt-bootstrap/pull/2070
- Updating container usage to that used in new Salt pipelines for CI/CD, fix Amazon Linux by @dmurphy18 in https://github.com/saltstack/salt-bootstrap/pull/2071
**Full Changelog**: https://github.com/saltstack/salt-bootstrap/compare/v2024.12.09...v2024.12.12
# v2024.12.09
## What's Changed
- Fix quickstart for Windows with new repo by @twangboy in https://github.com/saltstack/salt-bootstrap/pull/2065
- Utilize salt-project packages with SUSE by @dmurphy18 in https://github.com/saltstack/salt-bootstrap/pull/2066
**Full Changelog**: https://github.com/saltstack/salt-bootstrap/compare/v2024.11.29...v2024.12.09
# v2024.11.29
## What's Changed
- Updated date to overcome issue with existing tag for 2024.11.27 by @dmurphy18 in https://github.com/saltstack/salt-bootstrap/pull/2058
- Fix date tag by @dmurphy18 in https://github.com/saltstack/salt-bootstrap/pull/2059
- Revert forcing git tag, other issues with check sums calculated, easiest solution is wait a day to release by @dmurphy18 in https://github.com/saltstack/salt-bootstrap/pull/2060
- Updated date by @dmurphy18 in https://github.com/saltstack/salt-bootstrap/pull/2061
**Full Changelog**: https://github.com/saltstack/salt-bootstrap/compare/v2024.11.27...v2024.11.29
# v2024.11.27
**Full Changelog**: https://github.com/saltstack/salt-bootstrap/compare/v2024.11.27...v2024.11.27
# v2024.11.27
**Full Changelog**: https://github.com/saltstack/salt-bootstrap/compare/v2024.11.27...v2024.11.27
# v2024.11.27
## What's Changed
- Testing git install methods by @dmurphy18 in https://github.com/saltstack/salt-bootstrap/pull/2057
**Full Changelog**: https://github.com/saltstack/salt-bootstrap/compare/v2024.11.26...v2024.11.27
# v2024.11.27
## What's Changed
- Testing git install methods by @dmurphy18 in https://github.com/saltstack/salt-bootstrap/pull/2057
**Full Changelog**: https://github.com/saltstack/salt-bootstrap/compare/v2024.11.26...v2024.11.27
# v2024.11.26
## What's Changed
- Updated URLs in README, and fix deps download issue on RedHat family by @dmurphy18 in https://github.com/saltstack/salt-bootstrap/pull/2052
- Update README script help output and scriptversions by @ScriptAutomate in https://github.com/saltstack/salt-bootstrap/pull/2056
**Full Changelog**: https://github.com/saltstack/salt-bootstrap/compare/v2024.11.21...v2024.11.26
# v2024.11.21
## What's Changed
- Make universal repo url by @twangboy in https://github.com/saltstack/salt-bootstrap/pull/2045
- Update bootstrap shell CI/CD to utilize containers and clean up by @dmurphy18 in https://github.com/saltstack/salt-bootstrap/pull/2039
- \[WIP\] hwclock check missing additional condition on major version by @ruslantum in https://github.com/saltstack/salt-bootstrap/pull/2048
## New Contributors
- @ruslantum made their first contribution in https://github.com/saltstack/salt-bootstrap/pull/2048
**Full Changelog**: https://github.com/saltstack/salt-bootstrap/compare/v2024.11.07...v2024.11.21
# v2024.11.07
## What's Changed
- Changed release runners and shell script date by @dmurphy18 in https://github.com/saltstack/salt-bootstrap/pull/2035
- Forcing git tag to not sign by @dmurphy18 in https://github.com/saltstack/salt-bootstrap/pull/2036
- Fixing git tag signing issue by @dmurphy18 in https://github.com/saltstack/salt-bootstrap/pull/2037
**Full Changelog**: https://github.com/saltstack/salt-bootstrap/compare/v2024.11.06...v2024.11.07
# v2024.11.07
## What's Changed
- Changed release runners and shell script date by @dmurphy18 in https://github.com/saltstack/salt-bootstrap/pull/2035
- Forcing git tag to not sign by @dmurphy18 in https://github.com/saltstack/salt-bootstrap/pull/2036
**Full Changelog**: https://github.com/saltstack/salt-bootstrap/compare/v2024.11.06...v2024.11.07
# v2024.11.07
## What's Changed
- Changed release runners and shell script date by @dmurphy18 in https://github.com/saltstack/salt-bootstrap/pull/2035
**Full Changelog**: https://github.com/saltstack/salt-bootstrap/compare/v2024.11.06...v2024.11.07
# v2024.09.24
## What's Changed
- Add KDE neon to list of Ubuntu derivates (again) by @digitalkram in https://github.com/saltstack/salt-bootstrap/pull/2016
- Debugging build failures on Arch, Fedora and Tumbleweed by @dmurphy18 in https://github.com/saltstack/salt-bootstrap/pull/2018
- Reset \_PIP_INSTALL_ARGS to empty for Alpine, similar to Ubuntu and Debian by @dmurphy18 in https://github.com/saltstack/salt-bootstrap/pull/2019
- Updated deprecated versions for actions for upload, download, checkout for release by @dmurphy18 in https://github.com/saltstack/salt-bootstrap/pull/2020
- Further action updates by @dmurphy18 in https://github.com/saltstack/salt-bootstrap/pull/2021
**Full Changelog**: https://github.com/saltstack/salt-bootstrap/compare/v2024.07.23...v2024.09.24
# v2024.09.23
## What's Changed
- Add KDE neon to list of Ubuntu derivates (again) by @digitalkram in https://github.com/saltstack/salt-bootstrap/pull/2016
- Debugging build failures on Arch, Fedora and Tumbleweed by @dmurphy18 in https://github.com/saltstack/salt-bootstrap/pull/2018
- Reset \_PIP_INSTALL_ARGS to empty for Alpine, similar to Ubuntu and Debian by @dmurphy18 in https://github.com/saltstack/salt-bootstrap/pull/2019
- Updated deprecated versions for actions for upload, download, checkout for release by @dmurphy18 in https://github.com/saltstack/salt-bootstrap/pull/2020
**Full Changelog**: https://github.com/saltstack/salt-bootstrap/compare/v2024.07.23...v2024.09.23
# v2024.09.23
## What's Changed
- Add KDE neon to list of Ubuntu derivates (again) by @digitalkram in https://github.com/saltstack/salt-bootstrap/pull/2016
- Debugging build failures on Arch, Fedora and Tumbleweed by @dmurphy18 in https://github.com/saltstack/salt-bootstrap/pull/2018
- Reset \_PIP_INSTALL_ARGS to empty for Alpine, similar to Ubuntu and Debian by @dmurphy18 in https://github.com/saltstack/salt-bootstrap/pull/2019
**Full Changelog**: https://github.com/saltstack/salt-bootstrap/compare/v2024.07.23...v2024.09.23
# v2024.07.23
## What's Changed
- Updated link for Supported Operating Systems and Repository supported by Salt by @dmurphy18 in https://github.com/saltstack/salt-bootstrap/pull/2010
- Cleanup use of the term 'Post Neon' given only support 3006 and up by @dmurphy18 in https://github.com/saltstack/salt-bootstrap/pull/2011
- Added support with -W for installing salt-api by @dmurphy18 in https://github.com/saltstack/salt-bootstrap/pull/2013
**Full Changelog**: https://github.com/saltstack/salt-bootstrap/compare/v2024.07.18...v2024.07.23
# v2024.07.18
## What's Changed
- Updated README, and removed experimental to ability install different Python version which was limited to RHEL 7, which is EOL by @dmurphy18 in https://github.com/saltstack/salt-bootstrap/pull/2009
**Full Changelog**: https://github.com/saltstack/salt-bootstrap/compare/v2024.07.16...v2024.07.18
# v2024.07.16
## What's Changed
- Update bootstrap-salt.sh by @javatask in https://github.com/saltstack/salt-bootstrap/pull/2005
- Updated GitHub actions to later v4 by @dmurphy18 in https://github.com/saltstack/salt-bootstrap/pull/2004
- Don't sort lists and dicts, as order of items matters by @dmurphy18 in https://github.com/saltstack/salt-bootstrap/pull/2006
## New Contributors
- @javatask made their first contribution in https://github.com/saltstack/salt-bootstrap/pull/2005
**Full Changelog**: https://github.com/saltstack/salt-bootstrap/compare/v2024.07.12...v2024.07.16
# v2024.07.12
## What's Changed
- Add script version to powershell script by @twangboy in https://github.com/saltstack/salt-bootstrap/pull/1996
- Add support for mint-21 by @jhubbardnso in https://github.com/saltstack/salt-bootstrap/pull/1997
- Added support for Amazon 2023, Debian 12, Ubuntu 24.04, removed EOL and BSD OSs and Python 2.7 support by @dmurphy18 in https://github.com/saltstack/salt-bootstrap/pull/1987
## New Contributors
- @jhubbardnso made their first contribution in https://github.com/saltstack/salt-bootstrap/pull/1997
**Full Changelog**: https://github.com/saltstack/salt-bootstrap/compare/v2024.04.03...v2024.07.12
# v2024.07.11
## What's Changed
- Migrated to using GitHub Actions
- Removed support of End-Of-Life OS's, for example: Debian 7, 8, 9 & 10, RHEL 7
- Removed support for FreeBSD and OpenBSD
- Removed support for Solaris and it's derivatives
- Removed support for EOL Salt releases, pre-3006
- Added support for new OS's, for example: Ubuntu 24.04, Debian 12, Amazon 2023
- Updated to minimum Python 3.10 version from 3.9
- Removed '-y' option which was experimental and only on RHEL 7 or less which are now EOL
- Updated to current stable version of Ruby v3.3.4
- Removed git-master support for Photon 4 & 5 due to gcc errors building salt.
- Add support for Arm64 for MacOS
**Full Changelog**: https://github.com/saltstack/salt-bootstrap/compare/v2024.04.03...v2024.07.11
# v2024.04.03
## What's Changed
- Remove automated PR against salt repo at release by @ScriptAutomate in https://github.com/saltstack/salt-bootstrap/pull/1984
- Update actions by @twangboy in https://github.com/saltstack/salt-bootstrap/pull/1985
- Fix DEBIAN Keyring url by @Dudek-AMS in https://github.com/saltstack/salt-bootstrap/pull/1983
- Fix script to support installing RC on Windows by @twangboy in https://github.com/saltstack/salt-bootstrap/pull/1993
## New Contributors
- @Dudek-AMS made their first contribution in https://github.com/saltstack/salt-bootstrap/pull/1983
**Full Changelog**: https://github.com/saltstack/salt-bootstrap/compare/v2024.01.04...v2024.04.03
# v2024.01.04
## What's Changed
- Add arm support for Debian 10 by @twangboy in https://github.com/saltstack/salt-bootstrap/pull/1981
**Full Changelog**: https://github.com/saltstack/salt-bootstrap/compare/v2023.11.16...v2024.01.04
# v2023.11.16
## What's Changed
- checking out stable branch on update-s3-bucket job by @felippeb in https://github.com/saltstack/salt-bootstrap/pull/1977
**Full Changelog**: https://github.com/saltstack/salt-bootstrap/compare/v2023.11.07...v2023.11.16
# v2023.11.07
## What's Changed
- cleanup old information in the README.rst file by @garethgreenaway in https://github.com/saltstack/salt-bootstrap/pull/1955
- Moving quick start scripts to bootstrap repo. by @garethgreenaway in https://github.com/saltstack/salt-bootstrap/pull/1960
- Suppress progress bar by @twangboy in https://github.com/saltstack/salt-bootstrap/pull/1964
- Fix global variable by @twangboy in https://github.com/saltstack/salt-bootstrap/pull/1965
- Debian 12 arm64 by @joelpmichael in https://github.com/saltstack/salt-bootstrap/pull/1962
- Mirror Linux output, display root_dir by @twangboy in https://github.com/saltstack/salt-bootstrap/pull/1967
- Add asterisks to the output by @twangboy in https://github.com/saltstack/salt-bootstrap/pull/1968
- Fixes to salt-quick-start.sh by @garethgreenaway in https://github.com/saltstack/salt-bootstrap/pull/1973
- Update requirements by @twangboy in https://github.com/saltstack/salt-bootstrap/pull/1974
**Full Changelog**: https://github.com/saltstack/salt-bootstrap/compare/v2023.08.03...v2023.11.07
# v2023.08.03
## What's Changed
- Set RootDir depending on Salt Version by @twangboy in https://github.com/saltstack/salt-bootstrap/pull/1952
- Bump to `certifi==2023.07.22` due to https://github.com/advisories/GHSA-xqr8-7jwr-rhp7 by @s0undt3ch in https://github.com/saltstack/salt-bootstrap/pull/1954
- Update windows commands to support TLS1.2 by @twangboy in https://github.com/saltstack/salt-bootstrap/pull/1956
**Full Changelog**: https://github.com/saltstack/salt-bootstrap/compare/v2023.07.25...v2023.08.03
# v2023.07.25
## What's Changed
- fix gpg pub key name for nightly rhel_onedir_repository by @ITJamie in https://github.com/saltstack/salt-bootstrap/pull/1943
- Adding quickstart option by @garethgreenaway in https://github.com/saltstack/salt-bootstrap/pull/1945
- fix install_amazon_linux_ami_2_onedir nightly gpg key path by @ITJamie in https://github.com/saltstack/salt-bootstrap/pull/1949
## New Contributors
- @ITJamie made their first contribution in https://github.com/saltstack/salt-bootstrap/pull/1943
**Full Changelog**: https://github.com/saltstack/salt-bootstrap/compare/v2023.06.28...v2023.07.25
# v2023.06.28
## What's Changed
- SUSE Fixes by @garethgreenaway in https://github.com/saltstack/salt-bootstrap/pull/1925
- Add old_stable type by @garethgreenaway in https://github.com/saltstack/salt-bootstrap/pull/1934
- Test out the minor versions by @garethgreenaway in https://github.com/saltstack/salt-bootstrap/pull/1936
**Full Changelog**: https://github.com/saltstack/salt-bootstrap/compare/v2023.04.26...v2023.06.28
# v2023.04.26
## What's Changed
- Updates for Fedora and Photon by @garethgreenaway in https://github.com/saltstack/salt-bootstrap/pull/1920
- Fixing defaults by @garethgreenaway in https://github.com/saltstack/salt-bootstrap/pull/1921
**Full Changelog**: https://github.com/saltstack/salt-bootstrap/compare/v2023.04.21...v2023.04.26
# v2023.04.21
## What's Changed
- Update release process by @s0undt3ch in https://github.com/saltstack/salt-bootstrap/pull/1908
- Update with 3006 stable installs by @garethgreenaway in https://github.com/saltstack/salt-bootstrap/pull/1906
- Add support for 3006 on windows bootstrap script by @twangboy in https://github.com/saltstack/salt-bootstrap/pull/1918
- Fixes for 3006 by @garethgreenaway in https://github.com/saltstack/salt-bootstrap/pull/1912
- Don't use GITHUB_OUTPUT by @s0undt3ch in https://github.com/saltstack/salt-bootstrap/pull/1911
**Full Changelog**: https://github.com/saltstack/salt-bootstrap/compare/v2023.04.06...v2023.04.21
# v2023.04.06
## What's Changed
- Fix missing functions for post-installation on EL clones by @ggiesen in https://github.com/saltstack/salt-bootstrap/pull/1877
- Support for dotZero in version beginning in 3006 by @garethgreenaway in https://github.com/saltstack/salt-bootstrap/pull/1879
- Update gemfile by @garethgreenaway in https://github.com/saltstack/salt-bootstrap/pull/1882
- update openbsd to 7, seems like 6 (6.9) is no longer available. by @garethgreenaway in https://github.com/saltstack/salt-bootstrap/pull/1881
- Adding tests for installing onedir packages by @garethgreenaway in https://github.com/saltstack/salt-bootstrap/pull/1880
- Removing EPEL, which is no longer needed. by @garethgreenaway in https://github.com/saltstack/salt-bootstrap/pull/1884
- Add support for the -R flag on macOS. by @pjcreath in https://github.com/saltstack/salt-bootstrap/pull/1871
- feat: add `onedir nightly` support by @myii in https://github.com/saltstack/salt-bootstrap/pull/1885
- ci: add `fedora-37` & `fedora-38` by @myii in https://github.com/saltstack/salt-bootstrap/pull/1840
- Debian ARM Fix by @garethgreenaway in https://github.com/saltstack/salt-bootstrap/pull/1887
- Added Pop!\_OS as a Ubuntu derivative by @shombando in https://github.com/saltstack/salt-bootstrap/pull/1888
- Don't attempt to stable install on Red Hat onedir only systems by @garethgreenaway in https://github.com/saltstack/salt-bootstrap/pull/1889
- \[docs\] Improve Windows readme instructions and links in script by @dafyddj in https://github.com/saltstack/salt-bootstrap/pull/1897
- Adding newer versions of CentOS Stream and AlmaLinux by @garethgreenaway in https://github.com/saltstack/salt-bootstrap/pull/1890
- Add support for KDE neon based on Ubuntu 22.04 by @digitalkram in https://github.com/saltstack/salt-bootstrap/pull/1894
- Removing Ubuntu 16.04 by @garethgreenaway in https://github.com/saltstack/salt-bootstrap/pull/1886
- Adding rockylinux 9 by @garethgreenaway in https://github.com/saltstack/salt-bootstrap/pull/1899
- Bootstrap fixes for 3006 by @garethgreenaway in https://github.com/saltstack/salt-bootstrap/pull/1900
- Adding 3006.0rc1 to Github actions. by @garethgreenaway in https://github.com/saltstack/salt-bootstrap/pull/1901
- Adding 3006.0rc2 to bootstrap tests. by @garethgreenaway in https://github.com/saltstack/salt-bootstrap/pull/1902
## New Contributors
- @ggiesen made their first contribution in https://github.com/saltstack/salt-bootstrap/pull/1877
- @shombando made their first contribution in https://github.com/saltstack/salt-bootstrap/pull/1888
- @digitalkram made their first contribution in https://github.com/saltstack/salt-bootstrap/pull/1894
**Full Changelog**: https://github.com/saltstack/salt-bootstrap/compare/v2022.10.04...v2023.04.06
# v2022.10.04
## What's Changed
- Update README for Windows installation by @eozer in https://github.com/saltstack/salt-bootstrap/pull/1860
- Update the bootstrap script to work with final onedir releases. by @garethgreenaway in https://github.com/saltstack/salt-bootstrap/pull/1863
- Install Oracle's EPEL repo on Oracle Linux 7 and 8. by @pjcreath in https://github.com/saltstack/salt-bootstrap/pull/1839
- onedir install - correct version regex by @jeff350 in https://github.com/saltstack/salt-bootstrap/pull/1868
- Ensure the REPO_ARCH for Arm64 is correct. by @garethgreenaway in https://github.com/saltstack/salt-bootstrap/pull/1867
## New Contributors
- @eozer made their first contribution in https://github.com/saltstack/salt-bootstrap/pull/1860
- @jeff350 made their first contribution in https://github.com/saltstack/salt-bootstrap/pull/1868
**Full Changelog**: https://github.com/saltstack/salt-bootstrap/compare/v2022.08.13...v2022.10.04
# v2022.08.13
## What's Changed
@ -428,7 +791,7 @@
- add apt-transport-https for ubuntu. (epcim) #896
- Fix expanding shell script position parameters with nounset enabled. (vutny) #895
- RFC: Add tests for bootstrap-salt.ps1. (themalkolm) #893
- Keep original name of salt executable executable. (themalkolm) #857
- Keep original name of salt executable. (themalkolm) #857
# v2016.06.27:

View file

@ -21,20 +21,20 @@ Please read the following guidelines before you
1. **Use the GitHub issue search** -- check if the issue has
already been reported. If it has been, please comment on the existing issue.
2. **Check if the issue has been fixed** -- If you found a possible problem, or bug,
1. **Check if the issue has been fixed** -- If you found a possible problem, or bug,
please try to bootstrap using the bootstrap scirpt from the develop branch. The
issue you are having might have already been fixed and it's just not yet included
in the stable release.
```
curl -o bootstrap-salt.sh -L https://raw.githubusercontent.com/saltstack/salt-bootstrap/develop/bootstrap-salt.sh
sudo sh bootstrap-salt.sh git master
```
```
curl -o bootstrap-salt.sh -L https://raw.githubusercontent.com/saltstack/salt-bootstrap/develop/bootstrap-salt.sh
sudo sh bootstrap-salt.sh git master
```
3. **Isolate the demonstrable problem** -- make sure that the
1. **Isolate the demonstrable problem** -- make sure that the
code in the project's repository is *definitely* responsible for the issue.
4. **Include a reproducible example** -- Provide the steps which
1. **Include a reproducible example** -- Provide the steps which
led you to the problem.
Please try to be as detailed as possible in your report. What is your
@ -163,8 +163,8 @@ The release process consists of the following steps:
1. Merge in any outstanding PRs that are ready.
1. Add new contributors to the [AUTHORS](https://github.com/saltstack/salt-bootstrap/blob/develop/AUTHORS.rst) file.
1. Update the [ChangeLog](https://github.com/saltstack/salt-bootstrap/blob/develop/ChangeLog).
1. Update the version number in the bootstrap script. The version number is date-based, `<year.month.day>`.
For example, version `2018.08.15` was released on August 15, 2018.
1. Update the version number in the bootstrap script. The version number is number-based major version with minor version, `<300X.Y>`.
For example, version `3006.6` is major version `3006` and minior version `6`.
1. Merge the `develop` branch into the `stable` branch.
1. Update `bootstrap.saltproject.io` with the new stable release. The checksum on the
[README page](https://github.com/saltstack/salt-bootstrap/blob/develop/README.rst)
@ -177,83 +177,82 @@ The following operating systems are detected, but Salt and its dependency
installation functions are not developed yet:
- BSD:
- NetBSD
- NetBSD
- Linux:
- Slackware
- Slackware
- SunOS:
- OpenIndiana
- Oracle Solaris
- OmniOS (Illumos)
- OpenIndiana
- Oracle Solaris
- OmniOS (Illumos)
In order to install Salt for a distribution, you need to define the following:
1. To Install Dependencies, which is required, one of:
```
install_<distro>_<major_version>_<install_type>_deps
install_<distro>_<major_version>_<minor_version>_<install_type>_deps
install_<distro>_<major_version>_deps
install_<distro>_<major_version>_<minor_version>_deps
install_<distro>_<install_type>_deps
install_<distro>_deps
```
```
install_<distro>_<major_version>_<install_type>_deps
install_<distro>_<major_version>_<minor_version>_<install_type>_deps
install_<distro>_<major_version>_deps
install_<distro>_<major_version>_<minor_version>_deps
install_<distro>_<install_type>_deps
install_<distro>_deps
```
2. Optionally, define a minion configuration function, which will be called if the
``-c`` option is passed. One of:
1. Optionally, define a minion configuration function, which will be called if the
`-c` option is passed. One of:
```
config_<distro>_<major_version>_<install_type>_salt
config_<distro>_<major_version>_<minor_version>_<install_type>_salt
config_<distro>_<major_version>_salt
config_<distro>_<major_version>_<minor_version>_salt
config_<distro>_<install_type>_salt
config_<distro>_salt
config_salt (THIS ONE IS ALREADY DEFINED AS THE DEFAULT)
```
```
config_<distro>_<major_version>_<install_type>_salt
config_<distro>_<major_version>_<minor_version>_<install_type>_salt
config_<distro>_<major_version>_salt
config_<distro>_<major_version>_<minor_version>_salt
config_<distro>_<install_type>_salt
config_<distro>_salt
config_salt (THIS ONE IS ALREADY DEFINED AS THE DEFAULT)
```
3. Optionally, define a Salt master pre-seed function, which will be called if the
``-k`` (pre-seed master keys) option is passed. One of:
1. Optionally, define a Salt master pre-seed function, which will be called if the
`-k` (pre-seed master keys) option is passed. One of:
```
preseed_<distro>_<major_version>_<install_type>_master
preseed_<distro>_<major_version>_<minor_version>_<install_type>_master
preseed_<distro>_<major_version>_master
preseed_<distro>_<major_version>_<minor_version>_master
preseed_<distro>_<install_type>_master
preseed_<distro>_master
preseed_master (THIS ONE IS ALREADY DEFINED AS THE DEFAULT)
```
```
preseed_<distro>_<major_version>_<install_type>_master
preseed_<distro>_<major_version>_<minor_version>_<install_type>_master
preseed_<distro>_<major_version>_master
preseed_<distro>_<major_version>_<minor_version>_master
preseed_<distro>_<install_type>_master
preseed_<distro>_master
preseed_master (THIS ONE IS ALREADY DEFINED AS THE DEFAULT)
```
4. To install salt, which, of course, is required, one of:
1. To install salt, which, of course, is required, one of:
```
install_<distro>_<major_version>_<install_type>
install_<distro>_<major_version>_<minor_version>_<install_type>
install_<distro>_<install_type>
```
```
install_<distro>_<major_version>_<install_type>
install_<distro>_<major_version>_<minor_version>_<install_type>
install_<distro>_<install_type>
```
5. Optionally, define a post install function, one of:
1. Optionally, define a post install function, one of:
```
install_<distro>_<major_version>_<install_type>_post
install_<distro>_<major_version>_<minor_version>_<install_type>_post
install_<distro>_<major_version>_post
install_<distro>_<major_version>_<minor_version>_post
install_<distro>_<install_type>_post
install_<distro>_post
```
```
install_<distro>_<major_version>_<install_type>_post
install_<distro>_<major_version>_<minor_version>_<install_type>_post
install_<distro>_<major_version>_post
install_<distro>_<major_version>_<minor_version>_post
install_<distro>_<install_type>_post
install_<distro>_post
```
6. Optionally, define a start daemons function, one of:
1. Optionally, define a start daemons function, one of:
```
install_<distro>_<major_version>_<install_type>_restart_daemons
install_<distro>_<major_version>_<minor_version>_<install_type>_restart_daemons
install_<distro>_<major_version>_restart_daemons
install_<distro>_<major_version>_<minor_version>_restart_daemons
install_<distro>_<install_type>_restart_daemons
install_<distro>_restart_daemons
```
```
install_<distro>_<major_version>_<install_type>_restart_daemons
install_<distro>_<major_version>_<minor_version>_<install_type>_restart_daemons
install_<distro>_<major_version>_restart_daemons
install_<distro>_<major_version>_<minor_version>_restart_daemons
install_<distro>_<install_type>_restart_daemons
install_<distro>_restart_daemons
```
**NOTE**
@ -262,26 +261,26 @@ start if they're not running.
7. Optionally, define a daemons running function, one of:
```
daemons_running_<distro>_<major_version>_<install_type>
daemons_running_<distro>_<major_version>_<minor_version>_<install_type>
daemons_running_<distro>_<major_version>
daemons_running_<distro>_<major_version>_<minor_version>
daemons_running_<distro>_<install_type>
daemons_running_<distro>
daemons_running (THIS ONE IS ALREADY DEFINED AS THE DEFAULT)
```
```
daemons_running_<distro>_<major_version>_<install_type>
daemons_running_<distro>_<major_version>_<minor_version>_<install_type>
daemons_running_<distro>_<major_version>
daemons_running_<distro>_<major_version>_<minor_version>
daemons_running_<distro>_<install_type>
daemons_running_<distro>
daemons_running (THIS ONE IS ALREADY DEFINED AS THE DEFAULT)
```
8. Optionally, check enabled Services:
1. Optionally, check enabled Services:
```
install_<distro>_<major_version>_<install_type>_check_services
install_<distro>_<major_version>_<minor_version>_<install_type>_check_services
install_<distro>_<major_version>_check_services
install_<distro>_<major_version>_<minor_version>_check_services
install_<distro>_<install_type>_check_services
install_<distro>_check_services
```
```
install_<distro>_<major_version>_<install_type>_check_services
install_<distro>_<major_version>_<minor_version>_<install_type>_check_services
install_<distro>_<major_version>_check_services
install_<distro>_<major_version>_<minor_version>_check_services
install_<distro>_<install_type>_check_services
install_<distro>_check_services
```
**NOTE**

View file

@ -1,8 +1,8 @@
FROM ubuntu-upstart:14.04
FROM ubuntu:20.04
MAINTAINER "SaltStack Team"
# Bootstrap script options: install Salt Master by default
ENV BOOTSTRAP_OPTS='-M'
ENV BOOTSTRAP_OPTS='-M -x python3'
# Version of salt to install: stable or git
ENV SALT_VERSION=stable

11
Gemfile
View file

@ -1,11 +0,0 @@
# frozen_string_literal: true
source "https://rubygems.org"
gem 'test-kitchen', '>= 3.2.2'
gem 'kitchen-salt', '>= 0.7.2'
gem 'kitchen-docker', git: 'https://github.com/test-kitchen/kitchen-docker.git'
group :vagrant do
gem 'kitchen-vagrant'
end

View file

@ -22,6 +22,11 @@ that, please read the generated help by passing ``-h`` to the script or even bet
Also, to secure your Salt installation, check out these instructions for `hardening salt`_.
Older versions of Salt prior to 3006 are no longer supported by this bootstrap script as they have
reached their End-Of-Life. Only onedir-based architecture versions of Salt are supported by this
bootstrap script.
Bootstrap
=========
@ -32,41 +37,37 @@ sum** of the downloaded ``bootstrap-salt.sh`` file.
The SHA256 sum of the ``bootstrap-salt.sh`` file, per release, is:
- 2022.08.13: ``af922699c1a2bb3b89b6dac04397389999df1b3416b8d0b5c93766412f14c95c``
- 2022.08.12: ``b46f018bbf02f45c6096ab96e9261a9adb3a78ff65092c3976f32ffde909afcb``
- 2022.05.19: ``e92e1df6930285cf23eda188bee3cfa3dd6c577b4fb7aa91b29213ad820199b1``
- 2022.03.15: ``8f65952c3435f441e7f793941d5162d3ec2033a9ef82722ff1da67a2ef860a2f``
- 2021.09.17: ``090d652cd6290debce0e3a4eded65086a4272e69446e711eb26f87160593b6a2``
- 2021.09.14: ``30fdcba972f449630b4f13492cb5525e69e08fa2cdb66a6dc78f1536ad279e52``
- 2021.08.19: ``ee40a9d8d057cce88a288fc1cb94b1d31408a61d262db6f77b34ad63d66f0806``
- 2021.06.23: ``35b397dd0a50f832af453c17f138fd29e3692e492d7f463c404a57e1fac10665``
- 2021.03.02: ``91baa0073308f1be20c7be65238ef67e5733c75285314b302a5b2456e73a0758``
- 2020.10.20: ``b47bfc8d63cccf22eb4cd94491d30cc1d571e184be25a5be7f775e7f2daaf6e2``
- 2020.10.19: ``f6c3e2c52f98d115809044b09062219369957caf30228b594033f0543e202c52``
- 2020.06.23: ``1d07db867c195c864d0ae70664524f2099cc9a46872953293c67c3f239d4f4f5``
- 2020.05.28: ``6b3ea15c78f01060ab12fc01c0bb18480eaf36858c7ba188b200c0fb11aac173``
- 2020.02.24: ``efc46700aca78b8e51d7af9b06293f52ad495f3a8179c6bfb21a8c97ee41f1b7``
- 2020.02.04: ``ce877651b4938e3480f76b1629f582437f6ca8b73d7199fdb9e905e86fe85b34``
- 2020.01.29: ``e9afdfa877998c1c7f0e141a6728b33d0d24348e197aab2b9bde4fe6bc6db1b2``
- 2020.01.21: ``53299aa0dfbf7ab381f3856bb7babfc04a1d6525be11db0b9466277b1e4d0c1a``
- 2019.11.04: ``905924fccd4ebf168d19ba598bf10af53efe02302b792aeb15433e73fd3ad1d2``
- 2019.10.03: ``34f196f06d586ce9e1b9907660ea6e67caf57abcecfea66e0343697e3fd0d17d``
- 2019.05.20: ``46fb5e4b7815efafd69fd703f033fe86e7b584b6770f7e0b936995bcae1cedd8``
- 2019.02.27: ``23728e4b5e54f564062070e3be53c5602b55c24c9a76671968abbf3d609258cb``
- 2019.01.08: ``ab7f29b75711da4bb79aff98d46654f910d569ebe3e908753a3c5119017bb163``
- 2018.08.15: ``6d414a39439a7335af1b78203f9d37e11c972b3c49c519742c6405e2944c6c4b``
- 2018.08.13: ``98284bdc2b5ebaeb619b22090374e42a68e8fdefe6bff1e73bd1760db4407ed0``
- 2018.04.25: ``e2e3397d6642ba6462174b4723f1b30d04229b75efc099a553e15ea727877dfb``
- 2017.12.13: ``c127b3aa4a8422f6b81f5b4a40d31d13cec97bf3a39bca9c11a28f24910a6895``
- 2017.08.17: ``909b4d35696b9867b34b22ef4b60edbc5a0e9f8d1ed8d05f922acb79a02e46e3``
- 2017.05.24: ``8c42c2e5ad3d4384ddc557da5c214ba3e40c056ca1b758d14a392c1364650e89``
- 2025.02.24: ``a0e3a58fc6358a7c6f708ee4910229e72fbdab7161819514b0696146a2edb62d``
- 2024.12.12: ``7cc91adfa5a15ff57d203dc2b79608c773efc639d4e9bf03861198903e11becd``
- 2024.12.09: ``44f9405a6d9622ad8fa7c93e83a52e01ca328f27e4e9dea4a52268c6a22dbe6d``
- 2024.11.29: ``0ac87384dee051aceded69704485a5de0e4a308551a462b10c262111b57acff0``
- 2024.11.27: ``e972bd1ef01d09cd1d9294374ef974c9e3dd9a2aee37cf3859144585fd8bf1d0``
- 2024.11.26: ``832c7a20b96e1df171d715323df9afff8a11aef42d15598c007f240bc89d723c``
- 2024.11.21: ``ddf624c3a94d721da3f7629402a6c7ecc9dd96d13c1ead2a626314e97cee982a``
- 2024.11.07: ``70a9783649e129985563d1a86cf28b8984499643e62ae1dc47dc008bd204fcbb``
- 2024.09.24: ``88e4e4cad4b115a7b721dd9c21d5ee5df390b5b73b63de48f99399146f43f371``
- 2024.07.23: ``7212b6b497b5c3d2bf15bfe5301625ec7bc1bf3e2949cd47d8e2073614935bf8``
- 2024.07.18: ``92a74e7ff8a9032a7713c2b3955991d66aaca08a4eb9494ce3dd66b5044f6bc3``
- 2024.07.16: ``4f76d1549c71d696a605f97645d8633b6269c4d9ae54b1fbdfedca1dcf893e7a``
- 2024.07.12: ``526f4a5383db308081a120e26988679238ca6add4bf7a82120cbe71d57ab826e``
- 2024.04.03: ``450ba5cde4af8d6cb5c56c66791f87b918bcda70ccdfb10abf3cc294143c8073``
- 2024.01.04: ``cebcbc67895e238d1cf0024922a7fe5c772b9aaba346490c8fa6193bb0d993d4``
- 2023.11.16: ``3757ed82161113fed4c711fd7332e922265eeeb54e6e4f657a08ea82d57cc3a2``
- 2023.11.07: ``91f8a3bfb8b14476f7793c7f20cec7bfc638c10c073786f9a8904a858a929784``
- 2023.08.03: ``963e559bdb85adecfbbec2c3b81190392bc59b24992e4491e919cd748eeafcb8``
- 2023.07.25: ``eaaaadaed40fe2e791d59a9e48f24449428a35ca61782d9139f1272c05524323``
- 2023.06.28: ``f45f5da8abee27ef385131f5cfa9382d3a15863d0a05688a0404d2f057b27776``
- 2023.04.26: ``516fa9cc2e258cb8484ff360b9674b46918f657985c21ca9301e42a3dd263d60``
- 2023.04.21: ``e364428aa7a25f8e2c5e18e36e222351724c6cf35a1d57158f3357cde1e0a0f0``
- 2023.04.06: ``994bf7e8bd92fe6d70d291c7562aff299f5651046b4e76dfa506cee0d9bb0843``
If you're looking for a *one-liner* to install Salt, please scroll to the bottom and use the
instructions for `Installing via an Insecure One-Liner`_.
There are also .sha256 files for verifying against in the repo for the stable branch. You can also
get the correct sha256 sum for the stable release from https://bootstrap.saltproject.io/sha256 and
https://winbootstrap.saltproject.io/sha256
get the correct sha256 sum for the stable release from
https://github.com/saltstack/salt-bootstrap/releases/latest/download/bootstrap-salt.sh.sha256 and
https://github.com/saltstack/salt-bootstrap/releases/latest/download/bootstrap-salt.ps1.sha256
Contributing
------------
@ -89,117 +90,123 @@ To view the latest options and descriptions for ``salt-bootstrap``, use ``-h`` a
Usage : bootstrap-salt.sh [options] <install-type> [install-type-args]
Installation types:
- stable Install latest stable release. This is the default
install type
- stable [branch] Install latest version on a branch. Only supported
for packages available at repo.saltproject.io
- stable [version] Install a specific version. Only supported for
packages available at repo.saltproject.io
To pin a 3xxx minor version, specify it as 3xxx.0
- testing RHEL-family specific: configure EPEL testing repo
- git Install from the head of the master branch
- git [ref] Install from any git ref (such as a branch, tag, or
commit)
- stable Install latest stable release. This is the default
install type
- stable [branch] Install latest version on a branch. Only supported
for packages available at packages.broadcom.com
- stable [version] Install a specific version. Only supported for
packages available at packages.broadcom.com
To pin a 3xxx minor version, specify it as 3xxx.0
- testing RHEL-family specific: configure EPEL testing repo
- git Install from the head of the master branch
- git [ref] Install from any git ref (such as a branch, tag, or
commit)
- onedir Install latest onedir release.
- onedir [version] Install a specific version. Only supported for
onedir packages available at packages.broadcom.com
- onedir_rc Install latest onedir RC release.
- onedir_rc [version] Install a specific version. Only supported for
onedir RC packages available at packages.broadcom.com
Examples:
- bootstrap-salt.sh
- bootstrap-salt.sh stable
- bootstrap-salt.sh stable 3004.1
- bootstrap-salt.sh stable v3003.4
- bootstrap-salt.sh stable 3006
- bootstrap-salt.sh stable 3006.1
- bootstrap-salt.sh testing
- bootstrap-salt.sh git
- bootstrap-salt.sh git 3004.1
- bootstrap-salt.sh git v3003.4
- bootstrap-salt.sh git 3006.7
- bootstrap-salt.sh git v3006.8
- bootstrap-salt.sh git 3007.1
- bootstrap-salt.sh git v3007.1
- bootstrap-salt.sh git 06f249901a2e2f1ed310d58ea3921a129f214358
- bootstrap-salt.sh onedir
- bootstrap-salt.sh onedir 3006
- bootstrap-salt.sh onedir_rc
- bootstrap-salt.sh onedir_rc 3008
Options:
-h Display this message
-v Display script version
-n No colours
-D Show debug output
-a Pip install all Python pkg dependencies for Salt. Requires -V to install
all pip pkgs into the virtualenv.
(Only available for Ubuntu based distributions)
-A Pass the salt-master DNS name or IP. This will be stored under
\${BS_SALT_ETC_DIR}/minion.d/99-master-address.conf
-b Assume that dependencies are already installed and software sources are
set up. If git is selected, git tree is still checked out as dependency
step.
-c Temporary configuration directory
-g Salt Git repository URL. Default: https://github.com/saltstack/salt.git
-w Install packages from downstream package repository rather than
upstream, saltstack package repository. This is currently only
implemented for SUSE.
-k Temporary directory holding the minion keys which will pre-seed
the master.
-s Sleep time used when waiting for daemons to start, restart and when
checking for the services running. Default: 3
-L Also install salt-cloud and required python-libcloud package
-M Also install salt-master
-S Also install salt-syndic
-N Do not install salt-minion
-X Do not start daemons after installation
-C Only run the configuration function. Implies -F (forced overwrite).
To overwrite Master, Syndic or Api configs, -M,-S or -W, respectively, must
also be specified. Salt installation will be ommitted, but some of the
dependencies could be installed to write configuration with -j or -J.
-d Disables checking if Salt services are enabled to start on system boot.
You can also do this by touching /tmp/disable_salt_checks on the target
host. Default: ${BS_FALSE}
-P Allow pip based installations. On some distributions the required salt
packages or its dependencies are not available as a package for that
distribution. Using this flag allows the script to use pip as a last
resort method. NOTE: This only works for functions which actually
implement pip based installations.
-U If set, fully upgrade the system prior to bootstrapping Salt
host. Default: \${BS_FALSE}
-D Show debug output
-f Force shallow cloning for git installations.
This may result in an "n/a" in the version number.
-F Allow copied files to overwrite existing (config, init.d, etc)
-g Salt Git repository URL. Default: https://github.com/saltstack/salt.git
-h Display this message
-H Use the specified HTTP proxy for all download URLs (including https://).
For example: http://myproxy.example.com:3128
-i Pass the salt-minion id. This will be stored under
\${BS_SALT_ETC_DIR}/minion_id
-I If set, allow insecure connections while downloading any files. For
example, pass '--no-check-certificate' to 'wget' or '--insecure' to
'curl'. On Debian and Ubuntu, using this option with -U allows obtaining
GnuPG archive keys insecurely if distro has changed release signatures.
-F Allow copied files to overwrite existing (config, init.d, etc)
-K If set, keep the temporary files in the temporary directories specified
with -c and -k
-C Only run the configuration function. Implies -F (forced overwrite).
To overwrite Master or Syndic configs, -M or -S, respectively, must
also be specified. Salt installation will be ommitted, but some of the
dependencies could be installed to write configuration with -j or -J.
-A Pass the salt-master DNS name or IP. This will be stored under
${BS_SALT_ETC_DIR}/minion.d/99-master-address.conf
-i Pass the salt-minion id. This will be stored under
${BS_SALT_ETC_DIR}/minion_id
-p Extra-package to install while installing Salt dependencies. One package
per -p flag. You are responsible for providing the proper package name.
-H Use the specified HTTP proxy for all download URLs (including https://).
For example: http://myproxy.example.com:3128
-b Assume that dependencies are already installed and software sources are
set up. If git is selected, git tree is still checked out as dependency
step.
-f Force shallow cloning for git installations.
This may result in an "n/a" in the version number.
-l Disable ssl checks. When passed, switches "https" calls to "http" where
possible.
-V Install Salt into virtualenv
(only available for Ubuntu based distributions)
-a Pip install all Python pkg dependencies for Salt. Requires -V to install
all pip pkgs into the virtualenv.
(Only available for Ubuntu based distributions)
-r Disable all repository configuration performed by this script. This
option assumes all necessary repository configuration is already present
on the system.
-R Specify a custom repository URL. Assumes the custom repository URL
points to a repository that mirrors Salt packages located at
repo.saltproject.io. The option passed with -R replaces the
"repo.saltproject.io". If -R is passed, -r is also set. Currently only
works on CentOS/RHEL and Debian based distributions.
-J Replace the Master config file with data passed in as a JSON string. If
a Master config file is found, a reasonable effort will be made to save
the file with a ".bak" extension. If used in conjunction with -C or -F,
no ".bak" file will be created as either of those options will force
a complete overwrite of the file.
-j Replace the Minion config file with data passed in as a JSON string. If
a Minion config file is found, a reasonable effort will be made to save
the file with a ".bak" extension. If used in conjunction with -C or -F,
no ".bak" file will be created as either of those options will force
a complete overwrite of the file.
-J Replace the Master config file with data passed in as a JSON string. If
a Master config file is found, a reasonable effort will be made to save
the file with a ".bak" extension. If used in conjunction with -C or -F,
no ".bak" file will be created as either of those options will force
a complete overwrite of the file.
-k Temporary directory holding the minion keys which will pre-seed
the master.
-K If set, keep the temporary files in the temporary directories specified
with -c and -k
-l Disable ssl checks. When passed, switches "https" calls to "http" where
possible.
-L Also install salt-cloud and required python-libcloud package
-M Also install salt-master
-n No colours
-N Do not install salt-minion
-p Extra-package to install while installing Salt dependencies. One package
per -p flag. You are responsible for providing the proper package name.
-P Allow pip based installations. On some distributions the required salt
packages or its dependencies are not available as a package for that
distribution. Using this flag allows the script to use pip as a last
resort method. NOTE: This only works for functions which actually
implement pip based installations.
-q Quiet salt installation from git (setup.py install -q)
-x Changes the Python version used to install Salt.
For CentOS 6 git installations python2.7 is supported.
Fedora git installation, CentOS 7, Debian 9, Ubuntu 16.04 and 18.04 support python3.
-y Installs a different python version on host. Currently this has only been
tested with CentOS 6 and is considered experimental. This will install the
ius repo on the box if disable repo is false. This must be used in conjunction
with -x <pythonversion>. For example:
sh bootstrap.sh -P -y -x python2.7 git v2017.7.2
The above will install python27 and install the git version of salt using the
python2.7 executable. This only works for git and pip installations.
-Q Quickstart, install the Salt master and the Salt minion.
And automatically accept the minion key.
-R Specify a custom repository URL. Assumes the custom repository URL
points to a repository that mirrors Salt packages located at
packages.broadcom.com. The option passed with -R replaces the
"packages.broadcom.com". If -R is passed, -r is also set. Currently only
works on CentOS/RHEL and Debian based distributions and macOS.
-s Sleep time used when waiting for daemons to start, restart and when
checking for the services running. Default: 3
-S Also install salt-syndic
-r Disable all repository configuration performed by this script. This
option assumes all necessary repository configuration is already present
on the system.
-U If set, fully upgrade the system prior to bootstrapping Salt
-v Display script version
-V Install Salt into virtualenv
(only available for Ubuntu based distributions)
-W Also install salt-api
-x Changes the Python version used to install Salt (default: Python 3).
Python 2.7 is no longer supported.
-X Do not start daemons after installation
The Salt Bootstrap script has a wide variety of options that can be passed as
well as several ways of obtaining the bootstrap script itself. Note that the use of ``sudo``
@ -209,53 +216,53 @@ is not needed when running these commands as the ``root`` user.
The examples below show how to bootstrap Salt directly from GitHub or another Git repository.
Run the script without any parameters to get latest stable Salt packages for your system from
`SaltStack's corporate repository`_. See first example in the `Install using wget`_ section.
the `Salt Project's repository`_. See first example in the `Install using wget`_ section.
Install using curl
~~~~~~~~~~~~~~~~~~
If you want to install a package of a specific release version, from the SaltStack repo:
If you want to install a package of a specific release version, from the Salt Project repo:
.. code:: console
curl -o bootstrap-salt.sh -L https://bootstrap.saltproject.io
sudo sh bootstrap-salt.sh -P stable 3004.1
curl -o bootstrap-salt.sh -L https://github.com/saltstack/salt-bootstrap/releases/latest/download/bootstrap-salt.sh
sudo sh bootstrap-salt.sh -P stable 3006.1
If you want to install a specific release version, based on the Git tags:
.. code:: console
curl -o bootstrap-salt.sh -L https://bootstrap.saltproject.io
sudo sh bootstrap-salt.sh git v3004.1
curl -o bootstrap-salt.sh -L https://github.com/saltstack/salt-bootstrap/releases/latest/download/bootstrap-salt.sh
sudo sh bootstrap-salt.sh git v3006.1
Using ``curl`` to install latest development version from GitHub:
.. code:: console
curl -o bootstrap-salt.sh -L https://bootstrap.saltproject.io
curl -o bootstrap-salt.sh -L https://github.com/saltstack/salt-bootstrap/releases/latest/download/bootstrap-salt.sh
sudo sh bootstrap-salt.sh git master
To install a specific branch from a Git fork:
.. code:: console
curl -o bootstrap-salt.sh -L https://bootstrap.saltproject.io
curl -o bootstrap-salt.sh -L https://github.com/saltstack/salt-bootstrap/releases/latest/download/bootstrap-salt.sh
sudo sh bootstrap-salt.sh -g https://github.com/myuser/salt.git git mybranch
If all you want is to install a ``salt-master`` using latest Git:
.. code:: console
curl -o bootstrap-salt.sh -L https://bootstrap.saltproject.io
curl -o bootstrap-salt.sh -L https://github.com/saltstack/salt-bootstrap/releases/latest/download/bootstrap-salt.sh
sudo sh bootstrap-salt.sh -M -N git master
If your host has Internet access only via HTTP proxy, from the SaltStack repo:
If your host has Internet access only via HTTP proxy, from the Salt Project repo:
.. code:: console
PROXY='http://user:password@myproxy.example.com:3128'
curl -o bootstrap-salt.sh -L -x "$PROXY" https://bootstrap.saltproject.io
curl -o bootstrap-salt.sh -L -x "$PROXY" https://github.com/saltstack/salt-bootstrap/releases/latest/download/bootstrap-salt.sh
sudo sh bootstrap-salt.sh -P -H "$PROXY" stable
If your host has Internet access only via HTTP proxy, installing via Git:
@ -263,7 +270,7 @@ If your host has Internet access only via HTTP proxy, installing via Git:
.. code:: console
PROXY='http://user:password@myproxy.example.com:3128'
curl -o bootstrap-salt.sh -L -x "$PROXY" https://bootstrap.saltproject.io
curl -o bootstrap-salt.sh -L -x "$PROXY" https://github.com/saltstack/salt-bootstrap/releases/latest/download/bootstrap-salt.sh
sudo sh bootstrap-salt.sh -H "$PROXY" git
@ -274,22 +281,22 @@ Using ``wget`` to install your distribution's stable packages:
.. code:: console
wget -O bootstrap-salt.sh https://bootstrap.saltproject.io
wget -O bootstrap-salt.sh https://github.com/saltstack/salt-bootstrap/releases/latest/download/bootstrap-salt.sh
sudo sh bootstrap-salt.sh
Installing a specific version from git using ``wget``:
.. code:: console
wget -O bootstrap-salt.sh https://bootstrap.saltproject.io
sudo sh bootstrap-salt.sh git v3004.1
wget -O bootstrap-salt.sh https://github.com/saltstack/salt-bootstrap/releases/latest/download/bootstrap-salt.sh
sudo sh bootstrap-salt.sh git v3006.8
Installing a specific version package from the SaltStack repo using ``wget``:
Installing a specific version package from the Salt Project repo using ``wget``:
.. code:: console
wget -O bootstrap-salt.sh https://bootstrap.saltproject.io
sudo sh bootstrap-salt.sh -P stable 3004.1
wget -O bootstrap-salt.sh https://github.com/saltstack/salt-bootstrap/releases/latest/download/bootstrap-salt.sh
sudo sh bootstrap-salt.sh -P stable 3006.8
**NOTE**
@ -300,55 +307,21 @@ However, the ``-P`` flag is not necessary for Git-based bootstraps.
Install using Python
~~~~~~~~~~~~~~~~~~~~
If you already have Python installed, ``python 2.7``, then it's as easy as:
If you already have Python installed, ``python 3.10``, then it's as easy as:
.. code:: console
python -m urllib "https://bootstrap.saltproject.io" > bootstrap-salt.sh
sudo sh bootstrap-salt.sh -P stable 3004.1
With python version 2, the following in-line code should always work:
.. code:: console
python -c 'import urllib; print urllib.urlopen("https://bootstrap.saltproject.io").read()' > bootstrap-salt.sh
sudo sh bootstrap-salt.sh git master
python -m urllib "https://github.com/saltstack/salt-bootstrap/releases/latest/download/bootstrap-salt.sh" > bootstrap-salt.sh
sudo sh bootstrap-salt.sh -P stable 3006.1
With python version 3:
.. code:: console
python3 -c 'import urllib.request; print(urllib.request.urlopen("https://bootstrap.saltproject.io").read().decode("ascii"))' > bootstrap-salt.sh
sudo sh bootstrap-salt.sh git v3004.1
python3 -c 'import urllib.request; print(urllib.request.urlopen("https://github.com/saltstack/salt-bootstrap/releases/latest/download/bootstrap-salt.sh").read().decode("ascii"))' > bootstrap-salt.sh
sudo sh bootstrap-salt.sh git v3006.1
Install using fetch
~~~~~~~~~~~~~~~~~~~
On a FreeBSD-based system you usually don't have either of the above binaries available. You **do**
have ``fetch`` available though:
.. code:: console
fetch -o bootstrap-salt.sh https://bootstrap.saltproject.io
sudo sh bootstrap-salt.sh
If you have any SSL issues install ``ca_root_nss``:
.. code:: console
pkg install ca_root_nss
And either copy the certificates to the place where fetch can find them:
.. code:: console
cp /usr/local/share/certs/ca-root-nss.crt /etc/ssl/cert.pem
Or link them to the right place:
.. code:: console
ln -s /usr/local/share/certs/ca-root-nss.crt /etc/ssl/cert.pem
Note: Python 2.x is no longer supported given it reached it's End-Of-Life Jan. 1st, 2020
Installing via an Insecure One-Liner
@ -368,25 +341,29 @@ Installing the latest stable release of Salt (default):
.. code:: console
curl -L https://bootstrap.saltproject.io | sudo sh
curl -L https://github.com/saltstack/salt-bootstrap/releases/latest/download/bootstrap-salt.sh | sudo sh
Using ``wget`` to install your distribution's stable packages:
.. code:: console
wget -O - https://bootstrap.saltproject.io | sudo sh
wget -O - https://github.com/saltstack/salt-bootstrap/releases/latest/download/bootstrap-salt.sh | sudo sh
Installing a target version package of Salt from the SaltStack repo:
Installing a target version package of Salt from the Salt Project repo:
.. code:: console
curl -L https://bootstrap.saltproject.io | sudo sh -s -- stable 3004.1
curl -L https://github.com/saltstack/salt-bootstrap/releases/latest/download/bootstrap-salt.sh | sudo sh -s -- stable 3006.8
Installing the latest master branch of Salt from git:
.. code:: console
curl -L https://bootstrap.saltproject.io | sudo sh -s -- git master
curl -L https://github.com/saltstack/salt-bootstrap/releases/latest/download/bootstrap-salt.sh | sudo sh -s -- git master
Note: use of git is recommended for development environments, for example: testing new features of
Salt which have not yet been released.
It is recommended that production environments should use ``stable``.
Install on Windows
@ -394,20 +371,23 @@ Install on Windows
Using ``PowerShell`` to install latest stable version:
.. code:: console
.. code:: powershell
New-Item -ItemType Directory -Force -Path C:\Temp
Invoke-WebRequest -Uri https://winbootstrap.saltproject.io -OutFile C:\Temp\bootstrap-salt.ps1
Set-ExecutionPolicy -ExecutionPolicy Unrestricted -Scope CurrentUser
C:\Temp\bootstrap-salt.ps1
Set-ExecutionPolicy -ExecutionPolicy Undefined -Scope CurrentUser
[System.Net.ServicePointManager]::SecurityProtocol = [System.Net.SecurityProtocolType]'Tls12'
Invoke-WebRequest -Uri https://github.com/saltstack/salt-bootstrap/releases/latest/download/bootstrap-salt.ps1 -OutFile "$env:TEMP\bootstrap-salt.ps1"
Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope CurrentUser -Force; & "$env:TEMP\bootstrap-salt.ps1"
Display information about the install script parameters:
.. code:: powershell
Get-Help $env:TEMP\bootstrap-salt.ps1 -Detailed
Using ``cygwin`` to install latest stable version:
.. code:: console
curl -o bootstrap-salt.ps1 -L https://winbootstrap.saltproject.io
curl -o bootstrap-salt.ps1 -L https://github.com/saltstack/salt-bootstrap/releases/latest/download/bootstrap-salt.ps1
"/cygdrive/c/WINDOWS/System32/WindowsPowerShell/v1.0/powershell.exe" -NoProfile -InputFormat None -ExecutionPolicy Bypass -Command "[System.Net.ServicePointManager]::SecurityProtocol = 3072; iex ./bootstrap-salt.ps1"
@ -415,18 +395,21 @@ Supported Operating Systems
---------------------------
The salt-bootstrap script officially supports the distributions outlined in
`Salt's Supported Operating Systems`_ document, except for Solaris and AIX. The operating systems
listed below should reflect this document but may become out of date. If an operating system is
listed below, but is not listed on the official supported operating systems document, the level of
support is "best-effort".
`Salt's Supported Operating Systems
<https://docs.saltproject.io/salt/install-guide/en/latest/topics/salt-supported-operating-systems.html>`_
document, (BSD-based OSs, Solaris and AIX are no longer supported).
The operating systems listed below should reflect this document but may become out of date.
If an operating system is listed below, but is not listed on the official supported operating
systems document, the level of support is "best-effort".
Since Salt is written in Python, the packages available from `SaltStack's corporate repository`_
are CPU architecture independent and could be installed on any hardware supported by Linux kernel.
However, SaltStack does package Salt's binary dependencies only for ``x86_64`` (``amd64``) and
``AArch32`` (``armhf``). The latter is available only for Debian/Raspbian 8 platforms.
Since Salt is written in Python, the packages available from the `Salt Project's repository
<packages.broadcom.com>`_ are
CPU architecture independent and could be installed on any hardware supported by Linux kernel.
However, the Salt Project does package Salt's binary dependencies only for ``x86_64`` (``amd64``)
and ``AArch64`` (``arm64``).
It is recommended to use ``git`` bootstrap mode as described above to install Salt on other
architectures, such as ``x86`` (``i386``), ``AArch64`` (``arm64``) or ``ARM EABI`` (``armel``).
architectures, such as ``x86`` (``i386``) or ``ARM EABI`` (``armel``).
You also may need to disable repository configuration and allow ``pip`` installations by providing
``-r`` and ``-P`` options to the bootstrap script, i.e.:
@ -445,24 +428,23 @@ Debian and derivatives
~~~~~~~~~~~~~~~~~~~~~~
- Cumulus Linux 2/3
- Debian GNU/Linux 9/10/11
- Devuan GNU/Linux 1/2
- Debian GNU/Linux 9/10/11/12
- Devuan GNU/Linux 1/2/3/4/5
- Kali Linux 1.0 (based on Debian 7)
- Linux Mint Debian Edition 1 (based on Debian 8)
- Raspbian 8 (``armhf`` packages) and 9 (using ``git`` installation mode only)
Red Hat family
~~~~~~~~~~~~~~
- Amazon Linux 2012.3 and later
- Amazon Linux 2
- CentOS 6/7/8
- Amazon Linux 2023
- CentOS 8/9
- Cloud Linux 6/7
- Fedora 30/31 (install latest stable from standard repositories)
- Oracle Linux 6/7
- Red Hat Enterprise Linux 6/7/8
- Scientific Linux 6/7
- Fedora 40 (install latest stable from standard repositories)
- Oracle Linux 8/9
- Red Hat Enterprise Linux 8/9
- Scientific Linux 8/9
SUSE family
@ -474,31 +456,29 @@ SUSE family
- SUSE Linux Enterprise Server 11 SP4, 12 SP2
**NOTE:** Leap 15 installs Python 3 Salt packages by default. Salt is packaged by SUSE, and
Leap 15 ships with Python 3. Salt with Python 2 can be installed using the the ``-x`` option
in combination with the ``git`` installation method.
Leap 15 ships with Python 3.
.. code:: console
sh bootstrap-salt.sh -x python2 git v2018.3.2
sh bootstrap-salt.sh -x python3 git v3006.1
Ubuntu and derivatives
~~~~~~~~~~~~~~~~~~~~~~
- KDE neon (based on Ubuntu 18.04)
- KDE neon (based on Ubuntu 20.04/22.04/24.04)
- Linux Mint 17/18
- Ubuntu 14.04/16.04/18.04 and subsequent non-LTS releases (see below)
Ubuntu Best Effort Support: Non-LTS Releases
********************************************
This script provides best-effort support for current, non-LTS Ubuntu releases. If package
repositories are not provided on `SaltStack's Ubuntu repository`_ for the non-LTS release, the
bootstrap script will attempt to install the packages for the most closely related LTS Ubuntu
repositories are not provided on the `Salt Project's Ubuntu repository`_ for the non-LTS release,
the bootstrap script will attempt to install the packages for the most closely related LTS Ubuntu
release instead.
For example, when installing Salt on Ubuntu 21.10, the bootstrap script will setup the repository
for Ubuntu 20.04 from `SaltStack's Ubuntu repository`_ and install the 20.04 packages.
For example, when installing Salt on Ubuntu 24.10, the bootstrap script will setup the repository
for Ubuntu 24.04 from the `Salt Project's Ubuntu repository`_ and install the 24.04 packages.
Non-LTS Ubuntu releases are not supported once the release reaches End-of-Life as defined by
`Ubuntu's release schedule`_.
@ -517,12 +497,11 @@ UNIX systems
**BSD**:
- OpenBSD (``pip`` installation)
- FreeBSD 11/12/13/14-CURRENT
- No longer supported
**SunOS**:
- SmartOS (2015Q4 and later)
- No longer supported
Using a custom salt bootstrap
@ -555,45 +534,6 @@ please run the following commands and report their output when creating an issue
For information on how to add support for a currently unsupported distribution, please refer to the
`Contributing Guidelines`_.
Python 3 Support
----------------
Some distributions support installing Salt to use Python 3 instead of Python 2. The availability of
this offering, while limited, is as follows:
- CentOS 7
- Centos 8
- Debian 9
- Debian 10
- Debian 11
- Fedora (only git installations)
- Ubuntu 16.04
- Ubuntu 18.04
- Ubuntu 20.04
On Fedora, PIP installation must be allowed (-P) due to incompatibility with the shipped Tornado
library.
Installing the Python 3 packages for Salt is done via the ``-x`` option:
.. code:: console
sh bootstrap-salt.sh -x python3
See the ``-x`` option for more information.
The earliest release of Salt that supports Python3 is `2018.3.4`.
Tornado 5/6 Workaround
----------------------
Salt does not support tornado>=5.0 currently. This support will be included in an upcoming release.
In order to work around this requirement on OSs that no longer have the tornado 4 package
available in their repositories we are pip installing tornado<5.0 in the bootstrap script. This
requires the user to pass -P to the bootstrap script if installing via git to ensure tornado is pip
installed. If a user does not pass this argument they will be warned that it is required for the
tornado 5 workaround. So far the OSs that are using this workaround are Debian 10, Centos 8 and
Fedora 31.
Testing
-------
@ -639,37 +579,8 @@ Salt is ready and working in the Docker container with the Minion authenticated
**NOTE**
The ``Dockerfile`` here inherits the Ubuntu 14.04 public image with Upstart configured as the init
system. Use it as an example or starting point of how to make your own Docker images with suitable
Salt components, custom configurations, and even `pre-accepted Minion keys`_ already installed.
Updating Drone Pipelines
========================
You should install and configure the drone-cli as shown here: https://docs.drone.io/cli/install/
Make edits to .drone.jsonnet and then save them into the .drone.yml by doing the following:
.. code:: console
drone jsonnet --format --stream
drone sign saltstack/salt-bootstrap --save
.. _Contributing Guidelines: https://github.com/saltstack/salt-bootstrap/blob/develop/CONTRIBUTING.md
.. _Docker: https://www.docker.com/
.. _`pre-accepted Minion keys`: https://docs.saltproject.io/en/latest/topics/tutorials/preseed_key.html
.. _`read the source`: https://github.com/saltstack/salt-bootstrap/blob/develop/bootstrap-salt.sh
.. _`Salt`: https://saltproject.io/
.. _`Salt's Supported Operating Systems`: http://get.saltstack.com/rs/304-PHQ-615/images/SaltStack-Supported-Operating-Systems.pdf
.. _`SaltStack's corporate repository`: https://repo.saltproject.io/
.. _`SaltStack's Debian repository`: http://repo.saltproject.io/#debian
.. _`SaltStack's Ubuntu repository`: http://repo.saltproject.io/#ubuntu
.. _`Ubuntu's release schedule`: https://wiki.ubuntu.com/Releases
.. _Vagrant: http://www.vagrantup.com
.. _hardening salt: https://docs.saltproject.io/en/latest/topics/hardening.html
.. |build| image:: https://github.com/saltstack/salt-bootstrap/workflows/Testing/badge.svg?branch=develop
:target: https://github.com/saltstack/salt-bootstrap/actions?query=branch%3Adevelop
:alt: Build Status
The ``Dockerfile`` here inherits the Ubuntu 20.04 public image. Use it as an example or starting
point of how to make your own Docker images with suitable Salt components, custom configurations,
and even `pre-accepted Minion keys`_ already installed.
.. vim: fenc=utf-8 spell spl=en cc=100 tw=99 fo=want sts=2 sw=2 et

View file

@ -3,13 +3,10 @@
- See if there are any PRs worth squeezing into release.
- Go through the changes since last release, add them to changelog.
- Add any new authors to the AUTHORS file.
- If there's a new Salt release(major), update the script to add support for it.
- If there's a new Salt release (major), update the script to add support for it.
- Bump version for release.
- Open PR against develop with these changes.
- Once the above PR is merged, open a PR against stable with the changes from develop.
- Once the above PR is merged, wait until an automatic PR is opened against stable which updates the checksums.
- Once the above PR is merged, tag the release `v{version-here}` and push the tag.
- Wait until an automatic PR is opened against the develop branch updating the checksums in `README.rst`. Merge it.
- Check that an automated PR was opened against the salt repo updating the bootstrap script, located in `salt/cloud/deploy/bootstrap-salt.sh`
- Once the above PR is merged, go to [Cut Release](https://github.com/saltstack/salt-bootstrap/actions/workflows/release.yml) and `Run workflow` against `develop` branch
- Open a new PR against the branch of the oldest supported version of [the salt repo](https://github.com/saltstack/salt) (ex. `3006.x`), and replace `salt/cloud/deploy/bootstrap-salt.sh` with the latest `bootstrap-salt.sh` file
- When that PR is merged into [the salt repo](https://github.com/saltstack/salt), merge-forwards into the latest branches and `master` will ensure that the latest bootstrap script is available
- Victory!

119
Vagrantfile vendored
View file

@ -1,119 +0,0 @@
# -*- mode: ruby -*-
# vi: set ft=ruby :
# Vagrantfile API/syntax version. Don't touch unless you know what you're doing!
VAGRANTFILE_API_VERSION = "2"
Vagrant.configure(VAGRANTFILE_API_VERSION) do |config|
# All Vagrant configuration is done here. The most common configuration
# options are documented and commented below. For a complete reference,
# please see the online documentation at vagrantup.com.
# Every Vagrant virtual environment requires a box to build off of.
config.vm.box = "ubuntu/xenial64"
# The url from where the 'config.vm.box' box will be fetched if it
# doesn't already exist on the user's system.
# config.vm.box_url = "http://domain.com/path/to/above.box"
# Create a forwarded port mapping which allows access to a specific port
# within the machine from a port on the host machine. In the example below,
# accessing "localhost:8080" will access port 80 on the guest machine.
# config.vm.network :forwarded_port, guest: 80, host: 8080
# Create a private network, which allows host-only access to the machine
# using a specific IP.
# config.vm.network :private_network, ip: "192.168.33.10"
# Create a public network, which generally matched to bridged network.
# Bridged networks make the machine appear as another physical device on
# your network.
# config.vm.network :public_network
# If true, then any SSH connections made will enable agent forwarding.
# Default value: false
# config.ssh.forward_agent = true
# Share an additional folder to the guest VM. The first argument is
# the path on the host to the actual folder. The second argument is
# the path on the guest to mount the folder. And the optional third
# argument is a set of non-required options.
config.vm.synced_folder ".", "/salt_bootstrap"
config.vm.provision "shell", path: "bootstrap-salt.sh"
# Provider-specific configuration so you can fine-tune various
# backing providers for Vagrant. These expose provider-specific options.
# Example for VirtualBox:
#
# config.vm.provider :virtualbox do |vb|
# # Don't boot with headless mode
# vb.gui = true
#
# # Use VBoxManage to customize the VM. For example to change memory:
# vb.customize ["modifyvm", :id, "--memory", "1024"]
# end
#
# View the documentation for the provider you're using for more
# information on available options.
# Enable provisioning with Puppet stand alone. Puppet manifests
# are contained in a directory path relative to this Vagrantfile.
# You will need to create the manifests directory and a manifest in
# the file precise64.pp in the manifests_path directory.
#
# An example Puppet manifest to provision the message of the day:
#
# # group { "puppet":
# # ensure => "present",
# # }
# #
# # File { owner => 0, group => 0, mode => 0644 }
# #
# # file { '/etc/motd':
# # content => "Welcome to your Vagrant-built virtual machine!
# # Managed by Puppet.\n"
# # }
#
# config.vm.provision :puppet do |puppet|
# puppet.manifests_path = "manifests"
# puppet.manifest_file = "site.pp"
# end
# Enable provisioning with chef solo, specifying a cookbooks path, roles
# path, and data_bags path (all relative to this Vagrantfile), and adding
# some recipes and/or roles.
#
# config.vm.provision :chef_solo do |chef|
# chef.cookbooks_path = "../my-recipes/cookbooks"
# chef.roles_path = "../my-recipes/roles"
# chef.data_bags_path = "../my-recipes/data_bags"
# chef.add_recipe "mysql"
# chef.add_role "web"
#
# # You may also specify custom JSON attributes:
# chef.json = { :mysql_password => "foo" }
# end
# Enable provisioning with chef server, specifying the chef server URL,
# and the path to the validation key (relative to this Vagrantfile).
#
# The Opscode Platform uses HTTPS. Substitute your organization for
# ORGNAME in the URL and validation key.
#
# If you have your own Chef Server, use the appropriate URL, which may be
# HTTP instead of HTTPS depending on your configuration. Also change the
# validation key to validation.pem.
#
# config.vm.provision :chef_client do |chef|
# chef.chef_server_url = "https://api.opscode.com/organizations/ORGNAME"
# chef.validation_key_path = "ORGNAME-validator.pem"
# end
#
# If you're using the Opscode platform, your validator client is
# ORGNAME-validator, replacing ORGNAME with your organization name.
#
# If you have your own Chef Server, the default validation client name is
# chef-validator, unless you changed the configuration.
#
# chef.validation_client_name = "ORGNAME-validator"
end

View file

@ -5,70 +5,42 @@
.DESCRIPTION
The script will download the official Salt package from SaltProject. It will
install a specific package version and accept parameters for the master and
minion ids. Finally, it can stop and set the Windows service to "manual" for
minion IDs. Finally, it can stop and set the Windows service to "manual" for
local testing.
.EXAMPLE
./bootstrap-salt.ps1
Runs without any parameters. Uses all the default values/settings.
Runs without any parameters. Uses all the default values/settings. Will
install the latest version of Salt
.EXAMPLE
./bootstrap-salt.ps1 -version 2017.7.0
./bootstrap-salt.ps1 -Version 3006.7
Specifies a particular version of the installer.
.EXAMPLE
./bootstrap-salt.ps1 -pythonVersion 3
Specifies the Python version of the installer. Can be "2" or "3". Defaults
to "2". Python 3 installers are only available for Salt 2017.7.0 and newer.
Starting with Python 3002 only Python 3 installers are available.
.EXAMPLE
./bootstrap-salt.ps1 -runservice false
./bootstrap-salt.ps1 -RunService $false
Specifies the salt-minion service to stop and be set to manual. Useful for
testing locally from the command line with the --local switch
.EXAMPLE
./bootstrap-salt.ps1 -minion minion-box -master master-box
./bootstrap-salt.ps1 -Minion minion-box -Master master-box
Specifies the minion and master ids in the minion config. Defaults to the
installer values of host name for the minion id and "salt" for the master.
.EXAMPLE
./bootstrap-salt.ps1 -minion minion-box -master master-box -version 2017.7.0 -runservice false
./bootstrap-salt.ps1 -Minion minion-box -Master master-box -Version 3006.7 -RunService $false
Specifies all the optional parameters in no particular order.
.PARAMETER version
Default version defined in this script.
.PARAMETER pythonVersion
The version of Python the installer should use. Specify either "2" or "3".
Beginning with Salt 2017.7.0, Salt will run on either Python 2 or Python 3.
The default is Python 2 if not specified. This parameter only works for Salt
versions >= 2017.7.0.
.PARAMETER runservice
Boolean flag to start or stop the minion service. True will start the minion
service. False will stop the minion service and set it to "manual". The
installer starts it by default.
.PARAMETER minion
Name of the minion being installed on this host. Installer defaults to the
host name.
.PARAMETER master
Name or IP of the master server. Installer defaults to "salt".
.PARAMETER repourl
URL to the windows packages. Default is "https://repo.saltproject.io/windows"
.NOTES
All of the parameters are optional. The default should be the latest
version. The architecture is dynamically determined by the script.
.LINK
Bootstrap GitHub Project (script home) - https://github.com/saltstack/salt-windows-bootstrap
Original Vagrant Provisioner Project -https://github.com/saltstack/salty-vagrant
Salt Bootstrap GitHub Project (script home) - https://github.com/saltstack/salt-bootstrap
Original Vagrant Provisioner Project - https://github.com/saltstack/salty-vagrant
Vagrant Project (utilizes this script) - https://github.com/mitchellh/vagrant
SaltStack Download Location - https://repo.saltproject.io/windows/
Salt Download Location - https://packages.broadcom.com/artifactory/saltproject-generic/windows/
Salt Manual Install Directions (Windows) - https://docs.saltproject.io/salt/install-guide/en/latest/topics/install-by-operating-system/windows.html
#>
#===============================================================================
@ -77,36 +49,81 @@
[CmdletBinding()]
param(
[Parameter(Mandatory=$false, ValueFromPipeline=$True)]
# Doesn't support versions prior to "YYYY.M.R-B"
# Supports new version and latest
# Option 1 means case insensitive
[ValidatePattern('^(\d{4}(\.\d{1,2}){0,2}(\-\d{1})?)|(latest)$', Options=1)]
[string]$Version = '',
[Alias("v")]
# The version of the Salt minion to install. Default is "latest" which will
# install the latest version of Salt minion available. Doesn't support
# versions prior to "YYYY.M.R-B"
[String]$Version = "latest",
[Parameter(Mandatory=$false, ValueFromPipeline=$True)]
# Doesn't support Python versions prior to "2017.7.0"
[ValidateSet("2","3")]
[string]$PythonVersion = "3",
[Alias("s")]
# Boolean flag to start or stop the minion service. $true will start the
# minion service. $false will stop the minion service and set it to "manual".
# The installer starts it by default.
[Bool]$RunService = $true,
[Parameter(Mandatory=$false, ValueFromPipeline=$True)]
[ValidateSet("true","false")]
[string]$RunService = "true",
[Alias("m")]
# Name of the minion being installed on this host. Installer defaults to the
# host name.
[String]$Minion = "not-specified",
[Parameter(Mandatory=$false, ValueFromPipeline=$True)]
[string]$Minion = "not-specified",
[Alias("a")]
#Name or IP of the master server. Installer defaults to "salt".
[String]$Master = "not-specified",
[Parameter(Mandatory=$false, ValueFromPipeline=$True)]
[string]$Master = "not-specified",
[Alias("r")]
# URL to the windows packages. Will look for the installer at the root of
# the URL/Version. Place a folder for each version of Salt in this directory
# and place the installer binary for each version in its folder.
# Default is "https://packages.broadcom.com/artifactory/saltproject-generic/windows/"
[String]$RepoUrl = "https://packages.broadcom.com/artifactory/saltproject-generic/windows/",
[Parameter(Mandatory=$false, ValueFromPipeline=$True)]
[string]$RepoUrl= "https://repo.saltproject.io/windows",
[Alias("c")]
# Vagrant only
# Vagrant files are placed in "C:\tmp". Copies Salt config files from
# Vagrant (C:\tmp) to Salt config locations and exits. Does not run the
# installer
[Switch]$ConfigureOnly,
[Parameter(Mandatory=$false, ValueFromPipeline=$True)]
[switch]$ConfigureOnly
[Parameter(Mandatory=$false)]
[Alias("h")]
# Displays help for this script.
[Switch] $Help,
[Parameter(Mandatory=$false)]
[Alias("e")]
# Displays the Version for this script.
[Switch] $ScriptVersion
)
# We'll check for help first because it really has no requirements
if ($help) {
# Get the full script name
$this_script = & {$myInvocation.ScriptName}
Get-Help $this_script -Detailed
exit 0
}
$__ScriptVersion = "2025.02.24"
$ScriptName = $myInvocation.MyCommand.Name
# We'll check for the Version next, because it also has no requirements
if ($ScriptVersion) {
Write-Host $__ScriptVersion
exit 0
}
#===============================================================================
# Script Preferences
#===============================================================================
# Powershell supports only TLS 1.0 by default. Add support for TLS 1.2
[System.Net.ServicePointManager]::SecurityProtocol = [System.Net.SecurityProtocolType]'Tls12'
$ErrorActionPreference = "Stop"
$ProgressPreference = "SilentlyContinue"
#===============================================================================
# Script Functions
@ -123,6 +140,212 @@ function Get-IsUacEnabled
(Get-ItemProperty HKLM:\Software\Microsoft\Windows\CurrentVersion\Policies\System).EnableLua -ne 0
}
function Get-MajorVersion {
# Parses a version string and returns the major version
#
# Args:
# Version (string): The Version to parse
[CmdletBinding()]
param(
[Parameter(Mandatory=$true, Position=0)]
[String] $Version
)
return ( $Version -split "\." )[0]
}
function Get-AvailableVersions {
# Get available versions from a remote location specified in the Source
# Parameter
Write-Verbose "Getting version information from the repo"
Write-Verbose "base_url: $base_url"
$available_versions = [System.Collections.ArrayList]@()
if ( $base_url.StartsWith("http") -or $base_url.StartsWith("ftp") ) {
# We're dealing with HTTP, HTTPS, or FTP
$response = Invoke-WebRequest "$base_url" -UseBasicParsing
try {
$response = Invoke-WebRequest "$base_url" -UseBasicParsing
} catch {
Write-Host "Failed to get version information" -ForegroundColor Red
exit 1
}
if ( $response.StatusCode -ne 200 ) {
Write-Host "There was an error getting version information" -ForegroundColor Red
Write-Host "Error: $($response.StatusCode)" -ForegroundColor red
exit 1
}
$response.links | ForEach-Object {
if ( $_.href.Length -gt 8) {
Write-Host "The content at this location is unexpected" -ForegroundColor Red
Write-Host "Should be a list of directories where the name is a version of Salt" -ForegroundColor Red
exit 1
}
}
# Getting available versions from response
Write-Verbose "Getting available versions from response"
$filtered = $response.Links | Where-Object -Property href -NE "../"
$filtered | Select-Object -Property href | ForEach-Object {
$available_versions.Add($_.href.Trim("/")) | Out-Null
}
} elseif ( $base_url.StartsWith("\\") -or $base_url -match "^[A-Za-z]:\\" ) {
# We're dealing with a local directory or SMB source
Get-ChildItem -Path $base_url -Directory | ForEach-Object {
$available_versions.Add($_.Name) | Out-Null
}
} else {
Write-Host "Unknown Source Type" -ForegroundColor Red
Write-Host "Must be one of HTTP, HTTPS, FTP, SMB Share, Local Directory" -ForegroundColor Red
exit 1
}
Write-Verbose "Available versions:"
$available_versions | ForEach-Object {
Write-Verbose "- $_"
}
# Get the latest version, should be the last in the list
Write-Verbose "Getting latest available version"
$latest = $available_versions | Select-Object -Last 1
Write-Verbose "Latest available version: $latest"
# Create a versions table
# This will have the latest version available, the latest version available
# for each major version, and every version available. This makes the
# version lookup logic easier. The contents of the versions table can be
# found by running -Verbose
Write-Verbose "Populating the versions table"
$versions_table = [ordered]@{"latest"=$latest}
$available_versions | ForEach-Object {
$versions_table[$(Get-MajorVersion $_)] = $_
$versions_table[$_.ToLower()] = $_.ToLower()
}
Write-Verbose "Versions Table:"
$versions_table | Sort-Object Name | Out-String | ForEach-Object {
Write-Verbose "$_"
}
return $versions_table
}
function Get-HashFromArtifactory {
# This function uses the artifactory API to get the SHA265 Hash for the file
# If Source is NOT artifactory, the sha will not be checked
[CmdletBinding()]
param(
[Parameter(Mandatory=$true)]
[String] $SaltVersion,
[Parameter(Mandatory=$true)]
[String] $SaltFileName
)
if ( $api_url ) {
$full_url = "$api_url/$SaltVersion/$SaltFileName"
Write-Verbose "Querying Artifactory API for hash:"
Write-Verbose $full_url
try {
$response = Invoke-RestMethod $full_url -UseBasicParsing
return $response.checksums.sha256
} catch {
Write-Verbose "Artifactory API Not available or file not"
Write-Verbose "available at specified location"
Write-Verbose "Hash will not be checked"
return ""
}
Write-Verbose "No hash found for this file: $SaltFileName"
Write-Verbose "Hash will not be checked"
return ""
}
Write-Verbose "No artifactory API defined"
Write-Verbose "Hash will not be checked"
return ""
}
function Get-FileHash {
# Get-FileHash is a built-in cmdlet in powershell 5+ but we need to support
# powershell 3. This will overwrite the powershell 5 commandlet only for
# this script. But it will provide the missing cmdlet for powershell 3
[CmdletBinding()]
param(
[Parameter(Mandatory=$true)]
[String] $Path,
[Parameter(Mandatory=$false)]
[ValidateSet(
"SHA1",
"SHA256",
"SHA384",
"SHA512",
# https://serverfault.com/questions/820300/
# why-isnt-mactripledes-algorithm-output-in-powershell-stable
"MACTripleDES", # don't use
"MD5",
"RIPEMD160",
IgnoreCase=$true)]
[String] $Algorithm = "SHA256"
)
if ( !(Test-Path $Path) ) {
Write-Verbose "Invalid path for hashing: $Path"
return @{}
}
if ( (Get-Item -Path $Path) -isnot [System.IO.FileInfo]) {
Write-Verbose "Not a file for hashing: $Path"
return @{}
}
$Path = Resolve-Path -Path $Path
Switch ($Algorithm) {
SHA1 {
$hasher = [System.Security.Cryptography.SHA1CryptoServiceProvider]::Create()
}
SHA256 {
$hasher = [System.Security.Cryptography.SHA256]::Create()
}
SHA384 {
$hasher = [System.Security.Cryptography.SHA384]::Create()
}
SHA512 {
$hasher = [System.Security.Cryptography.SHA512]::Create()
}
MACTripleDES {
$hasher = [System.Security.Cryptography.MACTripleDES]::Create()
}
MD5 {
$hasher = [System.Security.Cryptography.MD5]::Create()
}
RIPEMD160 {
$hasher = [System.Security.Cryptography.RIPEMD160]::Create()
}
}
Write-Verbose "Hashing using $Algorithm algorithm"
try {
$data = [System.IO.File]::OpenRead($Path)
$hash = $hasher.ComputeHash($data)
$hash = [System.BitConverter]::ToString($hash) -replace "-",""
return @{
Path = $Path;
Algorithm = $Algorithm.ToUpper();
Hash = $hash
}
} catch {
Write-Verbose "Error hashing: $Path"
Write-Verbose "ERROR: $_"
return @{}
} finally {
if ($null -ne $data) {
$data.Close()
}
}
}
#===============================================================================
# Check for Elevated Privileges
#===============================================================================
@ -158,36 +381,23 @@ if (!(Get-IsAdministrator)) {
}
#===============================================================================
# Verify Parameters
# Check for older versions
#===============================================================================
Write-Verbose "Parameters passed in:"
Write-Verbose "version: $version"
Write-Verbose "runservice: $runservice"
Write-Verbose "master: $master"
Write-Verbose "minion: $minion"
Write-Verbose "repourl: $repourl"
if ($runservice.ToLower() -eq "true") {
Write-Verbose "Windows service will be set to run"
[bool]$runservice = $True
}
elseif ($runservice.ToLower() -eq "false") {
Write-Verbose "Windows service will be stopped and set to manual"
[bool]$runservice = $False
}
else {
# Param passed in wasn't clear so defaulting to true.
Write-Verbose "Windows service defaulting to run automatically"
[bool]$runservice = $True
$majorVersion = Get-MajorVersion -Version $Version
if ($majorVersion -lt "3006") {
# This is an older version, use the old URL
Write-Host "Versions older than 3006 are not available" -ForegroundColor Red
exit 1
}
#===============================================================================
# Ensure Directories are present, copy Vagrant Configs if found
# Declare variables
#===============================================================================
$ConfDir = "$RootDir\conf"
$PkiDir = "$ConfDir\pki\minion"
$ConfiguredAnything = $False
$RootDir = "C:\salt"
$RootDir = "$env:ProgramData\Salt Project\Salt"
# Check for existing installation where RootDir is stored in the registry
$SaltRegKey = "HKLM:\SOFTWARE\Salt Project\Salt"
if (Test-Path -Path $SaltRegKey) {
if ($null -ne (Get-ItemProperty $SaltRegKey).root_dir) {
@ -195,17 +405,47 @@ if (Test-Path -Path $SaltRegKey) {
}
}
$ConfDir = "$RootDir\conf"
$PkiDir = "$ConfDir\pki\minion"
Write-Verbose "ConfDir: $ConfDir"
# Get repo and api URLs. An artifactory URL will have "artifactory" in it
$domain, $target = $RepoUrl -split "/artifactory/"
if ( $target ) {
# Create $base_url and $api_url
$base_url = "$domain/artifactory/$target"
$api_url = "$domain/artifactory/api/storage/$target"
} else {
# This is a non-artifactory url, there is no api
$base_url = $domain
$api_url = ""
}
# Create C:\tmp\
New-Item C:\tmp\ -ItemType directory -Force | Out-Null
#===============================================================================
# Verify Parameters
#===============================================================================
Write-Verbose "Running Script: $ScriptName"
Write-Verbose "Script Version: $__ScriptVersion"
Write-Verbose "Parameters passed in:"
Write-Verbose "version: $Version"
Write-Verbose "runservice: $RunService"
Write-Verbose "master: $Master"
Write-Verbose "minion: $Minion"
Write-Verbose "repourl: $base_url"
Write-Verbose "apiurl: $api_url"
Write-Verbose "ConfDir: $ConfDir"
Write-Verbose "RootDir: $RootDir"
if ($RunService) {
Write-Verbose "Windows service will be set to run"
[bool]$RunService = $True
} else {
Write-Verbose "Windows service will be stopped and set to manual"
[bool]$RunService = $False
}
#===============================================================================
# Copy Vagrant Files to their proper location.
#===============================================================================
$ConfiguredAnything = $False
# Vagrant files will be placed in C:\tmp
# Check if minion keys have been uploaded, copy to correct location
if (Test-Path C:\tmp\minion.pem) {
@ -231,112 +471,233 @@ if (Test-Path C:\tmp\grains) {
$ConfiguredAnything = $True
}
if ($ConfigureOnly -and !$ConfiguredAnything) {
Write-Output "No configuration or keys were copied over. No configuration was done!"
if ( $ConfigureOnly ) {
if ( !$ConfiguredAnything ) {
Write-Host "No configuration or keys were copied over." -ForegroundColor yes
Write-Host "No configuration was done!" -ForegroundColor Yellow
} else {
Write-Host "Salt minion successfully configured" -ForegroundColor Green
}
# If we're only configuring, we want to end here
exit 0
}
#===============================================================================
# Detect architecture
#===============================================================================
if ([IntPtr]::Size -eq 4) {
$arch = "x86"
if ([IntPtr]::Size -eq 4) { $arch = "x86" } else { $arch = "AMD64" }
#===============================================================================
# Getting version information from the repo
#===============================================================================
$versions = Get-AvailableVersions
#===============================================================================
# Validate passed version
#===============================================================================
Write-Verbose "Looking up version: $Version"
if ( $versions.Contains($Version.ToLower()) ) {
$Version = $versions[$Version.ToLower()]
Write-Verbose "Found version: $Version"
} else {
$arch = "AMD64"
Write-Host "Version $Version is not available" -ForegroundColor Red
Write-Host "Available versions are:" -ForegroundColor Yellow
$versions
exit 1
}
#===============================================================================
# Use version "Latest" if no version is passed
# Get file url and sha256
#===============================================================================
if ((!$version) -or ($version.ToLower() -eq 'latest')){
$versionSection = "Latest-Py$PythonVersion"
$saltFileName = "Salt-Minion-$Version-Py3-$arch-Setup.exe"
$saltFileUrl = "$base_url/$Version/$saltFileName"
$saltSha256 = Get-HashFromArtifactory -SaltVersion $Version -SaltFileName $saltFileName
#===============================================================================
# Download minion setup file
#===============================================================================
Write-Host "===============================================================================" -ForegroundColor Yellow
Write-Host " Bootstrapping Salt Minion" -ForegroundColor Green
Write-Host " - version: $Version"
Write-Host " - file name: $saltFileName"
Write-Host " - file url : $saltFileUrl"
Write-Host " - file hash: $saltSha256"
Write-Host " - master: $Master"
Write-Host " - minion id: $Minion"
Write-Host " - start service: $RunService"
Write-Host "-------------------------------------------------------------------------------" -ForegroundColor Yellow
$localFile = "$env:TEMP\$saltFileName"
Write-Host "Downloading Installer: " -NoNewline
Write-Verbose ""
Write-Verbose "Salt File URL: $saltFileUrl"
Write-Verbose "Local File: $localFile"
# Remove existing local file
if ( Test-Path -Path $localFile ) { Remove-Item -Path $localFile -Force }
# Download the file
Invoke-WebRequest -Uri $saltFileUrl -OutFile $localFile
if ( Test-Path -Path $localFile ) {
Write-Host "Success" -ForegroundColor Green
} else {
$versionSection = $version
$year = $version.Substring(0, 4)
if ([int]$year -ge 2017) {
if ($PythonVersion -eq "3") {
$versionSection = "$version-Py3"
Write-Host "Failed" -ForegroundColor Red
exit 1
}
# Compare the hash if there is a hash to compare
if ( $saltSha256 ) {
$localSha256 = (Get-FileHash -Path $localFile -Algorithm SHA256).Hash
Write-Host "Comparing Hash: " -NoNewline
Write-Verbose ""
Write-Verbose "Local Hash: $localSha256"
Write-Verbose "Remote Hash: $saltSha256"
if ( $localSha256 -eq $saltSha256 ) {
Write-Host "Success" -ForegroundColor Green
} else {
Write-Host "Failed" -ForegroundColor Red
exit 1
}
}
#===============================================================================
# Set the parameters for the installer
#===============================================================================
# Unless specified, use the installer defaults
# - id: <hostname>
# - master: salt
# - Start the service
$parameters = ""
if($Minion -ne "not-specified") {$parameters = "/minion-name=$Minion"}
if($Master -ne "not-specified") {$parameters = "$parameters /master=$Master"}
#===============================================================================
# Install minion silently
#===============================================================================
Write-Host "Installing Salt Minion (5 min timeout): " -NoNewline
Write-Verbose ""
Write-Verbose "Local File: $localFile"
Write-Verbose "Parameters: $parameters"
$process = Start-Process $localFile `
-WorkingDirectory $(Split-Path $localFile -Parent) `
-ArgumentList "/S /start-service=0 $parameters" `
-NoNewWindow -PassThru
# Sometimes the installer hangs... we'll wait 5 minutes and then kill it
Write-Verbose "Waiting for installer to finish"
$process | Wait-Process -Timeout 300 -ErrorAction SilentlyContinue
$process.Refresh()
if ( !$process.HasExited ) {
Write-Verbose "Installer Timeout"
Write-Host ""
Write-Host "Killing hung installer: " -NoNewline
$process | Stop-Process
$process.Refresh()
if ( $process.HasExited ) {
Write-Host "Success" -ForegroundColor Green
} else {
Write-Host "Failed" -ForegroundColor Red
exit 1
}
}
# Wait for salt-minion service to be registered to verify successful
# installation
$service = Get-Service salt-minion -ErrorAction SilentlyContinue
$tries = 0
$max_tries = 15 # We'll try for 30 seconds
Write-Verbose "Checking that the service is installed"
while ( ! $service ) {
# We'll keep trying to get a service object until we're successful, or we
# reach max_tries
if ( $tries -le $max_tries ) {
$service = Get-Service salt-minion -ErrorAction SilentlyContinue
Start-Sleep -Seconds 2
$tries += 1
} else {
# If the salt-minion service is still not running, something
# probably went wrong and user intervention is required - report
# failure.
Write-Host "Failed" -ForegroundColor Red
Write-Host "Timeout waiting for the salt-minion service to be installed"
exit 1
}
}
# If we get this far, the service was installed, we have a service object
Write-Host "Success" -ForegroundColor Green
#===============================================================================
# Configure the minion service
#===============================================================================
if( $RunService ) {
# Start the service
Write-Host "Starting Service: " -NoNewline
Write-Verbose ""
$tries = 0
# We'll try for 2 minutes, sometimes the minion takes that long to start as
# it compiles python code for the first time
$max_tries = 60
if ( $service.Status -ne "Running" ) {
while ( $service.Status -ne "Running" ) {
if ( $service.Status -eq "Stopped" ) {
Start-Service -Name "salt-minion" -ErrorAction SilentlyContinue
}
Start-Sleep -Seconds 2
Write-Verbose "Checking the service status"
$service.Refresh()
if ( $service.Status -eq "Running" ) {
Write-Host "Success" -ForegroundColor Green
} else {
if ( $tries -le $max_tries ) {
$tries += 1
} else {
# If the salt-minion service is still not running, something
# probably went wrong and user intervention is required - report
# failure.
Write-Host "Failed" -ForegroundColor Red
Write-Host "Timed out waiting for the salt-minion service to start"
exit 1
}
}
}
} else {
Write-Host "Success" -ForegroundColor Green
}
} else {
# Set the service to manual start
$service.Refresh()
if ( $service.StartType -ne "Manual" ) {
Write-Host "Setting Service Start Type to 'Manual': " -NoNewline
Set-Service "salt-minion" -StartupType "Manual"
$service.Refresh()
if ( $service.StartType -eq "Manual" ) {
Write-Host "Success" -ForegroundColor Green
} else {
$versionSection = "$version-Py2"
}
}
}
if (!$ConfigureOnly) {
#===============================================================================
# Download minion setup file
#===============================================================================
$saltExe = "Salt-Minion-$versionSection-$arch-Setup.exe"
Write-Output "Downloading Salt minion installer $saltExe"
$webclient = New-Object System.Net.WebClient
$url = "$repourl/$saltExe"
$file = "C:\Windows\Temp\$saltExe"
$webclient.DownloadFile($url, $file)
#===============================================================================
# Set the parameters for the installer
#===============================================================================
# Unless specified, use the installer defaults
# - id: <hostname>
# - master: salt
# - Start the service
$parameters = ""
if($minion -ne "not-specified") {$parameters = "/minion-name=$minion"}
if($master -ne "not-specified") {$parameters = "$parameters /master=$master"}
if($runservice -eq $false) {$parameters = "$parameters /start-service=0"}
#===============================================================================
# Install minion silently
#===============================================================================
#Wait for process to exit before continuing.
Write-Output "Installing Salt minion"
Start-Process C:\Windows\Temp\$saltExe -ArgumentList "/S $parameters" -Wait -NoNewWindow -PassThru | Out-Null
#===============================================================================
# Configure the minion service
#===============================================================================
# Wait for salt-minion service to be registered before trying to start it
$service = Get-Service salt-minion -ErrorAction SilentlyContinue
while (!$service) {
Start-Sleep -s 2
$service = Get-Service salt-minion -ErrorAction SilentlyContinue
}
if($runservice) {
# Start service
Write-Output "Starting the Salt minion service"
Start-Service -Name "salt-minion" -ErrorAction SilentlyContinue
# Check if service is started, otherwise retry starting the
# service 4 times.
$try = 0
while (($service.Status -ne "Running") -and ($try -ne 4)) {
Start-Service -Name "salt-minion" -ErrorAction SilentlyContinue
$service = Get-Service salt-minion -ErrorAction SilentlyContinue
Start-Sleep -s 2
$try += 1
}
# If the salt-minion service is still not running, something probably
# went wrong and user intervention is required - report failure.
if ($service.Status -eq "Stopped") {
Write-Output -NoNewline "Failed to start salt minion"
Write-Host "Failed" -ForegroundColor Red
exit 1
}
}
else {
Write-Output -NoNewline "Stopping salt minion and setting it to 'Manual'"
Set-Service "salt-minion" -StartupType "Manual"
# The installer should have installed the service stopped, but we'll make
# sure it is stopped here
if ( $service.Status -ne "Stopped" ) {
Write-Host "Stopping Service: " -NoNewline
Stop-Service "salt-minion"
$service.Refresh()
if ( $service.Status -eq "Stopped" ) {
Write-Host "Success" -ForegroundColor Green
} else {
Write-Host "Failed" -ForegroundColor Red
exit 1
}
}
}
#===============================================================================
# Script Complete
#===============================================================================
if ($ConfigureOnly) {
Write-Output "Salt minion successfully configured"
}
else {
Write-Output "Salt minion successfully installed"
}
Write-Host "-------------------------------------------------------------------------------" -ForegroundColor Yellow
Write-Host "Salt Minion Installed Successfully" -ForegroundColor Green
Write-Host "===============================================================================" -ForegroundColor Yellow
exit 0

File diff suppressed because it is too large Load diff

View file

@ -1,51 +0,0 @@
---
driver:
name: vagrant
vm_hostname: salt
username: vagrant
cache_directory: false
customize:
usbxhci: 'off'
gui: false
ssh:
shell: /bin/sh
linked_clone: true
<% unless ENV['CI'] %>
synced_folders:
- - '.kitchen/kitchen-vagrant/%{instance_name}/vagrant'
- '/vagrant'
- 'create: true, disabled: false'
<% end %>
provisioner:
init_environment: |
echo 'auto_accept: true' > /tmp/auto-accept-keys.conf
sudo mkdir -p /usr/local/etc/salt/master.d
sudo mv /tmp/auto-accept-keys.conf /usr/local/etc/salt/master.d/auto-accept-keys.conf
sudo pkg install -y shuf
sh -c 't=$(shuf -i 1-15 -n 1); echo Sleeping $t seconds; sleep $t'
sudo: true
platforms:
- name: freebsd-131
driver:
box: bento/freebsd-13.1
- name: freebsd-123
driver:
box: bento/freebsd-12.3
- name: openbsd-6
driver:
box: generic/openbsd6
ssh:
shell: /bin/ksh
synced_folders: []
provisioner:
init_environment: |
echo 'auto_accept: true' > /tmp/auto-accept-keys.conf
sudo mkdir -p /etc/salt/master.d
sudo mv /tmp/auto-accept-keys.conf /etc/salt/master.d/auto-accept-keys.conf
sudo pkg_add coreutils
sh -c 't=$(gshuf -i 1-15 -n 1); echo Sleeping $t seconds; sleep $t'
verifier:
command: pytest --cache-clear -v -s -ra --log-cli-level=debug -k "not test_ping" tests/integration/

View file

@ -1,33 +0,0 @@
---
driver:
name: exec
provisioner:
sudo: true
salt_bootstrap_options: -MP stable %s
salt_call_command: /opt/salt/bin/salt-call
init_environment: |
echo 'auto_accept: true' > /tmp/auto-accept-keys.conf
sudo mkdir -p /etc/salt/master.d
sudo mv /tmp/auto-accept-keys.conf /etc/salt/master.d/auto-accept-keys.conf
brew install coreutils
sh -c 't=$(gshuf -i 1-15 -n 1); echo Sleeping $t seconds; sleep $t'
platforms:
- name: macos-12
- name: macos-11
- name: macos-1015
suites:
- name: stable-3003
provisioner:
salt_version: 3003.4
- name: stable-3004
provisioner:
salt_version: 3004.1
- name: latest
provisioner:
salt_version: latest
verifier:
command: pytest --cache-clear -v -s -ra --log-cli-level=debug -k "not test_ping" tests/integration/

View file

@ -1,32 +0,0 @@
---
driver:
name: proxy
host: localhost
reset_command: "exit 0"
port: 5985
username: kitchen
password: Password1
provisioner:
salt_bootstrap_url: D:/a/salt-bootstrap/salt-bootstrap/bootstrap-salt.ps1
salt_bootstrap_options: -pythonVersion 3 -version %s
init_environment: ''
platforms:
- name: windows-2022
- name: windows-2019
suites:
- name: stable-3003
provisioner:
salt_version: 3003.4-1
- name: stable-3004
provisioner:
salt_version: 3004.1-1
- name: latest
provisioner:
salt_version: latest
salt_call_command: c:\Program Files\Salt Project\Salt\salt-call.bat
verifier:
command: pytest --cache-clear -v -s -ra --log-cli-level=debug -k "not test_ping" tests/integration/

View file

@ -1,202 +0,0 @@
---
driver:
name: docker
use_sudo: false
hostname: salt
privileged: true
username: root
cap_add:
- sys_admin
disable_upstart: false
use_internal_docker_network: false
run_command: /usr/lib/systemd/systemd
provisioner:
name: salt_solo
salt_install: bootstrap
salt_bootstrap_url: bootstrap-salt.sh
salt_bootstrap_options: -MPfq git %s
install_after_init_environment: true
log_level: info
sudo: false
require_chef: false
formula: tests
run_salt_call: false
init_environment: |
echo 'auto_accept: true' > /tmp/auto-accept-keys.conf
mkdir -p /etc/salt/master.d
mv /tmp/auto-accept-keys.conf /etc/salt/master.d/auto-accept-keys.conf
sh -c 't=$(shuf -i 1-15 -n 1); echo Sleeping $t seconds; sleep $t'
platforms:
- name: almalinux-8
- name: amazon-2
driver:
image: amazonlinux:2
platform: rhel
provision_command:
- yum -y install procps-ng
- name: arch
driver:
image: archlinux/archlinux
provision_command:
- pacman -Syu --noconfirm --needed systemd grep awk procps which
- systemctl enable sshd
- echo "PubkeyAcceptedAlgorithms +ssh-rsa" | tee -a /etc/ssh/sshd_config
- name: centos-stream8
driver:
image: quay.io/centos/centos:stream8
- name: centos-7
- name: debian-9
driver:
run_command: /lib/systemd/systemd
- name: debian-10
driver:
run_command: /lib/systemd/systemd
- name: debian-11
driver:
image: debian:bullseye
run_command: /lib/systemd/systemd
- name: fedora-35
driver:
provision_command: &fedora_provision_command
- dnf -y install procps-ng crypto-policies-scripts
- update-crypto-policies --set LEGACY
- name: fedora-36
driver:
provision_command: *fedora_provision_command
- name: gentoo
driver:
image: gentoo/stage3:latest
run_command: /sbin/init
provision_command:
- rc-update add sshd default
- echo "PubkeyAcceptedAlgorithms +ssh-rsa" | tee -a /etc/ssh/sshd_config
- name: gentoo-systemd
driver:
image: gentoo/stage3:systemd
run_command: /lib/systemd/systemd
provision_command:
- systemctl enable sshd.service
- echo "PubkeyAcceptedAlgorithms +ssh-rsa" | tee -a /etc/ssh/sshd_config
- name: opensuse-15
driver:
image: opensuse/leap:15.4
provision_command:
- &opensuse_provision_command_01 zypper --non-interactive install --auto-agree-with-licenses dbus-1
- &opensuse_provision_command_02 zypper --non-interactive install --auto-agree-with-licenses sudo openssh which curl systemd
- &opensuse_provision_command_03 systemctl enable sshd.service
- name: opensuse-tumbleweed
driver:
image: opensuse/tumbleweed:latest
provision_command:
- *opensuse_provision_command_01
- *opensuse_provision_command_02
- *opensuse_provision_command_03
- echo "PubkeyAcceptedAlgorithms +ssh-rsa" | tee -a /etc/ssh/sshd_config
- name: oraclelinux-8
- name: oraclelinux-7
- name: rockylinux-8
- name: ubuntu-22.04
driver:
run_command: /lib/systemd/systemd
provision_command:
- echo "PubkeyAcceptedAlgorithms +ssh-rsa" | tee -a /etc/ssh/sshd_config
- name: ubuntu-21.10
driver:
run_command: /lib/systemd/systemd
- name: ubuntu-20.04
driver:
run_command: /lib/systemd/systemd
- name: ubuntu-18.04
driver:
run_command: /lib/systemd/systemd
suites:
- name: git-3003
provisioner:
salt_version: 3003
salt_bootstrap_options: -x python3 -MPfq git %s
- name: git-3004
provisioner:
salt_version: 3004
salt_bootstrap_options: -x python3 -MPfq git %s
excludes:
- opensuse-15
- opensuse-tumbleweed
- debian-11
- arch
- gentoo
- gentoo-systemd
- freebsd-131
- freebsd-123
- openbsd-6
- name: stable-3003-0
provisioner:
salt_version: 3003
salt_bootstrap_options: -x python3 -MP stable 3003.0
excludes:
- opensuse-15
- opensuse-tumbleweed
- arch
- gentoo
- gentoo-systemd
- freebsd-131
- freebsd-123
- openbsd-6
excludes:
- opensuse-15
- opensuse-tumbleweed
- arch
- freebsd-131
- freebsd-123
- openbsd-6
- name: stable-3003
provisioner:
salt_version: 3003
salt_bootstrap_options: -x python3 -MP stable %s
excludes:
- opensuse-15
- opensuse-tumbleweed
- arch
- freebsd-131
- freebsd-123
- openbsd-6
- name: stable-3004-0
provisioner:
salt_version: 3004
salt_bootstrap_options: -x python3 -MP stable 3004.0
excludes:
- opensuse-15
- opensuse-tumbleweed
- arch
- gentoo
- gentoo-systemd
- freebsd-131
- freebsd-123
- openbsd-6
- name: stable-3004
provisioner:
salt_version: 3004
salt_bootstrap_options: -x python3 -MP stable %s
excludes:
- opensuse-15
- opensuse-tumbleweed
- arch
- freebsd-131
- freebsd-123
- openbsd-6
- name: git-master
provisioner:
salt_version: master
salt_bootstrap_options: -x python3 -MPfq -D git %s
- name: latest
provisioner:
salt_version: latest
salt_bootstrap_options: -MP stable %s
verifier:
name: shell
remote_exec: false
command: pytest --cache-clear -v -s -ra --log-cli-level=info tests/integration/

3
requirements/release.in Normal file
View file

@ -0,0 +1,3 @@
pre-commit
python-tools-scripts >= 0.18.6
boto3

78
requirements/release.txt Normal file
View file

@ -0,0 +1,78 @@
#
# This file is autogenerated by pip-compile with Python 3.10
# by the following command:
#
# pip-compile requirements/release.in
#
annotated-types==0.7.0
# via pydantic
attrs==24.3.0
# via python-tools-scripts
boto3==1.35.98
# via -r requirements/release.in
botocore==1.35.98
# via
# boto3
# s3transfer
certifi==2024.12.14
# via requests
cfgv==3.4.0
# via pre-commit
charset-normalizer==3.4.1
# via requests
distlib==0.3.9
# via virtualenv
filelock==3.16.1
# via
# python-tools-scripts
# virtualenv
identify==2.6.5
# via pre-commit
idna==3.10
# via requests
jmespath==1.0.1
# via
# boto3
# botocore
markdown-it-py==3.0.0
# via rich
mdurl==0.1.2
# via markdown-it-py
nodeenv==1.9.1
# via pre-commit
platformdirs==4.3.6
# via virtualenv
pre-commit==4.0.1
# via -r requirements/release.in
pydantic==2.10.5
# via python-tools-scripts
pydantic-core==2.27.2
# via pydantic
pygments==2.19.1
# via rich
python-dateutil==2.9.0.post0
# via botocore
python-tools-scripts==0.20.5
# via -r requirements/release.in
pyyaml==6.0.2
# via pre-commit
requests==2.32.3
# via python-tools-scripts
rich==13.9.4
# via python-tools-scripts
s3transfer==0.10.4
# via boto3
six==1.17.0
# via python-dateutil
typing-extensions==4.12.2
# via
# pydantic
# pydantic-core
# python-tools-scripts
# rich
urllib3==2.3.0
# via
# botocore
# requests
virtualenv==20.28.1
# via pre-commit

267
salt-quick-start.ps1 Normal file
View file

@ -0,0 +1,267 @@
<#
.SYNOPSIS
A simple Powershell script to quickly start using Salt.
.DESCRIPTION
This script will download the latest onedir version of Salt and extract it
into the same directory where the script is run. The script sets up an
environment that will allow you to run salt-call commands. To remove, just
delete the `salt` directory. The environment variables will only be set for
the current powershell session.
.EXAMPLE
./salt-quick-start.ps1
.LINK
Salt Bootstrap GitHub Project (script home) - https://github.com/saltstack/salt-bootstrap
Original Vagrant Provisioner Project - https://github.com/saltstack/salty-vagrant
Vagrant Project (utilizes this script) - https://github.com/mitchellh/vagrant
Salt Download Location - https://packages.broadcom.com/artifactory/saltproject-generic/windows/
Salt Manual Install Directions (Windows) - https://docs.saltproject.io/salt/install-guide/en/latest/topics/install-by-operating-system/windows.html
#>
# This is so the -Verbose parameter will work
[CmdletBinding()] param()
function Expand-ZipFile {
# Extract a zip file
#
# Args:
# ZipFile (string): The file to extract
# Destination (string): The location to extract to
#
# Error:
# Sets the failed status and exits with a scriptFailed exit code
[CmdletBinding()]
param(
[Parameter(Mandatory = $true)]
[string] $ZipFile,
[Parameter(Mandatory = $true)]
[string] $Destination
)
if (!(Test-Path -Path $Destination)) {
Write-Debug "Creating missing directory: $Destination"
New-Item -ItemType directory -Path $Destination
}
Write-Debug "Unzipping '$ZipFile' to '$Destination'"
if ($PSVersionTable.PSVersion.Major -ge 5) {
# PowerShell 5 introduced Expand-Archive
Write-Debug "Using Expand-Archive to unzip"
try{
Expand-Archive -Path $ZipFile -DestinationPath $Destination -Force
} catch {
Write-Debug "Failed to unzip $ZipFile : $_"
exit 1
}
} else {
# This method will work with older versions of powershell, but it is
# slow
Write-Debug "Using Shell.Application to unzip"
$objShell = New-Object -Com Shell.Application
$objZip = $objShell.NameSpace($ZipFile)
try{
foreach ($item in $objZip.Items()) {
$objShell.Namespace($Destination).CopyHere($item, 0x14)
}
} catch {
Write-Debug "Failed to unzip $ZipFile : $_"
exit 1
}
}
Write-Debug "Finished unzipping '$ZipFile' to '$Destination'"
}
function Get-FileHash {
# Get-FileHash is a built-in cmdlet in powershell 5+ but we need to support
# powershell 3. This will overwrite the powershell 5 commandlet only for
# this script. But it will provide the missing cmdlet for powershell 3
[CmdletBinding()]
param(
[Parameter(Mandatory=$true)]
[String] $Path,
[Parameter(Mandatory=$false)]
[ValidateSet(
"SHA1",
"SHA256",
"SHA384",
"SHA512",
# https://serverfault.com/questions/820300/
# why-isnt-mactripledes-algorithm-output-in-powershell-stable
"MACTripleDES", # don't use
"MD5",
"RIPEMD160",
IgnoreCase=$true)]
[String] $Algorithm = "SHA256"
)
if ( !(Test-Path $Path) ) {
Write-Verbose "Invalid path for hashing: $Path"
return @{}
}
if ( (Get-Item -Path $Path) -isnot [System.IO.FileInfo]) {
Write-Verbose "Not a file for hashing: $Path"
return @{}
}
$Path = Resolve-Path -Path $Path
Switch ($Algorithm) {
SHA1 {
$hasher = [System.Security.Cryptography.SHA1CryptoServiceProvider]::Create()
}
SHA256 {
$hasher = [System.Security.Cryptography.SHA256]::Create()
}
SHA384 {
$hasher = [System.Security.Cryptography.SHA384]::Create()
}
SHA512 {
$hasher = [System.Security.Cryptography.SHA512]::Create()
}
MACTripleDES {
$hasher = [System.Security.Cryptography.MACTripleDES]::Create()
}
MD5 {
$hasher = [System.Security.Cryptography.MD5]::Create()
}
RIPEMD160 {
$hasher = [System.Security.Cryptography.RIPEMD160]::Create()
}
}
Write-Verbose "Hashing using $Algorithm algorithm"
try {
$data = [System.IO.File]::OpenRead($Path)
$hash = $hasher.ComputeHash($data)
$hash = [System.BitConverter]::ToString($hash) -replace "-",""
return @{
Path = $Path;
Algorithm = $Algorithm.ToUpper();
Hash = $hash
}
} catch {
Write-Verbose "Error hashing: $Path"
Write-Verbose "ERROR: $_"
return @{}
} finally {
if ($null -ne $data) {
$data.Close()
}
}
}
#===============================================================================
# Script settings
#===============================================================================
[System.Net.ServicePointManager]::SecurityProtocol = [System.Net.SecurityProtocolType]'Tls12'
$global:ProgressPreference = 'SilentlyContinue'
#===============================================================================
# Declare Variables
#===============================================================================
$ApiUrl = "https://packages.broadcom.com/artifactory/api/storage/saltproject-generic/onedir"
# Detect architecture ($arch)
if ([IntPtr]::Size -eq 4) { $arch = "x86" } else { $arch = "amd64" }
#===============================================================================
# Setting up quickstart environment
#===============================================================================
Write-Host ""
Write-Host "Setting up quickstart environment for Salt" -ForegroundColor Cyan
Write-Verbose "Getting version information from Artifactory"
$response = Invoke-WebRequest $ApiUrl -UseBasicParsing
# Convert the output to a powershell object
$psobj = $response.ToString() | ConvertFrom-Json
$Version = $psobj.children[-1].uri.Trim("/")
Write-Verbose "Getting sha256 hash and download url from Artifactory"
$saltFileName = "salt-$Version-onedir-windows-$arch.zip"
$response = Invoke-WebRequest "$ApiUrl/$Version/$saltFileName" -UseBasicParsing
$psobj = $response.ToString() | ConvertFrom-Json
$saltFileUrl = $psobj.downloadUri
$saltSha256 = $psobj.checksums.sha256
Write-Verbose "URL: $saltFileUrl"
Write-Host "* INFO: Downloading Salt: " -NoNewline
Invoke-WebRequest -Uri $saltFileUrl -OutFile .\salt.zip
if ( Test-Path -Path .\salt.zip ) {
Write-Host "Success" -ForegroundColor Green
} else {
Write-Host "Failed" -ForegroundColor Red
exit 1
}
$localSha256 = (Get-FileHash -Path .\salt.zip -Algorithm SHA256).Hash
Write-Verbose "Local Hash: $localSha256"
Write-Verbose "Remote Hash: $saltSha256"
Write-Host "* INFO: Comparing Hash: " -NoNewline
if ( $localSha256 -eq $saltSha256 ) {
Write-Host "Success" -ForegroundColor Green
} else {
Write-Host "Failed" -ForegroundColor Red
exit 1
}
Write-Host "* INFO: Extracting Salt: " -NoNewline
Expand-ZipFile -ZipFile .\salt.zip -Destination .
if ( Test-Path -Path .\salt\Scripts\python.exe ) {
Write-Host "Success" -ForegroundColor Green
} else {
Write-Host "Failed" -ForegroundColor Red
exit 1
}
Write-Host "* INFO: Creating Saltfile: " -NoNewline
$PATH = $(Get-Location).Path
$saltfile_contents = @"
salt-call:
local: True
config_dir: $PATH\salt\conf
log_file: $PATH\salt\var\log\salt\minion
cachedir: $PATH\salt\var\cache\salt
file_root: $PATH\salt\srv\salt
"@
Set-Content -Path .\salt\Saltfile -Value $saltfile_contents
if ( Test-Path -Path .\salt\Saltfile ) {
Write-Host "Success" -ForegroundColor Green
} else {
Write-Host "Failed" -ForegroundColor Red
exit 1
}
New-Item -Path "$PATH\salt\var\log\salt" -Type Directory -Force | Out-Null
New-Item -Path "$PATH\salt\conf" -Type Directory -Force | Out-Null
New-Item -Path "$PATH\salt\var\cache\salt" -Type Directory -Force | Out-Null
New-Item -Path "$PATH\salt\srv\salt" -Type Directory -Force | Out-Null
Write-Host "* INFO: Adding Salt to current path: " -NoNewline
$env:Path = "$PATH\salt;$env:PATH"
Write-Verbose $env:Path
if ( $env:PATH -Like "*$PATH\salt*" ) {
Write-Host "Success" -ForegroundColor Green
} else {
Write-Host "Failed" -ForegroundColor Red
exit 1
}
Write-Host "* INFO: $PATH\salt"
Write-Host "* INFO: Setting the SALT_SALTFILE environment variable: "-NoNewline
$env:SALT_SALTFILE="$PATH\salt\Saltfile"
if ( Test-Path -Path $env:SALT_SALTFILE ) {
Write-Host "Success" -ForegroundColor Green
} else {
Write-Host "Failed" -ForegroundColor Red
exit 1
}
Write-Host "* INFO: $PATH\salt\Saltfile"
Write-Host ""
Write-Host "You can now run simple salt-call commands" -ForegroundColor Cyan
Write-Host "* INFO: Create Salt states in $PATH\salt\srv\salt"
Write-Host "* INFO: Try running salt-call test.ping"
Write-Host ""

251
salt-quick-start.sh Executable file
View file

@ -0,0 +1,251 @@
#!/bin/sh
__ScriptName="salt-quick-start.sh"
SALT_REPO_URL="https://packages.broadcom.com/artifactory/salt-project-generic/onedir"
_COLORS=${QS_COLORS:-$(tput colors 2>/dev/null || echo 0)}
_LOCAL=0
_FULL=0
_STOP=0
PWD="$(pwd)"
_PATH=${PWD}/salt
__usage() {
cat << EOT
Usage : ${__ScriptName} [options]
Options:
-h Show usage.
-f Full setup with a Salt minion and Salt master running.
-l Local setup, no Salt minion or Salt master running.
-s Attempt to stop a running Salt minion and Salt master.
EOT
} # ---------- end of function __usage ----------
echoinfo() {
printf "${GC} * INFO${EC}: %s\\n" "$@";
}
echoerror() {
printf "${RC} * ERROR${EC}: %s\\n" "$@" 1>&2;
}
__detect_color_support() {
# shellcheck disable=SC2181
if [ $? -eq 0 ] && [ "$_COLORS" -gt 2 ]; then
RC='\033[1;31m'
GC='\033[1;32m'
BC='\033[1;34m'
YC='\033[1;33m'
EC='\033[0m'
else
RC=""
GC=""
BC=""
YC=""
EC=""
fi
}
__detect_color_support
while getopts ':fhls' opt
do
case "${opt}" in
h ) __usage; exit 0 ;;
l ) _LOCAL=1 ;;
f ) _FULL=1 ;;
s ) _STOP=1 ;;
esac # --- end of case ---
done
shift $((OPTIND-1))
if [[ "${_STOP}" == "1" ]]; then
if [[ -f "${_PATH}/var/run/salt-minion.pid" ]]; then
echoinfo "Stopping the salt-minion"
kill $(cat "${_PATH}/var/run/salt-minion.pid")
else
echoerror "${_PATH}/var/run/salt-minion.pid not found"
fi
if [[ -f "${_PATH}/var/run/salt-master.pid" ]]; then
echoinfo "Stopping the salt-master"
kill $(cat "${_PATH}/var/run/salt-master.pid")
else
echoerror "${_PATH}/var/run/salt-master.pid not found"
fi
exit 0
fi
if [[ "$_LOCAL" == "1" && "$_FULL" == "1" ]]; then
echo "Only specify either local or full"
exit 0
fi
__parse_repo_json_jq() {
# $1 is OS_NAME
# $2 is ARCH
# get dir listing from url, sort and pick highest
onedir_versions_tmpf=$(mktemp)
curr_pwd=$(pwd)
cd ${onedir_versions_tmpf} || return 1
wget -r -np -nH --exclude-directories=onedir,relenv,windows -x -l 1 "$SALT_REPO_URL/"
# shellcheck disable=SC2010
LATEST_VERSION=$(ls artifactory/saltproject-generic/onedir/ | grep -v 'index.html' | sort -V -u | tail -n 1)
cd ${curr_pwd} || return "${LATEST_VERSION}"
rm -fR ${onedir_versions_tmpf}
_JSON_VERSION="${LATEST_VERSION}"
}
__fetch_url() {
# shellcheck disable=SC2086
curl $_CURL_ARGS -L -s -f -o "$1" "$2" >/dev/null 2>&1 ||
wget $_WGET_ARGS -q -O "$1" "$2" >/dev/null 2>&1 ||
fetch $_FETCH_ARGS -q -o "$1" "$2" >/dev/null 2>&1 || # FreeBSD
fetch -q -o "$1" "$2" >/dev/null 2>&1 || # Pre FreeBSD 10
ftp -o "$1" "$2" >/dev/null 2>&1 || # OpenBSD
(echoerror "$2 failed to download to $1"; exit 1)
}
__gather_os_info() {
OS_NAME=$(uname -s 2>/dev/null)
OS_NAME_L=$( echo "$OS_NAME" | tr '[:upper:]' '[:lower:]' )
OS_VERSION=$(uname -r)
# shellcheck disable=SC2034
OS_VERSION_L=$( echo "$OS_VERSION" | tr '[:upper:]' '[:lower:]' )
}
__gather_hardware_info() {
if [ -f /proc/cpuinfo ]; then
CPU_VENDOR_ID=$(awk '/vendor_id|Processor/ {sub(/-.*$/,"",$3); print $3; exit}' /proc/cpuinfo )
elif [ -f /usr/bin/kstat ]; then
# SmartOS.
# Solaris!?
# This has only been tested for a GenuineIntel CPU
CPU_VENDOR_ID=$(/usr/bin/kstat -p cpu_info:0:cpu_info0:vendor_id | awk '{print $2}')
else
CPU_VENDOR_ID=$( sysctl -n hw.model )
fi
# shellcheck disable=SC2034
CPU_VENDOR_ID_L=$( echo "$CPU_VENDOR_ID" | tr '[:upper:]' '[:lower:]' )
CPU_ARCH=$(uname -m 2>/dev/null || uname -p 2>/dev/null || echo "unknown")
CPU_ARCH_L=$( echo "$CPU_ARCH" | tr '[:upper:]' '[:lower:]' )
}
__gather_hardware_info
__gather_os_info
_DARWIN_ARM=0
if [[ "${OS_NAME_L}" == "darwin" ]]; then
OS_NAME="macos"
# Use x86_64 packages until we are able build arm packages
if [[ "${CPU_ARCH_L}" == "arm64" ]]; then
CPU_ARCH_L="x86_64"
_DARWIN_ARM=1
fi
else
OS_NAME="${OS_NAME_L}"
fi
__parse_repo_json_jq ${OS_NAME} ${CPU_ARCH_L}
FILE="salt-${_JSON_VERSION}-onedir-${OS_NAME_L}-${CPU_ARCH_L}.tar.xz"
URL="${SALT_REPO_URL}/${_JSON_VERSION}/${FILE}"
if [[ ! -f ${FILE} ]]; then
echoinfo "Downloading Salt"
__fetch_url "${FILE}" "${URL}"
fi
if [[ ! -d "salt" ]]; then
echoinfo "Extracting Salt"
tar xf ${FILE}
# very very hacky, remove ASAP
if [[ "${_DARWIN_ARM}" == "1" ]]; then
mkdir -p ${_PATH}/opt/openssl/lib
ln -s ${_PATH}/lib/libcrypto.dylib ${_PATH}/opt/openssl/lib/libcrypto.dylib
fi
else
echoinfo "A salt directory already exists here, not extracting."
fi
mkdir -p ${_PATH}/etc/salt
mkdir -p ${_PATH}/srv/salt
cat <<EOT >${_PATH}/etc/salt/master
root_dir: ${_PATH}
file_root: ${_PATH}/srv/salt
EOT
cat <<EOT >${_PATH}/etc/salt/minion
root_dir: ${_PATH}
master: 127.0.0.1
id: minion
EOT
cat <<EOT >${_PATH}/Saltfile
salt-call:
local: True
config_dir: ${_PATH}/etc/salt
log_file: ${_PATH}/var/log/salt/minion
cachedir: ${_PATH}/var/cache/salt
file_root: ${_PATH}/srv/salt
salt-master:
config_dir: ${_PATH}/etc/salt
file_root: ${_PATH}/srv/salt
salt-minion:
config_dir: ${_PATH}/etc/salt
file_root: ${_PATH}/srv/salt
salt-key:
config_dir: ${_PATH}/etc/salt
salt:
config_dir: ${_PATH}/etc/salt
EOT
PATH_MSG="export PATH=${_PATH}"
PATH_MSG+=':$PATH'
echoinfo "Get started with Salt by running the following commands"
echoinfo "Add Salt to current path"
echoinfo " ${PATH_MSG}"
echoinfo "Use the provided Saltfile"
echoinfo " export SALT_SALTFILE=${_PATH}/Saltfile"
# very very hacky, remove ASAP
if [[ "${_DARWIN_ARM}" == "1" ]]; then
echoinfo "Setup HOMEBREW"
echoinfo " export HOMEBREW_PREFIX=${_PATH}"
fi
echoinfo "Create Salt states in ${_PATH}/srv/salt"
if [[ "${_FULL}" == "1" ]]; then
export PATH="${_PATH}:$PATH"
export SALT_SALTFILE="${_PATH}/Saltfile"
# very very hacky, remove ASAP
if [[ "${_DARWIN_ARM}" == "1" ]]; then
export HOMEBREW_PREFIX=${_PATH}
fi
echoinfo "Starting salt-master"
salt-master -d -c ${_PATH}/etc/salt
sleep 5
echoinfo "Starting salt-minion"
salt-minion -d -c ${_PATH}/etc/salt
echoinfo "Run salt-key -L to see pending minion keys"
echoinfo "Run salt-key -a minion to accept the pending minion key"
fi

View file

@ -1,41 +1,12 @@
import json
import os
import pprint
import pytest
import testinfra
import logging
import requests
log = logging.getLogger(__name__)
@pytest.fixture(scope="session")
def host():
if (
os.environ.get("RUNNER_OS", "") == "macOS"
and os.environ.get("KITCHEN_LOCAL_YAML", "") == "kitchen.macos.yml"
):
# Adjust the `PATH` so that the `salt-call` executable can be found
os.environ["PATH"] = "/opt/salt/bin{}{}".format(os.pathsep, os.environ["PATH"])
return testinfra.get_host("local://", sudo=True)
if os.environ.get("KITCHEN_USERNAME") == "vagrant" or "windows" in os.environ.get(
"KITCHEN_INSTANCE"
):
if "windows" in os.environ.get("KITCHEN_INSTANCE"):
return testinfra.get_host(
"winrm://{KITCHEN_USERNAME}:{KITCHEN_PASSWORD}@{KITCHEN_HOSTNAME}:{KITCHEN_PORT}".format(
**os.environ
),
no_ssl=True,
)
return testinfra.get_host(
"paramiko://{KITCHEN_USERNAME}@{KITCHEN_HOSTNAME}:{KITCHEN_PORT}".format(
**os.environ
),
ssh_identity_file=os.environ.get("KITCHEN_SSH_KEY"),
)
return testinfra.get_host(
"docker://{KITCHEN_USERNAME}@{KITCHEN_CONTAINER_ID}".format(**os.environ)
)
API_URL = (
"https://packages.broadcom.com/artifactory/api/storage/saltproject-generic/windows"
)
@pytest.fixture(scope="session")
@ -45,7 +16,33 @@ def target_python_version():
@pytest.fixture(scope="session")
def target_salt_version():
target_salt = os.environ["KITCHEN_SUITE"].split("-", 2)[-1].replace("-", ".")
if target_salt in ("latest", "master"):
target_salt = os.environ.get("SaltVersion", "")
html_response = requests.get(API_URL)
content = json.loads(html_response.text)
folders = content["children"]
versions = {}
for folder in folders:
if folder["folder"]:
version = folder["uri"].strip("/")
versions[version] = version
# We're trying to get the latest major version and latest overall
maj_version = version.split(".")[0]
versions[maj_version] = version
versions["latest"] = version
if target_salt.startswith("v"):
target_salt = target_salt[1:]
if target_salt not in versions:
pytest.skip(f"Invalid testing version: {target_salt}")
if target_salt in (
"default",
"latest",
"master",
"nightly",
"stable",
"onedir",
"git",
):
pytest.skip("Don't have a specific salt version to test against")
return target_salt
return versions[target_salt]

View file

@ -1 +0,0 @@
# -*- coding: utf-8 -*-

View file

@ -1,32 +1,82 @@
# -*- coding: utf-8 -*-
import os
import json
import logging
from contextlib import nullcontext
import os
import platform
import subprocess
import pytest
log = logging.getLogger(__name__)
def selected_context_manager(host):
if "windows" in os.environ.get("KITCHEN_INSTANCE"):
return nullcontext()
return host.sudo()
@pytest.fixture
def path():
if platform.system() == "Windows":
salt_path = "C:\\Program Files\\Salt Project\\Salt"
if salt_path not in os.environ["path"]:
os.environ["path"] = f'{os.environ["path"]};{salt_path}'
yield os.environ["path"]
else:
yield ""
def test_ping(host):
with selected_context_manager(host):
assert host.salt("test.ping", "--timeout=120")
def test_target_python_version(host, target_python_version):
with selected_context_manager(host):
ret = host.salt("grains.item", "pythonversion", "--timeout=120")
assert ret["pythonversion"][0] == target_python_version
def test_target_salt_version(host, target_salt_version):
with selected_context_manager(host):
ret = host.salt("grains.item", "saltversion", "--timeout=120")
if target_salt_version.endswith(".0"):
assert ret["saltversion"] == ".".join(target_salt_version.split(".")[:-1])
def run_salt_call(cmd):
"""
Runs salt call command and returns a dictionary
Accepts cmd as a list
"""
json_data = {"local": {}}
if platform.system() == "Windows":
cmd.append("--out=json")
result = subprocess.run(cmd, capture_output=True, text=True)
if 0 == result.returncode:
json_data = json.loads(result.stdout)
else:
assert ret["saltversion"].startswith(target_salt_version)
log.error(f"failed to produce output result, '{result}'")
else:
if platform.system() == "Darwin":
cmdl = ["sudo"]
else:
cmdl = []
cmdl.extend(cmd)
cmdl.append("--out=json")
try:
result = subprocess.run(cmdl, capture_output=True, text=True)
except TypeError:
result = subprocess.run(
cmdl,
stdout=subprocess.PIPE,
stderr=subprocess.PIPE,
universal_newlines=True,
)
if 0 == result.returncode:
json_data = json.loads(result.stdout)
else:
log.error(f"failed to produce output result, '{result}'")
return json_data["local"]
def test_ping(path):
cmd = ["salt-call", "--local", "test.ping"]
result = run_salt_call(cmd)
assert result == True
def test_target_python_version(path, target_python_version):
cmd = ["salt-call", "--local", "grains.item", "pythonversion", "--timeout=120"]
result = run_salt_call(cmd)
# Returns: {'pythonversion': [3, 10, 11, 'final', 0]}
py_maj_ver = result["pythonversion"][0]
assert py_maj_ver == target_python_version
def test_target_salt_version(path, target_salt_version):
if not target_salt_version:
pytest.skip(f"No target version specified")
cmd = ["salt-call", "--local", "grains.item", "saltversion", "--timeout=120"]
result = run_salt_call(cmd)
# Returns: {'saltversion': '3006.9+217.g53cfa53040'}
adj_saltversion = result["saltversion"].split("+")[0]
assert adj_saltversion == target_salt_version

View file

@ -1,4 +1,2 @@
pytest-testinfra
paramiko
pywinrm; sys.platform == 'win32'
six>=1.10.0
pytest
requests

9
tools/__init__.py Normal file
View file

@ -0,0 +1,9 @@
import logging
import ptscripts
ptscripts.register_tools_module("tools.pre_commit")
ptscripts.register_tools_module("tools.release")
for name in ("boto3", "botocore", "urllib3"):
logging.getLogger(name).setLevel(logging.INFO)

51
tools/pre_commit.py Normal file
View file

@ -0,0 +1,51 @@
"""
These commands are used by pre-commit.
"""
# pylint: disable=resource-leakage,broad-except,3rd-party-module-not-gated
from __future__ import annotations
import logging
import shutil
from ptscripts import Context, command_group
log = logging.getLogger(__name__)
# Define the command group
cgroup = command_group(
name="pre-commit", help="Pre-Commit Related Commands", description=__doc__
)
@cgroup.command(
name="actionlint",
arguments={
"files": {
"help": "Files to run actionlint against",
"nargs": "*",
},
"no_color": {
"help": "Disable colors in output",
},
},
)
def actionlint(ctx: Context, files: list[str], no_color: bool = False):
"""
Run `actionlint`
"""
actionlint = shutil.which("actionlint")
if not actionlint:
ctx.warn("Could not find the 'actionlint' binary")
ctx.exit(0)
cmdline = [actionlint]
if no_color is False:
cmdline.append("-color")
shellcheck = shutil.which("shellcheck")
if shellcheck:
cmdline.append(f"-shellcheck={shellcheck}")
pyflakes = shutil.which("pyflakes")
if pyflakes:
cmdline.append(f"-pyflakes={pyflakes}")
ret = ctx.run(*cmdline, *files, check=False)
ctx.exit(ret.returncode)

147
tools/release.py Normal file
View file

@ -0,0 +1,147 @@
"""
These commands are used to release Salt Bootstrap.
"""
# pylint: disable=resource-leakage,broad-except,3rd-party-module-not-gated
from __future__ import annotations
import logging
import os
import pathlib
import sys
from typing import TYPE_CHECKING
from ptscripts import command_group
from ptscripts import Context
import tools.utils
try:
import boto3
except ImportError:
print(
"\nPlease run 'python -m pip install -r requirements/release.txt'\n",
file=sys.stderr,
flush=True,
)
raise
log = logging.getLogger(__name__)
# Define the command group
release = command_group(
name="release",
help="Release Related Commands",
description=__doc__,
)
@release.command(
name="s3-publish",
arguments={
"branch": {
"help": "The kind of publish to do.",
"choices": ("stable", "develop"),
},
"key_id": {
"help": "The GnuPG key ID used to sign.",
"required": True,
},
},
)
def s3_publish(ctx: Context, branch: str, key_id: str = None):
"""
Publish scripts to S3.
"""
if TYPE_CHECKING:
assert key_id
ctx.info("Preparing upload ...")
s3 = boto3.client("s3")
ctx.info(
f"Uploading release artifacts to {tools.utils.RELEASE_BUCKET_NAME!r} bucket ..."
)
upload_files = {
"stable": {
f"{tools.utils.GPG_KEY_FILENAME}.gpg": [
f"bootstrap/stable/{tools.utils.GPG_KEY_FILENAME}.gpg",
],
f"{tools.utils.GPG_KEY_FILENAME}.pub": [
f"bootstrap/stable/{tools.utils.GPG_KEY_FILENAME}.pub",
],
"bootstrap-salt.sh": [
"bootstrap/stable/bootstrap-salt.sh",
],
"bootstrap-salt.sh.sha256": [
"bootstrap/stable/bootstrap-salt.sh.sha256",
"bootstrap/stable/bootstrap/sha256",
],
"bootstrap-salt.ps1": [
"bootstrap/stable/bootstrap-salt.ps1",
],
"bootstrap-salt.ps1.sha256": [
"bootstrap/stable/bootstrap-salt.ps1.sha256",
"bootstrap/stable/winbootstrap/sha256",
],
},
"develop": {
f"{tools.utils.GPG_KEY_FILENAME}.gpg": [
f"bootstrap/develop/{tools.utils.GPG_KEY_FILENAME}.gpg",
],
f"{tools.utils.GPG_KEY_FILENAME}.pub": [
f"bootstrap/develop/{tools.utils.GPG_KEY_FILENAME}.pub",
],
"bootstrap-salt.sh": [
"bootstrap/develop/bootstrap-salt.sh",
"bootstrap/develop/bootstrap/develop",
],
"bootstrap-salt.sh.sha256": [
"bootstrap/develop/bootstrap-salt.sh.sha256",
],
"bootstrap-salt.ps1": [
"bootstrap/develop/bootstrap-salt.ps1",
"bootstrap/develop/winbootstrap/develop",
],
"bootstrap-salt.ps1.sha256": [
"bootstrap/develop/bootstrap-salt.ps1.sha256",
],
},
}
files_to_upload: list[tuple[str, str]] = []
try:
# Export the GPG key in use
tools.utils.export_gpg_key(ctx, key_id, tools.utils.REPO_ROOT)
for lpath, rpaths in upload_files[branch].items():
ctx.info(f"Processing {lpath} ...")
if lpath.endswith(".sha256") and not os.path.exists(lpath):
ret = ctx.run(
"sha256sum",
lpath.replace(".sha256", ""),
capture=True,
check=False,
)
if ret.returncode:
ctx.error(f"Failed to get the sha256sum of {lpath}")
ctx.exit(1)
pathlib.Path(lpath).write_bytes(ret.stdout)
for rpath in rpaths:
files_to_upload.append((lpath, rpath))
if not lpath.endswith((".gpg", ".pub")):
tools.utils.gpg_sign(ctx, key_id, pathlib.Path(lpath))
files_to_upload.append((f"{lpath}.asc", f"{rpaths[0]}.asc"))
for lpath, rpath in sorted(files_to_upload):
size = pathlib.Path(lpath).stat().st_size
ctx.info(f" Uploading {lpath} -> {rpath}")
with tools.utils.create_progress_bar(file_progress=True) as progress:
task = progress.add_task(description="Uploading...", total=size)
s3.upload_file(
lpath,
tools.utils.RELEASE_BUCKET_NAME,
rpath,
Callback=tools.utils.UpdateProgress(progress, task),
)
except KeyboardInterrupt:
pass

80
tools/utils.py Normal file
View file

@ -0,0 +1,80 @@
# pylint: disable=resource-leakage,broad-except,3rd-party-module-not-gated
from __future__ import annotations
import os
import pathlib
from ptscripts import Context
from rich.progress import BarColumn
from rich.progress import Column
from rich.progress import DownloadColumn
from rich.progress import Progress
from rich.progress import TextColumn
from rich.progress import TimeRemainingColumn
from rich.progress import TransferSpeedColumn
REPO_ROOT = pathlib.Path(__file__).resolve().parent.parent
GPG_KEY_FILENAME = "SALT-PROJECT-GPG-PUBKEY-2023"
SPB_ENVIRONMENT = os.environ.get("SPB_ENVIRONMENT") or "prod"
RELEASE_BUCKET_NAME = f"salt-project-{SPB_ENVIRONMENT}-salt-artifacts-release"
class UpdateProgress:
def __init__(self, progress, task):
self.progress = progress
self.task = task
def __call__(self, chunk_size):
self.progress.update(self.task, advance=chunk_size)
def create_progress_bar(file_progress: bool = False, **kwargs):
if file_progress:
return Progress(
TextColumn("[progress.description]{task.description}"),
BarColumn(),
DownloadColumn(),
TransferSpeedColumn(),
TextColumn("eta"),
TimeRemainingColumn(),
**kwargs,
)
return Progress(
TextColumn(
"[progress.description]{task.description}", table_column=Column(ratio=3)
),
BarColumn(),
expand=True,
**kwargs,
)
def export_gpg_key(ctx: Context, key_id: str, export_path: pathlib.Path):
keyfile_gpg = export_path.joinpath(GPG_KEY_FILENAME).with_suffix(".gpg")
if keyfile_gpg.exists():
keyfile_gpg.unlink()
ctx.info(f"Exporting GnuPG Key '{key_id}' to {keyfile_gpg} ...")
ctx.run("gpg", "--output", str(keyfile_gpg), "--export", key_id)
keyfile_pub = export_path.joinpath(GPG_KEY_FILENAME).with_suffix(".pub")
if keyfile_pub.exists():
keyfile_pub.unlink()
ctx.info(f"Exporting GnuPG Key '{key_id}' to {keyfile_pub} ...")
ctx.run("gpg", "--armor", "--output", str(keyfile_pub), "--export", key_id)
def gpg_sign(ctx: Context, key_id: str, path: pathlib.Path):
ctx.info(f"GPG Signing '{path}' ...")
signature_fpath = path.parent / f"{path.name}.asc"
if signature_fpath.exists():
signature_fpath.unlink()
ctx.run(
"gpg",
"--local-user",
key_id,
"--output",
str(signature_fpath),
"--armor",
"--detach-sign",
"--sign",
str(path),
)