Compare commits

...

33 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
Matthew Richardson
699ade0c04
Use treeless clone to do a 'shallow' clone preserving metadata for version.py 2024-10-17 21:03:41 +01:00
11 changed files with 315 additions and 213 deletions

View file

@ -114,22 +114,6 @@ jobs:
macos-12:
name: macOS 12
if: github.event_name == 'push' || needs.collect-changed-files.outputs.run-tests == 'true'
uses: ./.github/workflows/test-macos.yml
needs:
- lint
- generate-actions-workflow
with:
distro-slug: macos-12
display-name: macOS 12
container-slug: macos-12
timeout: 20
runs-on: macos-12
instances: '["stable-3006", "stable-3006-8", "stable-3007", "stable-3007-1", "latest"]'
macos-13: macos-13:
name: macOS 13 name: macOS 13
if: github.event_name == 'push' || needs.collect-changed-files.outputs.run-tests == 'true' if: github.event_name == 'push' || needs.collect-changed-files.outputs.run-tests == 'true'
@ -180,6 +164,36 @@ jobs:
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: debian-12:
name: Debian 12 name: Debian 12
if: github.event_name == 'push' || needs.collect-changed-files.outputs.run-tests == 'true' if: github.event_name == 'push' || needs.collect-changed-files.outputs.run-tests == 'true'
@ -190,7 +204,7 @@ jobs:
with: with:
distro-slug: debian-12 distro-slug: debian-12
display-name: Debian 12 display-name: Debian 12
container-slug: systemd-debian-12 container-slug: debian-12
timeout: 20 timeout: 20
instances: '["stable-3007", "git-3007", "onedir-3007", "stable-3007-1", "git-master", "latest", "default"]' instances: '["stable-3007", "git-3007", "onedir-3007", "stable-3007-1", "git-master", "latest", "default"]'
@ -205,7 +219,7 @@ jobs:
with: with:
distro-slug: photon-5 distro-slug: photon-5
display-name: Photon OS 5 display-name: Photon OS 5
container-slug: systemd-photon-5 container-slug: photon-5
timeout: 20 timeout: 20
instances: '["stable-3006", "onedir-3006", "stable-3006-8", "stable-3007", "onedir-3007", "stable-3007-1", "latest", "default"]' instances: '["stable-3006", "onedir-3006", "stable-3006-8", "stable-3007", "onedir-3007", "stable-3007-1", "latest", "default"]'
@ -220,7 +234,7 @@ jobs:
with: with:
distro-slug: rockylinux-8 distro-slug: rockylinux-8
display-name: Rocky Linux 8 display-name: Rocky Linux 8
container-slug: systemd-rockylinux-8 container-slug: rockylinux-8
timeout: 20 timeout: 20
instances: '["stable-3006", "onedir-3006", "stable-3006-8", "stable-3007", "onedir-3007", "stable-3007-1", "latest", "default"]' instances: '["stable-3006", "onedir-3006", "stable-3006-8", "stable-3007", "onedir-3007", "stable-3007-1", "latest", "default"]'
@ -235,7 +249,7 @@ jobs:
with: with:
distro-slug: rockylinux-9 distro-slug: rockylinux-9
display-name: Rocky Linux 9 display-name: Rocky Linux 9
container-slug: systemd-rockylinux-9 container-slug: rockylinux-9
timeout: 20 timeout: 20
instances: '["stable-3006", "onedir-3006", "stable-3006-8", "stable-3007", "onedir-3007", "stable-3007-1", "latest", "default"]' instances: '["stable-3006", "onedir-3006", "stable-3006-8", "stable-3007", "onedir-3007", "stable-3007-1", "latest", "default"]'
@ -250,7 +264,7 @@ jobs:
with: with:
distro-slug: ubuntu-2204 distro-slug: ubuntu-2204
display-name: Ubuntu 22.04 display-name: Ubuntu 22.04
container-slug: systemd-ubuntu-22.04 container-slug: ubuntu-22.04
timeout: 20 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"]' instances: '["stable-3006", "git-3006", "onedir-3006", "stable-3006-8", "stable-3007", "git-3007", "onedir-3007", "stable-3007-1", "git-master", "latest", "default"]'
@ -263,10 +277,11 @@ jobs:
needs: needs:
- lint - lint
- generate-actions-workflow - generate-actions-workflow
- macos-12
- macos-13 - macos-13
- macos-14 - macos-14
- windows-2022 - windows-2022
- amazonlinux-2023
- debian-11
- debian-12 - debian-12
- photon-5 - photon-5
- rockylinux-8 - rockylinux-8

View file

