Compare commits

...

1006 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
Gareth J. Greenaway
827abf199a
Merge pull request #1867 from saltstack/fixing_debian_arm64_repo_arch
Ensure the REPO_ARCH for Arm64 is correct.
2022-09-30 12:36:11 -07:00
pjcreath
ad4cb2d040
Add support for the -R flag on macOS. 2022-09-20 19:32:59 +00:00
Gareth J. Greenaway
614fac2709
Merge pull request #1868 from jeff350/fix_onedir_regex
onedir install - correct version regex
2022-09-16 14:36:36 -07:00
Jeff Neel
757ec21572 Merge branch 'fix_onedir_regex' of github.com:jeff350/salt-bootstrap into fix_onedir_regex 2022-09-15 17:10:51 -05:00
pjcreath
b7bd0f47f3 Install Oracle's EPEL repo on Oracle Linux 7 and 8. 2022-09-15 17:09:39 -05:00
Jeff Neel
f741160d13
correct regex as requested 2022-09-15 17:09:39 -05:00
Jeff Neel
8e5464bbc4
support format MAJOR-MINOR 2022-09-15 17:09:39 -05:00
Jeff Neel
b8be8149bc
fix regex 2022-09-15 17:09:39 -05:00
Jeff Neel
6e1d3a8ab4
fix regex 2022-09-15 17:09:38 -05:00
Jeff Neel
f95303449c
strip .0 2022-09-15 17:09:33 -05:00
Gareth J. Greenaway
0ece40cd0f Update the bootstrap script to work with final onedir releases. 2022-09-15 17:04:38 -05:00
Jeff Neel
ceb0dd702a
Merge branch 'develop' into fix_onedir_regex 2022-09-15 14:13:30 -05:00
Jeff Neel
2ff7097fac correct regex as requested 2022-09-15 13:44:19 -05:00
Gareth J. Greenaway
c7dab6ef5a
Merge branch 'develop' into fixing_debian_arm64_repo_arch 2022-09-15 11:37:12 -07:00
Gareth J. Greenaway
c24a2ba190
Merge pull request #1839 from pjcreath/use-oracle-epel
Install Oracle's EPEL repo on Oracle Linux 7 and 8.
2022-09-15 11:36:41 -07:00
Jeff Neel
9629b26152 support format MAJOR-MINOR 2022-09-14 08:31:44 -05:00
Gareth J. Greenaway
b2b4cb05a9
Merge branch 'develop' into use-oracle-epel 2022-09-13 16:21:32 -07:00
Gareth J. Greenaway
3b833c217a
fixing mention of amd64 which should be arm64. 2022-09-13 08:06:50 -07:00
Jeff Neel
04257ca5b3 fix regex 2022-09-13 00:31:59 -05:00
Jeff Neel
f9b6cf3628 fix regex 2022-09-13 00:14:46 -05:00
Jeff Neel
3d9c0497f4 strip .0 2022-09-12 23:10:12 -05:00
Gareth J. Greenaway
7fc46cdfda
Ensure the REPO_ARCH for Arm64 is correct. 2022-09-12 17:57:21 -07:00
Gareth J. Greenaway
88a915b754 Update the bootstrap script to work with final onedir releases. 2022-09-11 10:08:07 +01:00
pjcreath
bf66c84173
Merge branch 'develop' into use-oracle-epel 2022-08-21 20:37:29 -04:00
Shane Lee
84d72088d4
Merge pull request #1860 from eozer/develop
Update README for Windows installation
2022-08-15 13:41:48 -07:00
Ege Can ÖZER
cf176b3da2
Add a newline to Install on Windows codeblock 2022-08-15 21:15:42 +03:00
Ege Can ÖZER
19a07a4dc4
Update README for Windows installation 2022-08-15 21:11:57 +03:00
github-actions[bot] on behalf of @s0undt3ch
c56840296c Update README.rst with 2022.08.13 release sha256sum 2022-08-13 22:29:12 +00:00
github-actions[bot] on behalf of s0undt3ch
541c4bd41f Update develop branch for the v2022.08.13 release 2022-08-13 21:18:07 +00:00
Pedro Algarvio
449c65179b
Typo
Signed-off-by: Pedro Algarvio <palgarvio@vmware.com>
2022-08-13 22:16:50 +01:00
github-actions[bot] on behalf of s0undt3ch
ec905ffc2a Update develop branch for the v2022.08.13 release 2022-08-13 20:19:13 +00:00
Pedro Algarvio
273bc1f106 The main job should also set the exit status
Signed-off-by: Pedro Algarvio <palgarvio@vmware.com>
2022-08-13 21:12:50 +01:00
Pedro Algarvio
f414341b67 Update *.sha256 files when merging develop into stable
Fixes #1858

Signed-off-by: Pedro Algarvio <palgarvio@vmware.com>
2022-08-13 21:12:50 +01:00
Pedro Algarvio
d19191838f Run pre-commit on conflict files before adding them
Signed-off-by: Pedro Algarvio <palgarvio@vmware.com>
2022-08-12 19:01:57 +01:00
Pedro Algarvio
8c16792077 It's powershell on windows...
Signed-off-by: Pedro Algarvio <palgarvio@vmware.com>
2022-08-12 19:01:57 +01:00
github-actions[bot] on behalf of @s0undt3ch
5228a12b1f Update README.rst with 2022.08.12 release sha256sum 2022-08-12 13:03:50 +00:00
github-actions[bot] on behalf of s0undt3ch
9d2181138d Update develop branch for the v2022.08.12 release 2022-08-12 12:42:49 +00:00
Pedro Algarvio
184d1bd219
Specify the repository
Signed-off-by: Pedro Algarvio <palgarvio@vmware.com>
2022-08-12 13:14:20 +01:00
Pedro Algarvio
0e9fb4f5c1 Fix parameter name for the changed files action
Signed-off-by: Pedro Algarvio <palgarvio@vmware.com>
2022-08-12 13:03:44 +01:00
Pedro Algarvio
2fcde04ddd Fix the release workflow and attach it to a GH environment to further protect secrets
Signed-off-by: Pedro Algarvio <palgarvio@vmware.com>
2022-08-12 12:23:36 +01:00
Pedro Algarvio
a2c2306402 Changes in the release workflow should not trigger a full CI pipeline run
Signed-off-by: Pedro Algarvio <palgarvio@vmware.com>
2022-08-12 12:23:36 +01:00
Pedro Algarvio
b35fe054d7
A more static cache key
Signed-off-by: Pedro Algarvio <palgarvio@vmware.com>
2022-08-12 08:14:03 +01:00
Pedro Algarvio
60e28fe66d It's always python 3
Signed-off-by: Pedro Algarvio <palgarvio@vmware.com>
2022-08-12 08:08:37 +01:00
Pedro Algarvio
fe7283a5ff Cache vagrant images.
Closes https://github.com/saltstack/salt-bootstrap/pull/1847

Signed-off-by: Pedro Algarvio <palgarvio@vmware.com>
2022-08-12 08:08:37 +01:00
Pedro Algarvio
ef6f91ddaa Queue slower pipelines first
Signed-off-by: Pedro Algarvio <palgarvio@vmware.com>
2022-08-12 08:08:37 +01:00
Pedro Algarvio
494fe6f933 Re-work the CI pipeline
Signed-off-by: Pedro Algarvio <palgarvio@vmware.com>
2022-08-12 08:08:37 +01:00
Pedro Algarvio
7ae790f5e4 Update pre-commit hooks
Signed-off-by: Pedro Algarvio <palgarvio@vmware.com>
2022-08-12 08:08:37 +01:00
Pedro Algarvio
0c94af18d7 Only repository admins can cut releases
Signed-off-by: Pedro Algarvio <palgarvio@vmware.com>
2022-08-12 08:08:37 +01:00
Pedro Algarvio
1c1cd7e95c We don't need the release changelog contents as an environment variable
Signed-off-by: Pedro Algarvio <palgarvio@vmware.com>
2022-08-12 08:08:37 +01:00
Pedro Algarvio
f23cf0d480 Link to GH's contributors listing
Signed-off-by: Pedro Algarvio <palgarvio@vmware.com>
2022-08-12 08:08:37 +01:00
Pedro Algarvio
808a1bc277 A check in order not to update twice
Signed-off-by: Pedro Algarvio <palgarvio@vmware.com>
2022-08-10 20:41:39 +01:00
Pedro Algarvio
50dd136e9a Automated release process
Signed-off-by: Pedro Algarvio <palgarvio@vmware.com>
2022-08-10 20:41:39 +01:00
Pedro Algarvio
c9e42e1504 Migrate changelog file to markdown
Signed-off-by: Pedro Algarvio <palgarvio@vmware.com>
2022-08-10 20:41:39 +01:00
Pedro Algarvio
63f427c61d Autoformat markdown files pre-commit hook
Signed-off-by: Pedro Algarvio <palgarvio@vmware.com>
2022-08-10 20:41:39 +01:00
Gareth J. Greenaway
3202f803e5 Add version for Salt version 3005. 2022-08-02 20:30:22 +01:00
Megan Wilhite
9dc16eef93
Merge pull request #1846 from saltstack/sha_256_key_update
use SHA-256 key for Red Hat / CentOS relesaes 9 and over.
2022-08-02 07:02:17 -06:00
Gareth J. Greenaway
9d46534b11
Merge branch 'develop' into sha_256_key_update 2022-08-01 17:59:43 -07:00
Megan Wilhite
e82d4c452c
Merge pull request #1845 from saltstack/rename_tiamat_to_onedir
replace all references of tiamat to onedir
2022-08-01 12:52:38 -06:00
Gareth J. Greenaway
f708e36b94
fixing the GPG_KEY path for rhel, onedir does not need a special path for centos 7. 2022-08-01 10:46:26 -07:00
Gareth J. Greenaway
244e6cb858
Adding missing amazon_linux_2 bits. 2022-08-01 09:08:41 -07:00
Gareth J. Greenaway
46d62d7c58
use SHA-256 key for Red Hat / CentOS relesaes 9 and over. 2022-07-28 14:16:07 -07:00
Gareth J. Greenaway
9d1c07d364
replace all references of tiamat to onedir 2022-07-27 13:25:02 -07:00
Kirill Ponomarev
eb48702812
Merge branch 'develop' into use-oracle-epel 2022-07-27 07:22:35 +02:00
Kirill Ponomarev
af68de6761
Merge pull request #1819 from saltstack/adding_install_from_tiamat
Adding bits to install Salt packages built using Tiamat.
2022-07-27 07:21:28 +02:00
Gareth J. Greenaway
71d4113327
removing Ubuntu bits. 2022-07-26 16:05:14 -07:00
Gareth J. Greenaway
7c8f386b35
fixing merge conflict. 2022-07-26 16:02:59 -07:00
Gareth J. Greenaway
6ab871c1da
removing Ubuntu bits. 2022-07-26 15:55:26 -07:00
Gareth J. Greenaway
b874d3466b
Merge branch 'develop' into adding_install_from_tiamat 2022-07-26 13:44:55 -07:00
Gareth J. Greenaway
eb71c10af7
removing Ubuntu 21.10 which is now EOL. 2022-07-26 12:07:21 -07:00
Gareth J. Greenaway
ba0d83ff3f
Some lint fixes. 2022-07-25 19:03:32 -07:00
Gareth J. Greenaway
d8c6f04a46
Reverting script header back to origin line. 2022-07-25 17:33:51 -07:00
Gareth J. Greenaway
408f5beefb
removing unnecessary code 2022-07-25 17:24:12 -07:00
Gareth J. Greenaway
f097386319
fixing some lint issues. 2022-07-22 12:41:34 -07:00
Gareth J. Greenaway
ed00a6c9b0
adding missing Debian bits for Tiamat installs. Renaming the tiamat repo. functions to be consistent. 2022-07-22 11:52:37 -07:00
Gareth J. Greenaway
7e66984205
Adding ability to install RC Tiamat packages via bootstrap script. 2022-07-21 15:43:17 -07:00
Gareth J. Greenaway
559b8db54f
Adding TIAMAT_REV to install specific versions of Tiamat packages, defaults to latest. 2022-07-21 12:34:33 -07:00
Gareth J. Greenaway
316c74ab37
fixing another reference to the Tiamat directory 2022-07-19 10:20:28 -07:00
Gareth J. Greenaway
b69353db3a
Updating salt_rc directory 2022-07-19 10:17:46 -07:00
Gareth J. Greenaway
b6f7490e5a
fixing typo. 2022-07-19 10:06:20 -07:00
Gareth J. Greenaway
acc91bdab9
Merge branch 'adding_install_from_tiamat' of github.com:saltstack/salt-bootstrap into adding_install_from_tiamat 2022-07-19 09:59:34 -07:00
Gareth J. Greenaway
2cb95abd29
More updates for installing Salt Tiamat packages via the bootstrap script. 2022-07-19 09:58:48 -07:00
Kirill Ponomarev
cbc4a45e91
Merge pull request #1842 from krionbsd/update_to_py39-salt
Rename to py39-salt, Python 3.9 is default version on FreeBSD
2022-07-13 10:53:33 +02:00
krionbsd
86dc5bf7be
Rename to py39-salt, Python 3.9 is default version on FreeBSD 2022-07-13 08:41:12 +02:00
pjcreath
22ac01de18
Install Oracle's EPEL repo on Oracle Linux 7 and 8. 2022-07-02 18:27:47 +00:00
Kirill Ponomarev
efd1df20c9
Merge pull request #1837 from myii/feat/add-support-and-update-ci-for-opensuse-leap-15.4
feat: add support and update CI for openSUSE Leap 15.4
2022-06-17 21:11:01 +02:00
Imran Iqbal
8b33e968e1
fix(bootstrap-salt): add pyzmq build deps for Tumbleweed git builds 2022-06-17 18:48:12 +01:00
Imran Iqbal
0a9badd439
ci(kitchen): update to openSUSE Leap 15.4 2022-06-17 13:19:51 +01:00
Imran Iqbal
b903662ad0
feat(bootstrap-salt): handle openSUSE downstream repo change for 15.4
The difference between `15.3` and `15.4` can be seen here:

* https://download.opensuse.org/repositories/systemsmanagement:/saltstack/
  - `openSUSE_Leap_15.3`
  - `15.4` (i.e. not `openSUSE_Leap_15.4`)
2022-06-17 13:17:21 +01:00
Kirill Ponomarev
ba1ee56907
Merge pull request #1836 from myii/ci/replace-freebsd-13.0-with-13.1
ci(freebsd): replace `13.0` with newly released `13.1` box
2022-06-08 11:14:06 +02:00
Imran Iqbal
04abf9711a
ci(freebsd): replace 13.0 with newly released 13.1 box
* https://app.vagrantup.com/bento/boxes/freebsd-13.1
2022-06-08 09:12:47 +01:00
Imran Iqbal
197a9c2bac
chore(gemfile.lock): update to latest gem versions 2022-06-08 09:11:57 +01:00
Imran Iqbal
9818c45d88
test(conftest): adjust PATH on macOS jobs only (not Vagrant) 2022-06-08 09:10:12 +01:00
Kirill Ponomarev
1b0f65538d
Merge pull request #1835 from myii/ci/remove-eol
ci(eol): remove `fedora-34` and `3002`
2022-06-07 13:48:47 +02:00
Imran Iqbal
9adf295207
ci(3002): remove from CI (EOL)
* https://saltproject.io/salt-platform-support/
  - Phase 3 support ends: Apr 21, 2022
2022-06-07 06:33:22 +01:00
Imran Iqbal
3265e88e29
ci: remove fedora-34 (EOL)
* https://fedorapeople.org/groups/schedule/f-34/f-34-all-tasks.html
  - See last entry for `EOL`: Wed 2022-06-01
2022-06-07 06:31:13 +01:00
Imran Iqbal
72de037c85
ci(kitchen.macos.yml): fix macOS name (align to current branding)
https://en.wikipedia.org/wiki/MacOS

> Apple shortened the name to "OS X" in 2012 and then changed it to
> "macOS" in 2016 to align with the branding of Apple's other operating
> systems, iOS, watchOS, and tvOS.
2022-06-07 06:30:19 +01:00
Kirill Ponomarev
3c18cf8325
Merge pull request #1832 from saltstack/create-pull-request/patch
Update README.rst with 2022.05.19 release sha256sum
2022-05-19 16:39:40 +02:00
krionbsd
e7d894458b Update README.rst with 2022.05.19 release sha256sum 2022-05-19 13:48:15 +00:00
Kirill Ponomarev
c7f91bc58d
Merge pull request #1829 from krionbsd/19052022_release
Bump version to 2022.05.19 release
2022-05-19 14:21:07 +02:00
krionbsd
8636d94130
Bump version to 2022.05.19 release 2022-05-19 14:17:19 +02:00
Shane Lee
6a07978663
Merge pull request #1828 from twangboy/fix_win
Handle missing registry entry properly
2022-05-18 09:25:52 -07:00
Twangboy
e320671e73
Handle missing registry entry properly 2022-05-18 09:49:12 -06:00
Kirill Ponomarev
f7812b97d1
Merge pull request #1801 from delucks/develop
OpenBSD: correct post-Neon package names to python3 versions
2022-04-26 18:36:46 +02:00
Kirill Ponomarev
84cf3168e5
Merge pull request #1825 from myii/ci/add-macos
feat(macos): add CI testing using Kitchen's `exec` driver
2022-04-26 17:53:00 +02:00
Imran Iqbal
8fdce31eee
test(requirements): update testinfra => pytest-testinfra
Resolve this `DeprecationWarning`:

```
/usr/local/lib/python3.9/site-packages/_testinfra_renamed.py:5:
DeprecationWarning: testinfra package has been renamed to pytest-testinfra.
Please `pip install pytest-testinfra` and `pip uninstall testinfra` and
update your package requirements to avoid this message
```
2022-04-26 09:52:36 +01:00
Imran Iqbal
cb75c21401
feat(macos): add CI testing using Kitchen's exec driver 2022-04-26 09:52:36 +01:00
Kirill Ponomarev
8619cb16b6
Merge branch 'develop' into develop 2022-04-26 10:18:03 +02:00
Kirill Ponomarev
2c7c36a24b
Merge pull request #1795 from ptitdoc/develop
Enable Kali 2021
2022-04-26 10:17:41 +02:00
Kirill Ponomarev
bb97434738
Merge pull request #1824 from krionbsd/remove_ubuntu16
Remove Ubuntu 16 from CI
2022-04-26 10:16:38 +02:00
krionbsd
81d4ca6425 Remove Ubuntu 16 from CI 2022-04-26 09:14:32 +02:00
Kirill Ponomarev
cfb8149d53
Merge pull request #1823 from krionbsd/add_gplusplus_for_ubuntu22
Add g++ dependency for Ubuntu 22
2022-04-26 09:03:51 +02:00
Kirill Ponomarev
4f22adbb84
Merge branch 'develop' into develop 2022-04-26 08:36:14 +02:00
Kirill Ponomarev
9bbd45ed66
Merge branch 'develop' into adding_install_from_tiamat 2022-04-26 08:34:53 +02:00
krionbsd
a501f491ec Add g++ dependency for Ubuntu 22 2022-04-26 08:19:31 +02:00
krionbsd
bcf58059d5 f 2022-04-25 18:59:09 +01:00
krionbsd
96603a7bbc f 2022-04-25 18:59:09 +01:00
krionbsd
70c0d737e2 Fix black 2022-04-25 18:59:09 +01:00
krionbsd
396a33632e Ubuntu 22.04 2022-04-25 18:59:09 +01:00
Gareth J. Greenaway
3d716dce3a
Adding bits to install Salt packages built using Tiamat. 2022-04-11 16:47:01 -07:00
Kirill Ponomarev
bdf91e7c1b
Merge pull request #1818 from myii/feat/add-fedora-36
feat(fedora-36): add platform
2022-04-09 19:17:18 +02:00
Imran Iqbal
ad5b234901
feat(fedora-36): add platform
Fedora 36 is due for release on 2022-04-19:

* https://en.wikipedia.org/wiki/Fedora_Linux_release_history#Release_history
* https://fedorapeople.org/groups/schedule/f-36/f-36-key-tasks.html

This commit also contains an override for the service files, to adjust
the path to the Salt executables from `/usr/bin/` to `/usr/local/bin/`.
2022-04-09 17:28:50 +01:00
Kirill Ponomarev
8ce6aaa1e7
Merge pull request #1814 from myii/ci/fix-fedora-35-builds
ci: apply all changes for recent CVE releases inc. fix for Fedora 35 `git` builds
2022-04-04 15:40:46 +02:00
Imran Iqbal
cb7620799d
ci(kitchen.windows.yml): provide minor version number for salt_version 2022-04-04 11:55:09 +01:00
Imran Iqbal
4cd19d42ea
ci(git): use specific blacklists to disable Jinja2 >= 3.1 failing jobs
The fix for this has only just been merged into the `master` branch:

* https://github.com/saltstack/salt/pull/61856
2022-04-04 10:34:16 +01:00
Imran Iqbal
62112b6abe
ci(300X.0): remove all instances due to CVE-related archiving
All `.0` repos are no longer available at https://repo.saltproject.io/.
2022-04-04 08:29:23 +01:00
Imran Iqbal
ba346cdfd8
style(templates/generate): fix black violations 2022-04-04 08:14:19 +01:00
Imran Iqbal
550f742fe9
ci(leading edge distros): test git master and stable latest only
Various reasons here:

* For rolling releases, the additional `git`-based builds aren't working
  due to Jinja2 incompatibilites (and lack of `3004` patch); besides,
  no practical use for these.
* Gentoo does have `stable` packages for earlier versions but these are
  hitting the same Jinja2 incompatibilites.
2022-04-04 08:14:19 +01:00
Imran Iqbal
f7fcdd2d48
fix(bootstrap-salt): install gcc-c++ for Fedora 35 git builds 2022-04-04 06:52:40 +01:00
krionbsd
10c0b114bb Add some info and fixes to RELEASE.md 2022-03-15 14:45:58 +00:00
Kirill Ponomarev
b7e6ea2539
Merge pull request #1808 from saltstack/create-pull-request/patch
Update README.rst with 2022.03.15 release sha256sum
2022-03-15 15:05:08 +01:00
krionbsd
f60d4c5a49 Update README.rst with 2022.03.15 release sha256sum 2022-03-15 14:04:34 +00:00
krionbsd
e174a3a546 Bump version to 2022.03.15 release 2022-03-15 11:15:10 +00:00
Kirill Ponomarev
5d584e0a94
Merge pull request #1804 from myii/feat/fix-1803_add-detection-for-almalinux-and-rocky
feat: add detection and functions for AlmaLinux and Rocky Linux (fixes #1803)
2022-02-26 22:33:44 +01:00
Imran Iqbal
2bc7238123
ci(kitchen): set LEGACY crypto policy on Fedora (get 35 working)
Using successfully in the `salt-image-builder` for almost a year now:

* https://gitlab.com/saltstack-formulas/infrastructure/salt-image-builder/-/commit/ac145f3022a13
2022-02-26 15:49:18 +00:00
Imran Iqbal
393f4f33e4
ci: remove fedora-33 (EOL)
* https://docs.fedoraproject.org/en-US/releases/eol/
  - Release:   Fedora Linux 33
  - EOL since: 2021-11-30
2022-02-26 15:49:18 +00:00
Imran Iqbal
0d203ed962
ci: remove centos-8 (EOL)
* https://www.centos.org/centos-linux-eol/
  - "CentOS Linux 8 will reach End Of Life (EOL) on December 31st, 2021."
2022-02-26 15:49:17 +00:00
Imran Iqbal
c845caeba4
ci(gemfile+lock): update to latest versions 2022-02-26 15:49:17 +00:00
Imran Iqbal
ead451a9e2
ci(rockylinux): add 3004 testing (stable and git) 2022-02-26 15:49:17 +00:00
Imran Iqbal
f11c585651
ci(kitchen): use official Rocky Linux image on Docker Hub
* https://hub.docker.com/_/rockylinux?tab=tags
2022-02-26 15:49:16 +00:00
Imran Iqbal
2f0fe6bcd5
feat(bootstrap-salt): add Rocky Linux detection and functions
Fix #1803.
2022-02-26 15:49:16 +00:00
Imran Iqbal
13a60f400b
feat(bootstrap-salt): add AlmaLinux detection and functions
Fix #1803.
2022-02-26 09:39:23 +00:00
delucks
561b14618a OpenBSD: correct post-Neon package names to python3 versions 2022-02-13 12:59:23 -05:00
Kirill Ponomarev
e4855afb3c
Merge pull request #1615 from jpacura/debian-11-native
Use native repositories for Debian 11
2022-02-01 21:16:47 +01:00
Joseph Pacura
3ebc4c72f0
Use native repositories for Debian 11
Remove best-effort support for Debian Testing
Remove Ubuntu 20.10 support because it is end-of-life
2022-01-21 17:40:27 -05:00
Kirill Ponomarev
37300ad58a
Merge pull request #1798 from dafyddj/fix/win-root_dir
fix(windows): copy configs to correct config dirs (v3004+)
2022-01-18 16:04:35 +01:00
Dafydd Jones
46fb1f492f
fix(windows): copy configs to correct config dirs (v3004+) 2022-01-18 13:23:23 +00:00
Kirill Ponomarev
74669c6499
Merge pull request #1797 from krionbsd/rm_3001
Remove 3001 from CI: EoL
2022-01-11 10:35:24 +01:00
krionbsd
a3ddd94f93 Remove 3001 from CI: EoL 2022-01-11 09:20:18 +01:00
Kirill Ponomarev
99fa2e58fc
Merge pull request #1796 from krionbsd/3004
Add CI for v3004
2022-01-10 17:00:38 +01:00
krionbsd
12f4afd9d1 Add CI for v3004 2022-01-10 14:58:41 +01:00
krionbsd
1902d92244 Add CI for Ubuntu-21.10 and remove for 21.04 2022-01-07 11:56:59 +00:00
ptitdoc
126d3c3cde
Enable Kali 2021 2022-01-07 10:53:57 +01:00
Kirill Ponomarev
5f1a2507a0
Merge pull request #1793 from blindpirate/patch-1
Support Non-LTS Ubuntu 21.04 & 21.10
2022-01-07 09:49:16 +01:00
Bo Zhang
cd21819080
Support Non-LTS Ubuntu 21.04 & 21.10
Ubuntu 21.10 is out, adjust the script accordingly.
2022-01-07 09:06:27 +08:00
Kirill Ponomarev
4bc1a5ab4a
Merge pull request #1792 from myii/ci/fix-ssh-rsa-for-gentoo
ci(kitchen): add `ssh-rsa` to `PubkeyAcceptedAlgorithms` on Gentoo
2022-01-05 08:39:15 +01:00
Imran Iqbal
9fa7ae4564
ci(kitchen): add ssh-rsa to PubkeyAcceptedAlgorithms on Gentoo 2022-01-05 06:24:45 +00:00
Imran Iqbal
8c31ed62e8
ci(vagrant): use conditional local settings (inc. synced_folders) 2022-01-05 06:24:01 +00:00
Kirill Ponomarev
992123752a
Merge pull request #1791 from myii/ci/replace-freebsd-12.2-with-12.3
ci(freebsd): replace `12.2` with newly released `12.3` box
2021-12-24 08:23:44 +01:00
Imran Iqbal
4125b68629
ci(proxy): replace deprecated windows-2016 with windows-2022
* https://github.com/actions/virtual-environments/issues/4312
2021-12-23 19:12:16 +00:00
Imran Iqbal
d2d6f380bc
ci(freebsd): replace 12.2 with newly released 12.3 box
* https://app.vagrantup.com/bento/boxes/freebsd-12.3
2021-12-23 19:12:06 +00:00
Kirill Ponomarev
5b051af5c4
Merge pull request #1616 from myii/ci/fix-windows-proxy-jobs
ci(proxy): fix setting up WinRM
2021-12-19 16:05:03 +01:00
Dafydd Jones
9225bfdc13
ci(proxy): fix setting up WinRM
Same fix as provided for the SaltStack Formulas organisation:

* https://github.com/myii/ssf-formula/pull/392
2021-12-18 19:04:57 +00:00
Shane Lee
1e131f28cf
Merge pull request #1613 from Simon-TheUser/develop
bootstrap-salt.ps1: Keep all command-line parameters when UAC is enabled
2021-11-23 09:00:15 -07:00
Simon TheUser
21449bd05f Restored extra line 2021-11-16 13:52:38 -05:00
Simon TheUser
b090555ce9 Create new process with all command-line parameters when UAC is enabled 2021-11-16 13:34:40 -05:00
Kirill Ponomarev
870c6ba8ca
Merge pull request #1612 from Jille/patch-1
Add support for Raspbian 11
2021-11-15 17:43:58 +01:00
Jille Timmermans
8be8dbe7e6
Add support for Raspbian 11
Tested on my Raspberry Pi.

This solves the error `ERROR: No dependencies installation function found. Exiting...` when running on Raspbian 11.
2021-11-14 12:10:58 +01:00
Kirill Ponomarev
7ed981c163
Merge pull request #1611 from myii/ci/add-ssh-rsa-for-archlinux
ci(kitchen): add `ssh-rsa` to `PubkeyAcceptedAlgorithms` on Tumbleweed
2021-11-11 20:47:47 +01:00
Imran Iqbal
dc4cf12614
ci(kitchen): add ssh-rsa to PubkeyAcceptedAlgorithms on Tumbleweed 2021-11-10 14:54:44 +00:00
Kirill Ponomarev
d491741bb4
Merge pull request #1609 from krionbsd/openrc_alpine
Add openrc to alpine:latest dependencies
2021-10-12 16:58:02 +02:00
krionbsd
ddf7cb5b23 Add openrc to alpine:latest dependencies 2021-10-12 16:14:18 +02:00
Kirill Ponomarev
ca78fde48d
Merge pull request #1608 from bryceml/add_centos7_base_key
Add centos7 base key
2021-10-11 22:07:00 +02:00
Bryce Larson
71406d70e8
fix indentation, remove unnecessary IFS changes 2021-10-11 17:47:07 +00:00
Jeff Neel
6be1f869af
correct install 2021-10-11 17:46:23 +00:00
Jeff Neel
fe3d3bf755
correct install location 2021-10-11 17:46:23 +00:00
Jeff Neel
c16735656a
add rhel ubi tests and needed package 2021-10-11 17:46:22 +00:00
Jeff Neel
6069f7f78b
correct install 2021-10-11 17:46:22 +00:00
Jeff Neel
4697887bf9
correct install location 2021-10-11 17:46:22 +00:00
Jeff Neel
1f6447ce6c
fix lint for sh 2021-10-11 17:46:22 +00:00
Jeff Neel
03c6900b32
fix fetch url 2021-10-11 17:46:21 +00:00
Jeff Neel
30a680d183
fix key import 2021-10-11 17:46:21 +00:00
Jeff Neel
20cae336f3
fix quotes 2021-10-11 17:46:21 +00:00
Jeff Neel
360494b18e
Add CentOS GPG key for RHEL7 for successful builds 2021-10-11 17:46:16 +00:00
Kirill Ponomarev
63bb72e929
Merge pull request #1607 from myii/ci/add-centos-stream8
ci(centos-stream8): add platform
2021-10-10 11:02:14 +02:00
Imran Iqbal
43e325a930
ci(centos-stream8): add platform 2021-10-09 13:38:50 +01:00
Kirill Ponomarev
7afcd29bf8
Merge pull request #1606 from bryceml/fix-pre-commit
fix pre-commit
2021-10-07 17:40:28 +02:00
Bryce Larson
02dc9999f0
fix pre-commit 2021-10-07 15:37:49 +00:00
Kirill Ponomarev
98c9518c8a
Merge pull request #1604 from Nascire/alpine-fix
Fix git master install on alpine 3.12+
2021-10-07 11:45:39 +02:00
Nascire
aadb93b4c1
Fix git master install on alpine 3.12+
With default version 3003.3, you run into https://github.com/saltstack/salt/issues/55159, which was fixed by https://github.com/saltstack/salt/pull/60811
If you want to install from git master, it fails because py2-pip is unavailable - Alpine 3.11 was the last version to include py2-pip
This PR changes the git master process to python3 and adds all requirements for a successful build
2021-10-06 18:07:20 +02:00
Kirill Ponomarev
51315c2954
Merge pull request #1603 from myii/ci/add-ssh-rsa-for-archlinux
ci(kitchen): add `ssh-rsa` to `PubkeyAcceptedAlgorithms` on Arch Linux
2021-10-02 08:39:05 +02:00
Imran Iqbal
ca52074f0b
ci(kitchen): add ssh-rsa to PubkeyAcceptedAlgorithms on Arch Linux 2021-10-01 20:08:18 +01:00
krionbsd
c5a55a3fbb Sort help alphabetically 2021-09-23 09:51:59 +01:00
Kirill Ponomarev
3f4189395a
Merge pull request #1600 from krionbsd/ci_ubuntu-16
Re-add CI for Ubuntu-16
2021-09-18 11:23:33 +02:00
krionbsd
d663b20b6e Re-add CI for Ubuntu-16 2021-09-18 10:46:42 +02:00
Kirill Ponomarev
edefb45d1d
Merge pull request #1599 from saltstack/create-pull-request/patch
Update README.rst with 2021.09.17 release sha256sum
2021-09-17 12:02:35 +02:00
krionbsd
50ac60bc28 Update README.rst with 2021.09.17 release sha256sum 2021-09-17 10:01:48 +00:00
krionbsd
7fc4f7829d Update to new release 2021.09.17 2021-09-17 08:19:59 +01:00
krionbsd
1f9909474e Re-add Ubuntu-16 support as it's still supported with 3001 and 3002 2021-09-16 23:13:38 +02:00
krionbsd
5cfa6b994d Add oncoming 3004 release 2021-09-16 20:59:13 +02:00
krionbsd
409f998254 Update README.rst with 2021.09.14 release sha256sum 2021-09-15 12:45:37 +01:00
krionbsd
5172f227ce Update to new release 2021.09.14 2021-09-14 07:38:26 +01:00
krionbsd
494b2bed99 Pin latest salt version to README 2021-09-07 19:22:17 +02:00
Bryce Larson
3288b86355 don't output info if using the default -x value 2021-08-25 04:24:55 +01:00
Bryce Larson
139286cd9a remove py2 and 3000 jobs from test suite 2021-08-23 13:04:30 +02:00
Bryce Larson
3a02ef9279 make python3 the default
This should be released to stable at the same time or right before
3000.x releases are moved from repo.saltproject.io to
archive.repo.saltproject.io on 2021-09-15
2021-08-23 13:04:30 +02:00
krionbsd
79999938c9 Change master to develop branch 2021-08-19 23:21:40 +02:00
krionbsd
0e636f520d Update README.rst with 2021.08.19 release sha256sum 2021-08-19 21:28:27 +02:00
krionbsd
97a1e11141 Update version for new release 2021-08-19 19:31:58 +02:00
Ari Maniatis
93ba835aaf Point to how to use a custom version of this script
This information was incredibly hard to find since it is not linked from anywhere.
2021-08-19 08:43:45 +02:00
Imran Iqbal
8318f8071a ci(almalinux-8): add testing for 3003 2021-08-16 11:15:37 +01:00
Bryce Larson
6c8f608e07 update unsupported versions 2021-07-23 15:58:48 -06:00
Imran Iqbal
3690eeec50 refactor(kitchen): use YAML node anchors to minimise duplication 2021-07-16 07:37:20 +02:00
Imran Iqbal
7c56c504bf feat(kitchen): remove unnecessary platform salt_bootstrap_options 2021-07-16 07:37:20 +02:00
Imran Iqbal
e5e5098745 refactor(kitchen): use driver instead of driver_config
* https://github.com/test-kitchen/kitchen-azurerm/issues/69
* 55b768d0b3
2021-07-16 07:37:20 +02:00
Imran Iqbal
075e061262 feat(kitchen): update to openSUSE Leap 15.3 2021-07-16 07:37:20 +02:00
Imran Iqbal
d37806dce9 refactor(kitchen): remove unnecessary image entries (Fedora) 2021-07-16 07:37:20 +02:00
Imran Iqbal
f80e311747 refactor(kitchen): provide general run_command 2021-07-16 07:37:20 +02:00
krionbsd
3158d15d25 Reflect changes after bumping Python to 3.8 in FreeBSD 2021-07-15 20:56:08 +02:00
Bryce Larson
095a7abf07 more changes for 3003 tests: part 2 2021-07-02 01:15:18 +00:00
Bryce Larson
c61820d410 more changes for 3003 tests 2021-07-01 21:01:08 +00:00
Bryce Larson
fbb55eda4b add salt 3003 tests 2021-07-01 21:01:08 +00:00
Bryce Larson
1e0109927e remove .0 jobs for amazon-2 since they will not pass until 3004.0 comes out 2021-07-01 21:01:08 +00:00
Pedro Algarvio
42a8ac8f14
Merge pull request #1570 from saltstack/create-pull-request/patch
Update README.rst with 2021.06.23 release sha256sum
2021-06-30 10:57:31 +01:00
s0undt3ch
f2e4cca09a Update README.rst with 2021.06.23 release sha256sum 2021-06-30 09:54:48 +00:00
krionbsd
e40c093c56 Update version for new release 2021-06-28 10:42:14 +01:00
Imran Iqbal
4777897146 feat(almalinux-8): add CI for platform 2021-06-27 09:55:11 +02:00
Imran Iqbal
0612b49bd6 feat(rockylinux-8): add CI for platform
Closes #1553.
2021-06-27 09:55:11 +02:00
Imran Iqbal
c26d540c9b feat(oraclelinux-8): add CI for platform
Closes #1537.
2021-06-27 09:55:11 +02:00
Imran Iqbal
53f7b20a37 feat(ubuntu-1604): remove platform (EOL) 2021-06-27 09:55:11 +02:00
Imran Iqbal
546e7c9ad3 feat(fedora-32): remove platform (EOL) 2021-06-27 09:55:11 +02:00
Imran Iqbal
c69845e22c feat(windows): add CI testing using Kitchen's proxy driver 2021-05-23 15:18:10 +02:00
Imran Iqbal
df29ae3a00 feat(bsd): add CI testing using Kitchen's vagrant driver 2021-05-23 11:23:18 +02:00
Bryce Larson
1c6a78b746 use salt.repo instead of saltstack.repo or others
This makes it more similar to the instructions on https://repo.saltproject.io
2021-05-15 09:27:22 +02:00
Bryce Larson
ca56699343 use salt.list instead of saltstack.list similar to the instructions on https://repo.saltproject.io 2021-05-15 09:27:22 +02:00
Joe Eacott
0b1c203986 change curl command to fetch_url func 2021-05-11 08:38:25 +02:00
Kirill Ponomarev
600d789cfb
Add Ubuntu 21.04 to CI (#1560)
* Add Ubuntu 21.04 to CI
2021-05-10 18:24:37 +02:00
krionbsd
68417f7fda Add FreeBSD versions to README 2021-05-08 11:59:57 +01:00
krionbsd
e610e6dba0 shorten bits 2021-05-07 19:56:46 +02:00
krionbsd
a12ffd379c Add a stubber support for Ubuntu 21.04 non-LTS to use Ubuntu 20.04 packages. 2021-05-07 19:56:46 +02:00
Ivo Jánský
db924b4e81 Gentoo - relax setuptools version upper bound
Signed-off-by: Ivo Jánský <ivo.jansky@gmail.com>
2021-05-04 09:26:19 +01:00
Imran Iqbal
ca0669c78d feat(fedora): add CI for Fedora 34 & 35 2021-04-26 19:52:34 +02:00
Imran Iqbal
388ef93cf2 ci(kitchen): use new Arch Linux image (previous is deprecated)
* https://hub.docker.com/r/archlinux/base
  - Deprecated. Use new image at https://hub.docker.com/r/archlinux/archlinux
2021-04-26 19:52:34 +02:00
Imran Iqbal
055e51e5b4 ci(arch): add CI for latest-arch 2021-03-24 17:43:05 +00:00
Imran Iqbal
34285b854a fix(arch): remove python2-futures package (moved to AUR)
The `stable latest` build in the `salt-image-builder` started failing.

* https://gitlab.com/myii/salt-image-builder/-/jobs/1124156923

```
error: target not found: python2-futures
 core is up to date
 extra is up to date
 community is up to date
 * ERROR: Failed to run install_arch_linux_stable()!!!
```

The package has been moved to AUR:

* https://aur.archlinux.org/packages/python2-futures/
* https://aur.archlinux.org/cgit/aur.git/commit/?h=python2-futures&id=06dea3ff2267d052dbc3779c9a93d31766769c6b
  - `import from community`

The build is passing again with this workaround applied using `sed`:

* 83efb01cb8
* https://gitlab.com/myii/salt-image-builder/-/jobs/1124687557
2021-03-24 17:43:05 +00:00
s0undt3ch
c4876217aa Update README.rst with 2021.03.02 release sha256sum 2021-03-02 13:20:47 +00:00
Pedro Algarvio
7dcce90c90 Fix release version in ChangeLog 2021-03-02 10:57:29 +00:00
Pedro Algarvio
855a99a4a5 Update version for release 2021-03-02 09:26:12 +00:00
Pedro Algarvio
bf1d69181b Support the upcoming Salt 3003 release 2021-03-02 09:26:12 +00:00
Pedro Algarvio
c889fbd6b0 Update AUTHORS and ChangeLog 2021-03-02 09:26:12 +00:00
Pedro Algarvio
76a8cf40d6 Update RELEASE.md 2021-03-02 09:26:12 +00:00
Pedro Algarvio
c86c25519b Additionally, open a PR against Salt 2021-03-02 09:26:12 +00:00
Pedro Algarvio
70eb5a9d1a Just a better name 2021-03-02 09:26:12 +00:00
Bryce Larson
a2a83237f3 use https for fetching gem 2021-02-16 19:18:28 +00:00
Imran Iqbal
757f4b6169 refactor(kitchen): prefer kitchen.yml to .kitchen.yml
* Quoting from https://kitchen.ci/docs/getting-started/kitchen-yml/:
  - As of test-kitchen 1.21.0, we now prefer `kitchen.yml` over `.kitchen.yml`.
  - This preference applies to `kitchen.local.yml` as well.
  - This is backward compatible so the dot versions continue to work.
* Mirrors contribution to `saltstack/salt` repo:
  - https://github.com/saltstack/salt/pull/54442
* `.gitignore`:
  - 46f96e4f37/.gitignore (L112-L116)
2021-02-16 17:22:06 +00:00
Imran Iqbal
e6d4ccc8ed ci(oraclelinux): add CI for Oracle Linux 7 2021-02-15 09:10:33 +00:00
Bryce Larson
7f07c643cc apt-key is deprecated on debian10+ and ubuntu20+ 2021-02-11 20:22:18 +00:00
Shane Lee
2ca3db972b
Merge pull request #1520 from dafyddj/feat/grains_config
Handle Vagrant's `grains_config` option (same as `bootstrap-salt.sh`)
2021-02-04 14:03:03 -07:00
Dafydd Jones
50e478de8b
fix(ps1): missing comma 2021-02-03 19:56:23 +00:00
Dafydd Jones
617ab7d21e
refactor(ps1): use similar copy command for Vagrant minion key files 2021-02-03 19:55:25 +00:00
Dafydd Jones
bfd160cf4a
feat(ps1): implement Vagrant grains_config option
bootstrap-salt.sh already does this.
2021-02-03 19:55:17 +00:00
Shane Lee
0a2d8f5851
Merge pull request #1530 from dafyddj/feat/config-only
Powershell: implement configure only option (for Vagrant)
2021-02-03 11:20:52 -07:00
Dafydd Jones
ce070e8ed3
feat(ps1): implement configure only option (for Vagrant) 2021-02-02 19:02:29 +00:00
Joseph Pacura
f311d100ad Add Ubuntu 20.10 support using Ubuntu 20.04 packages
Remove support for Debian 8
Remove support for Ubuntu 14.04, 18.10, 19.04, and 19.10
2021-01-25 18:05:34 +00:00
Imran Iqbal
4310738bc4 fix(opensuse): fix & add CI for openSUSE Tumbleweed
When `systemd` is installed on Tumbleweed, `systemctl` is actually
located at `/usr/bin/systemctl`.  It appears that the same applies for
openSUSE Leap except that a symlink is also provided there, i.e.
`/bin/systemctl` => `/usr/bin/systemctl`.

Tumbleweed installs Python 3.8, which was first supported in `3001` (Sodium).
Hence, testing on `2019.2` and `3000` is not possible.

When provisioning in Kitchen, another package is supplied compared to
openSUSE Leap:

* `systemd`: It appears that this is implicitly installed in Leap as a
  dependency of the `openssh` package; this doesn't apply in Tumbleweed,
  so it is installed explicitly.
2021-01-22 22:44:38 +00:00
Kirill Ponomarev
0b01e02d7a
Merge pull request #1523 from brd/fix-freebsd-pki-dir
FreeBSD also needs the _PKI_DIR reset
2021-01-22 20:42:30 +01:00
Bryce Larson
038c2bbdd0
Merge branch 'develop' into fix-freebsd-pki-dir 2021-01-22 19:09:01 +00:00
Bryce Larson
ff183ea8bc
Merge pull request #1526 from bryceml/saltproject_io
move everything to point at saltproject.io urls
2021-01-22 19:06:22 +00:00
Bryce Larson
8556d005d6
limit pip to < 21.0 for python 3.5 2021-01-22 16:53:10 +00:00
Bryce Larson
9c1b61e272
upgrade the minimum pip version 2021-01-22 16:18:35 +00:00
Bryce Larson
236884c19f
update supported oses 2021-01-21 23:19:34 +00:00
Bryce Larson
5dbf2973bf
move everything to point at saltproject.io urls 2021-01-21 22:49:50 +00:00
Brad Davis
a78cc3c244 FreeBSD also needs the _PKI_DIR reset 2021-01-12 08:33:51 -07:00
Kirill Ponomarev
18e9063349
Merge pull request #1522 from marek-knappe/tornado-fix
Tornado fix
2021-01-12 12:28:55 +01:00
Marek Knappe
1e57d84a0b
Added www/py-tornado4 package as requirment for freebsd #1521 2021-01-12 20:10:19 +10:00
marek-knappe
581f9c5512
Merge pull request #1 from saltstack/develop
fff
2021-01-11 12:46:51 +10:00
Ivo Jánský
da0f0733ed Gentoo - use ksmanis/stage3 image
Use an alternative image until gentoo/stage3 gets pushed to Docker Hub again.
2020-12-21 09:51:50 +00:00
ScriptAutomate
2fd501de8c Adding examples using stable; adding help output 2020-12-16 09:33:48 +00:00
Ivo Jánský
75cda1ef4d Gentoo - install Salt 2019 (GIT) with msgpack <1.0. 2020-12-12 17:58:50 +00:00
Ivo Jánský
9e0d1168c2 Gentoo - disable x.0 version tests. 2020-12-12 17:58:50 +00:00
Ivo Jánský
f310b9f094 Gentoo - install Salt 3000 (GIT) with Python 3.7. 2020-12-12 17:58:50 +00:00
Bryce Larson
57932fdb31 add debian-11 tests 2020-12-09 18:24:48 +00:00
Joseph Pacura
07470e147e Debian 11 (bullseye/testing) support using Debian 10 packages 2020-12-09 18:24:48 +00:00
Pedro Algarvio
efe405a30a
Merge pull request #1515 from bryceml/update_oses
update tested oses
2020-12-09 07:53:25 +00:00
Bryce Larson
52a48123a8
fix .0 tests 2020-12-09 05:20:25 +00:00
Bryce Larson
e83c3cf226
only run gentoo on branch, black everything 2020-12-09 03:48:34 +00:00
Bryce Larson
b0a8c4ae72
update tested oses 2020-12-08 17:35:58 +00:00
Pedro Algarvio
0cdf14ba29
Merge pull request #1510 from saltstack/create-pull-request/patch
Changes by create-pull-request action
2020-10-21 14:28:56 +01:00
s0undt3ch
aabe9ba5df Update README.rst with latest release sha256sum 2020-10-21 13:24:18 +00:00
Pedro Algarvio
9f9d624bc8
Split workflows 2020-10-21 13:56:53 +01:00
Pedro Algarvio
dbd7a335af
Run on pushes to stable and not on tag.
So that the tag includes the updated checksums
2020-10-21 13:43:53 +01:00
Pedro Algarvio
26c71fe3f2
Merge pull request #1508 from s0undt3ch/develop
Add checksum for 2020.10.19
2020-10-21 13:39:40 +01:00
Pedro Algarvio
eb53b6e2b6
Add checksum for 2020.10.19 2020-10-21 13:37:27 +01:00
Pedro Algarvio
e208275fea
GH Actions can't push to protected branches. Let's create PRs instead. 2020-10-21 13:35:06 +01:00
Pedro Algarvio
abdcbb9844
Merge pull request #1506 from s0undt3ch/develop
Add support to allow bootstrapping Salt 3002
2020-10-20 21:24:53 +01:00
Pedro Algarvio
7ab46575d1
Increase gentoo timeouts 2020-10-20 19:59:23 +01:00
Pedro Algarvio
9d8e3d2273
Don't fail if there's nothing to commit and push 2020-10-20 19:57:27 +01:00
Pedro Algarvio
51c65ef6a8
Update the release doc 2020-10-20 19:54:27 +01:00
Pedro Algarvio
4c7f3a00bb
Bump version for release and update ChangeLog 2020-10-20 19:52:12 +01:00
Pedro Algarvio
11aa72c8ab
Add support to allow bootstrapping Salt 3002 2020-10-20 19:49:23 +01:00
Pedro Algarvio
c5681cd7b7
Only update checksums on the main repo 2020-10-19 17:50:14 +01:00
Pedro Algarvio
c7ddfb41ec
Merge pull request #1503 from s0undt3ch/develop
Updates for release
2020-10-19 12:32:32 +01:00
Pedro Algarvio
b6d356c1dd
Add GH action to update sha256sums
/cc @bryceml
2020-10-19 12:26:52 +01:00
Pedro Algarvio
7b23cf4099
Update build status badge. Add sha256sums anchor 2020-10-19 10:38:31 +01:00
Pedro Algarvio
add2db7f4f
Update AUTHORS.rst and ChangeLog for release 2020-10-19 10:27:17 +01:00
Pedro Algarvio
66ab0b8f79
Bump version for release 2020-10-19 10:26:40 +01:00
Pedro Algarvio
da6d575ffe
Merge pull request #1502 from taigrr/develop
feat: adds support for linuxmint_20_ubuntu_base
2020-10-19 10:03:54 +01:00
Tai Groot
22e0411822
feat: adds support for linuxmint_20_ubuntu_base 2020-10-18 15:57:46 -07:00
Pedro Algarvio
fd57a0a753
Merge pull request #1500 from ijansky/bootstrap-gentoo
Support git and stable salt-bootstrap on Gentoo.
2020-09-30 05:38:33 +01:00
Ivo Jánský
7fa4efbf20
Make CI job timeout configurable and raise timeout for Gentoo. 2020-09-29 08:31:50 +02:00
Ivo Jánský
771b813928
Install Python 3.6 only when building Salt 2019 (stable+git). 2020-09-28 18:36:44 +02:00
Ivo Jánský
898f3948aa
Install Python 3.6 only when building Salt 2019 (stable). 2020-09-28 17:01:07 +02:00
Ivo Jánský
821cc2a792
Test pipelines with kitchen-docker from its GitHub master. 2020-09-28 14:30:46 +02:00
Ivo Jánský
a14e893395
Run emerge-webrsync when provisioning a Gentoo container. 2020-09-27 15:44:06 +02:00
Ivo Jansky
ea7fa19c77
Merge branch 'develop' into bootstrap-gentoo 2020-09-27 11:43:49 +02:00
Ivo Jansky
c59da8565e
Add Gentoo to the CI process. 2020-09-27 11:39:39 +02:00
Pedro Algarvio
c088536156
Merge pull request #1496 from noelmcloughlin/win1
docs(windows): update for windows-py3 [signed-commit]
2020-09-27 09:33:16 +01:00
Ivo Jansky
7ae1dfc025
Support git and stable salt-bootstrap on Gentoo. 2020-09-26 20:04:01 +02:00
N
e6bf4cc65f
Merge branch 'develop' into win1 2020-09-11 00:49:50 +01:00
noelmcloughlin
4179e8f204
docs(windows): update for windows-py3 2020-09-11 00:18:45 +01:00
Pedro Algarvio
69bfde2d63
Merge pull request #1491 from max-arnold/pin-to-minor-post-neon
Allow pinning minor 3xxx versions (3000.0, 3001.0, etc)
2020-08-18 20:54:38 +01:00
Bryce Larson
49669edf4f
add .0 tests 2020-08-18 18:12:35 +00:00
Max Arnold
1e5a9abd69 Get rid of the 3xxx.0 if condition 2020-08-14 15:27:40 +07:00
Max Arnold
ec112a6f45 Add 3000.0 pin test 2020-08-09 13:04:05 +07:00
Max Arnold
57187a01f7 Mention the .0 suffix in the doc 2020-08-09 12:44:18 +07:00
Max Arnold
8bfe437a2d Allow pinning minor 3xxx versions (3000.0, 3001.0, etc) 2020-08-09 12:29:19 +07:00
Pedro Algarvio
bf1b129725
Merge pull request #1489 from TIBCOSoftware/develop
Added missing functions for Red Hat 8.x
2020-08-06 12:19:48 +01:00
mbochenk
b466af42f0
Added missing functions for Red Hat 8.x 2020-08-06 13:16:16 +03:00
Kirill Ponomarev
c88f22a2af
Merge pull request #1487 from krionbsd/fbsd
Fix v3000+ with git install on FreeBSD
2020-07-17 20:28:50 +02:00
krion
5bf3bad0c8 Fix v3000+ with git install on FreeBSD 2020-07-17 20:02:58 +02:00
Bryce Larson
afbad5d3c9
Merge pull request #1485 from bryceml/update_sha
add sha for 2020.06.23 release
2020-06-23 16:54:07 -06:00
Bryce Larson
26010c82c0
add sha for 2020.06.23 release 2020-06-23 15:41:21 -06:00
Bryce Larson
43f67d86a0
Merge pull request #1483 from bryceml/release_2020_06_23
make 2020.06.23 release
2020-06-23 13:42:35 -06:00
Bryce Larson
4f584b912f
make 2020.06.23 release 2020-06-23 13:10:21 -06:00
David Murphy
6bd3783a72
Merge pull request #1482 from bryceml/dont_hardfail_R_on_centos
don't hardfail -R with -x python3 on centos
2020-06-18 14:10:28 -06:00
Bryce Larson
f243589116
don't hardfail -R with -x python3 on centos 2020-06-18 13:12:59 -06:00
Pedro Algarvio
24b11bb6a4
Merge pull request #1479 from bryceml/update_pipelines_for_new_release
update pipelines
2020-06-18 14:45:03 +01:00
Pedro Algarvio
ef9afdc834
Merge branch 'develop' into update_pipelines_for_new_release 2020-06-18 09:19:38 +01:00
Pedro Algarvio
82422cd5f8
Merge pull request #1480 from bryceml/default_ubuntu2004_to_py3
Default Ubuntu 20.04 to Py3
2020-06-18 09:19:26 +01:00
Pedro Algarvio
4a696183ac
Merge branch 'develop' into default_ubuntu2004_to_py3 2020-06-18 09:18:41 +01:00
Pedro Algarvio
6d82a0309e
Merge pull request #1478 from bryceml/curl_error
give more useful error message on download failure, make curl fail on failure
2020-06-18 09:17:29 +01:00
Bryce Larson
aa4c9ca1cf
Default Ubuntu 20.04 to Py3 2020-06-17 17:53:16 -06:00
Bryce Larson
dd06230f43
update pipelines 2020-06-17 16:45:45 -06:00
Bryce Larson
1081d963f8
give more useful error message on download failure, make curl fail on failure 2020-06-17 16:06:42 -06:00
Pedro Algarvio
1e86c22c96
Merge pull request #1474 from darylturner/develop
fix for cumulus 4.1
2020-06-09 13:21:55 +01:00
Daryl Turner
6562e75694 fix for cumulus 4.1 2020-06-09 11:34:02 +01:00
Pedro Algarvio
55e589e0a4
Merge pull request #1473 from jalessio/patch-1
Typo in WARN message
2020-06-09 08:13:53 +01:00
Jamie Alessio
0bee2e37d2
Typo in WARN message
Happened to notice incorrect use of "it's" while using this for the first time today.
2020-06-07 15:34:34 -07:00
Pedro Algarvio
b860ea6738
Add sha256sum for the latest stable release 2020-05-28 20:51:59 +01:00
Pedro Algarvio
5bbd2bcf47
Increase job timeout 2020-05-28 20:50:08 +01:00
Pedro Algarvio
2e54cc28e7
Merge pull request #1471 from s0undt3ch/develop
Bump version for release
2020-05-28 16:53:32 +01:00
Pedro Algarvio
e419a6042e
Bump version for release 2020-05-28 14:53:51 +01:00
Pedro Algarvio
46b34f628b
Merge pull request #1470 from s0undt3ch/develop
Several Fixes and Prepare for Stable release
2020-05-28 10:01:42 +01:00
Pedro Algarvio
3069335a5f
Update AUTHORS and ChangeLog 2020-05-28 07:36:46 +01:00
Pedro Algarvio
074d8a9ec2
Only test Opensuse 15 under Py3 2020-05-28 07:36:45 +01:00
Pedro Algarvio
0f5ba2c7f5
Salt v3000 is not Py3.8 ready 2020-05-28 07:36:45 +01:00
Pedro Algarvio
0c152975cf
Remove old cruft 2020-05-28 07:36:45 +01:00
Pedro Algarvio
c539ffa2b7
Fix Arch Linux installs 2020-05-28 07:36:45 +01:00
Pedro Algarvio
9ff35a97ba
Default Debian 10 to Py3 2020-05-28 07:36:44 +01:00
Pedro Algarvio
5a2eb9688d
Fix CentOS 8 installations 2020-05-28 07:36:44 +01:00
Pedro Algarvio
79812ca0b0
Enable a few more builds 2020-05-28 07:36:44 +01:00
Pedro Algarvio
2de93d0f60
Fedora doesn't keep old versions around 2020-05-27 17:53:47 +01:00
Pedro Algarvio
74153d3ec8
Fix Fedora stable installs for older releases 2020-05-27 14:28:39 +01:00
Pedro Algarvio
006e99cf96
Fix Amazon 2 to respect -x installs 2020-05-27 11:26:37 +01:00
Pedro Algarvio
11d59fda89
Test bootstrapped Salt and Python versions are the intended ones 2020-05-27 11:26:37 +01:00
Pedro Algarvio
5edbeeb199
Merge pull request #1469 from oeuftete/update-ius-release
Use current ius-release links
2020-05-27 10:18:51 +01:00
Ken Crowell
a0dfd4fc44 Use current ius-release links 2020-05-25 17:55:10 -03:00
Pedro Algarvio
1c6b8dda1e
Merge pull request #1466 from s0undt3ch/develop
Add support for the upcoming Sodium release
2020-05-24 09:54:49 +01:00
Pedro Algarvio
3a3d26752b
Additional blacklisting 2020-05-22 19:41:29 +01:00
Pedro Algarvio
15ee335687
Also do not test Salt >= 3000 under Python 2 2020-05-22 19:33:06 +01:00
Pedro Algarvio
1c21021425
Include the upcoming Sodium release in the check 2020-05-22 19:33:03 +01:00
Pedro Algarvio
03c591d06c
Add @DmitryKuzmenko to AUTHORS 2020-05-22 18:15:53 +01:00
Dmitry Kuzmenko
445b301b64
Recommend master salt branch instead of develop
Latest development branch in Open Salt repo is currently `master` not
`develop`.
2020-05-22 18:12:28 +01:00
Pedro Algarvio
3eaa27f031
Add @gdebunne to AUTHORS 2020-05-22 18:11:22 +01:00
Gilles Debunne
1285f86513
Separate python 2 and python 3 install
Per review comments
2020-05-22 18:10:29 +01:00
Gilles Debunne
9dd552cbb3
Use python3 instead of python 2020-05-22 18:10:19 +01:00
Gilles Debunne
0f80c90dbb
Fix, decode binary to ascii 2020-05-22 18:10:12 +01:00
Gilles Debunne
b36d41319b
Update python install step for python 3
urllib and print syntax updated
2020-05-22 18:10:04 +01:00
Pedro Algarvio
e99e5ceeb9
Add @ender8282 to AUTHORS 2020-05-22 18:08:13 +01:00
John Hubbard
7e252afd69
add detection for neon based on ubuntu 20.04 2020-05-22 18:06:21 +01:00
John Hubbard
2aba18a94a
KDE neon has been 18.04 based for a while now 2020-05-22 18:06:16 +01:00
Pedro Algarvio
a9b8b4aa30
Don't even try to test Salt's master branch under Py2 2020-05-22 18:02:53 +01:00
Pedro Algarvio
fddc221512
Add support for the upcoming Sodium release 2020-05-22 17:05:10 +01:00
Pedro Algarvio
5e9e43109d
Merge pull request #1462 from cedwards/freebsd_deps_fixup
more accurate deps parsing for FreeBSD git installs
2020-05-21 20:27:51 +01:00
Christer Edwards
f3bca5127a simpler non-jq dependent solution for FreeBSD dependencies 2020-05-20 14:39:25 -06:00
Christer Edwards
e974f6c88c more accurate deps parsing for FreeBSD git installs 2020-05-20 10:53:14 -06:00
Pedro Algarvio
9f2f1b56fb
Merge pull request #1448 from jay1648/develop
Remove Debian 8 from Python 3 supported list
2020-04-15 22:22:06 +01:00
Jaydeep Chakravarty
c0a5f8b100 Debian 8 unsupported with Python 3 2020-04-09 19:31:41 +05:30
Pedro Algarvio
a1754be2e9
Merge pull request #1441 from noelmcloughlin/suse
fix(suse): updates for opensuse tumbleweed
2020-03-27 10:52:23 +00:00
N
c55b358874
fix(suse): updates for opensuse tumbleweed 2020-03-26 23:44:55 +00:00
Pedro Algarvio
fbe3759e4f
Merge pull request #1438 from cachedout/tornado_release
Update Tornado release timeline
2020-03-11 12:43:16 +00:00
Mike Place
e93f5db489 Update Tornado release timeline 2020-03-11 13:38:06 +01:00
Pedro Algarvio
e124d34418
Add sha256sum for the latest v2020.02.24 release 2020-02-24 18:33:58 +00:00
49 changed files with 8379 additions and 12239 deletions

View file

@ -1,208 +0,0 @@
local git_suites = [
{ name: 'Py2 2018.3(Git)', slug: 'py2-git-2018-3', depends: [] },
{ name: 'Py2 2019.2(Git)', slug: 'py2-git-2019-2', depends: ['Py2 2018.3(Git)'] },
{ name: 'Py2 3000(Git)', slug: 'py2-git-3000', depends: ['Py2 2019.2(Git)'] },
// {name: 'Py2 develop(Stable)', slug: 'py2-git-develop'}, // Don't test against Salt's develop branch. Stability is not assured.
];
local git_py3_suites = [
{ name: 'Py3 2018.3(Git)', slug: 'py3-git-2018-3', depends: [] },
{ name: 'Py3 2019.2(Git)', slug: 'py3-git-2019-2', depends: ['Py3 2018.3(Git)'] },
{ name: 'Py3 3000(Git)', slug: 'py3-git-3000', depends: ['Py3 2019.2(Git)'] },
];
local stable_suites = [
{ name: 'Py2 2018.3(Stable)', slug: 'py2-stable-2018-3', depends: ['Py2 2018.3(Git)'] },
{ name: 'Py2 2019.2(Stable)', slug: 'py2-stable-2019-2', depends: ['Py2 2019.2(Git)'] },
{ name: 'Py2 3000(Stable)', slug: 'py2-stable-3000', depends: ['Py2 3000(Git)'] },
];
local stable_py3_suites = [
{ name: 'Py3 2018.3(Stable)', slug: 'py3-stable-2018-3', depends: ['Py3 2018.3(Git)'] },
{ name: 'Py3 2019.2(Stable)', slug: 'py3-stable-2019-2', depends: ['Py3 2019.2(Git)'] },
{ name: 'Py3 3000(Stable)', slug: 'py3-stable-3000', depends: ['Py3 3000(Git)'] },
];
local distros = [
{ name: 'Arch', slug: 'arch', multiplier: 0, depends: [] },
// { name: 'Amazon 1', slug: 'amazon-1', multiplier: 1, depends: [] },
{ name: 'Amazon 2', slug: 'amazon-2', multiplier: 2, depends: [] },
{ name: 'CentOS 6', slug: 'centos-6', multiplier: 3, depends: [] },
{ name: 'CentOS 7', slug: 'centos-7', multiplier: 4, depends: [] },
{ name: 'CentOS 8', slug: 'centos-8', multiplier: 5, depends: [] },
{ name: 'Debian 8', slug: 'debian-8', multiplier: 6, depends: [] },
{ name: 'Debian 9', slug: 'debian-9', multiplier: 7, depends: [] },
{ name: 'Debian 10', slug: 'debian-10', multiplier: 5, depends: [] },
{ name: 'Fedora 30', slug: 'fedora-30', multiplier: 4, depends: [] },
{ name: 'Fedora 31', slug: 'fedora-31', multiplier: 3, depends: [] },
{ name: 'Opensuse 15.1', slug: 'opensuse-15', multiplier: 2, depends: [] },
{ name: 'Ubuntu 16.04', slug: 'ubuntu-1604', multiplier: 1, depends: [] },
{ name: 'Ubuntu 18.04', slug: 'ubuntu-1804', multiplier: 0, depends: [] },
];
local stable_distros = [
'amazon-1',
'amazon-2',
'centos-6',
'centos-7',
'centos-8',
'debian-8',
'debian-9',
'debian-10',
'fedora-30',
'ubuntu-1604',
'ubuntu-1804',
];
local py3_distros = [
'amazon-2',
// 'arch',
'centos-7',
'centos-8',
'debian-9',
'debian-10',
'ubuntu-1604',
'ubuntu-1804',
'fedora-30',
'fedora-31',
];
local py2_blacklist = [
'centos-8',
'debian-10',
'fedora-30',
'fedora-31',
];
local blacklist_2018 = [
'centos-8',
'debian-10',
'amazon-2',
];
local Shellcheck() = {
kind: 'pipeline',
name: 'Lint',
steps: [
{
name: 'shellcheck',
image: 'koalaman/shellcheck-alpine:v0.6.0',
commands: [
'shellcheck -s sh -f checkstyle bootstrap-salt.sh',
],
},
],
};
local Build(distro) = {
kind: 'pipeline',
name: distro.name,
node: {
project: 'open',
},
local temp_git_suites = if std.count(py2_blacklist, distro.slug) > 0 then
[]
else
git_suites,
local temp_stable_suites = if std.count(py2_blacklist, distro.slug) > 0 then
[]
else if std.count(stable_distros, distro.slug) > 0 then
stable_suites
else
[],
local temp_git_py3_suites = if std.count(py3_distros, distro.slug) < 1 then
[]
else if std.count(blacklist_2018, distro.slug) > 0 then
git_py3_suites[1:]
else if std.count(py3_distros, distro.slug) > 0 then
git_py3_suites
else
[],
local temp_stable_py3_suites = if std.count(stable_distros, distro.slug) < 1 then
[]
else if std.count(blacklist_2018, distro.slug) > 0 then
stable_py3_suites[1:]
else if std.count(py3_distros, distro.slug) > 0 then
stable_py3_suites
else
[],
local suites = temp_git_suites + temp_stable_suites + temp_git_py3_suites + temp_stable_py3_suites,
steps: [
{
name: 'throttle-build',
image: 'alpine',
commands: [
std.format(
"sh -c 't=%(offset)s; echo Sleeping %(offset)s seconds; sleep %(offset)s'",
{ offset: 6 * std.length(suites) * distro.multiplier }
),
],
},
{
name: 'create',
image: 'saltstack/drone-salt-bootstrap-testing',
environment: {
DOCKER_HOST: 'tcp://docker:2375',
},
depends_on: [
'throttle-build',
],
commands: [
'bundle install --with docker --without opennebula ec2 windows vagrant',
"echo 'Waiting for docker to start'",
'sleep 20', // give docker enough time to start
'docker ps -a',
std.format('bundle exec kitchen create %s', [distro.slug]),
],
},
] + [
{
name: suite.name,
image: 'saltstack/drone-salt-bootstrap-testing',
environment: {
DOCKER_HOST: 'tcp://docker:2375',
},
depends_on: [
'throttle-build',
'create',
],
commands: [
'pip install -U pip',
'pip install -r tests/requirements.txt',
'bundle install --with docker --without opennebula ec2 windows vagrant',
std.format('bundle exec kitchen test %s-%s', [suite.slug, distro.slug]),
],
}
for suite in suites
],
services: [
{
name: 'docker',
image: 'saltstack/drone-salt-bootstrap-testing',
privileged: true,
environment: {},
command: [
'--storage-driver=overlay2',
],
},
],
depends_on: [
'Lint',
] + distro.depends,
};
[
Shellcheck(),
] + [
Build(distro)
for distro in distros
]

1748
.drone.yml

File diff suppressed because it is too large Load diff

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

315
.github/workflows/ci.yml vendored Normal file
View file

@ -0,0 +1,315 @@
name: CI
on:
- push
- pull_request
concurrency:
# If changes are pushed to a PR, stop all running workflows before starting new ones
group: ${{ github.head_ref || (github.repository == 'saltstack/salt-bootstrap' && github.run_id || github.ref_name) }}
cancel-in-progress: true
jobs:
collect-changed-files:
name: Collect changed files
runs-on: ubuntu-latest
outputs:
run-tests: ${{ steps.set-output.outputs.run-tests }}
steps:
- uses: actions/checkout@v4
with:
fetch-depth: 0
- name: Get specific changed files
id: changed-files
uses: tj-actions/changed-files@v42
with:
separator: ","
files: |
bootstrap-salt.*
tests/**
.github/workflows/**
files_ignore: |
.github/workflows/release.yml
- name: Set Job Output
id: set-output
run: |
echo "::set-output name=run-tests::${{ steps.changed-files.outputs.any_modified }}"
- name: Set Exit Status
if: always()
run: |
mkdir exitstatus
echo "${{ job.status }}" > exitstatus/${{ github.job }}
- name: Upload Exit Status
if: always()
uses: actions/upload-artifact@v4
with:
name: exitstatus-${{ github.job }}
path: exitstatus/
generate-actions-workflow:
name: Generate The Actions Workflow
runs-on: ubuntu-latest
needs: collect-changed-files
if: github.event_name == 'push' || needs.collect-changed-files.outputs.run-tests == 'true'
steps:
- uses: actions/checkout@v4
- name: Set up Python 3.10
uses: actions/setup-python@v5
with:
python-version: "3.10"
- name: Install Pre-Commit
run: |
python3 -m pip install -U pip
python3 -m pip install pre-commit
pre-commit install --install-hooks
- name: Generate Workflow Actions
run: |
pre-commit run -av generate-actions-workflow
- name: Set Exit Status
if: always()
run: |
mkdir exitstatus
echo "${{ job.status }}" > exitstatus/${{ github.job }}
- name: Upload Exit Status
if: always()
uses: actions/upload-artifact@v4
with:
name: exitstatus-${{ github.job }}
path: exitstatus/
lint:
name: Lint
runs-on: ubuntu-latest
needs: collect-changed-files
container: koalaman/shellcheck-alpine:latest
if: github.event_name == 'push' || needs.collect-changed-files.outputs.run-tests == 'true'
steps:
- uses: actions/checkout@v4
- name: ShellCheck
run: |
shellcheck -s sh -f tty bootstrap-salt.sh
- name: Set Exit Status
if: always()
run: |
mkdir exitstatus
echo "${{ job.status }}" > exitstatus/${{ github.job }}
- name: Upload Exit Status
if: always()
uses: actions/upload-artifact@v4
with:
name: exitstatus-${{ github.job }}
path: exitstatus/
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-13
display-name: macOS 13
container-slug: macos-13
timeout: 20
runs-on: macos-13
instances: '["stable-3006", "stable-3006-8", "stable-3007", "stable-3007-1", "latest"]'
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-14
display-name: macOS 14
container-slug: macOS 14
timeout: 20
runs-on: macos-14
instances: '["stable-3006", "stable-3006-8", "stable-3007", "stable-3007-1", "latest"]'
windows-2022:
name: Windows 2022
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-2022
display-name: Windows 2022
container-slug: windows-2022
timeout: 20
runs-on: windows-2022
instances: '["stable-3006", "stable-3006-8", "stable-3007", "stable-3007-1", "latest"]'
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: amazonlinux-2023
display-name: Amazon 2023
container-slug: amazonlinux-2023
timeout: 20
instances: '["stable-3006", "onedir-3006", "stable-3006-8", "stable-3007", "onedir-3007", "stable-3007-1", "latest", "default"]'
debian-11:
name: Debian 11
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-11
display-name: Debian 11
container-slug: debian-11
timeout: 20
instances: '["stable-3006", "onedir-3006", "stable-3006-8", "stable-3007", "onedir-3007", "stable-3007-1", "latest", "default"]'
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-12
display-name: Debian 12
container-slug: debian-12
timeout: 20
instances: '["stable-3007", "git-3007", "onedir-3007", "stable-3007-1", "git-master", "latest", "default"]'
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: photon-5
display-name: Photon OS 5
container-slug: photon-5
timeout: 20
instances: '["stable-3006", "onedir-3006", "stable-3006-8", "stable-3007", "onedir-3007", "stable-3007-1", "latest", "default"]'
rockylinux-8:
name: Rocky 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: rockylinux-8
display-name: Rocky Linux 8
container-slug: rockylinux-8
timeout: 20
instances: '["stable-3006", "onedir-3006", "stable-3006-8", "stable-3007", "onedir-3007", "stable-3007-1", "latest", "default"]'
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: rockylinux-9
display-name: Rocky Linux 9
container-slug: rockylinux-9
timeout: 20
instances: '["stable-3006", "onedir-3006", "stable-3006-8", "stable-3007", "onedir-3007", "stable-3007-1", "latest", "default"]'
ubuntu-2204:
name: Ubuntu 22.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-2204
display-name: Ubuntu 22.04
container-slug: ubuntu-22.04
timeout: 20
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:
# This step is just so we can make github require this step, to pass checks
# on a pull request instead of requiring all
name: Set the ${{ github.workflow }} Pipeline Exit Status
runs-on: ubuntu-latest
needs:
- lint
- generate-actions-workflow
- macos-13
- macos-14
- windows-2022
- amazonlinux-2023
- debian-11
- debian-12
- photon-5
- rockylinux-8
- rockylinux-9
- ubuntu-2204
if: always()
steps:
- name: Download Exit Status Files
if: always()
uses: actions/download-artifact@v4
with:
path: exitstatus/
pattern: exitstatus-*
merge-multiple: true
- name: Delete Exit Status Artifacts
if: always()
uses: geekyeggo/delete-artifact@v5
with:
pattern: exitstatus-*
failOnError: false
- name: Set Pipeline Exit Status
run: |
grep -RE 'failure|cancelled' exitstatus/ && exit 1 || exit 0
- name: Done
if: always()
run:
echo "All worflows finished"

File diff suppressed because it is too large Load diff

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

283
.github/workflows/release.yml vendored Normal file
View file

@ -0,0 +1,283 @@
name: Cut Release
on: workflow_dispatch
jobs:
check-requirements:
name: Check Requirements
runs-on: ubuntu-latest
environment: release-check
steps:
- name: Check For Admin Permission
uses: actions-cool/check-user-permission@v2
with:
require: admin
username: ${{ github.triggering_actor }}
- name: Check Repository
run: |
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
- 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: Install Requirements
run: |
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 }}
- name: Show Changes
run: |
git status
git diff
- name: Commit Changes
run: |
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@b87afee92c6e70ea888be6203a3e9426fda49839
with:
ssh: true
atomic: true
branch: develop
repository: ${{ github.repository }}
- name: Upload Release Details
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
needs:
- update-develop
environment: release
permissions:
contents: write # To be able to publish the release
steps:
- uses: actions/checkout@v4
with:
ref: stable
repository: ${{ github.repository }}
ssh-key: ${{ secrets.SALT_BOOTSTRAP_RELEASE_KEY }}
fetch-depth: 0
- 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: Download Release Details
uses: actions/download-artifact@v4
with:
name: release-details
- name: Merge develop into stable
run: |
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"
done
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 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: |
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@b87afee92c6e70ea888be6203a3e9426fda49839
with:
ssh: true
tags: true
atomic: true
branch: stable
repository: ${{ github.repository }}
publish-release:
name: Create GitHub Release
runs-on: ubuntu-latest
needs:
- merge-develop-into-stable
environment: release
permissions:
contents: write # To be able to publish the release
steps:
- 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@v4
with:
name: release-details
- name: Update Environment
run: |
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
with:
name: ${{ env.CUT_RELEASE_VERSION }}
tag_name: ${{ env.CUT_RELEASE_VERSION }}
body_path: .cut_release_changes
target_commitish: stable
draft: false
prerelease: false
generate_release_notes: false
files: |
bootstrap-salt.sh
bootstrap-salt.sh.sha256
bootstrap-salt.ps1
bootstrap-salt.ps1.sha256
LICENSE
- name: Delete Release Details Artifact
uses: geekyeggo/delete-artifact@v5
with:
name: release-details
failOnError: false
update-develop-checksums:
name: Update Release Checksums on Develop
runs-on: ubuntu-latest
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@v4
with:
ref: stable
repository: ${{ github.repository }}
ssh-key: ${{ secrets.SALT_BOOTSTRAP_RELEASE_KEY }}
- 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"
- uses: actions/checkout@v4
with:
ref: develop
repository: ${{ github.repository }}
ssh-key: ${{ secrets.SALT_BOOTSTRAP_RELEASE_KEY }}
- 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 Latest Release on README
run: |
python3 .github/workflows/scripts/update-release-shasum.py ${{ env.BS_VERSION }} ${{ env.SH }}
- name: Show Changes
run: |
git status
git diff
- name: Commit Changes
run: |
git commit -am "Update README.rst with ${{ env.BS_VERSION }} release sha256sum" || \
git commit -am "Update README.rst with ${{ env.BS_VERSION }} release sha256sum"
- name: Push Changes
uses: ad-m/github-push-action@b87afee92c6e70ea888be6203a3e9426fda49839
with:
ssh: true
atomic: true
branch: develop
repository: ${{ github.repository }}

225
.github/workflows/scripts/cut-release.py vendored Normal file
View file

@ -0,0 +1,225 @@
#!/usr/bin/env python
import argparse
import os
import pathlib
import re
import sys
from datetime import datetime
import requests
REPO_ROOT = pathlib.Path(__file__).resolve().parent.parent.parent.parent
class ClassPropertyDescriptor:
def __init__(self, fget, fset=None):
self.fget = fget
self.fset = fset
def __get__(self, obj, klass=None):
if klass is None:
klass = type(obj)
return self.fget.__get__(obj, klass)()
def __set__(self, obj, value):
if not self.fset:
raise AttributeError("can't set attribute")
type_ = type(obj)
return self.fset.__get__(obj, type_)(value)
def setter(self, func):
if not isinstance(func, (classmethod, staticmethod)):
func = classmethod(func)
self.fset = func
return self
def classproperty(func):
if not isinstance(func, (classmethod, staticmethod)):
func = classmethod(func)
return ClassPropertyDescriptor(func)
class Session:
_instance = None
def __init__(self, endpoint=None):
if endpoint is None:
endpoint = "https://api.github.com"
self.endpoint = endpoint
self.session = requests.Session()
self.session.headers.update(
{
"Accept": "application/vnd.github+json",
"Authorization": f"token {os.environ['GITHUB_TOKEN']}",
}
)
@classproperty
def instance(cls):
if cls._instance is None:
cls._instance = cls()
return cls._instance
def get(self, path, **kwargs):
return self.session.get(f"{self.endpoint}/{path.lstrip('/')}", **kwargs)
def post(self, path, **kwargs):
return self.session.post(f"{self.endpoint}/{path.lstrip('/')}", **kwargs)
def __enter__(self):
self.session.__enter__()
return self
def __exit__(self, *args):
self.session.__exit__(*args)
def get_latest_release(options):
response = Session.instance.get(f"/repos/{options.repo}/releases/latest")
if response.status_code != 404:
return response.json()["tag_name"]
print(
f"Failed to get latest release. HTTP Response:\n{response.text}",
file=sys.stderr,
flush=True,
)
print("Searching tags...", file=sys.stderr, flush=True)
tags = []
page = 0
while True:
page += 1
response = Session.instance.get(
f"/repos/{options.repo}/tags", data={"pre_page": 100, "page": page}
)
repo_tags = response.json()
added_tags = False
for tag in repo_tags:
if tag["name"] not in tags:
tags.append(tag["name"])
added_tags = True
if added_tags is False:
break
return list(sorted(tags))[-1]
def get_generated_changelog(options):
response = Session.instance.post(
f"/repos/{options.repo}/releases/generate-notes",
json={
"tag_name": options.release_tag,
"previous_tag_name": options.previous_tag,
"target_commitish": "develop",
},
)
if response.status_code == 200:
return response.json()
return response.text
def main():
parser = argparse.ArgumentParser()
parser.add_argument("--repo", required=True, help="The <user>/<repo> to use")
parser.add_argument("--release-tag", required=False, help="The tag of the release")
parser.add_argument(
"--previous-tag",
required=False,
help="The previous release tag. If not passed, the GH Api will be queried for it.",
)
changelog_file = REPO_ROOT / "CHANGELOG.md"
if not os.environ.get("GITHUB_TOKEN"):
parser.exit(status=1, message="GITHUB_TOKEN environment variable not set")
options = parser.parse_args()
if not options.release_tag:
options.release_tag = f"v{datetime.utcnow().strftime('%Y.%m.%d')}"
if not options.previous_tag:
options.previous_tag = get_latest_release(options)
print(
f"Creating changelog entries from {options.previous_tag} to {options.release_tag} ...",
file=sys.stderr,
flush=True,
)
changelog = get_generated_changelog(options)
if not isinstance(changelog, dict):
parser.exit(
status=1,
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)} ...",
file=sys.stderr,
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(
f"* Writing {cut_release_changes.relative_to(REPO_ROOT)} ...",
file=sys.stderr,
flush=True,
)
cut_release_changes.write_text(changelog["body"])
print(
f"* Updating {changelog_file.relative_to(REPO_ROOT)} ...",
file=sys.stderr,
flush=True,
)
changelog_file.write_text(
f"# {changelog['name']}\n\n"
+ changelog["body"]
+ "\n\n"
+ 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)} ...",
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(),
)
)
# 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")
if __name__ == "__main__":
main()

View file

@ -0,0 +1,49 @@
#!/usr/bin/env python
import sys
import pathlib
import subprocess
THIS_FILE = pathlib.Path(__file__).resolve()
CODE_ROOT = THIS_FILE.parent.parent.parent.parent
README_PATH = CODE_ROOT / "README.rst"
def main(version, sha256sum):
in_contents = README_PATH.read_text()
if version in in_contents:
print(f"README file already contains an entry for version {version}")
sys.exit(1)
out_contents = ""
found_anchor = False
updated_version = False
if version not in in_contents:
for line in in_contents.splitlines(True):
if updated_version:
out_contents += line
continue
if found_anchor:
if not line.startswith("-"):
out_contents += line
continue
out_contents += "- {}: ``{}``\n".format(version, sha256sum)
out_contents += line
updated_version = True
continue
out_contents += line
if line.startswith(".. _sha256sums:"):
found_anchor = True
if in_contents != out_contents:
README_PATH.write_text(out_contents)
ret = subprocess.run(
["git", "diff", "--stat"], universal_newlines=True, capture_output=True
)
if "1 file changed, 1 insertion(+)" not in ret.stdout:
print("Too Many Changes to the readme file")
sys.exit(1)
sys.exit(0)
if __name__ == "__main__":
main(sys.argv[1], sys.argv[2])

34
.github/workflows/templates/ci-tail.yml vendored Normal file
View file

@ -0,0 +1,34 @@
set-pipeline-exit-status:
# This step is just so we can make github require this step, to pass checks
# on a pull request instead of requiring all
name: Set the ${{{{ github.workflow }}}} Pipeline Exit Status
runs-on: ubuntu-latest
needs:
{needs}
if: always()
steps:
- name: Download Exit Status Files
if: always()
uses: actions/download-artifact@v4
with:
path: exitstatus/
pattern: exitstatus-*
merge-multiple: true
- name: Delete Exit Status Artifacts
if: always()
uses: geekyeggo/delete-artifact@v5
with:
pattern: exitstatus-*
failOnError: false
- name: Set Pipeline Exit Status
run: |
grep -RE 'failure|cancelled' exitstatus/ && exit 1 || exit 0
- name: Done
if: always()
run:
echo "All worflows finished"

113
.github/workflows/templates/ci.yml vendored Normal file
View file

@ -0,0 +1,113 @@
name: CI
on:
- push
- pull_request
concurrency:
# If changes are pushed to a PR, stop all running workflows before starting new ones
group: ${{ github.head_ref || (github.repository == 'saltstack/salt-bootstrap' && github.run_id || github.ref_name) }}
cancel-in-progress: true
jobs:
collect-changed-files:
name: Collect changed files
runs-on: ubuntu-latest
outputs:
run-tests: ${{ steps.set-output.outputs.run-tests }}
steps:
- uses: actions/checkout@v4
with:
fetch-depth: 0
- name: Get specific changed files
id: changed-files
uses: tj-actions/changed-files@v42
with:
separator: ","
files: |
bootstrap-salt.*
tests/**
.github/workflows/**
files_ignore: |
.github/workflows/release.yml
- name: Set Job Output
id: set-output
run: |
echo "::set-output name=run-tests::${{ steps.changed-files.outputs.any_modified }}"
- name: Set Exit Status
if: always()
run: |
mkdir exitstatus
echo "${{ job.status }}" > exitstatus/${{ github.job }}
- name: Upload Exit Status
if: always()
uses: actions/upload-artifact@v4
with:
name: exitstatus-${{ github.job }}
path: exitstatus/
generate-actions-workflow:
name: Generate The Actions Workflow
runs-on: ubuntu-latest
needs: collect-changed-files
if: github.event_name == 'push' || needs.collect-changed-files.outputs.run-tests == 'true'
steps:
- uses: actions/checkout@v4
- name: Set up Python 3.10
uses: actions/setup-python@v5
with:
python-version: "3.10"
- name: Install Pre-Commit
run: |
python3 -m pip install -U pip
python3 -m pip install pre-commit
pre-commit install --install-hooks
- name: Generate Workflow Actions
run: |
pre-commit run -av generate-actions-workflow
- name: Set Exit Status
if: always()
run: |
mkdir exitstatus
echo "${{ job.status }}" > exitstatus/${{ github.job }}
- name: Upload Exit Status
if: always()
uses: actions/upload-artifact@v4
with:
name: exitstatus-${{ github.job }}
path: exitstatus/
lint:
name: Lint
runs-on: ubuntu-latest
needs: collect-changed-files
container: koalaman/shellcheck-alpine:latest
if: github.event_name == 'push' || needs.collect-changed-files.outputs.run-tests == 'true'
steps:
- uses: actions/checkout@v4
- name: ShellCheck
run: |
shellcheck -s sh -f tty bootstrap-salt.sh
- name: Set Exit Status
if: always()
run: |
mkdir exitstatus
echo "${{ job.status }}" > exitstatus/${{ github.job }}
- name: Upload Exit Status
if: always()
uses: actions/upload-artifact@v4
with:
name: exitstatus-${{ github.job }}
path: exitstatus/

View file

@ -1,206 +1,455 @@
#!/usr/bin/env python
# -*- coding: utf-8 -*-
import os
#!/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 = [
# 'amazon-1',
'amazon-2',
'arch',
'centos-6',
'centos-7',
'centos-8',
'debian-10',
'debian-8',
'debian-9',
'fedora-30',
'fedora-31',
'fedora-32',
'opensuse-15',
'ubuntu-1604',
'ubuntu-1804'
"amazonlinux-2023",
"debian-11",
"debian-12",
"photon-5",
"rockylinux-8",
"rockylinux-9",
"ubuntu-2204",
]
OSX = WINDOWS = []
WINDOWS = [
"windows-2022",
]
OSX = [
"macos-13",
"macos-14",
]
# "amazonlinux-2",
# "debian-13",
# "fedora-40",
# "photon-4",
# "ubuntu-2004",
# "ubuntu-2404",
STABLE_DISTROS = [
'amazon-1',
'amazon-2',
'centos-6',
'centos-7',
'centos-8',
'debian-10',
'debian-8',
'debian-9',
'fedora-30',
'fedora-31',
'ubuntu-1604',
'ubuntu-1804',
"amazonlinux-2023",
"debian-11",
"debian-12",
"photon-5",
"rockylinux-8",
"rockylinux-9",
"ubuntu-2204",
]
PY2_BLACKLIST = [
'centos-8',
'debian-10',
'fedora-30',
'fedora-31',
'fedora-32'
# "amazonlinux-2",
# "debian-13",
# "fedora-40",
# "photon-4",
# "ubuntu-2004",
# "ubuntu-2404",
ONEDIR_DISTROS = [
"amazonlinux-2023",
"debian-11",
"debian-12",
"photon-5",
"rockylinux-8",
"rockylinux-9",
"ubuntu-2204",
]
PY3_BLACKLIST = [
'arch', # Defaults to Py3.8
'amazon-1',
'centos-6',
'debian-8',
'fedora-32' # Defaults to Py3.8
# "amazonlinux-2",
# "amazonlinux-2023",
# "photon-4",
# "photon-5",
# "rockylinux-8",
# "ubuntu-2404",
ONEDIR_RC_DISTROS = [
"debian-12",
"photon-5",
"rockylinux-9",
"ubuntu-2204",
]
BLACKLIST_2018 = [
'amazon-2',
'centos-8',
'debian-10',
BLACKLIST_3006 = [
"debian-12",
"fedora-40",
"ubuntu-2404",
]
SALT_BRANCHES = [
'2018-3',
'2019-2',
'3000',
'master',
'latest'
# "photon-5",
BLACKLIST_3007 = [
"photon-4",
]
BRANCH_DISPLAY_NAMES = {
'2018-3': 'v2018.3',
'2019-2': 'v2019.2',
'3000': 'v3000',
'master': 'Master',
'latest': 'Latest'
# "ubuntu-2204",
BLACKLIST_GIT_3006 = [
"amazonlinux-2",
"amazonlinux-2023",
"debian-11",
"debian-12",
"debian-13",
"fedora-40",
"photon-4",
"photon-5",
"rockylinux-9",
"ubuntu-2004",
"ubuntu-2404",
]
# "debian-12",
# "ubuntu-2204",
BLACKLIST_GIT_3007 = [
"amazonlinux-2",
"amazonlinux-2023",
"debian-11",
"debian-13",
"fedora-40",
"photon-4",
"photon-5",
"rockylinux-9",
"ubuntu-2004",
"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 = [
"3006",
"3006-8",
"3007",
"3007-1",
"master",
"latest",
"nightly",
]
ONEDIR_SALT_VERSIONS = [
"3006",
"3007",
"latest",
]
ONEDIR_RC_SALT_VERSIONS = []
VERSION_DISPLAY_NAMES = {
"3006": "v3006",
"3006-8": "v3006.8",
"3007": "v3007",
"3007-1": "v3007.1",
"master": "Master",
"latest": "Latest",
"nightly": "Nightly",
}
STABLE_BRANCH_BLACKLIST = [
STABLE_VERSION_BLACKLIST = [
"master",
"nightly",
]
LATEST_PKG_BLACKLIST = [
'arch', # No packages are built
'centos-8', # Once Neon is out, this can be removed from here
'debian-10' # Once Neon is out, this can be removed from here
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 = {
'amazon-1': 'Amazon 1',
'amazon-2': 'Amazon 2',
'arch': 'Arch',
'centos-6': 'CentOS 6',
'centos-7': 'CentOS 7',
'centos-8': 'CentOS 8',
'debian-10': 'Debian 10',
'debian-8': 'Debian 8',
'debian-9': 'Debian 9',
'fedora-30': 'Fedora 30',
'fedora-31': 'Fedora 31',
'fedora-32': 'Fedora 32',
'opensuse-15': 'Opensuse 15',
'ubuntu-1604': 'Ubuntu 16.04',
'ubuntu-1804': 'Ubuntu 18.04'
"amazonlinux-2": "Amazon 2",
"amazonlinux-2023": "Amazon 2023",
"debian-11": "Debian 11",
"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",
"rockylinux-9": "Rocky Linux 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",
}
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",
}
TIMEOUT_DEFAULT = 20
TIMEOUT_OVERRIDES = {}
VERSION_ONLY_OVERRIDES = []
TEMPLATE = """
{distro}:
name: {display_name}{ifcheck}
uses: {uses}
needs:
- lint
- generate-actions-workflow
with:
distro-slug: {distro}
display-name: {display_name}
container-slug: {container_name}
timeout: {timeout_minutes}{runs_on}
instances: '{instances}'
"""
def generate_test_jobs():
test_jobs = ''
test_jobs = ""
needs = ["lint", "generate-actions-workflow"]
for distro in LINUX_DISTROS + OSX + WINDOWS:
for branch in SALT_BRANCHES:
if branch == 'latest':
if distro in LATEST_PKG_BLACKLIST:
continue
if distro in LINUX_DISTROS:
template = 'linux.yml'
elif distro in OSX:
template = 'osx.yml'
elif distro in WINDOWS:
template = 'windows.yml'
else:
print("Don't know how to handle {}".format(distro))
test_jobs += "\n"
for distro in OSX:
test_jobs += "\n"
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"
instances = []
timeout_minutes = (
TIMEOUT_OVERRIDES[distro]
if distro in TIMEOUT_OVERRIDES
else TIMEOUT_DEFAULT
)
with open(template) as rfh:
test_jobs += '\n{}\n'.format(
rfh.read().replace(
'{python_version}-{bootstrap_type}-{branch}-{distro}',
'{branch}-{distro}'
).format(
distro=distro,
branch=branch,
display_name='{} Latest packaged release'.format(
DISTRO_DISPLAY_NAMES[distro],
)
)
)
for salt_version in SALT_VERSIONS:
if salt_version == "latest":
instances.append(salt_version)
continue
for python_version in ('py2', 'py3'):
for bootstrap_type in ('stable', 'git'):
if bootstrap_type == 'stable' and branch == 'master':
continue
if bootstrap_type == 'stable' and distro not in STABLE_DISTROS:
for bootstrap_type in ["stable"]:
if bootstrap_type == "stable":
if salt_version in MAC_STABLE_VERSION_BLACKLIST:
continue
if bootstrap_type == 'stable' and branch in STABLE_BRANCH_BLACKLIST:
continue
test_target = f"{bootstrap_type}-{salt_version}"
instances.append(test_target)
if branch == '2018-3' and distro in BLACKLIST_2018:
continue
for bootstrap_type in ["default"]:
if distro not in STABLE_DISTROS:
continue
instances.append(bootstrap_type)
if python_version == 'py2' and distro in PY2_BLACKLIST:
continue
if python_version == 'py3' and distro in PY3_BLACKLIST:
continue
if distro in LINUX_DISTROS:
template = 'linux.yml'
elif distro in OSX:
template = 'osx.yml'
elif distro in WINDOWS:
template = 'windows.yml'
else:
print("Don't know how to handle {}".format(distro))
with open(template) as rfh:
test_jobs += '\n{}\n'.format(
rfh.read().format(
distro=distro,
branch=branch,
python_version=python_version,
bootstrap_type=bootstrap_type,
display_name='{} {} {} {}'.format(
DISTRO_DISPLAY_NAMES[distro],
BRANCH_DISPLAY_NAMES[branch],
python_version.capitalize(),
bootstrap_type.capitalize()
)
)
)
with open('lint.yml') as rfh:
lint_job = '\n{}\n'.format(rfh.read())
with open('pre-commit.yml') as rfh:
pre_commit_job = '\n{}\n'.format(rfh.read())
with open('../main.yml', 'w') as wfh:
with open('main.yml') as rfh:
wfh.write(
'{}\n'.format(
rfh.read().format(
jobs='{pre_commit}{lint}{test}'.format(
lint=lint_job,
test=test_jobs,
pre_commit=pre_commit_job,
)
).strip()
)
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],
container_name=CONTAINER_SLUG_NAMES[distro],
timeout_minutes=timeout_minutes,
)
test_jobs += "\n"
for distro in WINDOWS:
test_jobs += "\n"
runs_on = f"\n runs-on: {distro}"
ifcheck = "\n if: github.event_name == 'push' || needs.collect-changed-files.outputs.run-tests == 'true'"
uses = "./.github/workflows/test-windows.yml"
instances = []
timeout_minutes = (
TIMEOUT_OVERRIDES[distro]
if distro in TIMEOUT_OVERRIDES
else TIMEOUT_DEFAULT
)
if __name__ == '__main__':
for salt_version in SALT_VERSIONS:
if salt_version == "latest":
instances.append(salt_version)
continue
for bootstrap_type in ["stable"]:
if bootstrap_type == "stable":
if salt_version in STABLE_VERSION_BLACKLIST:
continue
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)
test_jobs += TEMPLATE.format(
distro=distro,
runs_on=runs_on,
uses=uses,
ifcheck=ifcheck,
instances=json.dumps(instances),
display_name=DISTRO_DISPLAY_NAMES[distro],
container_name=CONTAINER_SLUG_NAMES[distro],
timeout_minutes=timeout_minutes,
)
test_jobs += "\n"
for distro in LINUX_DISTROS:
test_jobs += "\n"
runs_on = ""
ifcheck = "\n if: github.event_name == 'push' || needs.collect-changed-files.outputs.run-tests == 'true'"
uses = "./.github/workflows/test-linux.yml"
instances = []
timeout_minutes = (
TIMEOUT_OVERRIDES[distro]
if distro in TIMEOUT_OVERRIDES
else TIMEOUT_DEFAULT
)
if distro in VERSION_ONLY_OVERRIDES:
ifcheck = "\n if: github.event_name == 'push'"
for salt_version in SALT_VERSIONS:
if salt_version == "latest":
if distro in LATEST_PKG_BLACKLIST:
continue
instances.append(salt_version)
continue
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 in STABLE_VERSION_BLACKLIST:
continue
if distro not in STABLE_DISTROS:
continue
if bootstrap_type == "git":
if salt_version in GIT_VERSION_BLACKLIST:
continue
if distro in GIT_DISTRO_BLACKLIST:
continue
BLACKLIST = {
"3006": BLACKLIST_3006,
"3006-8": BLACKLIST_3006,
"3007": BLACKLIST_3007,
"3007-1": BLACKLIST_3007,
}
if bootstrap_type == "git":
BLACKLIST = {
"3006": BLACKLIST_GIT_3006,
"3007": BLACKLIST_GIT_3007,
"master": BLACKLIST_GIT_MASTER,
}
# .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 ("3006", "3006-8", "3007", "3007-1", "master")
and distro in BLACKLIST[salt_version]
):
continue
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)
test_jobs += TEMPLATE.format(
distro=distro,
runs_on=runs_on,
uses=uses,
ifcheck=ifcheck,
instances=json.dumps(instances),
display_name=DISTRO_DISPLAY_NAMES[distro],
container_name=CONTAINER_SLUG_NAMES[distro],
timeout_minutes=timeout_minutes,
)
ci_src_workflow = pathlib.Path("ci.yml").resolve()
ci_tail_src_workflow = pathlib.Path("ci-tail.yml").resolve()
ci_dst_workflow = pathlib.Path("../ci.yml").resolve()
ci_workflow_contents = ci_src_workflow.read_text() + test_jobs + "\n"
ci_workflow_contents += ci_tail_src_workflow.read_text().format(
needs="\n".join([f" - {need}" for need in needs]).lstrip()
)
ci_dst_workflow.write_text(ci_workflow_contents)
if __name__ == "__main__":
generate_test_jobs()

View file

@ -1,12 +0,0 @@
lint:
name: Lint
runs-on: ubuntu-latest
needs: generate-actions-workflow
container: koalaman/shellcheck-alpine:v0.6.0
steps:
- uses: actions/checkout@v1
- name: ShellCheck
run: |
shellcheck -s sh -f tty bootstrap-salt.sh

View file

@ -1,44 +0,0 @@
{python_version}-{bootstrap_type}-{branch}-{distro}:
name: {display_name}
runs-on: ubuntu-latest
timeout-minutes: 10
needs: lint
steps:
- uses: actions/checkout@v1
- name: Setup Ruby
uses: actions/setup-ruby@v1
with:
ruby-version: 2.6.x
- name: Install Bundler
run: |
gem install bundler
- name: Setup Bundle
run: |
bundle install --with docker --without opennebula ec2 windows vagrant
- name: Set up Python 3.7
uses: actions/setup-python@v1
with:
python-version: 3.7
- name: Install Python Dependencies
run: |
pip install -U pip
pip install -r tests/requirements.txt
- name: Create Test Container
run: |
bundle exec kitchen create {python_version}-{bootstrap_type}-{branch}-{distro} || bundle exec kitchen create {python_version}-{bootstrap_type}-{branch}-{distro}
- name: Test Bootstrap In Test Container
run: |
bundle exec kitchen verify {python_version}-{bootstrap_type}-{branch}-{distro}
- name: Destroy Test Container
if: always()
run: |
bundle exec kitchen destroy {python_version}-{bootstrap_type}-{branch}-{distro}

View file

@ -1,10 +0,0 @@
# DO NOT EDIT THIS FILE DIRECTLY!
#
# This file was generated by .github/workflows/templates/generate.py
name: Testing
on: [push, pull_request]
jobs:
{jobs}

View file

@ -1,20 +0,0 @@
generate-actions-workflow:
name: Generate The Actions Workflow
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v1
- name: Set up Python 3.7
uses: actions/setup-python@v1
with:
python-version: 3.7
- name: Install Pre-Commit
run: |
pip install -U pip
pip install pre-commit
pre-commit install
- name: Generate Workflow Actions
run: |
pre-commit run -av generate-actions-workflow

99
.github/workflows/test-linux.yml vendored Normal file
View file

@ -0,0 +1,99 @@
name: Test Linux
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
instances:
type: string
required: true
description: The Instances To Test
container-slug:
type: string
required: true
description: The Container Slug
timeout:
type: number
required: false
default: 20
jobs:
Test:
name: ${{ matrix.instance }}
runs-on: ubuntu-latest
timeout-minutes: ${{ inputs.timeout }}
strategy:
max-parallel: 2
fail-fast: false
matrix:
instance: ${{ fromJSON(inputs.instances) }}
steps:
- uses: actions/checkout@v4
- 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_parm_ver=$(echo "${{ matrix.instance }}" | sed 's/-/ /' | sed 's/-/./' | awk -F ' ' '{print $2}')
echo "SaltVersion=$vt_parm_ver" >> $GITHUB_ENV
- name: "Pull container ${{ inputs.container-slug }}"
run: |
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: |
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()
run: |
mkdir exitstatus
echo "${{ job.status }}" > exitstatus/${{ github.job }}-${{ matrix.instance }}-${{ inputs.distro-slug }}
- name: Upload Exit Status
if: always()
uses: actions/upload-artifact@v4
with:
name: exitstatus-${{ github.job }}-${{ matrix.instance }}-${{ inputs.distro-slug }}
path: exitstatus/

93
.github/workflows/test-macos.yml vendored Normal file
View file

@ -0,0 +1,93 @@
name: Test MacOS
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
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
jobs:
Test:
name: ${{ matrix.instance }}
runs-on: ${{ inputs.runs-on }}
## runs-on: macos-13
timeout-minutes: ${{ inputs.timeout }}
strategy:
fail-fast: false
matrix:
instance: ${{ fromJSON(inputs.instances) }}
steps:
- uses: actions/checkout@v4
- name: Install Python Dependencies with pip breakage
if: ${{ inputs.distro-slug != 'macos-13' }}
run: |
python3 -m pip install --break-system-packages -r tests/requirements.txt
- name: Install Python Dependencies without pip breakage
if: ${{ inputs.distro-slug == 'macos-13' }}
run: |
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: |
pytest --cache-clear -v -s -ra --log-cli-level=debug tests/integration/
- 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@v4
with:
name: exitstatus-${{ github.job }}-${{ matrix.instance }}-${{ inputs.distro-slug }}
path: exitstatus/

89
.github/workflows/test-windows.yml vendored Normal file
View file

@ -0,0 +1,89 @@
name: Test Windows
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 Windows Worker To Run Workflow On
instances:
type: string
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
jobs:
Test:
name: ${{ matrix.instance }}
runs-on: windows-latest
timeout-minutes: ${{ inputs.timeout }}
strategy:
fail-fast: false
matrix:
instance: ${{ fromJSON(inputs.instances) }}
steps:
- uses: actions/checkout@v4
- name: Set up Python 3.10
uses: actions/setup-python@v5
with:
python-version: "3.10"
- name: Install Python Dependencies
run: |
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
$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: |
pytest --cache-clear -v -s -ra --log-cli-level=debug tests/integration/
- 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@v4
with:
name: exitstatus-${{ github.job }}-${{ matrix.instance }}-${{ inputs.distro-slug }}
path: exitstatus/

9
.gitignore vendored
View file

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

View file

@ -1,235 +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
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: amazon-1
driver_config:
image: amazonlinux:1
platform: rhel
run_command: /sbin/init
provision_command:
- yum install -y upstart
- name: amazon-2
driver_config:
image: amazonlinux:2
platform: rhel
run_command: /usr/lib/systemd/systemd
provision_command:
- yum -y install procps-ng
- name: arch
driver_config:
image: archlinux/base
run_command: /usr/lib/systemd/systemd
provision_command:
- pacman -Syu --noconfirm --needed systemd grep awk procps which
- systemctl enable sshd
provisioner:
salt_bootstrap_options: -MPfq -D -y -x python2 git %s
- name: centos-8
driver_config:
run_command: /usr/lib/systemd/systemd
- name: centos-7
driver_config:
run_command: /usr/lib/systemd/systemd
- name: centos-6
driver_config:
run_command: /sbin/init
provision_command:
- yum install -y upstart
provisioner:
salt_bootstrap_options: -MPfq -y -x python2.7 git %s
- name: debian-8
driver_config:
run_command: /lib/systemd/systemd
provision_command:
- apt-get install -y dbus
- name: debian-9
driver_config:
run_command: /lib/systemd/systemd
- name: debian-10
driver_config:
run_command: /lib/systemd/systemd
- name: fedora-30
driver_config:
image: fedora:30
run_command: /usr/lib/systemd/systemd
provision_command:
- dnf -y install procps-ng
- name: fedora-31
driver_config:
image: fedora:31
run_command: /usr/lib/systemd/systemd
provision_command:
- dnf -y install procps-ng
- name: fedora-32
driver_config:
image: fedora:32
run_command: /usr/lib/systemd/systemd
provision_command:
- dnf -y install procps-ng
- name: opensuse-15
driver_config:
image: opensuse/leap:15.1
run_command: /usr/lib/systemd/systemd
provision_command:
- zypper --non-interactive install --auto-agree-with-licenses dbus-1
- zypper --non-interactive install --auto-agree-with-licenses sudo openssh which curl
- systemctl enable sshd.service
provisioner:
salt_bootstrap_options: -MPfq -y -x python2 git %s
- name: ubuntu-18.04
driver_config:
run_command: /lib/systemd/systemd
- name: ubuntu-16.04
driver_config:
run_command: /lib/systemd/systemd
suites:
- name: py2-git-2018-3
provisioner:
salt_version: 2018.3
- name: py2-git-2019-2
provisioner:
salt_version: 2019.2
- name: py2-git-3000
provisioner:
salt_version: 3000
- name: py2-git-master
provisioner:
salt_version: master
- name: py2-stable-2018-3
provisioner:
salt_version: 2018.3
salt_bootstrap_options: -MP stable %s
excludes:
- arch
- opensuse-15
- fedora-30
- fedora-31
- fedora-32
- name: py2-stable-2019-2
provisioner:
salt_version: 2019.2
salt_bootstrap_options: -MP stable %s
excludes:
- arch
- opensuse-15
- fedora-30
- fedora-31
- fedora-32
- name: py2-stable-3000
provisioner:
salt_version: 3000
salt_bootstrap_options: -MP stable %s
excludes:
- arch
- opensuse-15
- fedora-30
- fedora-31
- fedora-32
- name: py3-git-2018-3
provisioner:
salt_version: 2018.3
salt_bootstrap_options: -x python3 -MPfq git %s
excludes:
- amazon-1
- centos-6
- debian-8
- amazon-2
- name: py3-git-3000
provisioner:
salt_version: 3000
salt_bootstrap_options: -x python3 -MPfq git %s
excludes:
- arch
- amazon-1
- centos-6
- debian-8
- name: py3-git-2019-2
provisioner:
salt_version: 2019.2
salt_bootstrap_options: -x python3 -MPfq git %s
excludes:
- amazon-1
- centos-6
- debian-8
- name: py3-stable-2018-3
provisioner:
salt_version: 2018.3
salt_bootstrap_options: -x python3 -MP stable %s
excludes:
- amazon-1
- centos-6
- debian-8
- opensuse-15
- amazon-2
- name: py3-stable-2019-2
provisioner:
salt_version: 2019.2
salt_bootstrap_options: -x python3 -MP stable %s
excludes:
- amazon-1
- centos-6
- debian-8
- opensuse-15
- arch
- name: py3-stable-3000
provisioner:
salt_version: 3000
salt_bootstrap_options: -x python3 -MP stable %s
excludes:
- amazon-1
- centos-6
- debian-8
- opensuse-15
- arch
- name: py3-git-master
provisioner:
salt_version: master
salt_bootstrap_options: -x python3 -MPfq -D git %s
excludes:
- arch
- amazon-1
- centos-6
- debian-8
- fedora-32
- opensuse-15
- name: latest
provisioner:
salt_version: latest
salt_bootstrap_options: -MP stable %s
excludes:
- arch
verifier:
name: shell
remote_exec: false
command: pytest --cache-clear -v tests/integration/

View file

@ -2,7 +2,7 @@
minimum_pre_commit_version: 1.15.2
repos:
- repo: https://github.com/pre-commit/pre-commit-hooks
rev: v2.1.0
rev: v4.5.0
hooks:
- id: check-merge-conflict # Check for files that contain merge conflict strings.
- id: trailing-whitespace # Trims trailing whitespace.
@ -11,17 +11,89 @@ repos:
args: [--fix=lf]
- 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.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: 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:
- id: generate-actions-workflow
name: Generate Github Actions Workflow
entry: .github/workflows/templates/generate.py
pass_filenames: false
files: '.github/workflows/templates/.*'
files: '^.github/workflows/.*$'
language: script
- id: shellcheck
name: Run ShellCheck against bootstrap-salt.sh
entry: koalaman/shellcheck-alpine:v0.6.0 shellcheck -s sh -f tty
entry: koalaman/shellcheck-alpine:v0.7.0 shellcheck -s sh -f tty
files: 'bootstrap-salt\.sh'
language: docker_image

View file

@ -1,5 +1,11 @@
This authors list is kept for historical purposes
=================================================
Feel free to add yourself to this list, but for a full list of contributors,
`check here <https://github.com/saltstack/salt-bootstrap/graphs/contributors>`_.
Authors
=======
-------
Here's a list of everyone who contributed to salt-bootstrap in alphabetical
order.
@ -20,6 +26,7 @@ Andrew Dean ndrwdn ndrwdn@gmail.com
Andy Boff caelor github@plek.me.uk
Angelo Gründler plueschopath angelo.gruendler@w1r3.net
Ari Aosved devaos ari.aosved@gmail.com
Ari Maniatis ari ari@ish.com.au
Ashok Raja R ashokrajar ashokrajar@users.noreply.github.com
Beau Hargis beaucephus beau@customermobile.com
Benjamin Drung bdrung bdrung@debian.org
@ -30,7 +37,7 @@ Brandon Clifford brandon099 brandon.clifford@vivint.com
Bret Fisher BretFisher bret@fishbrains.com
Brian Kruger bkruger99 brian.kruger@elliemae.com
bruce-one bruce-one
Bryce Larson bryceml
Bryce Larson bryceml brycel@vmware.com
C. R. Oldham cro cr@saltstack.com
Cam camereonsparr
Charles McLaughlin cmclaughlin
@ -45,11 +52,14 @@ Dan Mick dmick dan.mick@inktank.com
Daniel Poelzleithner poelzi
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
Diego Woitasen diegows diego@flugel.it
Dmitry Kuzmenko DmitryKuzmenko dmitry.kuzmenko@dsr-corporation.com
EHJ-52n EHJ-52n EHJ-52n@users.noreply.github.com
ek9 ek9
Elias Probst eliasp
@ -68,29 +78,38 @@ gdm85 gdm85
Geoff Garside geoffgarside geoff@geoffgarside.co.uk
George aflat gstock.public@gmail.com
ggillies ggillies
Gilles Debunne gdebunne
Giuseppe Iannello giannello giuseppe.iannello@brokenloop.net
Gregory Meno GregMeno gregory.meno@inktank.com
Guillaume Derval GuillaumeDerval guillaume@guillaumederval.be
gweis gweis
Henrik Holmboe holmboe
Howard Mei HowardMei howardleomei@gmail.com
Ivo Jánský ijansky
Imran Iqbal myii
James Booth absolutejam vvalentine1337@gmail.com
Jamie Alessio jalessio jamie@stoic.net
Jan Heidbrink jheidbrink
Jared Bristow jars99
Jared E Stroud jaredestroud jaredestroud@gmail.com
Jasper Lievisse Adriaanse jasperla jasper@humppa.nl
Jaydeep jay1648
JD decomposite
Jeff Hui jeffh jeff@jeffhui.net
Jeff Strunk jstrunk
John Hubbard ender8282 ender8282@gmail.com
Jorge Schrauwen sjorge sjorge@blackdot.be
Joseph Pacura jpacura
Juan A. Moyano wincus wincus.public@gmail.com
Justin Anderson justinta justin.ta@outlook.com
Justin Findlay jfindlay jfindlay@gmail.com
kgbsd
Karl Grzeszczak karlgrz
Ken Crowell oeuftete kcrowell@saltstack.com
Kenneth Wilke KennethWilke
Kevin Quinn kevinquinnyo kevin.quinn@totalserversolutions.com
kiemlicz kiemlicz
Kirill Ponomarev krionbsd krion@freebsd.org
Ky-Anh Huynh icy
Liu Xiaohui oreh herolxh@gmail.com
lomeroe lomeroe
@ -109,6 +128,7 @@ Matthew Mead-Briggs mattmb
Matthew Richardson mrichar1
Matthew Willson ixela
Matthieu Guegan mguegan
Max Arnold max-arnold
Megan Wilhite Ch3LL megan.wilhite@gmail.com
mfapouw mfapouw
Michael A. Smith kojiromike michaels@syapse.com
@ -122,6 +142,7 @@ nevins-b nevins-b
Nicholas Henry nshenry03 nshenry03@gmail.com
Nicole Thomas rallytime nicole@saltstack.com
Niels Abspoel aboe76 aboe76@gmail.com
Nikita mbochenk
Nitin Madhok nmadhok nmadhok@clemson.edu
panticz panticz
Paul Brian lifeisstillgood paul@mikadosoftware.com
@ -157,6 +178,7 @@ stanzgy stanzgy stanzgy@gmail.com
Steve Groesz wolfpackmars2 wolfpackmars2@yahoo.com
Sven R hackacad admin@hackacad.net
sybix sybix
Tai Groot taigrr tai@taigrr.com
Tate Eskew tateeskew
Thomas S. Hatch thatch45 thatch45@saltstack.com
Tobias Jungel toanju Tobias.Jungel@gmail.com

1346
CHANGELOG.md Normal file

File diff suppressed because it is too large Load diff

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 develop
```
```
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,10 +163,10 @@ 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.saltstack.com` with the new stable release. The checksum on the
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)
should also be updated.
1. Merge the new stable release into [Salt](https://github.com/saltstack/salt).
@ -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**

790
ChangeLog
View file

@ -1,790 +0,0 @@
Version TBD (In Progress on the Develop Branch):
Version 2020.02.24:
* Fix SLES 15 install (max298) #1431
* Fix 3000(Neon) stable install (sblaisot) #1433
* Fix Amazon Linux Py3 install (s0undt3ch) #1434
Version 2020.02.04:
* Add support for the Salt Neon(3000) release (s0undt3ch) #1424
* Drop support for Fedora < 30 (s0undt3ch) #1424
* Drop support for Debian < 8 (s0undt3ch) #1424
Version 2020.01.29:
* FreeBSD fixes (cedwards) #1413
* Support the upcoming Neon release (s0undt3ch) #1420
Version 2020.01.21:
* FreeBSD fixes (kgbsd) #1376
* Fix macOS support (s0undt3ch) #1397
Version 2019.11.04:
* Fix busybox mktemp compatibility (stanzgy) #1369
* Install debian 10 packages on debian 10 instead of 9 (kiemlicz) #1375
* move centos to python36, use python specified by -x (Ch3LL,bryceml) #1380
* Add debian 10 git install support (Ch3LL) #1378
Version 2019.10.03:
* Fix possible typo with `gnupg-curl` vs `gnupg curl` (zahiar)
* Install only python3 packges if requested on ubuntu (noelmcloughlin) #1356
* Fixing debian wheezy (bryceml) #1359
* Fixed Amazon Linux 2 detection when lsb_release is installed (jars99) #1361
* Mac OS Support (felippeb) #1363 #1364 #1365 #1366
Version 2019.05.20:
* Allow stable version selection for amazon linux (puluanau) #1328
* FreeBSD 12 support (sticky-note) #1329
* Apt wait for lock modification (ripesensor) #1335
* Opensuse 15 Git installation fixes (s0undt3ch) #1340 #1341
* Amazon Linux Image fixes (nshenry03) #1343
* apt_key_fetch fixes (greut) #1344
* CentOS Git and PIP installation m2crypto fixes (s0undt3ch) #1347
* CI process enhancements/fixes (s0undt3ch) #1347
Version 2019.02.27:
* Add support for bunsenlabs devian derivative (kevinquinnyo) #1300
* Add support for TurnKey devian derivative (dafyddj) #1313
* Fix BSD develop install (hackacad) #1316
* Ensure python-concurrent.futures is installed for Ubuntu (garethgreenaway) #1321
Version 2019.01.08:
* use official amazon linux 2 repo for amazon linux 2 (mchugh19) #1287
* Add release info to applicable docs (rallytime) #1292
* Modify wait_for_apt function (ripesensor) #1291
* Add support for LinuxMint 19 (darkocerdic) #1289
* FIX #1237 SmartOS should use pkgin show-deps (sjorge) #1283
* Fedora: Reduce DNF calls to 2 during install_dep phase (The-Loeki) #1278
Version 2018.08.15:
* Add tests using kitchen-salt (gtmanfred) #1279
* Add python-futures to Py2 installs (gtmanfred) #1279
Version 2018.08.13:
* Fedora Py3 fixes (The-Loeki) #1273
* Handle commented lines in the requirements files for pip pkgs (rallytime) #1271
* Remove typo: extra 'c' was accidentally added in #1269 (rallytime) #1270
* [Arch] Add python2-futures to list of pkgs on git install (rallytime) #1269
* Fix undefined variable warn_msg on amd64 (alexandruavadanii) #1268
* SLES12SP changed packages git to git-core and libzmq3 to libzmq4 (mfapouw) #1266
* Add opensuse 15 specific installation functions (rallytime) #1263
* Remove support for openSUSE Leap 42.2 (rallytime) #1262
* Remove support for Fedora 26 (rallytime) #1261
* Remove support for Ubuntu 17.10 (rallytime) #1260
* Ensure pipe is absent before mkfifo/mknod (noelmcloughlin) #1256
* fix for opensuse15 if no lsb_release pkg (noelmcloughlin) #1255
* Fix Up ShellCheck errors/warnings for latest version of shellcheck (rallytime) #1253
* Remove daily install option on Ubuntu system (icy) #1250
* Add python 3 support for Ubuntu 18 (rallytime) #1248
* Return immediately if apt-get fails (icy) #1247
* Disable shell error about unbound variable during daily install (icy) #1246
* OpenSuse_Leap_15.0 saltstack repo support (noelmcloughlin) #1244
* Add Python3 package support for Debian 9 (rallytime) #1243
* Add Python3 package support for CentOS 7 (rallytime) #1242
* Shellcheck fixes found when running latest version (rallytime) #1239
* Add Python3 package support for Ubuntu 16.04 (rallytime) #1238
* Fix the variable ref from #803 (rallytime) #1229
* Add Ubuntu 18.04 support (rallytime) #1228
* Call __git_clone_and_checkout directly (jheidbrink) #1226
* Fix for silently ignored version argument on CentOS/RHEL (pjcreath) #1210
Version 2018.04.25:
* Install py-tornado4 for FreeBSD. (abednarik) #1219
* Remove COPR repos configuration for Fedora (vutny ) #1211
* Fix for silently ignored version argument on CentOS/RHEL (pjcreath) #1210
* Use integer parameter for sleep command (bdrung) #1205
* Add 2018.3 branch to list of stable options (rallytime) #1204
* If installing with -P, install tornado<5.0. (rallytime) #1203
* Add M2Crypto to python27 centos 6 bootstrap install (Ch3LL) #1201
* Update README to include mention of bootstrap-salt.ps1 for Windows (rallytime) #1200
* Port spelling fixes from change in Salt to Bootstrap (rallytime) #1199
* Add M2Crypto package back to git install functions (rallytime) #1198
* OpenBSD has a cdn which handles selecting the best mirror (jasperla) #1197
* Change gnupg2 pacakge to gnupg for non-LTS versions of Ubuntu (rallytime) #1196
* Install swig30 as freebsd dep instead of swig. (abednarik) #1191
* make salt-syndic optional on salt bootstrap (sybix) #1190
* Add __wait_for_apt function: avoid locking on the apt-get process (rallytime) #1186
* Update the README.rst file with some grammatical changes (rallytime) #1185
* Update Fedora support: 25 is EOL, 27 is supported (rallytime) #1184
* Add a note about the use of sudo when running commands to README (rallytime) #1183
* Adding support for minor release pinning on AWS Linux (cmclaughlin) #1182
* Wait for zypper processes to finish before calling zypper again (rallytime) #1181
* only install ca-certificates on opensuse if it isn't already installed (gtmanfred) #1179
Version 2017.12.13:
* Use HTTPS URL for OpenSuse's saltstack repo (gdm85) #1174
* Respect disable repos (-r) option on OpenBSD (eradman) #1171
* Fix #1168 : -b option causes error (vutny) #1170
* Fix fatal error with using the -b option. (arizvisa) #1169
* Devuan support (ymasson) #1165
* Fix yum repo on AWS Linux (cmclaughlin) #1164
* Use suse repo to install packages, rather than defining them (rallytime) #1157
* Remove patch-level-1 specific code for SLES installs (rallytime) #1156
* priority sort fedora-release (toanju) #1153
* Declare EOL for SUSE Linux Enterprise Server releases (vutny) #1150
* Fix #1142: allow git install on Raspbian 9 (vutny) #1146
* Follow symlinks when parsing distro release files (vutny) #1145
* fedora: use dnf-utils for F26 and above (toanju) #1144
* Declare EOL for openSUSE LEAP 42.1 (vutny) #1143
* Fix #1137: import GPG key through an HTTP(S) proxy (vutny) #1139
* Fix #1138: git install on Debian/Ubuntu various arches (vutny) #1141
* Declare EOL for openSUSE releases earlier and including 13.X (vutny) #1136
* Update Fedora support: 24 is EOL (rallytime) #1134
Version 2017.08.17:
* Add new authors (rallytime) #1130
* README: Fix typo and Table of Contents for Debian section (vutny) #1129
* Reduce the # of days an issue is stale to 6 months (rallytime) #1125
* Only install Python version if "-y" is defined (rallytime) #1124
* Allow powershell bootstrap script to specify PY2 or 3 (rallytime) #1123
* Remove the test that checks if the EPEL RPM was installed (amendlik) #1122
* added latest version string of nitrogen release 2017.7 (sourceindex) #1120
* use versions specified in base.txt when doing pip installs (aflat) #1116
* Remove pip install requirement on Fedora git installs (rallytime) #1114
* Introductory support for Debian 10 (Buster) (rallytime) #1113
* Add Debian 9 support using official repo.saltstack.com packages (rallytime) #1111
* Fix 1105 (vernondcole) #1110
* Move SUSE specific function closer to related code (vutny) #1107
* Update Authors file (rallytime) #1103
* Fix ubuntu 16.04 LTS installation (BlaineAtAffirm) #1102
* Add debian_codename_translation function, similar to Ubuntu (rallytime) #1101
* Add the CODE_OF_CONDUCT.md file (rallytime) #1100
* Update Debian and Ubuntu service file paths to be consistent with salt (rallytime) #1099
* Add hash verification information to installation instructions (rallytime) #1098
* Fix installing salt-cloud package on Arch Linux (rallytime) #1097
* Support bootstrapping on upcoming Debian GNU/Linux 9.0 (vutny) #1096
* Removes faulty explicit version ordering (absolutejam) #1095
* Remove configuring EPEL repo for Amazon Linux (vutny) #1093
* Fix -j/-J (JSON configs) options for Debian 8 (vutny) #1092
* Fix #1035: detect and log errors earlier (vutny) #1091
* Update AUTHORS file (rallytime) #1089
* Autounmask as separate step (decomposite) #1088
* Ensure presence of CONFIG_PROTECT_MASK files (decomposite) #1087
* Update Fedora support: 23 is EOL now. (rallytime) #1084
* Fix the -R option on Debian/Ubuntu (rallytime) #1082
* Declare End-Of-Life for Ubuntu 12.04 LTS (vutny) #1080
Version 2017.05.24:
* Use freebsd repo to query for salt dependencies (Ch3LL) #1076
* Allow amazon to work with python2.7 on installs over 2016.11 (Ch3LL) #1073
* ensure sles12 enables services with stable installs (Ch3LL) #1075
* Declare End-of-Life for RHEL 5 and its variants (vutny) #1070
* Fix configuring SaltStack's repo URL for RHEL variants (vutny) #1068
* Add Manjaro as Arch derivative (luthes) #1063
* Add "unmarkComment" option to probot-stale config (rallytime) #1064
* Properly detect all supported Debian GNU/Linux derivatives (vutny) #1062
* Archlinux must always update (gtmanfred) #1060
* Alpine: fix adding, checking and running Salt Syndic in stable mode (vutny) #1059
* Add KDE neon... (EHJ-52n) #1058
* Update probot-stale message formatting. (rallytime) #1057
* Fix `git` bootstrap mode for CentOS (vutny) #1054
* update install_freebsd_10_stable to use FreeBSD repo (bytesatwork-xx) #1053
* Support OpenBSD 6.1 (eradman) #1048
* Update daysUntilStale value in probot-stale config (rallytime) #1055
* Add ability to install and use a different python version when installing salt (Ch3LL) #1049
* Add non-LTS type support for Ubuntu 17.04 (rallytime) #1051
* Allow -R option to work for Debian/Ubuntu (rallytime) #1045
* Adjust "daysUntilStale" variable to 190 days. #1047
* Reduce the number of days an issue is considered "stale" (rallytime) #1046
* Alpine: fix bootstrapping from Git -- install OpenRC initscripts (vutny) #1044
* Add probot-stale config file (rallytime) #1042
* Shallow cloning and Python setup fix for BSD (amontalban) #1040
* Fix not needed quoting for salt/salt-bootstrap#1026 (amontalban) #1039
* Update README file with supported release documentation (rallytime) #1034
* Remove <<< bashism (The-Loeki) #1032
* [-R option] Fix logic error where we trying to enable epel with -R (rallytime) #1033
* Alpine: check Salt services have been enabled to start on boot (vutny) #1031
* AWS Linux Native Support (bkruger99) #1022
* Correct package name for FreeBSD installation (amontalban) #1030
* README: describe architectures support for Salt deps on Linux distros (vutny) #1029
* This commit addresses some of the issues in salt/salt-bootstrap#996 (amontalban) #1026
* Add support for stable installation on Alpine Linux release 3.5 (vutny) #1028
* Alpine Linux: fix installation of multiple pkgs ("stable" bootstrap) (vutny) #1027
* Add Void Linux support (ndrwdn) #1025
* RHEL6: disable stdin to fix shell session hang on killing tee pipe (vutny) #1018
* Adding 2016.11 to stable version (ashokrajar) #1017
* Update bootstrap-salt.sh (caelor) #1015
* Alpine Linux support #1009 (ek9) #1010
* Add Table of Contents in README (vutny) #1014
Version 2017.01.10:
* Update AUTHORS.rst with new contributors (rallytime) #1011
* fix bootstrap in Arch Linux by updating package name from salt-zmq to salt (ek9) #1007
* Add python-systemd package to debian 8 git install (rallytime) #1003
* Updated supported versions for Ubuntu: 12.04, 14.04, 16.04, and 16.10 (best effort) (rallytime) #1002
* Add "yakkety" to ubuntu_codename_translation function (rallytime) #1001
* Update supported versions for Fedora: 23, 24, and 25. (rallytime) #1000
* Handle renaming of gnupg-curl to gnupg1-curl for Ubuntu 16.10 (marco-m) #998
* fix systemctl path (dmitrievav) #997
* Drop unnecessary workarounds (creating directories) for early releases (vutny) #995
* Let's detect newly released Salt 2016.11 stable release (vutny) #994
* Adjust code examples to use the actual bootstrap-salt.sh file name (rallytime) #993
* Install TLS certs before cloning git repo via https (vutny) #991
* Remove fix me comment and fix systemsmanagement link (rallytime) #990
* Correct usage description about "config only" mode (vutny) #989
* Fix overwriting Minion config from temporarily directory (vutny) #988
* Configure Salt components after the dependencies installation (vutny) #987
* Add CloudLinux support (rallytime) #986
* Apply the insecure flag to git as well (cachedout) #981
Version 2016.10.25:
* Update AUTHORS.rst with new contributors (rallytime) #978
* Let's start detecting the upcoming Debian 9 (Stretch) (lhost) #975
* FreeBSD: set _SALT_ETC_DIR directory to match ports (eradman) #970
* Update OpenBSD 6.0+ provisioning (eradman) #969
* adds supports for Cumulus Linux (plumbis) #967
* Run "pip install -U futures" for SmartOS git install (rallytime) #966
* Change /pkg/rpm/ to /pkg/deb/ in install_ubuntu_git_post func (rallytime) #965
* SUSE: Refactor systemsmanagement_saltstack repo checks to be DRY (rallytime) #964
* Fix detection of EPEL repository with not-expired metadata (sp1r) #963
* Display warning message about deprecating the `-G` option (vutny) #958
* Allow correct salt paths to be used when -c is passed (justinta) #955
* Fix issues with replacing configs when python3 is default in os. (fizmat) #954
* Remove m2crypto package installs (rallytime) #951
* Try to install SP4 packages on SLE 11 when SP version is older (rallytime) #950
* Add python-futures package to install_centos_git_deps (rallytime) #948
* Add /etc/portage/package.accept_keywords to CONFIG_PROTECT_MASK (rallytime) #947
* Deprecate `-G` option: use `https` scheme for GitHub by default (vutny) #945
* [SECURITY] Properly handle GnuPG keys for APT repositories (vutny) #940
Version 2016.08.16:
* Ubuntu git mode: install all deps from SaltStack corp repo by default. (vutny) #936
Version 2016.08.15:
* Remove chris-lea python-zmq repo. (rallytime) #929
* Disable the '--enablerepo=${_EPEL_REPO}' part of yum install cmds when passing -R/-r. (rallytime) #928
* Fix grep pattern in `__check_services_sysvinit`. (vutny) #927
* Missing python dependency for salt-cloud added. (toanju) #925
* Fix git install mode when using commit hash with `-g` option. (vutny) #922
* Install `salt-cloud` package with `-L` option in `stable` mode. (vutny) #919
* Fix bootstrapping from Git on CentOS7 when `systemd` is not running. (vutny) #915
Version 2016.07.07:
* Add new contributors to authors list. (rallytime) #910
* Split up python-requests and python-msgpack packages for newer Fedora. (rallytime) #909
* Fix typo in repository configuration for FreeBSD. (ekollof) #907
* Make sure $STABLE_REV is set before setting up SaltStack repo. (rallytime) #906
* Remove tests written question from template. (rallytime) #904
* Adding support for Linux Mint 18 (based on Ubuntu 16.04). (eliezerlp) #902
* Allow git installation for SLES 12. (rallytime) #903
* Set repo_arch for raspberry pi installs. (mrichar1) #899
* Change temporary directory for storing executable to C:\Windows\Temp. (themalkolm) #897
* 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
Version 2016.06.27:
* Fix race condition when doing one-liner bootstrap. (vutny) #889
* Add space back in between 'install' and '--install'. (rallytime) #890
Version 2016.06.24:
* Save invocation command and arguments into variables. (jfindlay) #885
* Update the authors list with new contributors. (rallytime) #884
* Add option to make setup.py install quiet. (nasenbaer13) #865
* Fix lint. (jfindlay) #881
* Add -R option to allow a custom repo URL. (rallytime) #877
* Exclude path of script when called from another dir. (l2ol33rt) #871
* Print invocation info. (jfindlay) #869
* Always refresh the Arch Linux keyring if needed. (cachedout) #868
* Ubuntu 16.04 LTS Xenial Support. (notpeter) #852
* Install Salt packages from repo.saltstack.com on Debian 7 "Wheezy". (vutny) #864
* Drop support for Debian 6 old-old-stable "squeeze": reached end-of-life. (vutny) #860
* Removed ubuntu version restriction for apt-get update. (marccardinal) #859
* Fix bootstrapping from git on Debian 8 by installing latest `tornado` via pip. (vutny) #828
* Add the ability to override master and/or minion configs from CLI. (rallytime) #841
* Don't sleep 11 seconds if the user allowed overwrite of config files. (poelzi) #832
Version 2016.05.11:
* Only overwrite the minion config file if '-C' is passed. Otherwise, preserve it. (rallytime) #848
Version 2016.05.10:
* Removed libzmq4 and forking-deamon-patch for Opensuse13. (jtand) #840
* Ubuntu 12.04 needs to be updated before installing packages. (jtand) #829
* Always download and install *latest* `epel-release` package on RHEL systems. (vutny) #825
* Fix Amazon Linux EOL check. (vutny) #818
Version 2016.04.18:
* Add support for openSUSE Leap. Thanks Roman Inflianskas(rominf). #693
* Fix missing deps installation on Debian. Thanks Steve Groesz(wolfpackmars2). #699
* Update SaltStack repo location and latest version for Windows. (brandon099) #711
* Better EPEL repository detection on RHEL and CentOS. (vutny) #717
* Fix git invocation fail when `man` command is not available. (vutny) #718
* Fix `epel-release` package installation on CentOS/RHEL 5. (vutny) #719
* Removed deprecated cli option. (abednarik) #705
* Remove RHEL optional repo check and enable. (vutny) #720
* Remove SaltStack COPR repository configuration for CentOS/RHEL5. (vutny) #721
* Add opensuse_Tumbleweed support. (aboe76) #725
* Sometimes bootstrap doesn't install zmq. (jtand) #726
* Process -s (default sleep for service restarts) in bootstrap-salt.sh. (hipikat) #692
* Minion keys and /etc/salt/minion should be overwritten on -C. (cro) #541
* Fix for -C (_CONFIG_ONLY). (beaucephus) #544
* Fix when using upstream tags. (The-Loeki) #564
* COPR project moved. (rmohr) #738
* Update license year range. (pra85) #743
* Use POSIX-Compliant Command-Exists Test. (kojiromike) #741
* Add -f option to force shallow cloning. (eyj) #660
* add SLE 12 support, fix OpenSUSE support. (grep4linux) #748
* Fix CentOS git setup.py syntax error upon installation. (The-Loeki) #746
* Enable shallow cloning for version branches by default, not only tags. (vutny) #750
* do not install copr repo on fedora 22+. (toanju) #751
* Add support for pegged versions on YUM based OS'ses through repo.saltstack.com. (The-Loeki) #685
* fix for FreeBSD 11 CURRENT install functions. (serge-p) #723
* Don't add zypp repo if it already exists. (furlongm) #731
* switch repositories for suse and sles fixes `#706`_. (aboe76) #734
* Reformat and correct usage instructions. (vutny) #755
* fixed missing repo for suse 12. (aboe76) #756
* fix for Amazon Linux. (shawnbutts) #700
* adding support for OpenBSD distribution. (serge-p) #722
* fixing syntax errors. (beardedeagle) #760
* Import CentOS 7 GPG key on RHEL for installing base dependencies from Salt corp repo. (vutny) #765
* Fix multiple lint errors (shellcheck) and make some refactoring. (vutny) #768
* Fix sleep time option to recognize a numeric argument. (vutny) #771
* Update README. (vutny) #787
* get tornado from pip on a fedora git install. (jfindlay) #785
* Remove the Saltstack repo's alias. (cro) #794
* Ability to change cache dir. (clarkperkins) #761
* Add config_freebsd_salt func so freebsd puts cfgs in the right place. (ryanwalder) #779
* Allow archive versions. (clarkperkins) #769
* Lack of HTTPS for RPM packages. (jaredestroud) #783
* Ability to change cache dir. (clarkperkins) #761
* Bootstrap on Docker. (vutny) #793
* add downstream pkg repo for SUSE. (jfindlay) #791
* Fixed use of HTTP over HTTPS for anonscm.debian.org. (gdm85) #788
* Bump Salt version to latest stable in PS bootstrap script for Windows. (vutny) #801
* Add an -l option to switch https to http links. (rallytime) #795
* Virtualenv support for Ubuntu. (l2ol33rt) #666
* Lint. (jfindlay) #805
* use portable command check. (jfindlay) #806
* Update epel-release version number (RuriRyan) #809
Version 2015.11.09
* Make sure that wget is installed. #868
Version 2015.11.04:
* Allow bypassing dependencies installation. Thanks EYJ. #656.
* Add FreeBSD 11 support. Thanks Chris Buechler(cbuechler). #653
* Move RHEL installations to use repo.saltstack.com #674
* Move Debian 8 installation to use repo.saltstack.com #674
* Fix error finding python-jinja2 in RHEL 7. Thanks Rob Eden(hedinfaok). #654
* Move Ubuntu 12 and 14 installations to use repo.saltstack.com #674
* Move FreeBSD installations to use repo.saltstack.com #674
* Use dnf on Fedora 22 and later. Thanks Michele Bologna (mbologna). #665
Version 2015.08.06:
* Fix python-requests installations for Ubuntu >= 14.04 LTS. #631, #632, #633
* Install python-crypto from Chris Lea's PPA for Ubuntu < 14.04
* Exit the git checkout directory before deleting it. Thanks Bret Fisher. #634
* Use prefix /usr for centos git install. Thanks Stanislav B. #638
* Drop Ubuntu EOL versions. All Ubuntu version before 12.04.
* Make sure python-dev is installed wheb trying to install tornado from PyPi. #640
Version 2015.07.22:
* Fix tornado installation in Ubuntu. Thanks Yushi Nakai. #627
* Install tornado using pip on Ubuntu for Salt's v2015.8.xx onward stable releases.
* Install requests on Ubuntu from Chris Lea's PPA. #630
Version 2015.07.17:
* Make sure setuptools is installed before using it. #598.
* `systemd` is only fully supported from 15.04 onwards. #602
* Fix debian mirrors issue. Thanks Wolodja Wentland(babilen). #606
* Fix python-jinja2 repo move on RHEL6. Thanks lomeroe. #621
* Allow skipping services. Thanks denmat. #455
* Fix missing Debian init script. #607 saltstack/salt#25270 and saltstack/salt#25456
* Fix SmartOS etc path. Thanks Bret Fisher. #624
* Fix possible unbound variable in Gentoo. #625
* Properly detect the git binary in SmartOS. #611
Version 2015.05.07:
* Lower required requests version dependency. Use system requests package where possible.
* Allow Ubuntu alternate ppas. Thanks Peter Tripp(notpeter). #563
Version 2015.05.04:
* Fix the configuration path for FreeBSD. #567/#552. Thanks Ronald van Zantvoort(The-Loeki).
+ Fix non grouping support in POSIX sed. Thanks Ronald van Zantvoort(The-Loeki).
* Add Debian 8 support. Thanks Matt Black(mafrosis)
* Improve Debian version parsing. Thanks Mark Lee(malept)
* Make sure we update packages list one Chris Lea's PPA repository is added.
* Hard code the Debian Squeeze backports to the DE mirror since the main repository is down.
Thanks @panticz. #589.
* Only install git if not already installed. #560
* Fix openSUSE 13.2 where we need to pass --replaceflags. Thanks Roman Inflianskas(rominf).
#504.
* Make sure that a recent enough requests package is installed in Debian/Ubuntu.
* Install tornado on git installs for the develop branch if necessary. #580
* Add support for Ubuntu 15.04
Version 2015.03.15:
* Add multi-master support. Thanks Fred Reimer(freimer). #555
Version 2015.03.04:
* Fix the salt package selection on Arch stable installs.
Version 2015.02.28:
* Fix Debian backports repository.
Version 2015.02.27:
* Try other tools besides wget when downloading the COPR repo file. Thanks Ronald van
Zantvoort(The-Loeki)
* No need to install packages from the Unstable repository for debian, use backports. Thanks
Ari Aosved(devaos)
* Fix an issue in CentOS where the syndic package wasn't being installed(since it's now a
separate package). Thanks Ronald van Zantvoort(The-Loeki)
* Enable the server-optionals repository for RHEL >= 7
* RHEL/CentOS 5 now uses the COPR repository. #533
Version 2015.01.12:
* Add package upgrades support to FreeBSD. Thanks William Eshagh(eshagl).
* Make sure wget is installed on debian bare systems.
* Make sure the Arch pacman database is up to date
* Install `python-hashlib` in CentOS 5 in order to use the COPR repository
Version 2014.12.11:
* Enable binary installations on CentOS 7. Thanks ggillies
* Updated the URL for EPEL 7
Version 2014.10.30:
* Apply the forking patch to openSUSE git installations.
Version 2014.10.28:
* Install the python systemd bindings for Arch and Fedora git installations
* Allow cloning from Salt's git repository using HTTPS. #475
Version 2014.10.21:
* Fix path to python on FreeBSD. Thanks Pavel Snagovsky(paha)
* Fix syndic installation on RHEL based installations. Thanks markgaylard
* Properly detect the git checkout `basename` directory instead of hard coding it. Thanks
Howard Mei(HowardMei).
* Allow installing ZMQ for SaltStack's COPR repository.
* Allow installing ZMQ4/PyZMQ14 from Chris Lea's PPA repository.
Version 2014.10.14:
* Fixed a regex issue with matching Salt's tags. Match v2014.7 but not 2014.7 as a valid tag
* Distro Support Added:
* Added Linux Mint 17 support(Thanks Skyler Berg)
* Disrto Suuport Fixed:
* Init pacman keys if not done so previously
Version 2014.09.25:
* Properly detect Amazon AMI's >= 2014.9. #468
Version 2014.09.09:
* Distro Support Fixes:
* Updated the URL for EPEL 7
* PIP based installations on Ubuntu 10.04 need setuptools installed
* Arch stopped providing the version information on `/etc/arch-release`
* Complete `salt-api` services checking. #450
Version 2014.08.30:
* Skip service checks for `salt-api`, since this should be an opt-in service not necessarily
meant to start at boot time.
* Distro Support Fixes:
* Also install the salt-api service on RHEL based distributions for git based
installations.
* Properly detect Arch Linux when lsb-release is available
* Updated the URL for EPEL 7
Version 2014.08.23:
* Avoid redirect breakage when installing EPEL with rpm on RHEL 5
* Ensure python-apt is installed by the bootstrap script for Debian & Ubuntu minions. Thanks
@garethgreenaway.
* Don't shallow clone on git versions lower than 1.7.10
* Only shallow clone on git tag based installations
* Configurable Salt repository clone directory for git based installations
* Distro Support Fixed:
* Fixed the URL to download EPEL for Cent 5
* Use the full path to the `chkconfig` binary when checking for services in SysV init
systems.
* Fixed an issue where the default sleep period(3 secs) on Ubuntu would cause a race
condition with upstart wherein the package installation would call an upstart start and
before it could complete, bootstrap would call another. The result was *two* copies of salt
running which ended up causing a most stubborn bug that's documented in
https://github.com/saltstack/salt/issues/12248
Version 2014.07.29:
* Shallow clone Salt's repository for speed improvements. In case of failure, resume old
behaviour.
* Fixed bug introduced in 0577622 when salt-api service install and checks were added
* Distro Support Fixed:
* Fixed infinite loop when handling RHEL dependencies. Thanks Dan Mick(@dmick).
Version 2014.07.27:
* Amazon Linux AMI 2010.xx is not explicitly not supported.
* Install the `salt-api` scripts if available when the `salt-master` is also installed.
* Added support for a configurable sleep time when starting, restarting and checking for
enabled services.
* Drop the `tsflags` requirement for RHEL and RHEL based distributions.
* When sorting release files, oracle-release has higher priority than redhat-release.
* Distro Support Fixed:
* Debian >= 7 uses system's python-requests package, not PIP
* Install 'python-zypp' in SuSE and openSUSE(required by Salt's zypper module)
* Only install EPEL on requiring distributions if not already installed
* CentOS 7 now uses systemd and the script now properly handles it
* systemd in openSUSE 12.2 complains if service does not contain `.service``
* Properly detect openSUSE using `lsb_release
* SLES 11 SP3 ships with both python-M2Crypto-0.22.* and python-m2crypto-0.21 and we will
be asked which we want to install, even with --non-interactive. Let's try to install the
higher version first and then the lower one in case of failure.
* Allow some extra time on RHEL for the optionals repo check in case the repository
subscription is being managed externally.
Version 2014.06.30:
* Distro Support Fixed:
* Bump build/maintenance version for epel-release package. Thanks Gregory Meno(GregMeno)
* Properly detect Amazon Linux AMI when using `lsb_release`
* Fix `tsflags` installation.
Version 2014.06.28:
* Fixed `tsflags` packages detection for RHEL and Oracle Linux 6.5
Version 2014.06.21:
* Also export the HTTPS proxy environment variable. Thanks Giuseppe Iannello(gianello).
* Distro Support Fixed:
* Improve Oracle Linux Server detection
* Overcome the Oracle Linux awkwardness. `--enablerepo=XYX` disables ALL OTHER REPOS!!!!
* Oracle Linux also support testing repositories installation
Version 2014.06.19:
* Allow passing the master address as an environment variable, `BS_SALT_MASTER_ADDRESS`
* Fixed an issue with the keys pre-seed. We were passing absolute paths where we only needed
basenames.
* Added HTTP proxy configuration support. Thanks Giuseppe Iannello(gianello),
* Distro Support Added:
* Elementary OS
* RHEL 7 Beta/RC
* Kali Linux. Thanks Valentin Bud(valentinbud)
* Distro Support Fixed:
* Improved RHEL optionals repository detection
Version 2014.04.16:
* Fixed a bug for RHEL 6 based distributions where yum-utils was not getting installed.
* Added minor version check for RHEL 6 optional channel.
* Added quotes around "apache-libcloud>=$_LIBCLOUD_MIN_VERSION" for proper version requirements
handling.
* Install the python 'requests' package which is now a hard dependency in Salt.
* When installing from a user defined repository add the official one as a remote and fetch
its tags for proper versioning.
* Distro Support Fixed:
* CentOS netinstall ISO's don't install `chkconfig`
* Improved RHEL optional repository detection. This allows user repository usage, which
don't need the optional repository support since they usually provide their packages.
* Distro Support Added:
* Oracle Linux
* Scientific Linux
Version 2014.03.10-1:
* Distro Support Fixed:
* Fix the Debian services running function
Version 2014.03.10:
* Debian based distributions which don't use upstart now also check if the salt services are
enabled.
* Distro Support Fixed:
* RedHat based distributions now have a proper services enabled checker.
Version 2014.02.27:
* Fixed a bug on the services enabled function searching logic.
* Arch, Fedora, openSUSE and SuSE now check for services enabled, if using systemd
* CentOS(and any RedHat based) and Ubuntu now check for services enabled is using upstart
* Distro Support Added:
* Debian 8. Thank You Boris Feld(Lothiraldan).
Version 2014.02.19:
* Fixed a problem with the quotes of an error message
* Arch installations now uses the community repository
* Distro Support Fixed:
* Fixed Fedora Git based installations(git was not being installed)
Version 2014.02.18:
* Debian based distribution now get a warning stating that NOT starting daemons does not work
as supposed, mainly because that's the Debian policy.
* Fix bug introduced when implementing the master ip flag. The default minion includes
directory is `minion.d`, not `minion.conf.d`
Version 2014.02.16:
* The script now allows setting up the salt-master address as a separate configuration file by
passing `-A` to the script.
* Add support to install apache-libcloud by passing the `-L` flag. In some distribution it's
also needed to pass `-P` because the minimal apache-libcloud version is `0.14.0`. This support
is still missing for FreeBSD and SmartOS.
* Fixed an issue when copying or moving files. We now test to see if the destination is a
directory and create a full path from that so that the "do not override" logic works as
supposed. #294.
* Allow passing additional package names to install while installing Salt's dependencies. #262
* Pass the salt configuration directory, default or from environment variable to the setup.py
script for git based installations. #305
* Distro Support Fixed:
* FreeBSD `fetch` now has a notion of insecure certificates. Handle this properly. Thank
You Mike Carlson(m87carlson).
* Arch, openSUSE and SuSE are now upgradable when the `-U` flag is passed.
* Force overwrites now works for existing init.d scripts on CentOS git installations. #259
* Distro Support Added:
* FreeBSD 10 is now also supported. Thank You Mike Carlson(m87carlson).
* Red Had Enterprise Workstation is now supported.
Version 1.5.11:
* Fixed an out of scope variable missed when moving functions around.
Version 1.5.10:
* Salt no longer has the master branch in git, install from develop as default.
* Installing from Git on Red Hat based distributions now also needs `yum-utils` installed.
* Allow the script to use a different git repository to install from.
* Fixed a bug where a branch name with dashes would be wrongly detected as an option to the
script.
* Default to secure file downloads(if any).
* Distro Support Fixed:
* Minimal Ubuntu installation might not have upstart installed, fixed.
* FreeBSD now uses the official FreeBSD repository. Thank You Paul Brian(lifeisstillgood)!
Version 1.5.9:
* Allow to not start the daemons after bootstrapping salt. This will allow `vagrant-lxc`
installations, `debootstrap*`, etc, to finish properly. Thanks Henrik Holmboe (holmboe).
* Distro Support Fixed:
* Salt >= 0.17 requires ElementTree which is on the python standard library after python
2.6 but openSUSE split that into a separate package.
* Fixed a logic preventing proper Ubuntu bootstrapping on some situations.
Version 1.5.8:
* Fixed an Ubuntu regression. `add-apt-repository` is only available on
`software-properties-common` after 12.10, inclusive. Thanks Diego Woitasen(diegows)
Version 1.5.7:
* For RedHat based distributions which rely on `epel`, the user can now pass `testing` to the
script and `epel-testing` shall be used to bootstrap salt and it's dependencies.
* No full system upgrades, if optional by the distribution, shall be done unless `-U` is passed
to the bootstrap script(required upgrade procedures must exist on the script, currently Debian
and RedHat based distributions support system upgrades).
* Fixed an issue where passing BS_KEEP_TEMP_FILES=1 to the script was causing an error. #206.
* Switched FreeBSD default packages repository to PCBSD(http://www.pcbsd.org) and added
multiple repository support to install salt from the SaltStack's FreeBSD repository. Thanks
Christer Edwards(cedwards).
* Improved Gentoo Support. Thanks Elias Probst(eliasp).
* Stop execution soon for end of life distributions or non supported distribution versions.
* Distro Support Fixed:
* Fixed an unbound variable while bootstraping Gentoo.
* Fixed CentOS/RHEL 5.
* Fixed crypto++ compilation. Thanks Kenneth Wilke(KennethWilke)!
* Fixed FreeBSD git installations not pointing to the proper salt configuration directory,
which on FreeBSD is '/usr/local/etc/salt'.
* Fixed testing installation for Red Hat based distributions. Thanks Jeff Strunk(jstrunk)
* Fixed wrong package name on Arch. Thanks Niels Abspoel(aboe76)
* Make sure the Ubuntu universe repository is enabled. Thanks Karl Grzeszczak(karlgrz).
* Fixed SmartOS installation. Thanks Matthieu Guegan(mguegan).
Version 1.5.6:
* If there's a `grains` file on the provided temporary configuration directory, move it to the
proper place while moving the minion configuration file.
* Gentoo bootstraps can now use a bin host to provide binary packages, just set the
`BS_GENTOO_USE_BINHOST` environment variable.
* If `BS_KEEP_TEMP_FILES=1` is found on the environment, the script will copy the files instead
of moving them.
* There were still some `mv` and `cp` occurrences which were not using their `{move,copy}file`
replacements which ended up on now respecting the "Do not override existing configuration"
feature.
* Distro Support Fixed:
* Arch now upgrades it's system package properly as suggested on their mailing list.
* Arch now moves back any configuration files provided by the user renamed by pacman on the
installation process.
* Fixed SmartOS detection(was being detected as Solaris) and bootstrapping. Fixed SmartOS
different gcc package names for different package sets.
* Fixed FreeBSD git based installations(no rc.d scripts were available).
* Fixed FreeBSD not re-evaluating the `PKI_DIR` variable since the `SALT_ETC_DIR` was
redefined.
* Distro Support Added:
* Linux Mint. Thanks Alex Van't Hof(alexvh)!
* Linaro.
Version 1.5.5:
* Fixed a variable error in the new pre-seed feature.
* Fixed the destination path to where the pre-seed minions keys should be copied.
* Debian installations now use SaltStack's repository.
* Configuration files can now be passed as an URL to a compressed file. Thanks Geoff Garside!
* Distro Support Fixed:
* Debian's optional ZMQ3 support was fixed (libzmq3 has moved from experimental to
unstable).
* Ubuntu Lucid Daily PPA
* SmartOS no longer ignores $SALT_ETC_DIR. Matthieu Guegan!
* FreeBSD no longer ignores $SALT_ETC_DIR. Thanks Geoff Garside!
* FreeBSD does not try to install pkgng if pkg is installed. Thanks Geoff Garside!
* SunOS (Make use of XPG4 binaries on SunOS). Thanks Matthieu Guegan!
* openSUSE (Don't fail if only one of the repositories failed to update)
* Arch (Fixed the GPG issues for git installations)
* Distro Support Added:
* Gentoo. Thanks kaithar!
Version 1.5.4:
* Fixed an issue we had when /proc/cpuinfo had more than one CPU. Detected on AMD CPUs.
* OpenSUSE 12.3 uses lsb_release. Fix the returned distro name "openSUSE project" to "openSUSE"
which the script handles.
* Added an custom move function which will only override if required and if we permit it.
* Implemented the necessary function to pre-seed minion keys on a salt master as an optional
argument.
* Distro Support Fixed:
* FreeBSD (Don't let the script fail if PACKAGESITE is not set)
* Debian Stable installations (the function search was not working as supposed)
* Distro Support Added:
* Ubuntu 13.04 (Was disabled because of a bad beta1. Fixed in beta2)
Version 1.5.3:
* Return 0 or 1 from functions
* Convert several pipes into a single awk call
* Fixed `/etc/os-release` parsing
* Fixed `config_salt()`
* Distro Support Fixed:
* EPEL-based installations (CentOS, Amazon Linux, RedHat)
* SuSE/OpenSUSE (problem running the script twice, ie, existing `devel_languages_python`
repository)
* SuSE 11 SP1 (pip based install and config trigger)
* Distro Support Added:
* Debian 7 (Only git installations at the moment)
Version 1.5.2:
* Fix issue with Travis testing (it installs it's own ZeroMQ3 lib
* Allow setting the debug output from an environment variable
* Fix an escape issue in the `printf` calls used in our echo calls
* Don't overwrite files (`config`, `init.d`, etc). Use a specific flag to force overwrites.
* Distro Support Fixed:
* Ubuntu daily installs.
* Distro Support Added:
* Trisquel 6.0 (Ubuntu 12.04)
Version 1.5.1:
* Improved unittesting.
* Starting daemons.
* Make sure that daemons are really running.
* For the users to make the choice if installing from PIP (if required since there aren't system
pacakges).
* Fixed salt's git cloning when the salt git tree is already present on the system.
* Distro Support Fixed:
* Debian 6
* Ubuntu 12.10
* CentOS
* Distro Support Added:
* SuSE 11 SP1/11 SP2
* OpenSUSE 12.x
Version 1.5:
* First stable version of the script
* Support for:
* Ubuntu 10.x/11.x/12.x
* Debian 6.x
* CentOS 5/6
* Red Hat 5/6
* Red Hat Enterprise 5/6
* Fedora
* Arch
* SmartOS
* FreeBSD 9.0
# Don't remove the line below.
# vim: fenc=utf-8 spell spl=en cc=100 tw=99 fo=want ts=4

1
ChangeLog Symbolic link
View file

@ -0,0 +1 @@
CHANGELOG.md

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

View file

@ -1,19 +0,0 @@
# docker build --rm -t saltstack/drone-salt-bootstrap-testing -f Dockerfile.drone-builds .
FROM docker:edge-dind
COPY Gemfile /Gemfile
COPY tests/requirements.txt /requirements.txt
RUN apk --update add \
wget python python-dev py-pip git ruby-bundler ruby-rdoc ruby-dev gcc make libc-dev openssl-dev libffi-dev && \
gem install bundler && \
bundle install --gemfile=/Gemfile --with docker --without opennebula ec2 windows vagrant && \
pip install -U pip && \
pip install -r /requirements.txt && \
rm -rf /requirements.txt /Gemfile /root/.cache
VOLUME /var/lib/docker
EXPOSE 2375
ENTRYPOINT ["/usr/local/bin/dockerd-entrypoint.sh"]
CMD []

View file

@ -1,5 +0,0 @@
source "https://rubygems.org"
gem 'test-kitchen', '>= 2.0.1'
gem 'kitchen-salt', '>= 0.5'
gem 'kitchen-docker', '>= 2.9.0'

View file

@ -1,6 +1,6 @@
Salt Bootstrap - Generic Salt Bootstrap Script
Copyright 2012-2019 SaltStack (saltstack.com)
Copyright 2012-2021 SaltStack (saltproject.io)
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.

View file

@ -22,32 +22,53 @@ 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
=========
In every two-step installation example, you would be well-served to **verify against the SHA256
sum** of the downloaded ``bootstrap-salt.sh`` file.
.. _sha256sums:
The SHA256 sum of the ``bootstrap-salt.sh`` file, per release, is:
- 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://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
------------
@ -60,6 +81,133 @@ process.
Examples
--------
To view the latest options and descriptions for ``salt-bootstrap``, use ``-h`` and the terminal:
.. code:: console
./salt-bootstrap.sh -h
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 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 3006
- bootstrap-salt.sh stable 3006.1
- bootstrap-salt.sh testing
- bootstrap-salt.sh git
- 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:
-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
-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}
-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.
-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)
-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``
is not needed when running these commands as the ``root`` user.
@ -68,46 +216,61 @@ 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 Salt Project repo:
.. code:: console
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://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.saltstack.com
sudo sh bootstrap-salt.sh git develop
If you want to install a specific release version (based on the Git tags):
.. code:: console
curl -o bootstrap-salt.sh -L https://bootstrap.saltstack.com
sudo sh bootstrap-salt.sh git v2016.11.5
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.saltstack.com
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.saltstack.com
sudo sh bootstrap-salt.sh -M -N git develop
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:
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.saltstack.com
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:
.. code:: console
PROXY='http://user:password@myproxy.example.com:3128'
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
@ -118,68 +281,47 @@ Using ``wget`` to install your distribution's stable packages:
.. code:: console
wget -O bootstrap-salt.sh https://bootstrap.saltstack.com
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.saltstack.com
sudo sh bootstrap-salt.sh -P git v2016.11.5
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 Salt Project repo using ``wget``:
.. code:: console
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**
On the above example we added ``-P`` which will allow PIP packages to be installed if required.
On the above examples we added ``-P`` which will allow PIP packages to be installed if required.
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.saltstack.com" > bootstrap-salt.sh
sudo sh bootstrap-salt.sh git develop
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
All Python versions should support the following in-line code:
With python version 3:
.. code:: console
python -c 'import urllib; print urllib.urlopen("https://bootstrap.saltstack.com").read()' > bootstrap-salt.sh
sudo sh bootstrap-salt.sh git develop
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.saltstack.com
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
@ -199,43 +341,81 @@ Installing the latest stable release of Salt (default):
.. code:: console
curl -L https://bootstrap.saltstack.com | 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.saltstack.com | sudo sh
wget -O - https://github.com/saltstack/salt-bootstrap/releases/latest/download/bootstrap-salt.sh | sudo sh
Installing the latest develop branch of Salt:
Installing a target version package of Salt from the Salt Project repo:
.. code:: console
curl -L https://bootstrap.saltstack.com | sudo sh -s -- git develop
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://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
~~~~~~~~~~~~~~~~~~
Using ``PowerShell`` to install latest stable version:
.. code:: powershell
[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://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"
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.:
.. code:: console
sudo sh bootstrap-salt.sh -r -P git develop
sudo sh bootstrap-salt.sh -r -P git master
**NOTE**
@ -248,36 +428,23 @@ Debian and derivatives
~~~~~~~~~~~~~~~~~~~~~~
- Cumulus Linux 2/3
- Debian GNU/Linux 7/8/9/10
- 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)
Debian Best Effort Support: Testing Release
*******************************************
This script provides best-effort support for the upcoming Debian testing release. Package
repositories are not provided on `SaltStack's Debian repository`_ for Debian testing releases.
However, the bootstrap script will attempt to install the packages for the current stable
version of Debian.
For example, when installing Salt on Debian 10 (Buster), the bootstrap script will setup the
repository for Debian 9 (Stretch) from `SaltStack's Debian repository`_ and install the
Debian 9 packages.
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
@ -289,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 16.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 18.10, the bootstrap script will setup the repository
for Ubuntu 18.04 from `SaltStack's Ubuntu repository`_ and install the 18.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`_.
@ -332,12 +497,28 @@ UNIX systems
**BSD**:
- OpenBSD (``pip`` installation)
- FreeBSD 11/12
- No longer supported
**SunOS**:
- SmartOS (2015Q4 and later)
- No longer supported
Using a custom salt bootstrap
-----------------------------
By default the ``salt-cloud -p`` provisioning command will use the latest release from this
repository to bootstrap new minions. If
- your needs are not met by that script,
- you want to lock salt bootstrap to a specific release, or
- you want to use an unreleased development version of this script
you can add your bootstrap-salt script to your salt cloud configuration and point to it with the
``script`` attribute.
`Read more`: https://docs.saltproject.io/en/latest/topics/cloud/deploy.html
Unsupported Distributions
-------------------------
@ -353,44 +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 8
- Debian 9
- Debian 10
- Fedora (only git installations)
- Ubuntu 16.04
- Ubuntu 18.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 not be added until the neon
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
-------
@ -436,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.saltstack.com/en/latest/topics/tutorials/preseed_key.html
.. _`read the source`: https://github.com/saltstack/salt-bootstrap/blob/develop/bootstrap-salt.sh
.. _`Salt`: https://saltstack.com/community/
.. _`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.saltstack.com/
.. _`SaltStack's Debian repository`: http://repo.saltstack.com/#debian
.. _`SaltStack's Ubuntu repository`: http://repo.saltstack.com/#ubuntu
.. _`Ubuntu's release schedule`: https://wiki.ubuntu.com/Releases
.. _Vagrant: http://www.vagrantup.com
.. _hardening salt: https://docs.saltstack.com/en/latest/topics/hardening.html
.. |build| image:: https://drone.saltstack.com/api/badges/saltstack/salt-bootstrap/status.svg
:target: https://drone.saltstack.com/saltstack/salt-bootstrap
:alt: Build status on Linux
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

12
RELEASE.md Normal file
View file

@ -0,0 +1,12 @@
[#](#) Release process
- 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.
- Bump version for release.
- Open PR against develop with these changes.
- 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

@ -1,32 +0,0 @@
platform: Any CPU
environment:
matrix:
- bootstrap_args:
test_args: -master salt -runservice
- bootstrap_args: -runservice false
test_args: -master salt -noservice
- bootstrap_args: -minion a-minion
test_args: -minion a-minion -master salt -runservice
- bootstrap_args: -minion a-minion -master a-master
test_args: -minion a-minion -master a-master -runservice
build_script:
- ps: |
$Path = (Get-Location).Path | Join-Path -ChildPath bootstrap-salt.ps1
Invoke-Expression "$Path -verbose $env:bootstrap_args"
before_test:
- SET PATH=%PATH%;C:\salt
- salt-call --version
test_script:
- ps: |
$Path = (Get-Location).Path | Join-Path -ChildPath tests\runtests.ps1
Invoke-Expression "$Path -verbose $env:test_args"
matrix:
fast_finish: true

View file

@ -1,108 +1,129 @@
<#
.SYNOPSIS
A simple Powershell script to download and install a salt minion on windows.
A simple Powershell script to download and install a Salt minion on Windows.
.DESCRIPTION
The script will download the official salt package from saltstack. It will
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.
.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.saltstack.com/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.saltstack.com/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
#>
#===============================================================================
# Commandlet Binding
# Bind Parameters
#===============================================================================
[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 = '',
param(
[Parameter(Mandatory=$false, ValueFromPipeline=$True)]
[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 = "2",
[Parameter(Mandatory=$false, ValueFromPipeline=$True)]
[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",
[Parameter(Mandatory=$false, ValueFromPipeline=$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",
[Parameter(Mandatory=$false, ValueFromPipeline=$True)]
[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",
[Parameter(Mandatory=$false, ValueFromPipeline=$True)]
[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.saltstack.com/windows"
[Parameter(Mandatory=$false, ValueFromPipeline=$True)]
[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)]
[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
@ -119,22 +140,227 @@ 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
#===============================================================================
If (!(Get-IsAdministrator)) {
If (Get-IsUacEnabled) {
if (!(Get-IsAdministrator)) {
if (Get-IsUacEnabled) {
# We are not running "as Administrator" - so relaunch as administrator
# Create a new process object that starts PowerShell
$newProcess = new-object System.Diagnostics.ProcessStartInfo "PowerShell";
# Specify the current script path and name as a parameter`
$parameters = ""
If($minion -ne "not-specified") {$parameters = "-minion $minion"}
If($master -ne "not-specified") {$parameters = "$parameters -master $master"}
If($runservice -eq $false) {$parameters = "$parameters -runservice false"}
If($version -ne '') {$parameters = "$parameters -version $version"}
If($pythonVersion -ne "") {$parameters = "$parameters -pythonVersion $pythonVersion"}
foreach ($boundParam in $PSBoundParameters.GetEnumerator())
{
$parameters = "$parameters -{0} '{1}'" -f $boundParam.Key, $boundParam.Value
}
$newProcess.Arguments = $myInvocation.MyCommand.Definition, $parameters
# Specify the current working directory
@ -147,97 +373,193 @@ If (!(Get-IsAdministrator)) {
[System.Diagnostics.Process]::Start($newProcess);
# Exit from the current, unelevated, process
Exit
exit
}
Else {
Throw "You must be administrator to run this script"
else {
throw "You must be administrator to run this script"
}
}
#===============================================================================
# Check for older versions
#===============================================================================
$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
}
#===============================================================================
# Declare variables
#===============================================================================
$ConfDir = "$RootDir\conf"
$PkiDir = "$ConfDir\pki\minion"
$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) {
$RootDir = (Get-ItemProperty $SaltRegKey).root_dir
}
}
# 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 = ""
}
#===============================================================================
# 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: $repourl"
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.ToLower() -eq "true") {
if ($RunService) {
Write-Verbose "Windows service will be set to run"
[bool]$runservice = $True
}
ElseIf ($runservice.ToLower() -eq "false") {
[bool]$RunService = $True
} else {
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
[bool]$RunService = $False
}
#===============================================================================
# Ensure Directories are present, copy Vagrant Configs if found
# Copy Vagrant Files to their proper location.
#===============================================================================
# Create C:\tmp\
New-Item C:\tmp\ -ItemType directory -Force | Out-Null
# Copy Vagrant Files to their proper location. Vagrant files will be placed
# in C:\tmp
$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) {
New-Item C:\salt\conf\pki\minion\ -ItemType Directory -Force | Out-Null
# Copy minion keys & config to correct location
cp C:\tmp\minion.pem C:\salt\conf\pki\minion\
cp C:\tmp\minion.pub C:\salt\conf\pki\minion\
if (Test-Path C:\tmp\minion.pem) {
New-Item $PkiDir -ItemType Directory -Force | Out-Null
Copy-Item -Path C:\tmp\minion.pem -Destination $PkiDir -Force | Out-Null
Copy-Item -Path C:\tmp\minion.pub -Destination $PkiDir -Force | Out-Null
$ConfiguredAnything = $True
}
# Check if minion config has been uploaded
# This should be done before the installer is run so that it can be updated with
# id: and master: settings when the installer runs
If (Test-Path C:\tmp\minion) {
New-Item C:\salt\conf\ -ItemType Directory -Force | Out-Null
Copy-Item -Path C:\tmp\minion -Destination C:\salt\conf\ -Force | Out-Null
if (Test-Path C:\tmp\minion) {
New-Item $ConfDir -ItemType Directory -Force | Out-Null
Copy-Item -Path C:\tmp\minion -Destination $ConfDir -Force | Out-Null
$ConfiguredAnything = $True
}
# Check if grains config has been uploaded
if (Test-Path C:\tmp\grains) {
New-Item $ConfDir -ItemType Directory -Force | Out-Null
Copy-Item -Path C:\tmp\grains -Destination $ConfDir -Force | Out-Null
$ConfiguredAnything = $True
}
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"
}
Else {
$arch = "AMD64"
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 {
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"
} else {
$versionSection = $version
$year = $version.Substring(0, 4)
If ([int]$year -ge 2017) {
If ($pythonVersion -eq "3") {
$versionSection = "$version-Py3"
} Else {
$versionSection = "$version-Py2"
}
}
}
$saltFileName = "Salt-Minion-$Version-Py3-$arch-Setup.exe"
$saltFileUrl = "$base_url/$Version/$saltFileName"
$saltSha256 = Get-HashFromArtifactory -SaltVersion $Version -SaltFileName $saltFileName
#===============================================================================
# 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)
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 {
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
@ -247,56 +569,135 @@ $webclient.DownloadFile($url, $file)
# - 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"}
if($Minion -ne "not-specified") {$parameters = "/minion-name=$Minion"}
if($Master -ne "not-specified") {$parameters = "$parameters /master=$Master"}
#===============================================================================
# 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
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
#===============================================================================
# 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( $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
}
# 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"
exit 1
} 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 {
Write-Host "Failed" -ForegroundColor Red
exit 1
}
}
# 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
}
}
}
Else {
Write-Output -NoNewline "Stopping salt minion and setting it to 'Manual'"
Set-Service "salt-minion" -StartupType "Manual"
Stop-Service "salt-minion"
}
#===============================================================================
# Script Complete
#===============================================================================
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

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,16 +1,48 @@
import json
import os
import pytest
import testinfra
import requests
API_URL = (
"https://packages.broadcom.com/artifactory/api/storage/saltproject-generic/windows"
)
@pytest.fixture(scope='session')
def host():
if os.environ.get('KITCHEN_USERNAME') == 'vagrant':
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))
@pytest.fixture(scope="session")
def target_python_version():
return 3
@pytest.fixture(scope="session")
def target_salt_version():
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 versions[target_salt]

View file

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

View file

@ -1,7 +0,0 @@
# -*- coding: utf-8 -*-
import pytest
def test_ping(host):
with host.sudo():
assert host.salt('test.ping', '--timeout=120')

View file

@ -0,0 +1,82 @@
import json
import logging
import os
import platform
import subprocess
import pytest
log = logging.getLogger(__name__)
@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 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:
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 @@
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),
)