@ -6,17 +6,15 @@ import pathlib
os.chdir(os.path.abspath(os.path.dirname(__file__))) os.chdir(os.path.abspath(os.path.dirname(__file__)))
# only test against current containers with systemd
# will add these when they become available with systemd
# "amazonlinux-2", # "amazonlinux-2",
# "amazonlinux-2023",
# "debian-11",
# "debian-13", # "debian-13",
# "fedora-40", # "fedora-40",
# "photon-4", # "photon-4",
# "ubuntu-2004", # "ubuntu-2004",
# "ubuntu-2404", # "ubuntu-2404",
LINUX_DISTROS = [ LINUX_DISTROS = [
"amazonlinux-2023",
"debian-11",
"debian-12", "debian-12",
"photon-5", "photon-5",
"rockylinux-8", "rockylinux-8",
@ -29,22 +27,19 @@ WINDOWS = [
] ]
OSX = [ OSX = [
"macos-12",
"macos-13", "macos-13",
"macos-14", "macos-14",
] ]
# only test against current containers with systemd
# will add these when they become available with systemd
# "amazonlinux-2", # "amazonlinux-2",
# "amazonlinux-2023",
# "debian-11",
# "debian-13", # "debian-13",
# "fedora-40", # "fedora-40",
# "photon-4", # "photon-4",
# "ubuntu-2004", # "ubuntu-2004",
# "ubuntu-2404", # "ubuntu-2404",
STABLE_DISTROS = [ STABLE_DISTROS = [
"amazonlinux-2023",
"debian-11",
"debian-12", "debian-12",
"photon-5", "photon-5",
"rockylinux-8", "rockylinux-8",
@ -52,17 +47,15 @@ STABLE_DISTROS = [
"ubuntu-2204", "ubuntu-2204",
] ]
# only test against current containers with systemd
# will add these when they become available with systemd
# "amazonlinux-2", # "amazonlinux-2",
# "amazonlinux-2023",
# "debian-11",
# "debian-13", # "debian-13",
# "fedora-40", # "fedora-40",
# "photon-4", # "photon-4",
# "ubuntu-2004", # "ubuntu-2004",
# "ubuntu-2404", # "ubuntu-2404",
ONEDIR_DISTROS = [ ONEDIR_DISTROS = [
"amazonlinux-2023",
"debian-11",
"debian-12", "debian-12",
"photon-5", "photon-5",
"rockylinux-8", "rockylinux-8",
@ -70,8 +63,6 @@ ONEDIR_DISTROS = [
"ubuntu-2204", "ubuntu-2204",
] ]
# only test against current containers with systemd
# will add these when they become available with systemd
# "amazonlinux-2", # "amazonlinux-2",
# "amazonlinux-2023", # "amazonlinux-2023",
# "photon-4", # "photon-4",
@ -102,6 +93,7 @@ BLACKLIST_GIT_3006 = [
"amazonlinux-2023", "amazonlinux-2023",
"debian-11", "debian-11",
"debian-12", "debian-12",
"debian-13",
"fedora-40", "fedora-40",
"photon-4", "photon-4",
"photon-5", "photon-5",
@ -210,27 +202,25 @@ DISTRO_DISPLAY_NAMES = {
"ubuntu-2004": "Ubuntu 20.04", "ubuntu-2004": "Ubuntu 20.04",
"ubuntu-2204": "Ubuntu 22.04", "ubuntu-2204": "Ubuntu 22.04",
"ubuntu-2404": "Ubuntu 24.04", "ubuntu-2404": "Ubuntu 24.04",
"macos-12": "macOS 12",
"macos-13": "macOS 13", "macos-13": "macOS 13",
"macos-14": "macOS 14", "macos-14": "macOS 14",
"windows-2022": "Windows 2022", "windows-2022": "Windows 2022",
} }
CONTAINER_SLUG_NAMES = { CONTAINER_SLUG_NAMES = {
"amazonlinux-2": "systemd-amazonlinux-2", "amazonlinux-2": "amazonlinux-2",
"amazonlinux-2023": "systemd-amazonlinux-2023", "amazonlinux-2023": "amazonlinux-2023",
"debian-11": "systemd-debian-11", "debian-11": "debian-11",
"debian-12": "systemd-debian-12", "debian-12": "debian-12",
"debian-13": "systemd-debian-13", "debian-13": "debian-13",
"fedora-40": "systemd-fedora-40", "fedora-40": "fedora-40",
"photon-4": "systemd-photon-4", "photon-4": "photon-4",
"photon-5": "systemd-photon-5", "photon-5": "photon-5",
"rockylinux-8": "systemd-rockylinux-8", "rockylinux-8": "rockylinux-8",
"rockylinux-9": "systemd-rockylinux-9", "rockylinux-9": "rockylinux-9",
"ubuntu-2004": "systemd-ubuntu-20.04", "ubuntu-2004": "ubuntu-20.04",
"ubuntu-2204": "systemd-ubuntu-22.04", "ubuntu-2204": "ubuntu-22.04",
"ubuntu-2404": "systemd-ubuntu-24.04", "ubuntu-2404": "ubuntu-24.04",
"macos-12": "macos-12",
"macos-13": "macos-13", "macos-13": "macos-13",
"macos-14": "macOS 14", "macos-14": "macOS 14",
"windows-2022": "windows-2022", "windows-2022": "windows-2022",

View file

@ -32,10 +32,6 @@ jobs:
Test: Test:
name: ${{ matrix.instance }} name: ${{ matrix.instance }}
runs-on: ubuntu-latest runs-on: ubuntu-latest
container:
image: ghcr.io/saltstack/salt-ci-containers/testing:${{ inputs.container-slug }}
options: --privileged
timeout-minutes: ${{ inputs.timeout }} timeout-minutes: ${{ inputs.timeout }}
strategy: strategy:
max-parallel: 2 max-parallel: 2
@ -46,16 +42,6 @@ jobs:
steps: steps:
- uses: actions/checkout@v4 - uses: actions/checkout@v4
- name: Install Python Dependencies with pip breakage
if: ${{ ( inputs.distro-slug == 'debian-11' ) || ( inputs.distro-slug == 'debian-12' ) || ( inputs.distro-slug == 'debian-13' ) || ( inputs.distro-slug == 'ubuntu-2404' ) }}
run: |
python3 -m pip install --break-system-packages -r tests/requirements.txt
- name: Install Python Dependencies without pip breakage
if: ${{ ( inputs.distro-slug != 'debian-11' ) && ( inputs.distro-slug != 'debian-12' ) && ( inputs.distro-slug != 'debian-13' ) && ( inputs.distro-slug != 'ubuntu-2404' ) }}
run: |
python3 -m pip install -r tests/requirements.txt
- name: Get Version - name: Get Version
run: | run: |
# We need to get the version here and make it an environment variable # We need to get the version here and make it an environment variable
@ -65,17 +51,39 @@ jobs:
vt_parm_ver=$(echo "${{ matrix.instance }}" | sed 's/-/ /' | sed 's/-/./' | awk -F ' ' '{print $2}') vt_parm_ver=$(echo "${{ matrix.instance }}" | sed 's/-/ /' | sed 's/-/./' | awk -F ' ' '{print $2}')
echo "SaltVersion=$vt_parm_ver" >> $GITHUB_ENV 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 - name: Bootstrap Salt
run: | run: |
# sed 1st - becomes space, 2nd - becomes dot # sed 1st - becomes space, 2nd - becomes dot
bt_arg1=$(echo "${{ matrix.instance }}" | sed 's/-/ /' | sed 's/-/./' | awk -F ' ' '{print $1}') 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}') 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," echo "bt parms ,$bt_parms, bt_arg1 ,$bt_arg1, bt_arg2 ,$bt_arg2,"
sh -x ./bootstrap-salt.sh "$bt_arg1" "$bt_arg2" docker exec ${{ github.run_id}}_salt-test sh -x /_w/btstrap/bootstrap-salt.sh "$bt_arg1" "$bt_arg2"
- name: Test Bootstrap - name: Test Bootstrap
run: | run: |
pytest --cache-clear -v -s -ra --log-cli-level=debug tests/integration/ 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 - name: Set Exit Status
if: always() if: always()

View file

@ -48,12 +48,12 @@ jobs:
- uses: actions/checkout@v4 - uses: actions/checkout@v4
- name: Install Python Dependencies with pip breakage - name: Install Python Dependencies with pip breakage
if: ${{ ( inputs.distro-slug != 'macos-12' ) && ( inputs.distro-slug != 'macos-13' ) }} if: ${{ inputs.distro-slug != 'macos-13' }}
run: | run: |
python3 -m pip install --break-system-packages -r tests/requirements.txt python3 -m pip install --break-system-packages -r tests/requirements.txt
- name: Install Python Dependencies without pip breakage - name: Install Python Dependencies without pip breakage
if: ${{ ( inputs.distro-slug == 'macos-12' ) || ( inputs.distro-slug == 'macos-13' ) }} if: ${{ inputs.distro-slug == 'macos-13' }}
run: | run: |
python3 -m pip install -r tests/requirements.txt python3 -m pip install -r tests/requirements.txt

View file

@ -30,7 +30,7 @@ repos:
- actionlint - actionlint
- repo: https://github.com/jazzband/pip-tools - repo: https://github.com/jazzband/pip-tools
rev: 7.3.0 rev: 7.4.1
hooks: hooks:
- id: pip-compile - id: pip-compile
files: ^requirements/release\.(in|txt)$ files: ^requirements/release\.(in|txt)$
@ -41,8 +41,10 @@ repos:
rev: v3.15.0 rev: v3.15.0
hooks: hooks:
- id: pyupgrade - id: pyupgrade
name: Rewrite Code to be Py3.9+ name: Rewrite Code to be Py3.6+
args: [--py39-plus] args: [--py36-plus]
## DGM name: Rewrite Code to be Py3.9+
## DGM args: [--py39-plus]
- repo: https://github.com/asottile/reorder_python_imports - repo: https://github.com/asottile/reorder_python_imports
rev: v3.12.0 rev: v3.12.0

View file

@ -1,3 +1,23 @@
# v2025.02.24
## What's Changed
- Update requirements to address security issues by @twangboy in https://github.com/saltstack/salt-bootstrap/pull/2073
- Use treeless clone to 'shallow' clone again. by @mrichar1 in https://github.com/saltstack/salt-bootstrap/pull/2022
- Fix powershell instructions by @twangboy in https://github.com/saltstack/salt-bootstrap/pull/2074
- Remove support for macos-12, as deprecated by github by @dmurphy18 in https://github.com/saltstack/salt-bootstrap/pull/2076
**Full Changelog**: https://github.com/saltstack/salt-bootstrap/compare/v2024.12.12...v2025.02.24
# v2024.12.12
## What's Changed
- Restrict use of dnf to Fedora only, otherwise use yum when dealing with RedHat family by @dmurphy18 in https://github.com/saltstack/salt-bootstrap/pull/2070
- Updating container usage to that used in new Salt pipelines for CI/CD, fix Amazon Linux by @dmurphy18 in https://github.com/saltstack/salt-bootstrap/pull/2071
**Full Changelog**: https://github.com/saltstack/salt-bootstrap/compare/v2024.12.09...v2024.12.12
# v2024.12.09 # v2024.12.09
## What's Changed ## What's Changed

View file

@ -37,6 +37,9 @@ sum** of the downloaded ``bootstrap-salt.sh`` file.
The SHA256 sum of the ``bootstrap-salt.sh`` file, per release, is: The SHA256 sum of the ``bootstrap-salt.sh`` file, per release, is:
- 2025.02.24: ``a0e3a58fc6358a7c6f708ee4910229e72fbdab7161819514b0696146a2edb62d``
- 2024.12.12: ``7cc91adfa5a15ff57d203dc2b79608c773efc639d4e9bf03861198903e11becd``
- 2024.12.09: ``44f9405a6d9622ad8fa7c93e83a52e01ca328f27e4e9dea4a52268c6a22dbe6d``
- 2024.11.29: ``0ac87384dee051aceded69704485a5de0e4a308551a462b10c262111b57acff0`` - 2024.11.29: ``0ac87384dee051aceded69704485a5de0e4a308551a462b10c262111b57acff0``
- 2024.11.27: ``e972bd1ef01d09cd1d9294374ef974c9e3dd9a2aee37cf3859144585fd8bf1d0`` - 2024.11.27: ``e972bd1ef01d09cd1d9294374ef974c9e3dd9a2aee37cf3859144585fd8bf1d0``
- 2024.11.26: ``832c7a20b96e1df171d715323df9afff8a11aef42d15598c007f240bc89d723c`` - 2024.11.26: ``832c7a20b96e1df171d715323df9afff8a11aef42d15598c007f240bc89d723c``
@ -372,7 +375,7 @@ Using ``PowerShell`` to install latest stable version:
[System.Net.ServicePointManager]::SecurityProtocol = [System.Net.SecurityProtocolType]'Tls12' [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" 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 & "$env:TEMP\bootstrap-salt.ps1" Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope CurrentUser -Force; & "$env:TEMP\bootstrap-salt.ps1"
Display information about the install script parameters: Display information about the install script parameters:

View file

@ -108,7 +108,7 @@ if ($help) {
exit 0 exit 0
} }
$__ScriptVersion = "2024.12.09" $__ScriptVersion = "2025.02.24"
$ScriptName = $myInvocation.MyCommand.Name $ScriptName = $myInvocation.MyCommand.Name
# We'll check for the Version next, because it also has no requirements # We'll check for the Version next, because it also has no requirements

View file

@ -26,7 +26,7 @@
#====================================================================================================================== #======================================================================================================================
set -o nounset # Treat unset variables as an error set -o nounset # Treat unset variables as an error
__ScriptVersion="2024.12.09" __ScriptVersion="2025.02.24"
__ScriptName="bootstrap-salt.sh" __ScriptName="bootstrap-salt.sh"
__ScriptFullName="$0" __ScriptFullName="$0"
@ -2161,21 +2161,19 @@ __git_clone_and_checkout() {
fi fi
if [ "$__SHALLOW_CLONE" -eq $BS_TRUE ]; then if [ "$__SHALLOW_CLONE" -eq $BS_TRUE ]; then
# Let's try shallow cloning to speed up. # Let's try 'treeless' cloning to speed up. Treeless cloning omits trees and blobs ('files')
# Test for "--single-branch" option introduced in git 1.7.10, the minimal version of git where the shallow # but includes metadata (commit history, tags, branches etc.
# Test for "--filter" option introduced in git 2.19, the minimal version of git where the treeless
# cloning we need actually works # cloning we need actually works
if [ "$(git clone 2>&1 | grep 'single-branch')" != "" ]; then if [ "$(git clone 2>&1 | grep 'filter')" != "" ]; then
# The "--single-branch" option is supported, attempt shallow cloning # The "--filter" option is supported: attempt treeless cloning
echoinfo "Attempting to shallow clone $GIT_REV_ADJ from Salt's repository ${_SALT_REPO_URL}" echoinfo "Attempting to shallow clone $GIT_REV_ADJ from Salt's repository ${_SALT_REPO_URL}"
## Shallow cloning is resulting in the wrong version of Salt, even with a depth of 5 echodebug "git command, git clone --filter=tree:0 --branch $GIT_REV_ADJ $_SALT_REPO_URL $__SALT_CHECKOUT_REPONAME"
## getting 3007.0+0na.246d066 when it should be 3007.1+410.g246d066457, disabling for now if git clone --filter=tree:0 --branch "$GIT_REV_ADJ" "$_SALT_REPO_URL" "$__SALT_CHECKOUT_REPONAME"; then
## if git clone --depth 1 --branch "$GIT_REV_ADJ" "$_SALT_REPO_URL" "$__SALT_CHECKOUT_REPONAME"; then
echodebug "git command, git clone --branch $GIT_REV_ADJ $_SALT_REPO_URL $__SALT_CHECKOUT_REPONAME"
if git clone --branch "$GIT_REV_ADJ" "$_SALT_REPO_URL" "$__SALT_CHECKOUT_REPONAME"; then
# shellcheck disable=SC2164 # shellcheck disable=SC2164
cd "${_SALT_GIT_CHECKOUT_DIR}" cd "${_SALT_GIT_CHECKOUT_DIR}"
__SHALLOW_CLONE=$BS_TRUE __SHALLOW_CLONE=$BS_TRUE
echoinfo "shallow path (disabled shallow) git cloned $GIT_REV_ADJ, version $(python3 salt/version.py)" echoinfo "shallow path git cloned $GIT_REV_ADJ, version $(python3 salt/version.py)"
else else
# Shallow clone above failed(missing upstream tags???), let's resume the old behaviour. # Shallow clone above failed(missing upstream tags???), let's resume the old behaviour.
echowarn "Failed to shallow clone." echowarn "Failed to shallow clone."
@ -3189,11 +3187,8 @@ install_ubuntu_git_deps() {
__PACKAGES="${__PACKAGES} util-linux-extra" __PACKAGES="${__PACKAGES} util-linux-extra"
fi fi
# Additionally install procps and pciutils which allows for Docker bootstraps. See 366#issuecomment-39666813 # Additionally install procps pciutils and sudo which allows for Docker bootstraps. See 366#issuecomment-39666813
__PACKAGES="${__PACKAGES} procps pciutils" __PACKAGES="${__PACKAGES} procps pciutils sudo"
# ensure sudo installed
__PACKAGES="${__PACKAGES} sudo"
# shellcheck disable=SC2086 # shellcheck disable=SC2086
__apt_get_install_noinput ${__PACKAGES} || return 1 __apt_get_install_noinput ${__PACKAGES} || return 1
@ -3592,15 +3587,12 @@ install_debian_onedir_deps() {
return 1 return 1
fi fi
# Additionally install procps and pciutils which allows for Docker bootstraps. See 366#issuecomment-39666813 # Additionally install procps, pciutils and sudo which allows for Docker bootstraps. See 366#issuecomment-39666813
__PACKAGES='procps pciutils' __PACKAGES='procps pciutils sudo'
# YAML module is used for generating custom master/minion configs # YAML module is used for generating custom master/minion configs
__PACKAGES="${__PACKAGES} python${PY_PKG_VER}-yaml" __PACKAGES="${__PACKAGES} python${PY_PKG_VER}-yaml"
# ensure sudo installed
__PACKAGES="${__PACKAGES} sudo"
# shellcheck disable=SC2086 # shellcheck disable=SC2086
__apt_get_install_noinput ${__PACKAGES} || return 1 __apt_get_install_noinput ${__PACKAGES} || return 1
@ -3643,11 +3635,8 @@ install_debian_git_deps() {
__PACKAGES="python${PY_PKG_VER}-dev python${PY_PKG_VER}-pip python${PY_PKG_VER}-setuptools gcc" __PACKAGES="python${PY_PKG_VER}-dev python${PY_PKG_VER}-pip python${PY_PKG_VER}-setuptools gcc"
echodebug "install_debian_git_deps() Installing ${__PACKAGES}" echodebug "install_debian_git_deps() Installing ${__PACKAGES}"
# Additionally install procps and pciutils which allows for Docker bootstraps. See 366#issuecomment-39666813 # Additionally install procps, pciutils and sudo which allows for Docker bootstraps. See 366#issuecomment-39666813
__PACKAGES="${__PACKAGES} procps pciutils" __PACKAGES="${__PACKAGES} procps pciutils sudo"
# ensure sudo installed
__PACKAGES="${__PACKAGES} sudo"
# shellcheck disable=SC2086 # shellcheck disable=SC2086
__apt_get_install_noinput ${__PACKAGES} || return 1 __apt_get_install_noinput ${__PACKAGES} || return 1
@ -3947,14 +3936,11 @@ install_fedora_deps() {
__PACKAGES="${__PACKAGES} dnf-utils libyaml procps-ng python${PY_PKG_VER}-crypto python${PY_PKG_VER}-jinja2" __PACKAGES="${__PACKAGES} dnf-utils libyaml procps-ng python${PY_PKG_VER}-crypto python${PY_PKG_VER}-jinja2"
__PACKAGES="${__PACKAGES} python${PY_PKG_VER}-msgpack python${PY_PKG_VER}-requests python${PY_PKG_VER}-zmq" __PACKAGES="${__PACKAGES} python${PY_PKG_VER}-msgpack python${PY_PKG_VER}-requests python${PY_PKG_VER}-zmq"
__PACKAGES="${__PACKAGES} python${PY_PKG_VER}-pip python${PY_PKG_VER}-m2crypto python${PY_PKG_VER}-pyyaml" __PACKAGES="${__PACKAGES} python${PY_PKG_VER}-pip python${PY_PKG_VER}-m2crypto python${PY_PKG_VER}-pyyaml"
__PACKAGES="${__PACKAGES} python${PY_PKG_VER}-systemd" __PACKAGES="${__PACKAGES} python${PY_PKG_VER}-systemd sudo"
if [ "${_EXTRA_PACKAGES}" != "" ]; then if [ "${_EXTRA_PACKAGES}" != "" ]; then
echoinfo "Installing the following extra packages as requested: ${_EXTRA_PACKAGES}" echoinfo "Installing the following extra packages as requested: ${_EXTRA_PACKAGES}"
fi fi
# ensure sudo installed
__PACKAGES="${__PACKAGES} sudo"
# shellcheck disable=SC2086 # shellcheck disable=SC2086
__dnf_install_noinput ${__PACKAGES} ${_EXTRA_PACKAGES} || return 1 __dnf_install_noinput ${__PACKAGES} ${_EXTRA_PACKAGES} || return 1
@ -3985,10 +3971,7 @@ install_fedora_git_deps() {
# shellcheck disable=SC2119 # shellcheck disable=SC2119
__git_clone_and_checkout || return 1 __git_clone_and_checkout || return 1
__PACKAGES="python${PY_PKG_VER}-devel python${PY_PKG_VER}-pip python${PY_PKG_VER}-setuptools gcc gcc-c++" __PACKAGES="python${PY_PKG_VER}-devel python${PY_PKG_VER}-pip python${PY_PKG_VER}-setuptools gcc gcc-c++ sudo"
# ensure sudo installed
__PACKAGES="${__PACKAGES} sudo"
# shellcheck disable=SC2086 # shellcheck disable=SC2086
__dnf_install_noinput ${__PACKAGES} || return 1 __dnf_install_noinput ${__PACKAGES} || return 1
@ -4117,10 +4100,7 @@ install_fedora_onedir_deps() {
__install_saltstack_fedora_onedir_repository || return 1 __install_saltstack_fedora_onedir_repository || return 1
fi fi
__PACKAGES="dnf-utils chkconfig procps-ng" __PACKAGES="dnf-utils chkconfig procps-ng sudo"
# ensure sudo installed
__PACKAGES="${__PACKAGES} sudo"
# shellcheck disable=SC2086 # shellcheck disable=SC2086
__yum_install_noinput ${__PACKAGES} || return 1 __yum_install_noinput ${__PACKAGES} || return 1
@ -4224,8 +4204,8 @@ __install_saltstack_rhel_onedir_repository() {
REPO_REV_MAJOR=$(echo "$ONEDIR_REV" | cut -d '.' -f 1) REPO_REV_MAJOR=$(echo "$ONEDIR_REV" | cut -d '.' -f 1)
if [ "$REPO_REV_MAJOR" -eq "3007" ]; then if [ "$REPO_REV_MAJOR" -eq "3007" ]; then
# Enable the Salt 3007 STS repo # Enable the Salt 3007 STS repo
dnf config-manager --set-disable salt-repo-* yum config-manager --set-disable salt-repo-*
dnf config-manager --set-enabled salt-repo-3007-sts yum config-manager --set-enabled salt-repo-3007-sts
fi fi
elif [ "$(echo "$ONEDIR_REV" | grep -E '^([3-9][0-5]{2}[6-9](\.[0-9]*)?)')" != "" ]; then elif [ "$(echo "$ONEDIR_REV" | grep -E '^([3-9][0-5]{2}[6-9](\.[0-9]*)?)')" != "" ]; then
# using minor version # using minor version
@ -4243,11 +4223,11 @@ __install_saltstack_rhel_onedir_repository() {
fi fi
else else
# Enable the Salt LATEST repo # Enable the Salt LATEST repo
dnf config-manager --set-disable salt-repo-* yum config-manager --set-disable salt-repo-*
dnf config-manager --set-enabled salt-repo-latest yum config-manager --set-enabled salt-repo-latest
fi fi
dnf clean expire-cache || return 1 yum clean expire-cache || return 1
dnf makecache || return 1 yum makecache || return 1
elif [ "$ONEDIR_REV" != "latest" ]; then elif [ "$ONEDIR_REV" != "latest" ]; then
echowarn "salt.repo already exists, ignoring salt version argument." echowarn "salt.repo already exists, ignoring salt version argument."
echowarn "Use -F (forced overwrite) to install $ONEDIR_REV." echowarn "Use -F (forced overwrite) to install $ONEDIR_REV."
@ -4280,10 +4260,7 @@ install_centos_stable_deps() {
__install_saltstack_rhel_onedir_repository || return 1 __install_saltstack_rhel_onedir_repository || return 1
fi fi
__PACKAGES="yum-utils chkconfig procps-ng findutils" __PACKAGES="yum-utils chkconfig procps-ng findutils sudo"
# ensure sudo installed
__PACKAGES="${__PACKAGES} sudo"
# shellcheck disable=SC2086 # shellcheck disable=SC2086
__yum_install_noinput ${__PACKAGES} || return 1 __yum_install_noinput ${__PACKAGES} || return 1
@ -4329,9 +4306,6 @@ install_centos_stable() {
__PACKAGES="${__PACKAGES} salt-api$MINOR_VER_STRG" __PACKAGES="${__PACKAGES} salt-api$MINOR_VER_STRG"
fi fi
# ensure sudo installed
__PACKAGES="${__PACKAGES} sudo"
# shellcheck disable=SC2086 # shellcheck disable=SC2086
yum makecache || return 1 yum makecache || return 1
__yum_install_noinput ${__PACKAGES} || return 1 __yum_install_noinput ${__PACKAGES} || return 1
@ -4410,10 +4384,7 @@ install_centos_git_deps() {
return 1 return 1
fi fi
__PACKAGES="${__PACKAGES} python${PY_PKG_VER}-devel python${PY_PKG_VER}-pip python${PY_PKG_VER}-setuptools gcc" __PACKAGES="${__PACKAGES} python${PY_PKG_VER}-devel python${PY_PKG_VER}-pip python${PY_PKG_VER}-setuptools gcc sudo"
# ensure sudo installed
__PACKAGES="${__PACKAGES} sudo"
# shellcheck disable=SC2086 # shellcheck disable=SC2086
__yum_install_noinput ${__PACKAGES} || return 1 __yum_install_noinput ${__PACKAGES} || return 1
@ -4509,10 +4480,7 @@ install_centos_onedir_deps() {
__install_saltstack_rhel_onedir_repository || return 1 __install_saltstack_rhel_onedir_repository || return 1
fi fi
__PACKAGES="yum-utils chkconfig procps-ng findutils" __PACKAGES="yum-utils chkconfig procps-ng findutils sudo"
# ensure sudo installed
__PACKAGES="${__PACKAGES} sudo"
# shellcheck disable=SC2086 # shellcheck disable=SC2086
__yum_install_noinput ${__PACKAGES} || return 1 __yum_install_noinput ${__PACKAGES} || return 1
@ -4559,8 +4527,8 @@ install_centos_onedir() {
fi fi
# shellcheck disable=SC2086 # shellcheck disable=SC2086
dnf makecache || return 1 yum makecache || return 1
dnf list salt-minion || return 1 yum list salt-minion || return 1
__yum_install_noinput ${__PACKAGES} || return 1 __yum_install_noinput ${__PACKAGES} || return 1
return 0 return 0
@ -5613,10 +5581,7 @@ install_amazon_linux_ami_2_git_deps() {
# shellcheck disable=SC2119 # shellcheck disable=SC2119
__git_clone_and_checkout || return 1 __git_clone_and_checkout || return 1
__PACKAGES="python${PY_PKG_VER}-pip python${PY_PKG_VER}-setuptools python${PY_PKG_VER}-devel gcc" __PACKAGES="python${PY_PKG_VER}-pip python${PY_PKG_VER}-setuptools python${PY_PKG_VER}-devel gcc sudo"
# ensure sudo installed
__PACKAGES="${__PACKAGES} sudo"
# shellcheck disable=SC2086 # shellcheck disable=SC2086
__yum_install_noinput ${__PACKAGES} || return 1 __yum_install_noinput ${__PACKAGES} || return 1
@ -5638,10 +5603,7 @@ install_amazon_linux_ami_2_deps() {
# We need to install yum-utils before doing anything else when installing on # We need to install yum-utils before doing anything else when installing on
# Amazon Linux ECS-optimized images. See issue #974. # Amazon Linux ECS-optimized images. See issue #974.
__PACKAGES="yum-utils" __PACKAGES="yum-utils sudo"
# ensure sudo installed
__PACKAGES="${__PACKAGES} sudo"
__yum_install_noinput ${__PACKAGES} __yum_install_noinput ${__PACKAGES}
@ -5652,8 +5614,10 @@ install_amazon_linux_ami_2_deps() {
if [ $_DISABLE_REPOS -eq $BS_FALSE ] || [ "$_CUSTOM_REPO_URL" != "null" ]; then if [ $_DISABLE_REPOS -eq $BS_FALSE ] || [ "$_CUSTOM_REPO_URL" != "null" ]; then
if [ ! -s "${YUM_REPO_FILE}" ]; then if [ ! -s "${YUM_REPO_FILE}" ]; then
FETCH_URL="https://github.com/saltstack/salt-install-guide/releases/latest/download/salt.repo" ## Amazon Linux yum (v3) doesn't support config-manager
__fetch_url "${YUM_REPO_FILE}" "${FETCH_URL}" ## FETCH_URL="https://github.com/saltstack/salt-install-guide/releases/latest/download/salt.repo"
## __fetch_url "${YUM_REPO_FILE}" "${FETCH_URL}"
# shellcheck disable=SC2129
if [ "$STABLE_REV" != "latest" ]; then if [ "$STABLE_REV" != "latest" ]; then
# 3006.x is default, and latest for 3006.x branch # 3006.x is default, and latest for 3006.x branch
if [ "$(echo "$STABLE_REV" | grep -E '^(3006|3007)$')" != "" ]; then if [ "$(echo "$STABLE_REV" | grep -E '^(3006|3007)$')" != "" ]; then
@ -5661,14 +5625,33 @@ install_amazon_linux_ami_2_deps() {
REPO_REV_MAJOR=$(echo "$STABLE_REV" | cut -d '.' -f 1) REPO_REV_MAJOR=$(echo "$STABLE_REV" | cut -d '.' -f 1)
if [ "$REPO_REV_MAJOR" -eq "3007" ]; then if [ "$REPO_REV_MAJOR" -eq "3007" ]; then
# Enable the Salt 3007 STS repo # Enable the Salt 3007 STS repo
dnf config-manager --set-disable salt-repo-* echo "[salt-repo-3007-sts]" > "${YUM_REPO_FILE}"
dnf config-manager --set-enabled salt-repo-3007-sts echo "name=Salt Repo for Salt v3007 STS" >> "${YUM_REPO_FILE}"
echo "baseurl=https://${_REPO_URL}/saltproject-rpm/" >> "${YUM_REPO_FILE}"
echo "skip_if_unavailable=True" >> "${YUM_REPO_FILE}"
echo "priority=10" >> "${YUM_REPO_FILE}"
echo "enabled=1" >> "${YUM_REPO_FILE}"
echo "enabled_metadata=1" >> "${YUM_REPO_FILE}"
echo "gpgcheck=1" >> "${YUM_REPO_FILE}"
echo "exclude=*3006* *3008* *3009* *3010*" >> "${YUM_REPO_FILE}"
echo "gpgkey=https://${_REPO_URL}/api/security/keypair/SaltProjectKey/public" >> "${YUM_REPO_FILE}"
else
# Salt 3006 repo
echo "[salt-repo-3006-lts]" > "${YUM_REPO_FILE}"
echo "name=Salt Repo for Salt v3006 LTS" >> "${YUM_REPO_FILE}"
echo "baseurl=https://${_REPO_URL}/saltproject-rpm/" >> "${YUM_REPO_FILE}"
echo "skip_if_unavailable=True" >> "${YUM_REPO_FILE}"
echo "priority=10" >> "${YUM_REPO_FILE}"
echo "enabled=1" >> "${YUM_REPO_FILE}"
echo "enabled_metadata=1" >> "${YUM_REPO_FILE}"
echo "gpgcheck=1" >> "${YUM_REPO_FILE}"
echo "exclude=*3007* *3008* *3009* *3010*" >> "${YUM_REPO_FILE}"
echo "gpgkey=https://${_REPO_URL}/api/security/keypair/SaltProjectKey/public" >> "${YUM_REPO_FILE}"
fi fi
elif [ "$(echo "$STABLE_REV" | grep -E '^([3-9][0-5]{2}[6-9](\.[0-9]*)?)')" != "" ]; then elif [ "$(echo "$STABLE_REV" | grep -E '^([3-9][0-5]{2}[6-9](\.[0-9]*)?)')" != "" ]; then
# using minor version # using minor version
STABLE_REV_DOT=$(echo "$STABLE_REV" | sed 's/-/\./') STABLE_REV_DOT=$(echo "$STABLE_REV" | sed 's/-/\./')
echo "[salt-repo-${STABLE_REV_DOT}-lts]" > "${YUM_REPO_FILE}" echo "[salt-repo-${STABLE_REV_DOT}-lts]" > "${YUM_REPO_FILE}"
# shellcheck disable=SC2129
echo "name=Salt Repo for Salt v${STABLE_REV_DOT} LTS" >> "${YUM_REPO_FILE}" echo "name=Salt Repo for Salt v${STABLE_REV_DOT} LTS" >> "${YUM_REPO_FILE}"
echo "baseurl=https://${_REPO_URL}/saltproject-rpm/" >> "${YUM_REPO_FILE}" echo "baseurl=https://${_REPO_URL}/saltproject-rpm/" >> "${YUM_REPO_FILE}"
echo "skip_if_unavailable=True" >> "${YUM_REPO_FILE}" echo "skip_if_unavailable=True" >> "${YUM_REPO_FILE}"
@ -5680,11 +5663,18 @@ install_amazon_linux_ami_2_deps() {
fi fi
else else
# Enable the Salt LATEST repo # Enable the Salt LATEST repo
dnf config-manager --set-disable salt-repo-* echo "[salt-repo-latest]" > "${YUM_REPO_FILE}"
dnf config-manager --set-enabled salt-repo-latest echo "name=Salt Repo for Salt LATEST release" >> "${YUM_REPO_FILE}"
echo "baseurl=https://${_REPO_URL}/saltproject-rpm/" >> "${YUM_REPO_FILE}"
echo "skip_if_unavailable=True" >> "${YUM_REPO_FILE}"
echo "priority=10" >> "${YUM_REPO_FILE}"
echo "enabled=1" >> "${YUM_REPO_FILE}"
echo "enabled_metadata=1" >> "${YUM_REPO_FILE}"
echo "gpgcheck=1" >> "${YUM_REPO_FILE}"
echo "gpgkey=https://${_REPO_URL}/api/security/keypair/SaltProjectKey/public" >> "${YUM_REPO_FILE}"
fi fi
dnf clean expire-cache || return 1 yum clean expire-cache || return 1
dnf makecache || return 1 yum makecache || return 1
fi fi
fi fi
@ -5703,10 +5693,7 @@ install_amazon_linux_ami_2_onedir_deps() {
# We need to install yum-utils before doing anything else when installing on # We need to install yum-utils before doing anything else when installing on
# Amazon Linux ECS-optimized images. See issue #974. # Amazon Linux ECS-optimized images. See issue #974.
__PACKAGES="yum-utils" __PACKAGES="yum-utils chkconfig procps-ng findutils sudo"
# ensure sudo installed
__PACKAGES="${__PACKAGES} sudo"
__yum_install_noinput ${__PACKAGES} __yum_install_noinput ${__PACKAGES}
@ -5717,8 +5704,10 @@ install_amazon_linux_ami_2_onedir_deps() {
if [ $_DISABLE_REPOS -eq $BS_FALSE ] || [ "$_CUSTOM_REPO_URL" != "null" ]; then if [ $_DISABLE_REPOS -eq $BS_FALSE ] || [ "$_CUSTOM_REPO_URL" != "null" ]; then
if [ ! -s "${YUM_REPO_FILE}" ]; then if [ ! -s "${YUM_REPO_FILE}" ]; then
FETCH_URL="https://github.com/saltstack/salt-install-guide/releases/latest/download/salt.repo" ## Amazon Linux yum (v3) doesn't support config-manager
__fetch_url "${YUM_REPO_FILE}" "${FETCH_URL}" ## FETCH_URL="https://github.com/saltstack/salt-install-guide/releases/latest/download/salt.repo"
## __fetch_url "${YUM_REPO_FILE}" "${FETCH_URL}"
# shellcheck disable=SC2129
if [ "$ONEDIR_REV" != "latest" ]; then if [ "$ONEDIR_REV" != "latest" ]; then
# 3006.x is default, and latest for 3006.x branch # 3006.x is default, and latest for 3006.x branch
if [ "$(echo "$ONEDIR_REV" | grep -E '^(3006|3007)$')" != "" ]; then if [ "$(echo "$ONEDIR_REV" | grep -E '^(3006|3007)$')" != "" ]; then
@ -5726,14 +5715,33 @@ install_amazon_linux_ami_2_onedir_deps() {
REPO_REV_MAJOR=$(echo "$ONEDIR_REV" | cut -d '.' -f 1) REPO_REV_MAJOR=$(echo "$ONEDIR_REV" | cut -d '.' -f 1)
if [ "$REPO_REV_MAJOR" -eq "3007" ]; then if [ "$REPO_REV_MAJOR" -eq "3007" ]; then
# Enable the Salt 3007 STS repo # Enable the Salt 3007 STS repo
dnf config-manager --set-disable salt-repo-* echo "[salt-repo-3007-sts]" > "${YUM_REPO_FILE}"
dnf config-manager --set-enabled salt-repo-3007-sts echo "name=Salt Repo for Salt v3007 STS" >> "${YUM_REPO_FILE}"
echo "baseurl=https://${_REPO_URL}/saltproject-rpm/" >> "${YUM_REPO_FILE}"
echo "skip_if_unavailable=True" >> "${YUM_REPO_FILE}"
echo "priority=10" >> "${YUM_REPO_FILE}"
echo "enabled=1" >> "${YUM_REPO_FILE}"
echo "enabled_metadata=1" >> "${YUM_REPO_FILE}"
echo "gpgcheck=1" >> "${YUM_REPO_FILE}"
echo "exclude=*3006* *3008* *3009* *3010*" >> "${YUM_REPO_FILE}"
echo "gpgkey=https://${_REPO_URL}/api/security/keypair/SaltProjectKey/public" >> "${YUM_REPO_FILE}"
else
# Salt 3006 repo
echo "[salt-repo-3006-lts]" > "${YUM_REPO_FILE}"
echo "name=Salt Repo for Salt v3006 LTS" >> "${YUM_REPO_FILE}"
echo "baseurl=https://${_REPO_URL}/saltproject-rpm/" >> "${YUM_REPO_FILE}"
echo "skip_if_unavailable=True" >> "${YUM_REPO_FILE}"
echo "priority=10" >> "${YUM_REPO_FILE}"
echo "enabled=1" >> "${YUM_REPO_FILE}"
echo "enabled_metadata=1" >> "${YUM_REPO_FILE}"
echo "gpgcheck=1" >> "${YUM_REPO_FILE}"
echo "exclude=*3007* *3008* *3009* *3010*" >> "${YUM_REPO_FILE}"
echo "gpgkey=https://${_REPO_URL}/api/security/keypair/SaltProjectKey/public" >> "${YUM_REPO_FILE}"
fi fi
elif [ "$(echo "$ONEDIR_REV" | grep -E '^([3-9][0-5]{2}[6-9](\.[0-9]*)?)')" != "" ]; then elif [ "$(echo "$ONEDIR_REV" | grep -E '^([3-9][0-5]{2}[6-9](\.[0-9]*)?)')" != "" ]; then
# using minor version # using minor version
ONEDIR_REV_DOT=$(echo "$ONEDIR_REV" | sed 's/-/\./') ONEDIR_REV_DOT=$(echo "$ONEDIR_REV" | sed 's/-/\./')
echo "[salt-repo-${ONEDIR_REV_DOT}-lts]" > "${YUM_REPO_FILE}" echo "[salt-repo-${ONEDIR_REV_DOT}-lts]" > "${YUM_REPO_FILE}"
# shellcheck disable=SC2129
echo "name=Salt Repo for Salt v${ONEDIR_REV_DOT} LTS" >> "${YUM_REPO_FILE}" echo "name=Salt Repo for Salt v${ONEDIR_REV_DOT} LTS" >> "${YUM_REPO_FILE}"
echo "baseurl=https://${_REPO_URL}/saltproject-rpm/" >> "${YUM_REPO_FILE}" echo "baseurl=https://${_REPO_URL}/saltproject-rpm/" >> "${YUM_REPO_FILE}"
echo "skip_if_unavailable=True" >> "${YUM_REPO_FILE}" echo "skip_if_unavailable=True" >> "${YUM_REPO_FILE}"
@ -5745,11 +5753,18 @@ install_amazon_linux_ami_2_onedir_deps() {
fi fi
else else
# Enable the Salt LATEST repo # Enable the Salt LATEST repo
dnf config-manager --set-disable salt-repo-* echo "[salt-repo-latest]" > "${YUM_REPO_FILE}"
dnf config-manager --set-enabled salt-repo-latest echo "name=Salt Repo for Salt LATEST release" >> "${YUM_REPO_FILE}"
echo "baseurl=https://${_REPO_URL}/saltproject-rpm/" >> "${YUM_REPO_FILE}"
echo "skip_if_unavailable=True" >> "${YUM_REPO_FILE}"
echo "priority=10" >> "${YUM_REPO_FILE}"
echo "enabled=1" >> "${YUM_REPO_FILE}"
echo "enabled_metadata=1" >> "${YUM_REPO_FILE}"
echo "gpgcheck=1" >> "${YUM_REPO_FILE}"
echo "gpgkey=https://${_REPO_URL}/api/security/keypair/SaltProjectKey/public" >> "${YUM_REPO_FILE}"
fi fi
dnf clean expire-cache || return 1 yum clean expire-cache || return 1
dnf makecache || return 1 yum makecache || return 1
fi fi
fi fi
@ -5835,10 +5850,7 @@ install_amazon_linux_ami_2023_git_deps() {
# shellcheck disable=SC2119 # shellcheck disable=SC2119
__git_clone_and_checkout || return 1 __git_clone_and_checkout || return 1
__PACKAGES="python${PY_PKG_VER}-pip python${PY_PKG_VER}-setuptools python${PY_PKG_VER}-devel gcc" __PACKAGES="python${PY_PKG_VER}-pip python${PY_PKG_VER}-setuptools python${PY_PKG_VER}-devel gcc sudo"
# ensure sudo installed
__PACKAGES="${__PACKAGES} sudo"
# shellcheck disable=SC2086 # shellcheck disable=SC2086
__yum_install_noinput ${__PACKAGES} || return 1 __yum_install_noinput ${__PACKAGES} || return 1
@ -5852,14 +5864,18 @@ install_amazon_linux_ami_2023_git_deps() {
return 0 return 0
} }
install_amazon_linux_ami_2023_deps() {
# Set ONEDIR_REV to STABLE_REV
ONEDIR_REV=${STABLE_REV}
install_amazon_linux_ami_2023_onedir_deps || return 1
}
install_amazon_linux_ami_2023_onedir_deps() { install_amazon_linux_ami_2023_onedir_deps() {
# We need to install yum-utils before doing anything else when installing on # We need to install yum-utils before doing anything else when installing on
# Amazon Linux ECS-optimized images. See issue #974. # Amazon Linux ECS-optimized images. See issue #974.
__PACKAGES="yum-utils" __PACKAGES="yum-utils chkconfig procps-ng findutils sudo"
# ensure sudo installed
__PACKAGES="${__PACKAGES} sudo"
__yum_install_noinput ${__PACKAGES} __yum_install_noinput ${__PACKAGES}
@ -5870,8 +5886,10 @@ install_amazon_linux_ami_2023_onedir_deps() {
if [ $_DISABLE_REPOS -eq $BS_FALSE ] || [ "$_CUSTOM_REPO_URL" != "null" ]; then if [ $_DISABLE_REPOS -eq $BS_FALSE ] || [ "$_CUSTOM_REPO_URL" != "null" ]; then
if [ ! -s "${YUM_REPO_FILE}" ]; then if [ ! -s "${YUM_REPO_FILE}" ]; then
FETCH_URL="https://github.com/saltstack/salt-install-guide/releases/latest/download/salt.repo" ## Amazon Linux yum (v3) doesn't support config-manager
__fetch_url "${YUM_REPO_FILE}" "${FETCH_URL}" ## FETCH_URL="https://github.com/saltstack/salt-install-guide/releases/latest/download/salt.repo"
## __fetch_url "${YUM_REPO_FILE}" "${FETCH_URL}"
# shellcheck disable=SC2129
if [ "$ONEDIR_REV" != "latest" ]; then if [ "$ONEDIR_REV" != "latest" ]; then
# 3006.x is default, and latest for 3006.x branch # 3006.x is default, and latest for 3006.x branch
if [ "$(echo "$ONEDIR_REV" | grep -E '^(3006|3007)$')" != "" ]; then if [ "$(echo "$ONEDIR_REV" | grep -E '^(3006|3007)$')" != "" ]; then
@ -5879,14 +5897,33 @@ install_amazon_linux_ami_2023_onedir_deps() {
REPO_REV_MAJOR=$(echo "$ONEDIR_REV" | cut -d '.' -f 1) REPO_REV_MAJOR=$(echo "$ONEDIR_REV" | cut -d '.' -f 1)
if [ "$REPO_REV_MAJOR" -eq "3007" ]; then if [ "$REPO_REV_MAJOR" -eq "3007" ]; then
# Enable the Salt 3007 STS repo # Enable the Salt 3007 STS repo
dnf config-manager --set-disable salt-repo-* echo "[salt-repo-3007-sts]" > "${YUM_REPO_FILE}"
dnf config-manager --set-enabled salt-repo-3007-sts echo "name=Salt Repo for Salt v3007 STS" >> "${YUM_REPO_FILE}"
echo "baseurl=https://${_REPO_URL}/saltproject-rpm/" >> "${YUM_REPO_FILE}"
echo "skip_if_unavailable=True" >> "${YUM_REPO_FILE}"
echo "priority=10" >> "${YUM_REPO_FILE}"
echo "enabled=1" >> "${YUM_REPO_FILE}"
echo "enabled_metadata=1" >> "${YUM_REPO_FILE}"
echo "gpgcheck=1" >> "${YUM_REPO_FILE}"
echo "exclude=*3006* *3008* *3009* *3010*" >> "${YUM_REPO_FILE}"
echo "gpgkey=https://${_REPO_URL}/api/security/keypair/SaltProjectKey/public" >> "${YUM_REPO_FILE}"
else
# Salt 3006 repo
echo "[salt-repo-3006-lts]" > "${YUM_REPO_FILE}"
echo "name=Salt Repo for Salt v3006 LTS" >> "${YUM_REPO_FILE}"
echo "baseurl=https://${_REPO_URL}/saltproject-rpm/" >> "${YUM_REPO_FILE}"
echo "skip_if_unavailable=True" >> "${YUM_REPO_FILE}"
echo "priority=10" >> "${YUM_REPO_FILE}"
echo "enabled=1" >> "${YUM_REPO_FILE}"
echo "enabled_metadata=1" >> "${YUM_REPO_FILE}"
echo "gpgcheck=1" >> "${YUM_REPO_FILE}"
echo "exclude=*3007* *3008* *3009* *3010*" >> "${YUM_REPO_FILE}"
echo "gpgkey=https://${_REPO_URL}/api/security/keypair/SaltProjectKey/public" >> "${YUM_REPO_FILE}"
fi fi
elif [ "$(echo "$ONEDIR_REV" | grep -E '^([3-9][0-5]{2}[6-9](\.[0-9]*)?)')" != "" ]; then elif [ "$(echo "$ONEDIR_REV" | grep -E '^([3-9][0-5]{2}[6-9](\.[0-9]*)?)')" != "" ]; then
# using minor version # using minor version
ONEDIR_REV_DOT=$(echo "$ONEDIR_REV" | sed 's/-/\./') ONEDIR_REV_DOT=$(echo "$ONEDIR_REV" | sed 's/-/\./')
echo "[salt-repo-${ONEDIR_REV_DOT}-lts]" > "${YUM_REPO_FILE}" echo "[salt-repo-${ONEDIR_REV_DOT}-lts]" > "${YUM_REPO_FILE}"
# shellcheck disable=SC2129
echo "name=Salt Repo for Salt v${ONEDIR_REV_DOT} LTS" >> "${YUM_REPO_FILE}" echo "name=Salt Repo for Salt v${ONEDIR_REV_DOT} LTS" >> "${YUM_REPO_FILE}"
echo "baseurl=https://${_REPO_URL}/saltproject-rpm/" >> "${YUM_REPO_FILE}" echo "baseurl=https://${_REPO_URL}/saltproject-rpm/" >> "${YUM_REPO_FILE}"
echo "skip_if_unavailable=True" >> "${YUM_REPO_FILE}" echo "skip_if_unavailable=True" >> "${YUM_REPO_FILE}"
@ -5898,11 +5935,18 @@ install_amazon_linux_ami_2023_onedir_deps() {
fi fi
else else
# Enable the Salt LATEST repo # Enable the Salt LATEST repo
dnf config-manager --set-disable salt-repo-* echo "[salt-repo-latest]" > "${YUM_REPO_FILE}"
dnf config-manager --set-enabled salt-repo-latest echo "name=Salt Repo for Salt LATEST release" >> "${YUM_REPO_FILE}"
echo "baseurl=https://${_REPO_URL}/saltproject-rpm/" >> "${YUM_REPO_FILE}"
echo "skip_if_unavailable=True" >> "${YUM_REPO_FILE}"
echo "priority=10" >> "${YUM_REPO_FILE}"
echo "enabled=1" >> "${YUM_REPO_FILE}"
echo "enabled_metadata=1" >> "${YUM_REPO_FILE}"
echo "gpgcheck=1" >> "${YUM_REPO_FILE}"
echo "gpgkey=https://${_REPO_URL}/api/security/keypair/SaltProjectKey/public" >> "${YUM_REPO_FILE}"
fi fi
dnf clean expire-cache || return 1 yum clean expire-cache || return 1
dnf makecache || return 1 yum makecache || return 1
fi fi
fi fi

View file

@ -4,27 +4,31 @@
# #
# pip-compile requirements/release.in # pip-compile requirements/release.in
# #
attrs==23.1.0 annotated-types==0.7.0
# via pydantic
attrs==24.3.0
# via python-tools-scripts # via python-tools-scripts
boto3==1.28.79 boto3==1.35.98
# via -r requirements/release.in # via -r requirements/release.in
botocore==1.31.79 botocore==1.35.98
# via # via
# boto3 # boto3
# s3transfer # s3transfer
certifi==2023.7.22 certifi==2024.12.14
# via requests # via requests
cfgv==3.4.0 cfgv==3.4.0
# via pre-commit # via pre-commit
charset-normalizer==3.3.2 charset-normalizer==3.4.1
# via requests # via requests
distlib==0.3.7 distlib==0.3.9
# via virtualenv # via virtualenv
filelock==3.13.1 filelock==3.16.1
# via virtualenv # via
identify==2.5.31 # python-tools-scripts
# virtualenv
identify==2.6.5
# via pre-commit # via pre-commit
idna==3.4 idna==3.10
# via requests # via requests
jmespath==1.0.1 jmespath==1.0.1
# via # via
@ -34,36 +38,41 @@ markdown-it-py==3.0.0
# via rich # via rich
mdurl==0.1.2 mdurl==0.1.2
# via markdown-it-py # via markdown-it-py
nodeenv==1.8.0 nodeenv==1.9.1
# via pre-commit # via pre-commit
platformdirs==3.11.0 platformdirs==4.3.6
# via virtualenv # via virtualenv
pre-commit==3.5.0 pre-commit==4.0.1
# via -r requirements/release.in # via -r requirements/release.in
pygments==2.16.1 pydantic==2.10.5
# via python-tools-scripts
pydantic-core==2.27.2
# via pydantic
pygments==2.19.1
# via rich # via rich
python-dateutil==2.8.2 python-dateutil==2.9.0.post0
# via botocore # via botocore
python-tools-scripts==0.18.6 python-tools-scripts==0.20.5
# via -r requirements/release.in # via -r requirements/release.in
pyyaml==6.0.1 pyyaml==6.0.2
# via pre-commit # via pre-commit
requests==2.31.0 requests==2.32.3
# via python-tools-scripts # via python-tools-scripts
rich==13.6.0 rich==13.9.4
# via python-tools-scripts # via python-tools-scripts
s3transfer==0.7.0 s3transfer==0.10.4
# via boto3 # via boto3
six==1.16.0 six==1.17.0
# via python-dateutil # via python-dateutil
typing-extensions==4.8.0 typing-extensions==4.12.2
# via python-tools-scripts # via
urllib3==2.0.7 # pydantic
# pydantic-core
# python-tools-scripts
# rich
urllib3==2.3.0
# via # via
# botocore # botocore
# requests # requests
virtualenv==20.24.6 virtualenv==20.28.1
# via pre-commit # via pre-commit
# The following packages are considered to be unsafe in a requirements file:
# setuptools

View file

@ -35,10 +35,21 @@ def run_salt_call(cmd):
log.error(f"failed to produce output result, '{result}'") log.error(f"failed to produce output result, '{result}'")
else: else:
if platform.system() == "Darwin":
cmdl = ["sudo"] cmdl = ["sudo"]
else:
cmdl = []
cmdl.extend(cmd) cmdl.extend(cmd)
cmdl.append("--out=json") cmdl.append("--out=json")
try:
result = subprocess.run(cmdl, capture_output=True, text=True) 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: if 0 == result.returncode:
json_data = json.loads(result.stdout) json_data = json.loads(result.stdout)
else: else: