Merge develop into stable(auto resolving conflicts to the develop version)

This commit is contained in:
github-actions[bot] on behalf of @s0undt3ch 2022-08-12 12:43:31 +00:00
commit 23931c8522
28 changed files with 4360 additions and 1281 deletions

View file

@ -1,37 +0,0 @@
name: Checksums
on:
push:
branches:
- stable
jobs:
checksums:
name: Update Scripts Checksums
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
if: github.repository == 'saltstack/salt-bootstrap'
with:
ref: stable
- name: Get bootstrap-salt.sh sha256sum
if: github.repository == 'saltstack/salt-bootstrap'
run: |
echo "SH=$(sha256sum bootstrap-salt.sh | awk '{ print $1 }')" >> $GITHUB_ENV
echo "PS1=$(sha256sum bootstrap-salt.ps1 | awk '{ print $1 }')" >> $GITHUB_ENV
echo "BS_VERSION=$(sh bootstrap-salt.sh -v | awk '{ print $4 }')" >> $GITHUB_ENV
- name: Update Checksums
if: github.repository == 'saltstack/salt-bootstrap'
run: |
echo ${{ env.SH }} > bootstrap-salt.sh.sha256
echo ${{ env.PS1 }} > bootstrap-salt.ps1.sha256
- name: Create Pull Request Against Master
uses: peter-evans/create-pull-request@v3
with:
title: Update sha256 checksums
commit-message: Update sha256 checksums
delete-branch: true

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

@ -0,0 +1,568 @@
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@v3
with:
fetch-depth: 0
- name: Get specific changed files
id: changed-files
uses: tj-actions/changed-files@v25
with:
separator: ","
files: |
bootstrap-salt.*
Gemfile
kitchen*.yml
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 }}"
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@v3
- name: Set up Python 3.9
uses: actions/setup-python@v4
with:
python-version: 3.9
- 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@v3
with:
name: exitstatus
path: exitstatus
lint:
name: Lint
runs-on: ubuntu-latest
needs: collect-changed-files
container: koalaman/shellcheck-alpine:v0.6.0
if: github.event_name == 'push' || needs.collect-changed-files.outputs.run-tests == 'true'
steps:
- uses: actions/checkout@v3
- 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@v3
with:
name: exitstatus
path: exitstatus
freebsd-131:
name: FreeBSD 13.1
if: github.event_name == 'push' || needs.collect-changed-files.outputs.run-tests == 'true'
uses: ./.github/workflows/test-bsd.yml
needs:
- lint
- generate-actions-workflow
with:
distro-slug: freebsd-131
display-name: FreeBSD 13.1
timeout: 20
runs-on: macos-10.15
instances: '["git-master", "latest"]'
freebsd-123:
name: FreeBSD 12.3
if: github.event_name == 'push' || needs.collect-changed-files.outputs.run-tests == 'true'
uses: ./.github/workflows/test-bsd.yml
needs:
- lint
- generate-actions-workflow
with:
distro-slug: freebsd-123
display-name: FreeBSD 12.3
timeout: 20
runs-on: macos-10.15
instances: '["git-master", "latest"]'
openbsd-6:
name: OpenBSD 6
if: github.event_name == 'push' || needs.collect-changed-files.outputs.run-tests == 'true'
uses: ./.github/workflows/test-bsd.yml
needs:
- lint
- generate-actions-workflow
with:
distro-slug: openbsd-6
display-name: OpenBSD 6
timeout: 20
runs-on: macos-10.15
instances: '["latest"]'
macos-1015:
name: macOS 10.15
if: github.event_name == 'push' || needs.collect-changed-files.outputs.run-tests == 'true'
uses: ./.github/workflows/test-macos.yml
needs:
- lint
- generate-actions-workflow
with:
distro-slug: macos-1015
display-name: macOS 10.15
timeout: 20
runs-on: macos-10.15
instances: '["stable-3003", "stable-3004", "latest"]'
macos-11:
name: macOS 11
if: github.event_name == 'push' || needs.collect-changed-files.outputs.run-tests == 'true'
uses: ./.github/workflows/test-macos.yml
needs:
- lint
- generate-actions-workflow
with:
distro-slug: macos-11
display-name: macOS 11
timeout: 20
runs-on: macos-11
instances: '["stable-3003", "stable-3004", "latest"]'
macos-12:
name: macOS 12
if: github.event_name == 'push' || needs.collect-changed-files.outputs.run-tests == 'true'
uses: ./.github/workflows/test-macos.yml
needs:
- lint
- generate-actions-workflow
with:
distro-slug: macos-12
display-name: macOS 12
timeout: 20
runs-on: macos-12
instances: '["stable-3003", "stable-3004", "latest"]'
windows-2019:
name: Windows 2019
if: github.event_name == 'push' || needs.collect-changed-files.outputs.run-tests == 'true'
uses: ./.github/workflows/test-windows.yml
needs:
- lint
- generate-actions-workflow
with:
distro-slug: windows-2019
display-name: Windows 2019
timeout: 20
runs-on: windows-2019
instances: '["stable-3003", "stable-3004", "latest"]'
windows-2022:
name: Windows 2022
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
timeout: 20
runs-on: windows-2022
instances: '["stable-3003", "stable-3004", "latest"]'
almalinux-8:
name: AlmaLinux 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: almalinux-8
display-name: AlmaLinux 8
timeout: 20
instances: '["stable-3003", "git-3003", "stable-3004", "git-3004", "git-master", "latest"]'
amazon-2:
name: Amazon 2
if: github.event_name == 'push' || needs.collect-changed-files.outputs.run-tests == 'true'
uses: ./.github/workflows/test-linux.yml
needs:
- lint
- generate-actions-workflow
with:
distro-slug: amazon-2
display-name: Amazon 2
timeout: 20
instances: '["stable-3003", "stable-3004", "git-master", "latest"]'
arch:
name: Arch
if: github.event_name == 'push' || needs.collect-changed-files.outputs.run-tests == 'true'
uses: ./.github/workflows/test-linux.yml
needs:
- lint
- generate-actions-workflow
with:
distro-slug: arch
display-name: Arch
timeout: 20
instances: '["git-master", "latest"]'
centos-7:
name: CentOS 7
if: github.event_name == 'push' || needs.collect-changed-files.outputs.run-tests == 'true'
uses: ./.github/workflows/test-linux.yml
needs:
- lint
- generate-actions-workflow
with:
distro-slug: centos-7
display-name: CentOS 7
timeout: 20
instances: '["stable-3003", "git-3003", "stable-3004", "git-3004", "git-master", "latest"]'
centos-stream8:
name: CentOS Stream 8
if: github.event_name == 'push' || needs.collect-changed-files.outputs.run-tests == 'true'
uses: ./.github/workflows/test-linux.yml
needs:
- lint
- generate-actions-workflow
with:
distro-slug: centos-stream8
display-name: CentOS Stream 8
timeout: 20
instances: '["stable-3003", "git-3003", "stable-3004", "git-3004", "git-master", "latest"]'
debian-10:
name: Debian 10
if: github.event_name == 'push' || needs.collect-changed-files.outputs.run-tests == 'true'
uses: ./.github/workflows/test-linux.yml
needs:
- lint
- generate-actions-workflow
with:
distro-slug: debian-10
display-name: Debian 10
timeout: 20
instances: '["stable-3003", "stable-3004", "git-master", "latest"]'
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
timeout: 20
instances: '["stable-3004", "git-master", "latest"]'
debian-9:
name: Debian 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: debian-9
display-name: Debian 9
timeout: 20
instances: '["stable-3003", "git-3003", "stable-3004", "git-3004", "git-master", "latest"]'
fedora-35:
name: Fedora 35
if: github.event_name == 'push' || needs.collect-changed-files.outputs.run-tests == 'true'
uses: ./.github/workflows/test-linux.yml
needs:
- lint
- generate-actions-workflow
with:
distro-slug: fedora-35
display-name: Fedora 35
timeout: 20
instances: '["git-master", "latest"]'
fedora-36:
name: Fedora 36
if: github.event_name == 'push' || needs.collect-changed-files.outputs.run-tests == 'true'
uses: ./.github/workflows/test-linux.yml
needs:
- lint
- generate-actions-workflow
with:
distro-slug: fedora-36
display-name: Fedora 36
timeout: 20
instances: '["git-master", "latest"]'
gentoo:
name: Gentoo
if: github.event_name == 'push'
uses: ./.github/workflows/test-linux.yml
needs:
- lint
- generate-actions-workflow
with:
distro-slug: gentoo
display-name: Gentoo
timeout: 90
instances: '["git-master", "latest"]'
gentoo-systemd:
name: Gentoo (systemd)
if: github.event_name == 'push'
uses: ./.github/workflows/test-linux.yml
needs:
- lint
- generate-actions-workflow
with:
distro-slug: gentoo-systemd
display-name: Gentoo (systemd)
timeout: 90
instances: '["git-master", "latest"]'
opensuse-15:
name: Opensuse 15
if: github.event_name == 'push' || needs.collect-changed-files.outputs.run-tests == 'true'
uses: ./.github/workflows/test-linux.yml
needs:
- lint
- generate-actions-workflow
with:
distro-slug: opensuse-15
display-name: Opensuse 15
timeout: 20
instances: '["git-master", "latest"]'
opensuse-tumbleweed:
name: Opensuse Tumbleweed
if: github.event_name == 'push' || needs.collect-changed-files.outputs.run-tests == 'true'
uses: ./.github/workflows/test-linux.yml
needs:
- lint
- generate-actions-workflow
with:
distro-slug: opensuse-tumbleweed
display-name: Opensuse Tumbleweed
timeout: 20
instances: '["git-master", "latest"]'
oraclelinux-7:
name: Oracle Linux 7
if: github.event_name == 'push' || needs.collect-changed-files.outputs.run-tests == 'true'
uses: ./.github/workflows/test-linux.yml
needs:
- lint
- generate-actions-workflow
with:
distro-slug: oraclelinux-7
display-name: Oracle Linux 7
timeout: 20
instances: '["stable-3003", "git-3003", "stable-3004", "git-3004", "git-master", "latest"]'
oraclelinux-8:
name: Oracle Linux 8
if: github.event_name == 'push' || needs.collect-changed-files.outputs.run-tests == 'true'
uses: ./.github/workflows/test-linux.yml
needs:
- lint
- generate-actions-workflow
with:
distro-slug: oraclelinux-8
display-name: Oracle Linux 8
timeout: 20
instances: '["stable-3003", "git-3003", "stable-3004", "git-3004", "git-master", "latest"]'
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
timeout: 20
instances: '["stable-3004", "git-3004", "git-master", "latest"]'
ubuntu-1804:
name: Ubuntu 18.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-1804
display-name: Ubuntu 18.04
timeout: 20
instances: '["stable-3003", "git-3003", "stable-3004", "git-3004", "git-master", "latest"]'
ubuntu-2004:
name: Ubuntu 20.04
if: github.event_name == 'push' || needs.collect-changed-files.outputs.run-tests == 'true'
uses: ./.github/workflows/test-linux.yml
needs:
- lint
- generate-actions-workflow
with:
distro-slug: ubuntu-2004
display-name: Ubuntu 20.04
timeout: 20
instances: '["stable-3003", "stable-3004", "git-master", "latest"]'
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
timeout: 20
instances: '["stable-3004", "git-master", "latest"]'
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
- freebsd-131
- freebsd-123
- openbsd-6
- macos-1015
- macos-11
- macos-12
- windows-2019
- windows-2022
- almalinux-8
- amazon-2
- arch
- centos-7
- centos-stream8
- debian-10
- debian-11
- debian-9
- fedora-35
- fedora-36
- gentoo
- gentoo-systemd
- opensuse-15
- opensuse-tumbleweed
- oraclelinux-7
- oraclelinux-8
- rockylinux-8
- ubuntu-1804
- ubuntu-2004
- ubuntu-2204
if: always()
steps:
- name: Download Exit Status Files
if: always()
uses: actions/download-artifact@v3
with:
name: exitstatus
path: exitstatus
- name: Delete Exit Status Artifacts
if: always()
uses: geekyeggo/delete-artifact@v1
with:
name: 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"

View file

@ -1,81 +1,292 @@
name: Release name: Cut Release
on: on: workflow_dispatch
push:
tags:
- '*'
jobs: jobs:
bootstrap: update-develop:
name: Update Release Checksums on Develop name: Update CHANGELOG.md and bootstrap-salt.sh
runs-on: ubuntu-latest runs-on: ubuntu-latest
if: github.repository == 'saltstack/salt-bootstrap'
permissions:
contents: write # To be able to publish the release
environment: Release
steps: steps:
- uses: actions/checkout@v2 - name: Check For Admin Permission
if: github.repository == 'saltstack/salt-bootstrap' uses: actions-cool/check-user-permission@v2
with:
require: admin
username: ${{ github.triggering_actor }}
- name: Check Branch Triggering Release
run: |
if [ "${{ github.ref_name }}" != "develop" ]
then
echo "This workflow should only be triggered from the develop branch"
exit 1
fi
- uses: actions/checkout@v3
with:
ref: develop
repository: ${{ github.repository }}
ssh-key: ${{ secrets.SALT_BOOTSTRAP_RELEASE_KEY }}
- name: Update Git Settings
run: |
git config --local user.email "41898282+github-actions[bot]@users.noreply.github.com"
git config --local user.name "github-actions[bot] on behalf of ${{ github.event.sender.login }}"
- name: Set up Python 3.7
uses: actions/setup-python@v4
with:
python-version: 3.9
- name: Install Requirements
run: |
python3 -m pip install requests pre-commit
pre-commit install --install-hooks
- name: Update Repository
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
run: |
python3 .github/workflows/scripts/cut-release.py --repo ${{ github.repository }}
export CUT_RELEASE_VERSION=$(cat .cut_release_version)
echo "CUT_RELEASE_VERSION=${CUT_RELEASE_VERSION}" >> $GITHUB_ENV
- name: Show Changes
run: |
git status
git diff
- name: Commit Changes
run: |
git commit -am "Update develop branch for the ${CUT_RELEASE_VERSION} release" || \
git commit -am "Update develop branch for the ${CUT_RELEASE_VERSION} release"
- name: Push Changes
uses: ad-m/github-push-action@master
with:
repository: ${{ github.repository }}
branch: develop
ssh: true
- name: Upload Release Details
uses: actions/upload-artifact@v3
with:
name: release-details
path: |
.cut_release_version
.cut_release_changes
merge-develop-into-stable:
name: Merge develop into stable
runs-on: ubuntu-latest
if: github.repository == 'saltstack/salt-bootstrap'
needs: update-develop
environment: Release
permissions:
contents: write # To be able to publish the release
steps:
- uses: actions/checkout@v3
with: with:
ref: stable ref: stable
repository: ${{ github.repository }}
ssh-key: ${{ secrets.SALT_BOOTSTRAP_RELEASE_KEY }}
fetch-depth: 0
- name: Get bootstrap-salt.sh sha256sum - name: Update Git Settings
if: github.repository == 'saltstack/salt-bootstrap' run: |
git config --local user.email "41898282+github-actions[bot]@users.noreply.github.com"
git config --local user.name "github-actions[bot] on behalf of @${{ github.event.sender.login }}"
- name: Download Release Details
uses: actions/download-artifact@v3
with:
name: release-details
- name: Update Environment
run: |
export CUT_RELEASE_VERSION=$(cat .cut_release_version)
echo "CUT_RELEASE_VERSION=${CUT_RELEASE_VERSION}" >> $GITHUB_ENV
- name: Merge develop into stable
run: |
git merge --no-ff -m "Merge develop into stable" 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
git add $f
done
git commit -a -m "Merge develop into stable(auto resolving conflicts to the develop version)"
fi
- name: Tag Release
uses: mathieudutour/github-tag-action@v6.0
with:
github_token: ${{ secrets.GITHUB_TOKEN }}
custom_tag: ${{ env.CUT_RELEASE_VERSION }}
tag_prefix: ""
create_annotated_tag: true
- name: Push Changes
uses: ad-m/github-push-action@master
with:
repository: ${{ github.repository }}
branch: stable
tags: true
ssh: true
publish-release:
name: Create GitHub Release
runs-on: ubuntu-latest
if: github.repository == 'saltstack/salt-bootstrap'
needs: merge-develop-into-stable
environment: Release
permissions:
contents: write # To be able to publish the release
steps:
- uses: actions/checkout@v3
with:
ref: stable
repository: ${{ github.repository }}
ssh-key: ${{ secrets.SALT_BOOTSTRAP_RELEASE_KEY }}
- name: Download Release Details
uses: actions/download-artifact@v3
with:
name: release-details
- name: Update Environment
run: |
export CUT_RELEASE_VERSION=$(cat .cut_release_version)
echo "CUT_RELEASE_VERSION=${CUT_RELEASE_VERSION}" >> $GITHUB_ENV
- name: 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.ps1
LICENSE
- name: Delete Release Details Artifact
uses: geekyeggo/delete-artifact@v1
with:
name: release-details
failOnError: false
update-develop-checksums:
name: Update Release Checksums on Develop
runs-on: ubuntu-latest
if: github.repository == 'saltstack/salt-bootstrap'
needs: publish-release
environment: Release
permissions:
contents: write # For action peter-evans/create-pull-request
pull-requests: write # For action peter-evans/create-pull-request
steps:
- uses: actions/checkout@v3
with:
ref: stable
repository: ${{ github.repository }}
ssh-key: ${{ secrets.SALT_BOOTSTRAP_RELEASE_KEY }}
- name: Get bootstrap-salt.sh on stable branch sha256sum
run: | run: |
echo "SH=$(sha256sum bootstrap-salt.sh | awk '{ print $1 }')" >> $GITHUB_ENV echo "SH=$(sha256sum bootstrap-salt.sh | awk '{ print $1 }')" >> $GITHUB_ENV
echo "BS_VERSION=$(sh bootstrap-salt.sh -v | awk '{ print $4 }')" >> $GITHUB_ENV echo "BS_VERSION=$(sh bootstrap-salt.sh -v | awk '{ print $4 }')" >> $GITHUB_ENV
- uses: actions/checkout@v2 - uses: actions/checkout@v3
if: github.repository == 'saltstack/salt-bootstrap'
with: with:
ref: develop ref: develop
repository: ${{ github.repository }}
ssh-key: ${{ secrets.SALT_BOOTSTRAP_RELEASE_KEY }}
- name: Update Git Settings
run: |
git config --local user.email "41898282+github-actions[bot]@users.noreply.github.com"
git config --local user.name "github-actions[bot] on behalf of @${{ github.event.sender.login }}"
- name: Set up Python 3.7 - name: Set up Python 3.7
if: github.repository == 'saltstack/salt-bootstrap' uses: actions/setup-python@v4
uses: actions/setup-python@v1
with: with:
python-version: 3.7 python-version: 3.7
- name: Update Latest Release on README - name: Update Latest Release on README
if: github.repository == 'saltstack/salt-bootstrap'
run: | run: |
python3 .github/workflows/scripts/update-release-shasum.py ${{ env.BS_VERSION }} ${{ env.SH }} python3 .github/workflows/scripts/update-release-shasum.py ${{ env.BS_VERSION }} ${{ env.SH }}
- name: Create Pull Request Against Develop - name: Show Changes
uses: peter-evans/create-pull-request@v3 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@master
with: with:
title: Update README.rst with ${{ env.BS_VERSION }} release sha256sum repository: ${{ github.repository }}
commit-message: Update README.rst with ${{ env.BS_VERSION }} release sha256sum branch: develop
delete-branch: true ssh: true
salt: salt:
name: Update Release on Salt Repo name: Update Release on Salt Repo
runs-on: ubuntu-latest runs-on: ubuntu-latest
if: github.repository == 'saltstack/salt-bootstrap'
needs: update-develop-checksums
environment: Open PR Against Salt
permissions:
contents: write # For action peter-evans/create-pull-request
pull-requests: write # For action peter-evans/create-pull-request
steps: steps:
- uses: actions/checkout@v2 - uses: actions/checkout@v3
if: github.repository == 'saltstack/salt-bootstrap'
with: with:
ref: stable ref: stable
repository: ${{ github.repository }}
- name: Get bootstrap version - name: Get bootstrap version
if: github.repository == 'saltstack/salt-bootstrap'
run: | run: |
echo "BS_VERSION=$(sh bootstrap-salt.sh -v | awk '{ print $4 }')" >> $GITHUB_ENV echo "BS_VERSION=$(sh bootstrap-salt.sh -v | awk '{ print $4 }')" >> $GITHUB_ENV
- uses: actions/checkout@v2 - uses: actions/checkout@v3
if: github.repository == 'saltstack/salt-bootstrap'
with: with:
repository: saltstack/salt repository: saltstack/salt
ref: master ref: master
path: salt-checkout path: salt-checkout
token: ${{ secrets.SALT_REPO_WRITE_TOKEN }}
- name: Update Git Settings
run: |
git config --local user.email "41898282+github-actions[bot]@users.noreply.github.com"
git config --local user.name "github-actions[bot] on behalf of @${{ github.event.sender.login }}"
- name: Update bootstrap script on Salt - name: Update bootstrap script on Salt
if: github.repository == 'saltstack/salt-bootstrap'
run: | run: |
cp bootstrap-salt.sh salt-checkout/salt/cloud/deploy/bootstrap-salt.sh cp bootstrap-salt.sh salt-checkout/salt/cloud/deploy/bootstrap-salt.sh
- name: Create Pull Request Against Develop - name: Create Pull Request Against Develop
uses: peter-evans/create-pull-request@v3 uses: peter-evans/create-pull-request@v4
with: with:
title: Update the bootstrap script to v${{ env.BS_VERSION }} title: "Update the bootstrap script to v${{ env.BS_VERSION }}"
path: salt-checkout path: salt-checkout
base: master
token: ${{ secrets.SALT_REPO_WRITE_TOKEN }}
commit-message: Update the bootstrap script to v${{ env.BS_VERSION }} commit-message: Update the bootstrap script to v${{ env.BS_VERSION }}
delete-branch: true delete-branch: true

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

@ -0,0 +1,203 @@
#!/usr/bin/env python
import os
import re
import sys
import pathlib
import argparse
import requests
from datetime import datetime
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}",
)
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)
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()
)
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(),
)
)
parser.exit(status=0, message="CHANGELOG.md and bootstrap-salt.sh updated\n")
if __name__ == "__main__":
main()

View file

@ -1,6 +1,7 @@
#!/usr/bin/env python #!/usr/bin/env python
import sys import sys
import pathlib import pathlib
import subprocess
THIS_FILE = pathlib.Path(__file__).resolve() THIS_FILE = pathlib.Path(__file__).resolve()
CODE_ROOT = THIS_FILE.parent.parent.parent.parent CODE_ROOT = THIS_FILE.parent.parent.parent.parent
@ -9,6 +10,9 @@ README_PATH = CODE_ROOT / "README.rst"
def main(version, sha256sum): def main(version, sha256sum):
in_contents = README_PATH.read_text() 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 = "" out_contents = ""
found_anchor = False found_anchor = False
updated_version = False updated_version = False
@ -32,6 +36,14 @@ def main(version, sha256sum):
if in_contents != out_contents: if in_contents != out_contents:
README_PATH.write_text(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__": if __name__ == "__main__":
main(sys.argv[1], sys.argv[2]) main(sys.argv[1], sys.argv[2])

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

@ -0,0 +1,33 @@
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@v3
with:
name: exitstatus
path: exitstatus
- name: Delete Exit Status Artifacts
if: always()
uses: geekyeggo/delete-artifact@v1
with:
name: 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"

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

@ -0,0 +1,102 @@
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@v3
with:
fetch-depth: 0
- name: Get specific changed files
id: changed-files
uses: tj-actions/changed-files@v25
with:
separator: ","
files: |
bootstrap-salt.*
Gemfile
kitchen*.yml
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 }}"
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@v3
- name: Set up Python 3.9
uses: actions/setup-python@v4
with:
python-version: 3.9
- 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@v3
with:
name: exitstatus
path: exitstatus
lint:
name: Lint
runs-on: ubuntu-latest
needs: collect-changed-files
container: koalaman/shellcheck-alpine:v0.6.0
if: github.event_name == 'push' || needs.collect-changed-files.outputs.run-tests == 'true'
steps:
- uses: actions/checkout@v3
- 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@v3
with:
name: exitstatus
path: exitstatus

View file

@ -1,6 +1,8 @@
#!/usr/bin/env python #!/usr/bin/env python
# -*- coding: utf-8 -*- # -*- coding: utf-8 -*-
import os import os
import json
import pathlib
import datetime import datetime
os.chdir(os.path.abspath(os.path.dirname(__file__))) os.chdir(os.path.abspath(os.path.dirname(__file__)))
@ -14,7 +16,6 @@ LINUX_DISTROS = [
"debian-10", "debian-10",
"debian-11", "debian-11",
"debian-9", "debian-9",
"fedora-34",
"fedora-35", "fedora-35",
"fedora-36", "fedora-36",
"gentoo", "gentoo",
@ -26,10 +27,23 @@ LINUX_DISTROS = [
"rockylinux-8", "rockylinux-8",
"ubuntu-1804", "ubuntu-1804",
"ubuntu-2004", "ubuntu-2004",
"ubuntu-2110",
"ubuntu-2204", "ubuntu-2204",
] ]
OSX = WINDOWS = [] WINDOWS = [
"windows-2019",
"windows-2022",
]
OSX = [
"macos-1015",
"macos-11",
"macos-12",
]
BSD = [
"freebsd-131",
"freebsd-123",
"openbsd-6",
]
STABLE_DISTROS = [ STABLE_DISTROS = [
"almalinux-8", "almalinux-8",
@ -40,7 +54,6 @@ STABLE_DISTROS = [
"debian-10", "debian-10",
"debian-11", "debian-11",
"debian-9", "debian-9",
"fedora-34",
"fedora-35", "fedora-35",
"fedora-36", "fedora-36",
"gentoo", "gentoo",
@ -52,50 +65,12 @@ STABLE_DISTROS = [
"rockylinux-8", "rockylinux-8",
"ubuntu-1804", "ubuntu-1804",
"ubuntu-2004", "ubuntu-2004",
"ubuntu-2110",
"ubuntu-2204",
]
BLACKLIST_3002 = [
"almalinux-8",
"arch",
"centos-stream8",
"debian-11",
"fedora-34",
"fedora-35",
"fedora-36",
"gentoo",
"gentoo-systemd",
"opensuse-15",
"opensuse-tumbleweed",
"rockylinux-8",
"ubuntu-2204",
]
BLACKLIST_GIT_3002 = [
"almalinux-8",
"amazon-2",
"arch",
"centos-stream8",
"debian-10",
"debian-11",
"fedora-34",
"fedora-35",
"fedora-36",
"gentoo",
"gentoo-systemd",
"opensuse-15",
"opensuse-tumbleweed",
"rockylinux-8",
"ubuntu-2004",
"ubuntu-2110",
"ubuntu-2204", "ubuntu-2204",
] ]
BLACKLIST_3003 = [ BLACKLIST_3003 = [
"arch", "arch",
"debian-11", "debian-11",
"fedora-34",
"fedora-35", "fedora-35",
"fedora-36", "fedora-36",
"gentoo", "gentoo",
@ -111,7 +86,6 @@ BLACKLIST_GIT_3003 = [
"arch", "arch",
"debian-10", "debian-10",
"debian-11", "debian-11",
"fedora-34",
"fedora-35", "fedora-35",
"fedora-36", "fedora-36",
"gentoo", "gentoo",
@ -126,7 +100,6 @@ BLACKLIST_GIT_3003 = [
BLACKLIST_3004 = [ BLACKLIST_3004 = [
"arch", "arch",
"fedora-34",
"fedora-35", "fedora-35",
"fedora-36", "fedora-36",
"gentoo", "gentoo",
@ -140,7 +113,6 @@ BLACKLIST_GIT_3004 = [
"arch", "arch",
"debian-10", "debian-10",
"debian-11", "debian-11",
"fedora-34",
"fedora-35", "fedora-35",
"fedora-36", "fedora-36",
"gentoo", "gentoo",
@ -152,23 +124,21 @@ BLACKLIST_GIT_3004 = [
"ubuntu-2204", "ubuntu-2204",
] ]
SALT_BRANCHES = [ SALT_VERSIONS = [
"3002",
"3003", "3003",
"3004", "3004",
"master", "master",
"latest", "latest",
] ]
BRANCH_DISPLAY_NAMES = { VERSION_DISPLAY_NAMES = {
"3002": "v3002",
"3003": "v3003", "3003": "v3003",
"3004": "v3004", "3004": "v3004",
"master": "Master", "master": "Master",
"latest": "Latest", "latest": "Latest",
} }
STABLE_BRANCH_BLACKLIST = [] STABLE_VERSION_BLACKLIST = []
LATEST_PKG_BLACKLIST = [] LATEST_PKG_BLACKLIST = []
@ -181,7 +151,6 @@ DISTRO_DISPLAY_NAMES = {
"debian-10": "Debian 10", "debian-10": "Debian 10",
"debian-11": "Debian 11", "debian-11": "Debian 11",
"debian-9": "Debian 9", "debian-9": "Debian 9",
"fedora-34": "Fedora 34",
"fedora-35": "Fedora 35", "fedora-35": "Fedora 35",
"fedora-36": "Fedora 36", "fedora-36": "Fedora 36",
"gentoo": "Gentoo", "gentoo": "Gentoo",
@ -193,8 +162,15 @@ DISTRO_DISPLAY_NAMES = {
"rockylinux-8": "Rocky Linux 8", "rockylinux-8": "Rocky Linux 8",
"ubuntu-1804": "Ubuntu 18.04", "ubuntu-1804": "Ubuntu 18.04",
"ubuntu-2004": "Ubuntu 20.04", "ubuntu-2004": "Ubuntu 20.04",
"ubuntu-2110": "Ubuntu 21.10",
"ubuntu-2204": "Ubuntu 22.04", "ubuntu-2204": "Ubuntu 22.04",
"macos-1015": "macOS 10.15",
"macos-11": "macOS 11",
"macos-12": "macOS 12",
"freebsd-131": "FreeBSD 13.1",
"freebsd-123": "FreeBSD 12.3",
"openbsd-6": "OpenBSD 6",
"windows-2019": "Windows 2019",
"windows-2022": "Windows 2022",
} }
TIMEOUT_DEFAULT = 20 TIMEOUT_DEFAULT = 20
@ -202,170 +178,270 @@ TIMEOUT_OVERRIDES = {
"gentoo": 90, "gentoo": 90,
"gentoo-systemd": 90, "gentoo-systemd": 90,
} }
BRANCH_ONLY_OVERRIDES = [ VERSION_ONLY_OVERRIDES = [
"gentoo", "gentoo",
"gentoo-systemd", "gentoo-systemd",
] ]
TEMPLATE = """
{distro}:
name: {display_name}{ifcheck}
uses: {uses}
needs:
- lint
- generate-actions-workflow
with:
distro-slug: {distro}
display-name: {display_name}
timeout: {timeout_minutes}{runs_on}
instances: '{instances}'
"""
def generate_test_jobs(): def generate_test_jobs():
test_jobs = "" test_jobs = ""
branch_only_test_jobs = "" needs = ["lint", "generate-actions-workflow"]
for distro in LINUX_DISTROS + OSX + WINDOWS: for distro in BSD:
test_jobs += "\n"
runs_on = "macos-10.15"
runs_on = f"\n runs-on: {runs_on}"
ifcheck = "\n if: github.event_name == 'push' || needs.collect-changed-files.outputs.run-tests == 'true'"
uses = "./.github/workflows/test-bsd.yml"
instances = []
timeout_minutes = ( timeout_minutes = (
TIMEOUT_OVERRIDES[distro] TIMEOUT_OVERRIDES[distro]
if distro in TIMEOUT_OVERRIDES if distro in TIMEOUT_OVERRIDES
else TIMEOUT_DEFAULT else TIMEOUT_DEFAULT
) )
needs = " needs: lint" for salt_version in SALT_VERSIONS:
if distro in BRANCH_ONLY_OVERRIDES:
needs = ""
current_test_jobs = ""
for branch in SALT_BRANCHES: if salt_version == "latest":
if branch == "latest":
if distro in LATEST_PKG_BLACKLIST: if distro in LATEST_PKG_BLACKLIST:
continue 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: instances.append(salt_version)
current_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],
),
timeout_minutes=timeout_minutes,
needs=needs,
)
)
continue continue
for python_version in ("py3",): if distro == "openbsd-6":
# Only test latest on OpenBSD 6
continue
for bootstrap_type in ("stable", "git"): if salt_version != "master":
if bootstrap_type == "stable": # Only test the master branch on BSD's
if branch == "master": continue
# For the master branch there's no stable build
continue
if distro not in STABLE_DISTROS:
continue
if branch in STABLE_BRANCH_BLACKLIST: # BSD's don't have a stable release, only use git
continue for bootstrap_type in ("git",):
if distro.startswith("fedora") and branch != "latest":
# Fedora does not keep old builds around
continue
BLACKLIST = {
"3003": BLACKLIST_3003,
"3004": BLACKLIST_3004,
}
if bootstrap_type == "git":
BLACKLIST = { BLACKLIST = {
"3002": BLACKLIST_3002, "3003": BLACKLIST_GIT_3003,
"3003": BLACKLIST_3003, "3004": BLACKLIST_GIT_3004,
"3004": BLACKLIST_3004,
} }
if bootstrap_type == "git":
BLACKLIST = {
"3002": BLACKLIST_GIT_3002,
"3003": BLACKLIST_GIT_3003,
"3004": BLACKLIST_GIT_3004,
}
# .0 versions are a virtual version for pinning to the first point release of a major release, such as 3002, there is no git version. # .0 versions are a virtual version for pinning to the first
if branch.endswith("-0"): # point release of a major release, such as 3003,
continue # there is no git version.
if salt_version.endswith("-0"):
if (
branch in ("3002", "3003", "3004")
and distro in BLACKLIST[branch]
):
continue continue
if distro in LINUX_DISTROS: if (
template = "linux.yml" salt_version in ("3003", "3004")
elif distro in OSX: and distro in BLACKLIST[salt_version]
template = "osx.yml" ):
elif distro in WINDOWS: continue
template = "windows.yml"
else:
print("Don't know how to handle {}".format(distro))
with open(template) as rfh: kitchen_target = f"{bootstrap_type}-{salt_version}"
current_test_jobs += "\n{}\n".format( instances.append(kitchen_target)
rfh.read().format(
distro=distro, if instances:
branch=branch, needs.append(distro)
python_version=python_version, test_jobs += TEMPLATE.format(
bootstrap_type=bootstrap_type, distro=distro,
display_name="{} {} {} {}".format( runs_on=runs_on,
DISTRO_DISPLAY_NAMES[distro], uses=uses,
BRANCH_DISPLAY_NAMES[branch], ifcheck=ifcheck,
python_version.capitalize(), instances=json.dumps(instances),
bootstrap_type.capitalize(), display_name=DISTRO_DISPLAY_NAMES[distro],
), timeout_minutes=timeout_minutes,
timeout_minutes=timeout_minutes, )
needs=needs,
) test_jobs += "\n"
) for distro in OSX:
if distro in BRANCH_ONLY_OVERRIDES: test_jobs += "\n"
branch_only_test_jobs += current_test_jobs if distro == "macos-1015":
runs_on = "macos-10.15"
else: else:
test_jobs += current_test_jobs 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("lint.yml") as rfh: for salt_version in SALT_VERSIONS:
lint_job = "\n{}\n".format(rfh.read())
with open("pre-commit.yml") as rfh: if salt_version == "latest":
pre_commit_job = "\n{}\n".format(rfh.read())
with open("../main.yml", "w") as wfh: instances.append(salt_version)
with open("main.yml") as rfh: continue
wfh.write(
"{}\n".format( for bootstrap_type in ("stable",):
rfh.read() if bootstrap_type == "stable":
.format( if salt_version == "master":
jobs="{pre_commit}{lint}{test}".format( # For the master branch there's no stable build
lint=lint_job, continue
test=test_jobs,
pre_commit=pre_commit_job, kitchen_target = f"{bootstrap_type}-{salt_version}"
), instances.append(kitchen_target)
on="push, pull_request",
name="Testing", if instances:
) needs.append(distro)
.strip() test_jobs += TEMPLATE.format(
) distro=distro,
runs_on=runs_on,
uses=uses,
ifcheck=ifcheck,
instances=json.dumps(instances),
display_name=DISTRO_DISPLAY_NAMES[distro],
timeout_minutes=timeout_minutes,
) )
with open("../main-branch-only.yml", "w") as wfh: test_jobs += "\n"
with open("main.yml") as rfh: for distro in WINDOWS:
wfh.write( test_jobs += "\n"
"{}\n".format( runs_on = f"\n runs-on: {distro}"
rfh.read() ifcheck = "\n if: github.event_name == 'push' || needs.collect-changed-files.outputs.run-tests == 'true'"
.format( uses = "./.github/workflows/test-windows.yml"
jobs="{test}".format( instances = []
test=branch_only_test_jobs, timeout_minutes = (
), TIMEOUT_OVERRIDES[distro]
on="push", if distro in TIMEOUT_OVERRIDES
name="Branch Testing", else TIMEOUT_DEFAULT
) )
.strip()
) 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 == "master":
# For the master branch there's no stable build
continue
kitchen_target = f"{bootstrap_type}-{salt_version}"
instances.append(kitchen_target)
if instances:
needs.append(distro)
test_jobs += TEMPLATE.format(
distro=distro,
runs_on=runs_on,
uses=uses,
ifcheck=ifcheck,
instances=json.dumps(instances),
display_name=DISTRO_DISPLAY_NAMES[distro],
timeout_minutes=timeout_minutes,
) )
test_jobs += "\n"
for distro in 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"):
if bootstrap_type == "stable":
if salt_version == "master":
# For the master branch there's no stable build
continue
if distro not in STABLE_DISTROS:
continue
if salt_version in STABLE_VERSION_BLACKLIST:
continue
if distro.startswith("fedora") and salt_version != "latest":
# Fedora does not keep old builds around
continue
BLACKLIST = {
"3003": BLACKLIST_3003,
"3004": BLACKLIST_3004,
}
if bootstrap_type == "git":
BLACKLIST = {
"3003": BLACKLIST_GIT_3003,
"3004": BLACKLIST_GIT_3004,
}
# .0 versions are a virtual version for pinning to the first
# point release of a major release, such as 3003,
# there is no git version.
if salt_version.endswith("-0"):
continue
if (
salt_version in ("3003", "3004")
and distro in BLACKLIST[salt_version]
):
continue
kitchen_target = f"{bootstrap_type}-{salt_version}"
instances.append(kitchen_target)
if instances:
needs.append(distro)
test_jobs += TEMPLATE.format(
distro=distro,
runs_on=runs_on,
uses=uses,
ifcheck=ifcheck,
instances=json.dumps(instances),
display_name=DISTRO_DISPLAY_NAMES[distro],
timeout_minutes=timeout_minutes,
)
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__": if __name__ == "__main__":
generate_test_jobs() 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: {timeout_minutes}
{needs}
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,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

97
.github/workflows/test-bsd.yml vendored Normal file
View file

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

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

@ -0,0 +1,80 @@
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
timeout:
type: number
required: false
default: 20
jobs:
Test:
name: ${{ matrix.instance }}
runs-on: ubuntu-latest
timeout-minutes: ${{ inputs.timeout }}
strategy:
fail-fast: false
matrix:
instance: ${{ fromJSON(inputs.instances) }}
steps:
- uses: actions/checkout@v3
- name: Setup Ruby
uses: ruby/setup-ruby@v1
with:
ruby-version: 2.6.10
bundler-cache: true
- name: Set up Python 3.9
uses: actions/setup-python@v4
with:
python-version: 3.9
- name: Install Python Dependencies
run: |
python3 -m pip install -U pip
python3 -m pip install -r tests/requirements.txt
- name: Create Test Instance
run: |
bundle exec kitchen create ${{ matrix.instance }}-${{ inputs.distro-slug }} || \
(sleep 10 && bundle exec kitchen create ${{ matrix.instance }}-${{ inputs.distro-slug }})
- name: Test Bootstrap
run: |
bundle exec kitchen verify ${{ matrix.instance }}-${{ inputs.distro-slug }}
- name: Destroy Test Instance
if: always()
run: |
bundle exec kitchen destroy ${{ matrix.instance }}-${{ inputs.distro-slug }}
- name: Set Exit Status
if: always()
run: |
mkdir exitstatus
echo "${{ job.status }}" > exitstatus/${{ github.job }}-${{ matrix.instance }}-${{ inputs.distro-slug }}
- name: Upload Exit Status
if: always()
uses: actions/upload-artifact@v3
with:
name: exitstatus
path: exitstatus

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

@ -0,0 +1,88 @@
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
timeout:
type: number
required: false
default: 20
description: The timeout(in minutes) for the workflow
env:
KITCHEN_LOCAL_YAML: 'kitchen.macos.yml'
jobs:
Test:
name: ${{ matrix.instance }}
runs-on: ${{ inputs.runs-on }}
timeout-minutes: ${{ inputs.timeout }}
strategy:
fail-fast: false
matrix:
instance: ${{ fromJSON(inputs.instances) }}
steps:
- uses: actions/checkout@v3
- name: Setup Ruby
uses: ruby/setup-ruby@v1
with:
ruby-version: 2.6.10
bundler-cache: true
- name: Set up Python 3.9
uses: actions/setup-python@v4
with:
python-version: 3.9
- name: Install Python Dependencies
run: |
pip install -U pip
pip install -r tests/requirements.txt
- name: Create Test Instance
run: |
bundle exec kitchen create ${{ matrix.instance }}-${{ inputs.distro-slug }} || \
(sleep 10 && bundle exec kitchen create ${{ matrix.instance }}-${{ inputs.distro-slug }})
- name: Test Bootstrap
run: |
bundle exec kitchen verify ${{ matrix.instance }}-${{ inputs.distro-slug }}
- name: Destroy Test Instance
if: always()
run: |
bundle exec kitchen destroy ${{ matrix.instance }}-${{ inputs.distro-slug }}
- name: Set Exit Status
if: always()
run: |
mkdir exitstatus
echo "${{ job.status }}" > exitstatus/${{ github.job }}-${{ matrix.instance }}-${{ inputs.distro-slug }}
- name: Upload Exit Status
if: always()
uses: actions/upload-artifact@v3
with:
name: exitstatus
path: exitstatus

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

@ -0,0 +1,113 @@
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
timeout:
type: number
required: false
default: 20
description: The timeout(in minutes) for the workflow
env:
machine_user: kitchen
machine_pass: Password1
machine_port: 5985
KITCHEN_LOCAL_YAML: 'kitchen.windows.yml'
jobs:
Test:
name: ${{ matrix.instance }}
runs-on: ${{ inputs.runs-on }}
timeout-minutes: ${{ inputs.timeout }}
strategy:
fail-fast: false
matrix:
instance: ${{ fromJSON(inputs.instances) }}
steps:
- uses: actions/checkout@v3
- name: Setup Ruby
uses: ruby/setup-ruby@v1
with:
ruby-version: 2.6.10
bundler-cache: true
- name: Install Chef
uses: actionshub/chef-install@1.1.0
with:
project: chef
version: 16.10.8
- name: Add Chef bindir to PATH
uses: myci-actions/export-env-var-powershell@1
with:
name: PATH
value: "C:\\opscode\\chef\\bin;C:\\opscode\\chef\\embedded\\bin;$env:PATH"
- name: Setup test user
run: |
$password = ConvertTo-SecureString $env:machine_pass -AsPlainText -Force
New-LocalUser $env:machine_user -Password $password
Add-LocalGroupMember -Group "Administrators" -Member $env:machine_user
- name: Set up WinRM
run: |
Set-WSManQuickConfig -Force
- name: Set up Python 3.9
uses: actions/setup-python@v4
with:
python-version: 3.9
- name: Install Python Dependencies
run: |
pip install -U pip
pip install -r tests/requirements.txt
- name: Create Test Instance
run: |
bundle exec kitchen create ${{ matrix.instance }}-${{ inputs.distro-slug }} || \
(sleep 10 && bundle exec kitchen create ${{ matrix.instance }}-${{ inputs.distro-slug }})
- name: Test Bootstrap
run: |
bundle exec kitchen verify ${{ matrix.instance }}-${{ inputs.distro-slug }}
- name: Destroy Test Instance
if: always()
run: |
bundle exec kitchen destroy ${{ matrix.instance }}-${{ inputs.distro-slug }}
- name: Set Exit Status
if: always()
run: |
mkdir exitstatus
echo "${{ job.status }}" > exitstatus/${{ github.job }}-${{ matrix.instance }}-${{ inputs.distro-slug }}
- name: Upload Exit Status
if: always()
uses: actions/upload-artifact@v3
with:
name: exitstatus
path: exitstatus

View file

@ -2,7 +2,7 @@
minimum_pre_commit_version: 1.15.2 minimum_pre_commit_version: 1.15.2
repos: repos:
- repo: https://github.com/pre-commit/pre-commit-hooks - repo: https://github.com/pre-commit/pre-commit-hooks
rev: v2.1.0 rev: v4.3.0
hooks: hooks:
- id: check-merge-conflict # Check for files that contain merge conflict strings. - id: check-merge-conflict # Check for files that contain merge conflict strings.
- id: trailing-whitespace # Trims trailing whitespace. - id: trailing-whitespace # Trims trailing whitespace.
@ -11,8 +11,13 @@ repos:
args: [--fix=lf] args: [--fix=lf]
- id: end-of-file-fixer # Makes sure files end in a newline and only a newline. - id: end-of-file-fixer # Makes sure files end in a newline and only a newline.
- repo: https://github.com/executablebooks/mdformat
rev: 0.7.14
hooks:
- id: mdformat
- repo: https://github.com/psf/black - repo: https://github.com/psf/black
rev: 22.3.0 rev: 22.6.0
hooks: hooks:
- id: black - id: black
@ -22,7 +27,7 @@ repos:
name: Generate Github Actions Workflow name: Generate Github Actions Workflow
entry: .github/workflows/templates/generate.py entry: .github/workflows/templates/generate.py
pass_filenames: false pass_filenames: false
files: '.github/workflows/templates/.*' files: '^.github/workflows/.*$'
language: script language: script
- id: shellcheck - id: shellcheck

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 Authors
======= -------
Here's a list of everyone who contributed to salt-bootstrap in alphabetical Here's a list of everyone who contributed to salt-bootstrap in alphabetical
order. order.

965
CHANGELOG.md Normal file
View file

@ -0,0 +1,965 @@
# v2022.08.12
## What's Changed
- Update README.rst with 2022.05.19 release sha256sum by @github-actions in https://github.com/saltstack/salt-bootstrap/pull/1832
- ci(eol): remove `fedora-34` and `3002` by @myii in https://github.com/saltstack/salt-bootstrap/pull/1835
- ci(freebsd): replace `13.0` with newly released `13.1` box by @myii in https://github.com/saltstack/salt-bootstrap/pull/1836
- feat: add support and update CI for openSUSE Leap 15.4 by @myii in https://github.com/saltstack/salt-bootstrap/pull/1837
- Rename to py39-salt, Python 3.9 is default version on FreeBSD by @krionbsd in https://github.com/saltstack/salt-bootstrap/pull/1842
- Adding bits to install Salt packages built using Tiamat. by @garethgreenaway in https://github.com/saltstack/salt-bootstrap/pull/1819
- replace all references of tiamat to onedir by @garethgreenaway in https://github.com/saltstack/salt-bootstrap/pull/1845
- use SHA-256 key for Red Hat / CentOS relesaes 9 and over. by @garethgreenaway in https://github.com/saltstack/salt-bootstrap/pull/1846
- Add version for Salt version 3005. by @garethgreenaway in https://github.com/saltstack/salt-bootstrap/pull/1848
- Automate the release process by @s0undt3ch in https://github.com/saltstack/salt-bootstrap/pull/1849
- Tighten Release Workflow Permissions & Rework the CI Workflow by @s0undt3ch in https://github.com/saltstack/salt-bootstrap/pull/1850
- Fix Release Workflow by @s0undt3ch in https://github.com/saltstack/salt-bootstrap/pull/1852
- Fix parameter name for the changed files action by @s0undt3ch in https://github.com/saltstack/salt-bootstrap/pull/1853
- Specify the repository by @s0undt3ch in https://github.com/saltstack/salt-bootstrap/pull/1854
**Full Changelog**: https://github.com/saltstack/salt-bootstrap/compare/v2022.05.19...v2022.08.12
# v2022.05.19:
- Fix situations where the registry key for root_dir does not exist
on Windows (twangboy) #1828
- Add Ubuntu 22 support (krionbsd) #1820
- Add Fedora 36 support (myii) #1818
# v2022.03.15:
- Add detection and functions for AlmaLinux and Rocky Linux (myii) #1803
- Copy configs to correct config dirs (v3004+) (dafyddj) #1798
- Support Non-LTS Ubuntu 21.04 & 21.10 (blindpirate) #1793
- Use native repositories for Debian 11 (jpacura) #1615
- Keep all command-line parameters when UAC is enabled (Simon-TheUser) #1613
- Add support for Raspbian (Jille) #1612
- Add openrc to alpine:latest dependencies (krionbsd) #1609
- Add CentOS 7 base key (bryceml) #1608
- Fix git master install on alpine 3.12+ (Nascire) #1604
- Sort help alphabetically (krionbsd) #1601
# v2021.09.17:
- Re-add Ubuntu-16 support as it's still supported with 3001 and 3002 (krionbsd) #1594
- Add oncoming 3004 release (krionbsd) #1593
# v2021.09.14:
- Update latest Salt version in README (krionbsd) #1588
- Make Python 3 the default (bryceml) #1577
- Don't output info if using the default -x value (bryceml) #1587
# v2021.08.19:
- Update README with instructions to use salt-bootstrap custom version (ari) #1580
- Remove unsupported versions (bryceml) #1578
- Update FreeBSD default Python version to 3.8 (myii) #1574
# v2021.06.23:
- Use salt.list instead of saltstack.list (bryceml) #1563
- Use fetch_url function for curl (xeacott) #1562
- Add Ubuntu 21.04 support (krionbsd) #1559
- Remove python2-futures package for ArchLinux (myii) #1546
# v2020.03.02:
- Debian 11 (bullseye/testing) support using Debian 10 packages (jpacura, bryceml) #1514
- Fix bootstrap on Gentoo (ijansky) #1516 #1518
- Fix project URLs (bryceml) #1526
- FreeBSD also needs the \_PKI_DIR reset (krionbsd) #1523
- Fix openSUSE Tumbleweed support. (myii) #1525
- Fix Debian and Ubuntu version support. (jpacura) #1529
- Powershell: Implement configure only option (for Vagrant). (dafyddj) #1530
- Powershell: Handle Vagrant's `grains_config` option. (dafyddj) #1520
- apt-key is deprecated on Debian 10+ and Ubuntu 20+ (bryceml) #1533
- Fix python Tornado on FreeBSD. (krionbsd) #1522
# v2020.10.20:
- Add support to allow bootstrapping Salt 3002 (s0undt3ch) #1506
# v2020.10.19:
- Fix v3000+ with git install on FreeBSD (krionbsd) #1487
- Update README giving ONE example of WINDOWS bootstrapping. Default to python3 instead of
python2. (noelmcloughlin) #1496
- Support git and stable salt-bootstrap on Gentoo. (ijansky) #1500
- Add support for Linux Mint 20. (taigrr) #1502
- Adding missing functions for Red Hat 8. (mbochenk) #1489
- Allow pinning minor 3xxx versions. (max-arnold) #1491
# v2020.06.23:
- Fix for Cumulus Linux 4.1 (darylturner) #1474
- Fix file download exit code, improve error message on failed download (bryceml) #1478
- Add support for Ubuntu 20.04 (bryceml) #1479
- Default Ubuntu 20.04 to Py3 since there isn't a Py2 release for it (bryceml) #1480
- Warn instead of exit when using -R and -x python3 on centos to allow installing python3
versions of salt on centos from other repos. Old unsupported releases probably need to
manually install epel-release before running the bootstrap script for versions before 2018.3.5
and before 2019.2.1 (bryceml) #1482
- Start maintaining .sha256 files for the bootstrap script
# v2020.05.28:
- Fix Opensuse Tumbleweed (noelmcloughlin) #1441
- Remove Debian 8 from Python 3 supported list (jay1648) #1448
- Fixed deps parsing for FreeBSD git installs (cedwards) #1462
- Added support for the upcoming Sodium release (s0undt3ch) #1466
- Fixed KDE Neon detection (ender8282) #1466
- Updated README python 2 and 3 installations (gdebunne) #1466
- Updated README and CONTRIBUTING to prefer Salt's master branch (DmitryKuzmenko) #1466
- Fixed IUS repo addresses (oeuftete) #1469
- Updated tests to assert target Python and Salt versions (s0undt3ch) #1470
- Fixed Amazon 2 -x support (s0undt3ch) #1470
- Fix Fedora stable installs for older releases (s0undt3ch) #1470
- Fix CentOS 8 installations (s0undt3ch) #1470
- Default Debian 10 to Py3 (s0undt3ch) #1470
- Fix Arch Linux installs (s0undt3ch) #1470
# v2020.02.24:
- Fix SLES 15 install (max298) #1431
- Fix 3000(Neon) stable install (sblaisot) #1433
- Fix Amazon Linux Py3 install (s0undt3ch) #1434
# v2020.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
# v2020.01.29:
- FreeBSD fixes (cedwards) #1413
- Support the upcoming Neon release (s0undt3ch) #1420
# v2020.01.21:
- FreeBSD fixes (kgbsd) #1376
- Fix macOS support (s0undt3ch) #1397
# v2019.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
# v2019.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
# v2019.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
# v2019.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
# v2019.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
# v2018.08.15:
- Add tests using kitchen-salt (gtmanfred) #1279
- Add python-futures to Py2 installs (gtmanfred) #1279
# v2018.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
# v2018.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
# v2017.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
# v2017.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
# v2017.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
# v2017.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
# v2016.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
# v2016.08.16:
- Ubuntu git mode: install all deps from SaltStack corp repo by default. (vutny) #936
# v2016.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
# v2016.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
# v2016.06.27:
- Fix race condition when doing one-liner bootstrap. (vutny) #889
- Add space back in between 'install' and '--install'. (rallytime) #890
# v2016.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
# v2016.05.11:
- Only overwrite the minion config file if '-C' is passed. Otherwise, preserve it. (rallytime) #848
# v2016.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
# v2016.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
# v2015.11.09
- Make sure that wget is installed. #868
# v2015.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
# v2015.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
# v2015.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
# v2015.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
# v2015.05.07:
- Lower required requests version dependency. Use system requests package where possible.
- Allow Ubuntu alternate ppas. Thanks Peter Tripp(notpeter). #563
# v2015.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
# v2015.03.15:
- Add multi-master support. Thanks Fred Reimer(freimer). #555
# v2015.03.04:
- Fix the salt package selection on Arch stable installs.
# v2015.02.28:
- Fix Debian backports repository.
# v2015.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
# v2015.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
# v2014.12.11:
- Enable binary installations on CentOS 7. Thanks ggillies
- Updated the URL for EPEL 7
# v2014.10.30:
- Apply the forking patch to openSUSE git installations.
# v2014.10.28:
- Install the python systemd bindings for Arch and Fedora git installations
- Allow cloning from Salt's git repository using HTTPS. #475
# v2014.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.
# v2014.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
# v2014.09.25:
- Properly detect Amazon AMI's >= 2014.9. #468
# v2014.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
# v2014.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
# v2014.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
# v2014.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).
# v2014.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.
# v2014.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.
# v2014.06.28:
- Fixed `tsflags` packages detection for RHEL and Oracle Linux 6.5
# v2014.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
# v2014.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
# v2014.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
# v2014.03.10-1:
- Distro Support Fixed:
- Fix the Debian services running function
# v2014.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.
# v2014.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).
# v2014.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)
# v2014.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`
# v2014.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.
# v1.5.11:
- Fixed an out of scope variable missed when moving functions around.
# v1.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)!
# v1.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.
# v1.5.8:
- Fixed an Ubuntu regression. `add-apt-repository` is only available on
`software-properties-common` after 12.10, inclusive. Thanks Diego Woitasen(diegows)
# v1.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).
# v1.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.
# v1.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!
# v1.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)
# v1.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)
# v1.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)
# v1.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
# v1.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

873
ChangeLog
View file

@ -1,873 +0,0 @@
Version TBD (In Progress on the Develop Branch):
Version 2022.03.15:
* Add detection and functions for AlmaLinux and Rocky Linux (myii) #1803
* Copy configs to correct config dirs (v3004+) (dafyddj) #1798
* Support Non-LTS Ubuntu 21.04 & 21.10 (blindpirate) #1793
* Use native repositories for Debian 11 (jpacura) #1615
* Keep all command-line parameters when UAC is enabled (Simon-TheUser) #1613
* Add support for Raspbian (Jille) #1612
* Add openrc to alpine:latest dependencies (krionbsd) #1609
* Add CentOS 7 base key (bryceml) #1608
* Fix git master install on alpine 3.12+ (Nascire) #1604
* Sort help alphabetically (krionbsd) #1601
Version 2021.09.17:
* Re-add Ubuntu-16 support as it's still supported with 3001 and 3002 (krionbsd) #1594
* Add oncoming 3004 release (krionbsd) #1593
Version 2021.09.14:
* Update latest Salt version in README (krionbsd) #1588
* Make Python 3 the default (bryceml) #1577
* Don't output info if using the default -x value (bryceml) #1587
Version 2021.08.19:
* Update README with instructions to use salt-bootstrap custom version (ari) #1580
* Remove unsupported versions (bryceml) #1578
* Update FreeBSD default Python version to 3.8 (myii) #1574
Version 2021.06.23:
* Use salt.list instead of saltstack.list (bryceml) #1563
* Use fetch_url function for curl (xeacott) #1562
* Add Ubuntu 21.04 support (krionbsd) #1559
* Remove python2-futures package for ArchLinux (myii) #1546
Version 2020.03.02:
* Debian 11 (bullseye/testing) support using Debian 10 packages (jpacura, bryceml) #1514
* Fix bootstrap on Gentoo (ijansky) #1516 #1518
* Fix project URLs (bryceml) #1526
* FreeBSD also needs the _PKI_DIR reset (krionbsd) #1523
* Fix openSUSE Tumbleweed support. (myii) #1525
* Fix Debian and Ubuntu version support. (jpacura) #1529
* Powershell: Implement configure only option (for Vagrant). (dafyddj) #1530
* Powershell: Handle Vagrant's `grains_config` option. (dafyddj) #1520
* apt-key is deprecated on Debian 10+ and Ubuntu 20+ (bryceml) #1533
* Fix python Tornado on FreeBSD. (krionbsd) #1522
Version 2020.10.20:
* Add support to allow bootstrapping Salt 3002 (s0undt3ch) #1506
Version 2020.10.19:
* Fix v3000+ with git install on FreeBSD (krionbsd) #1487
* Update README giving ONE example of WINDOWS bootstrapping. Default to python3 instead of
python2. (noelmcloughlin) #1496
* Support git and stable salt-bootstrap on Gentoo. (ijansky) #1500
* Add support for Linux Mint 20. (taigrr) #1502
* Adding missing functions for Red Hat 8. (mbochenk) #1489
* Allow pinning minor 3xxx versions. (max-arnold) #1491
Version 2020.06.23:
* Fix for Cumulus Linux 4.1 (darylturner) #1474
* Fix file download exit code, improve error message on failed download (bryceml) #1478
* Add support for Ubuntu 20.04 (bryceml) #1479
* Default Ubuntu 20.04 to Py3 since there isn't a Py2 release for it (bryceml) #1480
* Warn instead of exit when using -R and -x python3 on centos to allow installing python3
versions of salt on centos from other repos. Old unsupported releases probably need to
manually install epel-release before running the bootstrap script for versions before 2018.3.5
and before 2019.2.1 (bryceml) #1482
* Start maintaining .sha256 files for the bootstrap script
Version 2020.05.28:
* Fix Opensuse Tumbleweed (noelmcloughlin) #1441
* Remove Debian 8 from Python 3 supported list (jay1648) #1448
* Fixed deps parsing for FreeBSD git installs (cedwards) #1462
* Added support for the upcoming Sodium release (s0undt3ch) #1466
* Fixed KDE Neon detection (ender8282) #1466
* Updated README python 2 and 3 installations (gdebunne) #1466
* Updated README and CONTRIBUTING to prefer Salt's master branch (DmitryKuzmenko) #1466
* Fixed IUS repo addresses (oeuftete) #1469
* Updated tests to assert target Python and Salt versions (s0undt3ch) #1470
* Fixed Amazon 2 -x support (s0undt3ch) #1470
* Fix Fedora stable installs for older releases (s0undt3ch) #1470
* Fix CentOS 8 installations (s0undt3ch) #1470
* Default Debian 10 to Py3 (s0undt3ch) #1470
* Fix Arch Linux installs (s0undt3ch) #1470
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

873
ChangeLog~HEAD Normal file
View file

@ -0,0 +1,873 @@
Version TBD (In Progress on the Develop Branch):
Version 2022.03.15:
* Add detection and functions for AlmaLinux and Rocky Linux (myii) #1803
* Copy configs to correct config dirs (v3004+) (dafyddj) #1798
* Support Non-LTS Ubuntu 21.04 & 21.10 (blindpirate) #1793
* Use native repositories for Debian 11 (jpacura) #1615
* Keep all command-line parameters when UAC is enabled (Simon-TheUser) #1613
* Add support for Raspbian (Jille) #1612
* Add openrc to alpine:latest dependencies (krionbsd) #1609
* Add CentOS 7 base key (bryceml) #1608
* Fix git master install on alpine 3.12+ (Nascire) #1604
* Sort help alphabetically (krionbsd) #1601
Version 2021.09.17:
* Re-add Ubuntu-16 support as it's still supported with 3001 and 3002 (krionbsd) #1594
* Add oncoming 3004 release (krionbsd) #1593
Version 2021.09.14:
* Update latest Salt version in README (krionbsd) #1588
* Make Python 3 the default (bryceml) #1577
* Don't output info if using the default -x value (bryceml) #1587
Version 2021.08.19:
* Update README with instructions to use salt-bootstrap custom version (ari) #1580
* Remove unsupported versions (bryceml) #1578
* Update FreeBSD default Python version to 3.8 (myii) #1574
Version 2021.06.23:
* Use salt.list instead of saltstack.list (bryceml) #1563
* Use fetch_url function for curl (xeacott) #1562
* Add Ubuntu 21.04 support (krionbsd) #1559
* Remove python2-futures package for ArchLinux (myii) #1546
Version 2020.03.02:
* Debian 11 (bullseye/testing) support using Debian 10 packages (jpacura, bryceml) #1514
* Fix bootstrap on Gentoo (ijansky) #1516 #1518
* Fix project URLs (bryceml) #1526
* FreeBSD also needs the _PKI_DIR reset (krionbsd) #1523
* Fix openSUSE Tumbleweed support. (myii) #1525
* Fix Debian and Ubuntu version support. (jpacura) #1529
* Powershell: Implement configure only option (for Vagrant). (dafyddj) #1530
* Powershell: Handle Vagrant's `grains_config` option. (dafyddj) #1520
* apt-key is deprecated on Debian 10+ and Ubuntu 20+ (bryceml) #1533
* Fix python Tornado on FreeBSD. (krionbsd) #1522
Version 2020.10.20:
* Add support to allow bootstrapping Salt 3002 (s0undt3ch) #1506
Version 2020.10.19:
* Fix v3000+ with git install on FreeBSD (krionbsd) #1487
* Update README giving ONE example of WINDOWS bootstrapping. Default to python3 instead of
python2. (noelmcloughlin) #1496
* Support git and stable salt-bootstrap on Gentoo. (ijansky) #1500
* Add support for Linux Mint 20. (taigrr) #1502
* Adding missing functions for Red Hat 8. (mbochenk) #1489
* Allow pinning minor 3xxx versions. (max-arnold) #1491
Version 2020.06.23:
* Fix for Cumulus Linux 4.1 (darylturner) #1474
* Fix file download exit code, improve error message on failed download (bryceml) #1478
* Add support for Ubuntu 20.04 (bryceml) #1479
* Default Ubuntu 20.04 to Py3 since there isn't a Py2 release for it (bryceml) #1480
* Warn instead of exit when using -R and -x python3 on centos to allow installing python3
versions of salt on centos from other repos. Old unsupported releases probably need to
manually install epel-release before running the bootstrap script for versions before 2018.3.5
and before 2019.2.1 (bryceml) #1482
* Start maintaining .sha256 files for the bootstrap script
Version 2020.05.28:
* Fix Opensuse Tumbleweed (noelmcloughlin) #1441
* Remove Debian 8 from Python 3 supported list (jay1648) #1448
* Fixed deps parsing for FreeBSD git installs (cedwards) #1462
* Added support for the upcoming Sodium release (s0undt3ch) #1466
* Fixed KDE Neon detection (ender8282) #1466
* Updated README python 2 and 3 installations (gdebunne) #1466
* Updated README and CONTRIBUTING to prefer Salt's master branch (DmitryKuzmenko) #1466
* Fixed IUS repo addresses (oeuftete) #1469
* Updated tests to assert target Python and Salt versions (s0undt3ch) #1470
* Fixed Amazon 2 -x support (s0undt3ch) #1470
* Fix Fedora stable installs for older releases (s0undt3ch) #1470
* Fix CentOS 8 installations (s0undt3ch) #1470
* Default Debian 10 to Py3 (s0undt3ch) #1470
* Fix Arch Linux installs (s0undt3ch) #1470
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

View file

@ -32,7 +32,7 @@ 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:
======= - 2022.05.19: ``e92e1df6930285cf23eda188bee3cfa3dd6c577b4fb7aa91b29213ad820199b1``
- 2022.03.15: ``8f65952c3435f441e7f793941d5162d3ec2033a9ef82722ff1da67a2ef860a2f`` - 2022.03.15: ``8f65952c3435f441e7f793941d5162d3ec2033a9ef82722ff1da67a2ef860a2f``
- 2021.09.17: ``090d652cd6290debce0e3a4eded65086a4272e69446e711eb26f87160593b6a2`` - 2021.09.17: ``090d652cd6290debce0e3a4eded65086a4272e69446e711eb26f87160593b6a2``
- 2021.09.14: ``30fdcba972f449630b4f13492cb5525e69e08fa2cdb66a6dc78f1536ad279e52`` - 2021.09.14: ``30fdcba972f449630b4f13492cb5525e69e08fa2cdb66a6dc78f1536ad279e52``
@ -102,12 +102,12 @@ To view the latest options and descriptions for ``salt-bootstrap``, use ``-h`` a
Examples: Examples:
- bootstrap-salt.sh - bootstrap-salt.sh
- bootstrap-salt.sh stable - bootstrap-salt.sh stable
- bootstrap-salt.sh stable 3003.3 - bootstrap-salt.sh stable 3004.1
- bootstrap-salt.sh stable v3002.7 - bootstrap-salt.sh stable v3003.4
- bootstrap-salt.sh testing - bootstrap-salt.sh testing
- bootstrap-salt.sh git - bootstrap-salt.sh git
- bootstrap-salt.sh git 3003.3 - bootstrap-salt.sh git 3004.1
- bootstrap-salt.sh git v3002.7 - bootstrap-salt.sh git v3003.4
- bootstrap-salt.sh git 06f249901a2e2f1ed310d58ea3921a129f214358 - bootstrap-salt.sh git 06f249901a2e2f1ed310d58ea3921a129f214358
Options: Options:
@ -218,14 +218,14 @@ If you want to install a package of a specific release version, from the SaltSta
.. code:: console .. code:: console
curl -o bootstrap-salt.sh -L https://bootstrap.saltproject.io curl -o bootstrap-salt.sh -L https://bootstrap.saltproject.io
sudo sh bootstrap-salt.sh -P stable 3003.3 sudo sh bootstrap-salt.sh -P stable 3004.1
If you want to install a specific release version, based on the Git tags: If you want to install a specific release version, based on the Git tags:
.. code:: console .. code:: console
curl -o bootstrap-salt.sh -L https://bootstrap.saltproject.io curl -o bootstrap-salt.sh -L https://bootstrap.saltproject.io
sudo sh bootstrap-salt.sh git v3003.3 sudo sh bootstrap-salt.sh git v3004.1
Using ``curl`` to install latest development version from GitHub: Using ``curl`` to install latest development version from GitHub:
@ -280,14 +280,14 @@ Installing a specific version from git using ``wget``:
.. code:: console .. code:: console
wget -O bootstrap-salt.sh https://bootstrap.saltproject.io wget -O bootstrap-salt.sh https://bootstrap.saltproject.io
sudo sh bootstrap-salt.sh git v3003.3 sudo sh bootstrap-salt.sh git v3004.1
Installing a specific version package from the SaltStack repo using ``wget``: Installing a specific version package from the SaltStack repo using ``wget``:
.. code:: console .. code:: console
wget -O bootstrap-salt.sh https://bootstrap.saltproject.io wget -O bootstrap-salt.sh https://bootstrap.saltproject.io
sudo sh bootstrap-salt.sh -P stable 3003.3 sudo sh bootstrap-salt.sh -P stable 3004.1
**NOTE** **NOTE**
@ -303,7 +303,7 @@ If you already have Python installed, ``python 2.7``, then it's as easy as:
.. code:: console .. code:: console
python -m urllib "https://bootstrap.saltproject.io" > bootstrap-salt.sh python -m urllib "https://bootstrap.saltproject.io" > bootstrap-salt.sh
sudo sh bootstrap-salt.sh -P stable 3003.3 sudo sh bootstrap-salt.sh -P stable 3004.1
With python version 2, the following in-line code should always work: With python version 2, the following in-line code should always work:
@ -317,7 +317,7 @@ With python version 3:
.. code:: console .. code:: console
python3 -c 'import urllib.request; print(urllib.request.urlopen("https://bootstrap.saltproject.io").read().decode("ascii"))' > bootstrap-salt.sh python3 -c 'import urllib.request; print(urllib.request.urlopen("https://bootstrap.saltproject.io").read().decode("ascii"))' > bootstrap-salt.sh
sudo sh bootstrap-salt.sh git v3003.3 sudo sh bootstrap-salt.sh git v3004.1
Install using fetch Install using fetch
~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~~
@ -378,7 +378,7 @@ Installing a target version package of Salt from the SaltStack repo:
.. code:: console .. code:: console
curl -L https://bootstrap.saltproject.io | sudo sh -s -- stable 3003.3 curl -L https://bootstrap.saltproject.io | sudo sh -s -- stable 3004.1
Installing the latest master branch of Salt from git: Installing the latest master branch of Salt from git:

692
bootstrap-salt.sh Normal file → Executable file
View file

@ -23,7 +23,7 @@
#====================================================================================================================== #======================================================================================================================
set -o nounset # Treat unset variables as an error set -o nounset # Treat unset variables as an error
__ScriptVersion="2022.05.19" __ScriptVersion="2022.08.12"
__ScriptName="bootstrap-salt.sh" __ScriptName="bootstrap-salt.sh"
__ScriptFullName="$0" __ScriptFullName="$0"
@ -268,6 +268,7 @@ _CUSTOM_MASTER_CONFIG="null"
_CUSTOM_MINION_CONFIG="null" _CUSTOM_MINION_CONFIG="null"
_QUIET_GIT_INSTALLATION=$BS_FALSE _QUIET_GIT_INSTALLATION=$BS_FALSE
_REPO_URL="repo.saltproject.io" _REPO_URL="repo.saltproject.io"
_ONEDIR_DIR="salt"
_PY_EXE="python3" _PY_EXE="python3"
_INSTALL_PY="$BS_FALSE" _INSTALL_PY="$BS_FALSE"
_TORNADO_MAX_PY3_VERSION="5.0" _TORNADO_MAX_PY3_VERSION="5.0"
@ -290,17 +291,24 @@ __usage() {
Usage : ${__ScriptName} [options] <install-type> [install-type-args] Usage : ${__ScriptName} [options] <install-type> [install-type-args]
Installation types: Installation types:
- stable Install latest stable release. This is the default - stable Install latest stable release. This is the default
install type install type
- stable [branch] Install latest version on a branch. Only supported - stable [branch] Install latest version on a branch. Only supported
for packages available at repo.saltproject.io for packages available at repo.saltproject.io
- stable [version] Install a specific version. Only supported for - stable [version] Install a specific version. Only supported for
packages available at repo.saltproject.io packages available at repo.saltproject.io
To pin a 3xxx minor version, specify it as 3xxx.0 To pin a 3xxx minor version, specify it as 3xxx.0
- testing RHEL-family specific: configure EPEL testing repo - testing RHEL-family specific: configure EPEL testing repo
- git Install from the head of the master branch - git Install from the head of the master branch
- git [ref] Install from any git ref (such as a branch, tag, or - git [ref] Install from any git ref (such as a branch, tag, or
commit) commit)
- onedir Install latest onedir release.
- onedir [version] Install a specific version. Only supported for
onedir packages available at repo.saltproject.io
- onedir_rc Install latest onedir RC release.
- onedir_rc [version] Install a specific version. Only supported for
onedir RC packages available at repo.saltproject.io
Examples: Examples:
- ${__ScriptName} - ${__ScriptName}
@ -312,6 +320,10 @@ __usage() {
- ${__ScriptName} git 2017.7 - ${__ScriptName} git 2017.7
- ${__ScriptName} git v2017.7.2 - ${__ScriptName} git v2017.7.2
- ${__ScriptName} git 06f249901a2e2f1ed310d58ea3921a129f214358 - ${__ScriptName} git 06f249901a2e2f1ed310d58ea3921a129f214358
- ${__ScriptName} onedir
- ${__ScriptName} onedir 3005
- ${__ScriptName} onedir_rc
- ${__ScriptName} onedir_rc 3005
Options: Options:
-a Pip install all Python pkg dependencies for Salt. Requires -V to install -a Pip install all Python pkg dependencies for Salt. Requires -V to install
@ -582,7 +594,7 @@ if [ "$#" -gt 0 ];then
fi fi
# Check installation type # Check installation type
if [ "$(echo "$ITYPE" | grep -E '(stable|testing|git)')" = "" ]; then if [ "$(echo "$ITYPE" | grep -E '(stable|testing|git|onedir|onedir_rc)')" = "" ]; then
echoerror "Installation type \"$ITYPE\" is not known..." echoerror "Installation type \"$ITYPE\" is not known..."
exit 1 exit 1
fi fi
@ -604,7 +616,7 @@ elif [ "$ITYPE" = "stable" ]; then
if [ "$#" -eq 0 ];then if [ "$#" -eq 0 ];then
STABLE_REV="latest" STABLE_REV="latest"
else else
if [ "$(echo "$1" | grep -E '^(latest|1\.6|1\.7|2014\.1|2014\.7|2015\.5|2015\.8|2016\.3|2016\.11|2017\.7|2018\.3|2019\.2|3000|3001|3002|3003|3004)$')" != "" ]; then if [ "$(echo "$1" | grep -E '^(latest|1\.6|1\.7|2014\.1|2014\.7|2015\.5|2015\.8|2016\.3|2016\.11|2017\.7|2018\.3|2019\.2|3000|3001|3002|3003|3004|3005)$')" != "" ]; then
STABLE_REV="$1" STABLE_REV="$1"
shift shift
elif [ "$(echo "$1" | grep -E '^(2[0-9]*\.[0-9]*\.[0-9]*|[3-9][0-9]{3}(\.[0-9]*)?)$')" != "" ]; then elif [ "$(echo "$1" | grep -E '^(2[0-9]*\.[0-9]*\.[0-9]*|[3-9][0-9]{3}(\.[0-9]*)?)$')" != "" ]; then
@ -615,7 +627,49 @@ elif [ "$ITYPE" = "stable" ]; then
fi fi
shift shift
else else
echo "Unknown stable version: $1 (valid: 1.6, 1.7, 2014.1, 2014.7, 2015.5, 2015.8, 2016.3, 2016.11, 2017.7, 2018.3, 2019.2, 3000, 3001, 3002, 3003, 3004, latest, \$MAJOR.\$MINOR.\$PATCH until 2019.2, \$MAJOR or \$MAJOR.\$PATCH starting from 3000)" echo "Unknown stable version: $1 (valid: 1.6, 1.7, 2014.1, 2014.7, 2015.5, 2015.8, 2016.3, 2016.11, 2017.7, 2018.3, 2019.2, 3000, 3001, 3002, 3003, 3004, 3005, latest, \$MAJOR.\$MINOR.\$PATCH until 2019.2, \$MAJOR or \$MAJOR.\$PATCH starting from 3000)"
exit 1
fi
fi
elif [ "$ITYPE" = "onedir" ]; then
if [ "$#" -eq 0 ];then
ONEDIR_REV="latest"
else
if [ "$(echo "$1" | grep -E '^(latest)$')" != "" ]; then
ONEDIR_REV="$1"
shift
elif [ "$(echo "$1" | grep -E '^([3-9][0-9]{3}(\.[0-9]*)?)$')" != "" ]; then
# Handle the 3xxx.0 version as 3xxx archive (pin to minor) and strip the fake ".0" suffix
ONEDIR_REV=$(echo "$1" | sed -E 's/^([3-9][0-9]{3})\.0$/\1/')
ONEDIR_REV="minor/$ONEDIR_REV"
shift
else
echo "Unknown stable version: $1 (valid: 3005, latest.)"
exit 1
fi
fi
elif [ "$ITYPE" = "onedir_rc" ]; then
# Change the _ONEDIR_DIR to be the location for the RC packages
_ONEDIR_DIR="salt_rc/salt"
# Change ITYPE to onedir so we use the regular onedir functions
ITYPE="onedir"
if [ "$#" -eq 0 ];then
ONEDIR_REV="latest"
else
if [ "$(echo "$1" | grep -E '^(latest)$')" != "" ]; then
ONEDIR_REV="$1"
shift
elif [ "$(echo "$1" | grep -E '^([3-9][0-9]{3}?rc[0-9]-[0-9]$)')" != "" ]; then
# Handle the 3xxx.0 version as 3xxx archive (pin to minor) and strip the fake ".0" suffix
#ONEDIR_REV=$(echo "$1" | sed -E 's/^([3-9][0-9]{3})\.0$/\1/')
ONEDIR_REV="minor/$1"
shift
else
echo "Unknown stable version: $1 (valid: 3005, latest.)"
exit 1 exit 1
fi fi
fi fi
@ -2969,6 +3023,48 @@ __install_saltstack_ubuntu_repository() {
__wait_for_apt apt-get update || return 1 __wait_for_apt apt-get update || return 1
} }
__install_saltstack_ubuntu_onedir_repository() {
# Workaround for latest non-LTS Ubuntu
if { [ "$DISTRO_MAJOR_VERSION" -eq 20 ] && [ "$DISTRO_MINOR_VERSION" -eq 10 ]; } || \
[ "$DISTRO_MAJOR_VERSION" -eq 21 ]; then
echowarn "Non-LTS Ubuntu detected, but stable packages requested. Trying packages for previous LTS release. You may experience problems."
UBUNTU_VERSION=20.04
UBUNTU_CODENAME="focal"
else
UBUNTU_VERSION=${DISTRO_VERSION}
UBUNTU_CODENAME=${DISTRO_CODENAME}
fi
# Install downloader backend for GPG keys fetching
__PACKAGES='wget'
# Required as it is not installed by default on Ubuntu 18+
if [ "$DISTRO_MAJOR_VERSION" -ge 18 ]; then
__PACKAGES="${__PACKAGES} gnupg"
fi
# Make sure https transport is available
if [ "$HTTP_VAL" = "https" ] ; then
__PACKAGES="${__PACKAGES} apt-transport-https ca-certificates"
fi
# shellcheck disable=SC2086,SC2090
__apt_get_install_noinput ${__PACKAGES} || return 1
__PY_VERSION_REPO="apt"
if [ -n "$_PY_EXE" ] && [ "$_PY_MAJOR_VERSION" -eq 3 ]; then
__PY_VERSION_REPO="py3"
fi
# SaltStack's stable Ubuntu repository:
SALTSTACK_UBUNTU_URL="${HTTP_VAL}://${_REPO_URL}/${_ONEDIR_DIR}/${__PY_VERSION_REPO}/ubuntu/${UBUNTU_VERSION}/${__REPO_ARCH}/${ONEDIR_REV}/"
echo "$__REPO_ARCH_DEB $SALTSTACK_UBUNTU_URL $UBUNTU_CODENAME main" > /etc/apt/sources.list.d/salt.list
__apt_key_fetch "${SALTSTACK_UBUNTU_URL}salt-archive-keyring.gpg" || return 1
__wait_for_apt apt-get update || return 1
}
install_ubuntu_deps() { install_ubuntu_deps() {
if [ $_DISABLE_REPOS -eq $BS_FALSE ]; then if [ $_DISABLE_REPOS -eq $BS_FALSE ]; then
# Install add-apt-repository # Install add-apt-repository
@ -3141,6 +3237,44 @@ install_ubuntu_git_deps() {
return 0 return 0
} }
install_ubuntu_onedir_deps() {
if [ "${_SLEEP}" -eq "${__DEFAULT_SLEEP}" ] && [ "$DISTRO_MAJOR_VERSION" -lt 16 ]; then
# The user did not pass a custom sleep value as an argument, let's increase the default value
echodebug "On Ubuntu systems we increase the default sleep value to 10."
echodebug "See https://github.com/saltstack/salt/issues/12248 for more info."
_SLEEP=10
fi
if [ $_START_DAEMONS -eq $BS_FALSE ]; then
echowarn "Not starting daemons on Debian based distributions is not working mostly because starting them is the default behaviour."
fi
# No user interaction, libc6 restart services for example
export DEBIAN_FRONTEND=noninteractive
__wait_for_apt apt-get update || return 1
if [ "${_UPGRADE_SYS}" -eq $BS_TRUE ]; then
if [ "${_INSECURE_DL}" -eq $BS_TRUE ]; then
if [ "$DISTRO_MAJOR_VERSION" -ge 20 ] || [ "$DISTRO_MAJOR_VERSION" -ge 21 ]; then
__apt_get_install_noinput --allow-unauthenticated debian-archive-keyring && apt-get update || return 1
else
__apt_get_install_noinput --allow-unauthenticated debian-archive-keyring &&
apt-key update && apt-get update || return 1
fi
fi
__apt_get_upgrade_noinput || return 1
fi
if [ "$_DISABLE_REPOS" -eq "$BS_FALSE" ] || [ "$_CUSTOM_REPO_URL" != "null" ]; then
__check_dpkg_architecture || return 1
__install_saltstack_ubuntu_onedir_repository || return 1
fi
install_ubuntu_deps || return 1
}
install_ubuntu_stable() { install_ubuntu_stable() {
__PACKAGES="" __PACKAGES=""
@ -3200,6 +3334,28 @@ install_ubuntu_git() {
return 0 return 0
} }
install_ubuntu_onedir() {
__PACKAGES=""
if [ "$_INSTALL_CLOUD" -eq $BS_TRUE ];then
__PACKAGES="${__PACKAGES} salt-cloud"
fi
if [ "$_INSTALL_MASTER" -eq $BS_TRUE ]; then
__PACKAGES="${__PACKAGES} salt-master"
fi
if [ "$_INSTALL_MINION" -eq $BS_TRUE ]; then
__PACKAGES="${__PACKAGES} salt-minion"
fi
if [ "$_INSTALL_SYNDIC" -eq $BS_TRUE ]; then
__PACKAGES="${__PACKAGES} salt-syndic"
fi
# shellcheck disable=SC2086
__apt_get_install_noinput ${__PACKAGES} || return 1
return 0
}
install_ubuntu_stable_post() { install_ubuntu_stable_post() {
for fname in api master minion syndic; do for fname in api master minion syndic; do
# Skip salt-api since the service should be opt-in and not necessarily started on boot # Skip salt-api since the service should be opt-in and not necessarily started on boot
@ -3397,6 +3553,40 @@ __install_saltstack_debian_repository() {
__wait_for_apt apt-get update || return 1 __wait_for_apt apt-get update || return 1
} }
__install_saltstack_debian_onedir_repository() {
DEBIAN_RELEASE="$DISTRO_MAJOR_VERSION"
DEBIAN_CODENAME="$DISTRO_CODENAME"
__PY_VERSION_REPO="apt"
if [ -n "$_PY_EXE" ] && [ "$_PY_MAJOR_VERSION" -eq 3 ]; then
__PY_VERSION_REPO="py3"
fi
# Install downloader backend for GPG keys fetching
__PACKAGES='wget'
# Required as it is not installed by default on Debian 9+
if [ "$DISTRO_MAJOR_VERSION" -ge 9 ]; then
__PACKAGES="${__PACKAGES} gnupg2"
fi
# Make sure https transport is available
if [ "$HTTP_VAL" = "https" ] ; then
__PACKAGES="${__PACKAGES} apt-transport-https ca-certificates"
fi
# shellcheck disable=SC2086,SC2090
__apt_get_install_noinput ${__PACKAGES} || return 1
# amd64 is just a part of repository URI, 32-bit pkgs are hosted under the same location
SALTSTACK_DEBIAN_URL="${HTTP_VAL}://${_REPO_URL}/${_ONEDIR_DIR}/${__PY_VERSION_REPO}/debian/${DEBIAN_RELEASE}/${__REPO_ARCH}/${ONEDIR_REV}/"
echo "$__REPO_ARCH_DEB $SALTSTACK_DEBIAN_URL $DEBIAN_CODENAME main" > "/etc/apt/sources.list.d/salt.list"
__apt_key_fetch "${SALTSTACK_DEBIAN_URL}salt-archive-keyring.gpg" || return 1
__wait_for_apt apt-get update || return 1
}
install_debian_deps() { install_debian_deps() {
if [ $_START_DAEMONS -eq $BS_FALSE ]; then if [ $_START_DAEMONS -eq $BS_FALSE ]; then
echowarn "Not starting daemons on Debian based distributions is not working mostly because starting them is the default behaviour." echowarn "Not starting daemons on Debian based distributions is not working mostly because starting them is the default behaviour."
@ -3450,6 +3640,59 @@ install_debian_deps() {
return 0 return 0
} }
install_debian_onedir_deps() {
if [ $_START_DAEMONS -eq $BS_FALSE ]; then
echowarn "Not starting daemons on Debian based distributions is not working mostly because starting them is the default behaviour."
fi
# No user interaction, libc6 restart services for example
export DEBIAN_FRONTEND=noninteractive
__wait_for_apt apt-get update || return 1
if [ "${_UPGRADE_SYS}" -eq $BS_TRUE ]; then
# Try to update GPG keys first if allowed
if [ "${_INSECURE_DL}" -eq $BS_TRUE ]; then
if [ "$DISTRO_MAJOR_VERSION" -ge 10 ]; then
__apt_get_install_noinput --allow-unauthenticated debian-archive-keyring && apt-get update || return 1
else
__apt_get_install_noinput --allow-unauthenticated debian-archive-keyring &&
apt-key update && apt-get update || return 1
fi
fi
__apt_get_upgrade_noinput || return 1
fi
if [ -n "$_PY_EXE" ] && [ "$_PY_MAJOR_VERSION" -eq 3 ]; then
PY_PKG_VER=3
else
PY_PKG_VER=""
fi
# Additionally install procps and pciutils which allows for Docker bootstraps. See 366#issuecomment-39666813
__PACKAGES='procps pciutils'
# YAML module is used for generating custom master/minion configs
__PACKAGES="${__PACKAGES} python${PY_PKG_VER}-yaml"
# shellcheck disable=SC2086
__apt_get_install_noinput ${__PACKAGES} || return 1
if [ "$_DISABLE_REPOS" -eq "$BS_FALSE" ] || [ "$_CUSTOM_REPO_URL" != "null" ]; then
__check_dpkg_architecture || return 1
__install_saltstack_debian_onedir_repository || return 1
fi
if [ "${_EXTRA_PACKAGES}" != "" ]; then
echoinfo "Installing the following extra packages as requested: ${_EXTRA_PACKAGES}"
# shellcheck disable=SC2086
__apt_get_install_noinput ${_EXTRA_PACKAGES} || return 1
fi
return 0
}
install_debian_git_pre() { install_debian_git_pre() {
if ! __check_command_exists git; then if ! __check_command_exists git; then
__apt_get_install_noinput git || return 1 __apt_get_install_noinput git || return 1
@ -3726,6 +3969,28 @@ install_debian_9_git() {
return 0 return 0
} }
install_debian_onedir() {
__PACKAGES=""
if [ "$_INSTALL_CLOUD" -eq $BS_TRUE ];then
__PACKAGES="${__PACKAGES} salt-cloud"
fi
if [ "$_INSTALL_MASTER" -eq $BS_TRUE ]; then
__PACKAGES="${__PACKAGES} salt-master"
fi
if [ "$_INSTALL_MINION" -eq $BS_TRUE ]; then
__PACKAGES="${__PACKAGES} salt-minion"
fi
if [ "$_INSTALL_SYNDIC" -eq $BS_TRUE ]; then
__PACKAGES="${__PACKAGES} salt-syndic"
fi
# shellcheck disable=SC2086
__apt_get_install_noinput ${__PACKAGES} || return 1
return 0
}
install_debian_git_post() { install_debian_git_post() {
for fname in api master minion syndic; do for fname in api master minion syndic; do
# Skip if not meant to be installed # Skip if not meant to be installed
@ -4117,9 +4382,13 @@ __install_epel_repository() {
return 0 return 0
fi fi
# Download latest 'epel-next-release' package for the distro version directly
epel_next_repo_url="${HTTP_VAL}://dl.fedoraproject.org/pub/epel/epel-next-release-latest-${DISTRO_MAJOR_VERSION}.noarch.rpm"
# Download latest 'epel-release' package for the distro version directly # Download latest 'epel-release' package for the distro version directly
epel_repo_url="${HTTP_VAL}://dl.fedoraproject.org/pub/epel/epel-release-latest-${DISTRO_MAJOR_VERSION}.noarch.rpm" epel_repo_url="${HTTP_VAL}://dl.fedoraproject.org/pub/epel/epel-release-latest-${DISTRO_MAJOR_VERSION}.noarch.rpm"
rpm -Uvh --force "$epel_repo_url" || return 1
yum -y install "${epel_next_repo_url}" "${epel_repo_url}"
_EPEL_REPOS_INSTALLED=$BS_TRUE _EPEL_REPOS_INSTALLED=$BS_TRUE
@ -4143,6 +4412,8 @@ __install_saltstack_rhel_repository() {
base_url="${HTTP_VAL}://${_REPO_URL}/${__PY_VERSION_REPO}/redhat/${DISTRO_MAJOR_VERSION}/\$basearch/${repo_rev}/" base_url="${HTTP_VAL}://${_REPO_URL}/${__PY_VERSION_REPO}/redhat/${DISTRO_MAJOR_VERSION}/\$basearch/${repo_rev}/"
if [ "${DISTRO_MAJOR_VERSION}" -eq 7 ]; then if [ "${DISTRO_MAJOR_VERSION}" -eq 7 ]; then
gpg_key="SALTSTACK-GPG-KEY.pub base/RPM-GPG-KEY-CentOS-7" gpg_key="SALTSTACK-GPG-KEY.pub base/RPM-GPG-KEY-CentOS-7"
elif [ "${DISTRO_MAJOR_VERSION}" -ge 9 ]; then
gpg_key="SALTSTACK-GPG-KEY2.pub"
else else
gpg_key="SALTSTACK-GPG-KEY.pub" gpg_key="SALTSTACK-GPG-KEY.pub"
fi fi
@ -4180,6 +4451,60 @@ _eof
return 0 return 0
} }
__install_saltstack_rhel_onedir_repository() {
if [ "$ITYPE" = "stable" ]; then
repo_rev="$ONEDIR_REV"
else
repo_rev="latest"
fi
__PY_VERSION_REPO="yum"
if [ -n "$_PY_EXE" ] && [ "$_PY_MAJOR_VERSION" -eq 3 ]; then
__PY_VERSION_REPO="py3"
fi
# Avoid using '$releasever' variable for yum.
# Instead, this should work correctly on all RHEL variants.
base_url="${HTTP_VAL}://${_REPO_URL}/${_ONEDIR_DIR}/${__PY_VERSION_REPO}/redhat/${DISTRO_MAJOR_VERSION}/\$basearch/${ONEDIR_REV}/"
if [ "${DISTRO_MAJOR_VERSION}" -eq 9 ]; then
gpg_key="SALTSTACK-GPG-KEY2.pub"
else
gpg_key="SALTSTACK-GPG-KEY.pub"
fi
gpg_key_urls=""
for key in $gpg_key; do
gpg_key_urls=$(printf "${base_url}${key},%s" "$gpg_key_urls")
done
repo_file="/etc/yum.repos.d/salt.repo"
if [ ! -s "$repo_file" ] || [ "$_FORCE_OVERWRITE" -eq $BS_TRUE ]; then
cat <<_eof > "$repo_file"
[saltstack]
name=SaltStack ${repo_rev} Release Channel for RHEL/CentOS \$releasever
baseurl=${base_url}
skip_if_unavailable=True
gpgcheck=1
gpgkey=${gpg_key_urls}
enabled=1
enabled_metadata=1
_eof
fetch_url="${HTTP_VAL}://${_REPO_URL}/${_ONEDIR_DIR}/${__PY_VERSION_REPO}/redhat/${DISTRO_MAJOR_VERSION}/${CPU_ARCH_L}/"
for key in $gpg_key; do
__rpm_import_gpg "${fetch_url}${key}" || return 1
done
yum clean metadata || return 1
elif [ "$repo_rev" != "latest" ]; then
echowarn "salt.repo already exists, ignoring salt version argument."
echowarn "Use -F (forced overwrite) to install $repo_rev."
fi
return 0
}
install_centos_stable_deps() { install_centos_stable_deps() {
if [ "$_UPGRADE_SYS" -eq $BS_TRUE ]; then if [ "$_UPGRADE_SYS" -eq $BS_TRUE ]; then
yum -y update || return 1 yum -y update || return 1
@ -4484,6 +4809,101 @@ install_centos_git_post() {
return 0 return 0
} }
install_centos_onedir_deps() {
if [ "$_UPGRADE_SYS" -eq $BS_TRUE ]; then
yum -y update || return 1
fi
if [ "$_DISABLE_REPOS" -eq "$BS_TRUE" ] && [ -n "$_PY_EXE" ] && [ "$_PY_MAJOR_VERSION" -eq 3 ]; then
echowarn "Detected -r or -R option while installing Salt packages for Python 3."
echowarn "Python 3 packages for older Salt releases requires the EPEL repository to be installed."
echowarn "Installing the EPEL repository automatically is disabled when using the -r or -R options."
fi
if [ "$_DISABLE_REPOS" -eq "$BS_FALSE" ]; then
__install_epel_repository || return 1
__install_saltstack_rhel_onedir_repository || return 1
fi
# If -R was passed, we need to configure custom repo url with rsync-ed packages
# Which is still handled in __install_saltstack_rhel_repository. This call has
# its own check in case -r was passed without -R.
if [ "$_CUSTOM_REPO_URL" != "null" ]; then
__install_saltstack_rhel_onedir_repository || return 1
fi
if [ "$DISTRO_MAJOR_VERSION" -ge 8 ]; then
__PACKAGES="dnf-utils chkconfig"
else
__PACKAGES="yum-utils chkconfig"
fi
# shellcheck disable=SC2086
__yum_install_noinput ${__PACKAGES} || return 1
if [ "${_EXTRA_PACKAGES}" != "" ]; then
echoinfo "Installing the following extra packages as requested: ${_EXTRA_PACKAGES}"
# shellcheck disable=SC2086
__yum_install_noinput ${_EXTRA_PACKAGES} || return 1
fi
return 0
}
install_centos_onedir() {
__PACKAGES=""
if [ "$_INSTALL_CLOUD" -eq $BS_TRUE ];then
__PACKAGES="${__PACKAGES} salt-cloud"
fi
if [ "$_INSTALL_MASTER" -eq $BS_TRUE ];then
__PACKAGES="${__PACKAGES} salt-master"
fi
if [ "$_INSTALL_MINION" -eq $BS_TRUE ]; then
__PACKAGES="${__PACKAGES} salt-minion"
fi
if [ "$_INSTALL_SYNDIC" -eq $BS_TRUE ];then
__PACKAGES="${__PACKAGES} salt-syndic"
fi
# shellcheck disable=SC2086
__yum_install_noinput ${__PACKAGES} || return 1
return 0
}
install_centos_onedir_post() {
SYSTEMD_RELOAD=$BS_FALSE
for fname in api master minion syndic; do
# Skip salt-api since the service should be opt-in and not necessarily started on boot
[ $fname = "api" ] && continue
# Skip if not meant to be installed
[ $fname = "master" ] && [ "$_INSTALL_MASTER" -eq $BS_FALSE ] && continue
[ $fname = "minion" ] && [ "$_INSTALL_MINION" -eq $BS_FALSE ] && continue
[ $fname = "syndic" ] && [ "$_INSTALL_SYNDIC" -eq $BS_FALSE ] && continue
if [ -f /bin/systemctl ]; then
/bin/systemctl is-enabled salt-${fname}.service > /dev/null 2>&1 || (
/bin/systemctl preset salt-${fname}.service > /dev/null 2>&1 &&
/bin/systemctl enable salt-${fname}.service > /dev/null 2>&1
)
SYSTEMD_RELOAD=$BS_TRUE
elif [ -f "/etc/init.d/salt-${fname}" ]; then
/sbin/chkconfig salt-${fname} on
fi
done
if [ "$SYSTEMD_RELOAD" -eq $BS_TRUE ]; then
/bin/systemctl daemon-reload
fi
return 0
}
install_centos_restart_daemons() { install_centos_restart_daemons() {
[ $_START_DAEMONS -eq $BS_FALSE ] && return [ $_START_DAEMONS -eq $BS_FALSE ] && return
@ -4583,6 +5003,11 @@ install_red_hat_linux_git_deps() {
return 0 return 0
} }
install_red_hat_linux_onedir_deps() {
install_centos_onedir_deps || return 1
return 0
}
install_red_hat_enterprise_stable_deps() { install_red_hat_enterprise_stable_deps() {
install_red_hat_linux_stable_deps || return 1 install_red_hat_linux_stable_deps || return 1
return 0 return 0
@ -4593,6 +5018,11 @@ install_red_hat_enterprise_git_deps() {
return 0 return 0
} }
install_red_hat_enterprise_onedir_deps() {
install_red_hat_linux_onedir_deps || return 1
return 0
}
install_red_hat_enterprise_linux_stable_deps() { install_red_hat_enterprise_linux_stable_deps() {
install_red_hat_linux_stable_deps || return 1 install_red_hat_linux_stable_deps || return 1
return 0 return 0
@ -4603,6 +5033,11 @@ install_red_hat_enterprise_linux_git_deps() {
return 0 return 0
} }
install_red_hat_enterprise_linux_onedir_deps() {
install_red_hat_linux_onedir_deps || return 1
return 0
}
install_red_hat_enterprise_server_stable_deps() { install_red_hat_enterprise_server_stable_deps() {
install_red_hat_linux_stable_deps || return 1 install_red_hat_linux_stable_deps || return 1
return 0 return 0
@ -4613,6 +5048,11 @@ install_red_hat_enterprise_server_git_deps() {
return 0 return 0
} }
install_red_hat_enterprise_server_onedir_deps() {
install_red_hat_linux_onedir_deps || return 1
return 0
}
install_red_hat_enterprise_workstation_stable_deps() { install_red_hat_enterprise_workstation_stable_deps() {
install_red_hat_linux_stable_deps || return 1 install_red_hat_linux_stable_deps || return 1
return 0 return 0
@ -4623,6 +5063,11 @@ install_red_hat_enterprise_workstation_git_deps() {
return 0 return 0
} }
install_red_hat_enterprise_workstation_onedir_deps() {
install_red_hat_linux_timat_deps || return 1
return 0
}
install_red_hat_linux_stable() { install_red_hat_linux_stable() {
install_centos_stable || return 1 install_centos_stable || return 1
return 0 return 0
@ -4633,6 +5078,11 @@ install_red_hat_linux_git() {
return 0 return 0
} }
install_red_hat_linux_onedir() {
install_centos_onedir || return 1
return 0
}
install_red_hat_enterprise_stable() { install_red_hat_enterprise_stable() {
install_red_hat_linux_stable || return 1 install_red_hat_linux_stable || return 1
return 0 return 0
@ -4643,6 +5093,11 @@ install_red_hat_enterprise_git() {
return 0 return 0
} }
install_red_hat_enterprise_onedir() {
install_red_hat_linux_onedir || return 1
return 0
}
install_red_hat_enterprise_linux_stable() { install_red_hat_enterprise_linux_stable() {
install_red_hat_linux_stable || return 1 install_red_hat_linux_stable || return 1
return 0 return 0
@ -4653,6 +5108,11 @@ install_red_hat_enterprise_linux_git() {
return 0 return 0
} }
install_red_hat_enterprise_linux_onedir() {
install_red_hat_linux_onedir || return 1
return 0
}
install_red_hat_enterprise_server_stable() { install_red_hat_enterprise_server_stable() {
install_red_hat_linux_stable || return 1 install_red_hat_linux_stable || return 1
return 0 return 0
@ -4663,6 +5123,11 @@ install_red_hat_enterprise_server_git() {
return 0 return 0
} }
install_red_hat_enterprise_server_onedir() {
install_red_hat_linux_onedir || return 1
return 0
}
install_red_hat_enterprise_workstation_stable() { install_red_hat_enterprise_workstation_stable() {
install_red_hat_linux_stable || return 1 install_red_hat_linux_stable || return 1
return 0 return 0
@ -4673,6 +5138,11 @@ install_red_hat_enterprise_workstation_git() {
return 0 return 0
} }
install_red_hat_enterprise_workstation_onedir() {
install_red_hat_linux_onedir || return 1
return 0
}
install_red_hat_linux_stable_post() { install_red_hat_linux_stable_post() {
install_centos_stable_post || return 1 install_centos_stable_post || return 1
return 0 return 0
@ -4826,6 +5296,11 @@ install_oracle_linux_git_deps() {
return 0 return 0
} }
install_oracle_linux_onedir_deps() {
install_centos_onedir_deps || return 1
return 0
}
install_oracle_linux_testing_deps() { install_oracle_linux_testing_deps() {
install_centos_testing_deps || return 1 install_centos_testing_deps || return 1
return 0 return 0
@ -4841,6 +5316,11 @@ install_oracle_linux_git() {
return 0 return 0
} }
install_oracle_linux_onedir() {
install_centos_onedir || return 1
return 0
}
install_oracle_linux_testing() { install_oracle_linux_testing() {
install_centos_testing || return 1 install_centos_testing || return 1
return 0 return 0
@ -4889,6 +5369,11 @@ install_almalinux_git_deps() {
return 0 return 0
} }
install_almalinux_onedir_deps() {
install_centos_onedir_deps || return 1
return 0
}
install_almalinux_testing_deps() { install_almalinux_testing_deps() {
install_centos_testing_deps || return 1 install_centos_testing_deps || return 1
return 0 return 0
@ -4904,6 +5389,11 @@ install_almalinux_git() {
return 0 return 0
} }
install_almalinux_onedir() {
install_centos_onedir || return 1
return 0
}
install_almalinux_testing() { install_almalinux_testing() {
install_centos_testing || return 1 install_centos_testing || return 1
return 0 return 0
@ -4952,6 +5442,11 @@ install_rocky_linux_git_deps() {
return 0 return 0
} }
install_rocky_linux_onedir_deps() {
install_centos_onedir_deps || return 1
return 0
}
install_rocky_linux_testing_deps() { install_rocky_linux_testing_deps() {
install_centos_testing_deps || return 1 install_centos_testing_deps || return 1
return 0 return 0
@ -4962,6 +5457,11 @@ install_rocky_linux_stable() {
return 0 return 0
} }
install_rocky_linux_onedir() {
install_centos_onedir || return 1
return 0
}
install_rocky_linux_git() { install_rocky_linux_git() {
install_centos_git || return 1 install_centos_git || return 1
return 0 return 0
@ -5015,6 +5515,11 @@ install_scientific_linux_git_deps() {
return 0 return 0
} }
install_scientific_linux_onedir_deps() {
install_centos_onedir_deps || return 1
return 0
}
install_scientific_linux_testing_deps() { install_scientific_linux_testing_deps() {
install_centos_testing_deps || return 1 install_centos_testing_deps || return 1
return 0 return 0
@ -5030,6 +5535,11 @@ install_scientific_linux_git() {
return 0 return 0
} }
install_scientific_linux_onedir() {
install_centos_onedir || return 1
return 0
}
install_scientific_linux_testing() { install_scientific_linux_testing() {
install_centos_testing || return 1 install_centos_testing || return 1
return 0 return 0
@ -5078,6 +5588,11 @@ install_cloud_linux_git_deps() {
return 0 return 0
} }
install_cloud_linux_onedir_deps() {
install_centos_onedir_deps || return 1
return 0
}
install_cloud_linux_testing_deps() { install_cloud_linux_testing_deps() {
install_centos_testing_deps || return 1 install_centos_testing_deps || return 1
return 0 return 0
@ -5642,6 +6157,92 @@ _eof
fi fi
} }
install_amazon_linux_ami_2_onedir_deps() {
# Shim to figure out if we're using old (rhel) or new (aws) rpms.
_USEAWS=$BS_FALSE
pkg_append="python"
if [ "$ITYPE" = "onedir" ]; then
repo_rev="$ONEDIR_REV"
else
repo_rev="latest"
fi
if echo $repo_rev | grep -E -q '^archive'; then
year=$(echo "$repo_rev" | cut -d '/' -f 2 | cut -c1-4)
else
year=$(echo "$repo_rev" | cut -c1-4)
fi
# We need to install yum-utils before doing anything else when installing on
# Amazon Linux ECS-optimized images. See issue #974.
__yum_install_noinput yum-utils
# Do upgrade early
if [ "$_UPGRADE_SYS" -eq $BS_TRUE ]; then
yum -y update || return 1
fi
if [ $_DISABLE_REPOS -eq $BS_FALSE ] || [ "$_CUSTOM_REPO_URL" != "null" ]; then
__REPO_FILENAME="salt.repo"
__PY_VERSION_REPO="yum"
PY_PKG_VER=""
repo_label="saltstack-repo"
repo_name="SaltStack repo for Amazon Linux 2"
if [ -n "$_PY_EXE" ] && [ "$_PY_MAJOR_VERSION" -eq 3 ]; then
__REPO_FILENAME="salt.repo"
__PY_VERSION_REPO="py3"
PY_PKG_VER=3
repo_label="saltstack-py3-repo"
repo_name="SaltStack Python 3 repo for Amazon Linux 2"
fi
base_url="$HTTP_VAL://${_REPO_URL}/${_ONEDIR_DIR}/${__PY_VERSION_REPO}/amazon/2/\$basearch/$repo_rev/"
gpg_key="${base_url}SALTSTACK-GPG-KEY.pub,${base_url}base/RPM-GPG-KEY-CentOS-7"
if [ -n "$_PY_EXE" ] && [ "$_PY_MAJOR_VERSION" -eq 3 ]; then
gpg_key="${base_url}SALTSTACK-GPG-KEY.pub"
fi
# This should prob be refactored to use __install_saltstack_rhel_repository()
# With args passed in to do the right thing. Reformatted to be more like the
# amazon linux yum file.
if [ ! -s "/etc/yum.repos.d/${__REPO_FILENAME}" ]; then
cat <<_eof > "/etc/yum.repos.d/${__REPO_FILENAME}"
[$repo_label]
name=$repo_name
failovermethod=priority
priority=10
gpgcheck=1
gpgkey=$gpg_key
baseurl=$base_url
_eof
fi
fi
if [ "${_POST_NEON_INSTALL}" -eq $BS_FALSE ]; then
# Package python-ordereddict-1.1-2.el6.noarch is obsoleted by python26-2.6.9-2.88.amzn1.x86_64
# which is already installed
if [ -n "${PY_PKG_VER}" ] && [ "${PY_PKG_VER}" -eq 3 ]; then
__PACKAGES="${pkg_append}${PY_PKG_VER}-m2crypto ${pkg_append}${PY_PKG_VER}-pyyaml"
else
__PACKAGES="m2crypto PyYAML ${pkg_append}-futures"
fi
__PACKAGES="${__PACKAGES} ${pkg_append}${PY_PKG_VER}-crypto ${pkg_append}${PY_PKG_VER}-jinja2 procps-ng"
__PACKAGES="${__PACKAGES} ${pkg_append}${PY_PKG_VER}-msgpack ${pkg_append}${PY_PKG_VER}-requests ${pkg_append}${PY_PKG_VER}-zmq"
# shellcheck disable=SC2086
__yum_install_noinput ${__PACKAGES} || return 1
fi
if [ "${_EXTRA_PACKAGES}" != "" ]; then
echoinfo "Installing the following extra packages as requested: ${_EXTRA_PACKAGES}"
# shellcheck disable=SC2086
__yum_install_noinput ${_EXTRA_PACKAGES} || return 1
fi
}
install_amazon_linux_ami_stable() { install_amazon_linux_ami_stable() {
install_centos_stable || return 1 install_centos_stable || return 1
return 0 return 0
@ -5717,6 +6318,16 @@ install_amazon_linux_ami_2_check_services() {
return 0 return 0
} }
install_amazon_linux_ami_2_onedir() {
install_centos_stable || return 1
return 0
}
install_amazon_linux_ami_2_onedir_post() {
install_centos_stable_post || return 1
return 0
}
# #
# Ended Amazon Linux AMI Install Functions # Ended Amazon Linux AMI Install Functions
# #
@ -5983,15 +6594,15 @@ install_freebsd_git_deps() {
if [ "${_POST_NEON_INSTALL}" -eq $BS_FALSE ]; then if [ "${_POST_NEON_INSTALL}" -eq $BS_FALSE ]; then
SALT_DEPENDENCIES=$(/usr/local/sbin/pkg rquery %dn py38-salt) SALT_DEPENDENCIES=$(/usr/local/sbin/pkg rquery %dn py39-salt)
# shellcheck disable=SC2086 # shellcheck disable=SC2086
/usr/local/sbin/pkg install -y ${SALT_DEPENDENCIES} python || return 1 /usr/local/sbin/pkg install -y ${SALT_DEPENDENCIES} python || return 1
/usr/local/sbin/pkg install -y py38-requests || return 1 /usr/local/sbin/pkg install -y py39-requests || return 1
/usr/local/sbin/pkg install -y py38-tornado4 || return 1 /usr/local/sbin/pkg install -y py39-tornado4 || return 1
else else
/usr/local/sbin/pkg install -y python py38-pip py38-setuptools libzmq4 libunwind || return 1 /usr/local/sbin/pkg install -y python py39-pip py39-setuptools libzmq4 libunwind || return 1
fi fi
echodebug "Adapting paths to FreeBSD" echodebug "Adapting paths to FreeBSD"
@ -6037,7 +6648,7 @@ install_freebsd_stable() {
# installing latest version of salt from FreeBSD CURRENT ports repo # installing latest version of salt from FreeBSD CURRENT ports repo
# #
# shellcheck disable=SC2086 # shellcheck disable=SC2086
/usr/local/sbin/pkg install -y py38-salt || return 1 /usr/local/sbin/pkg install -y py39-salt || return 1
return 0 return 0
} }
@ -6463,6 +7074,8 @@ __set_suse_pkg_repo() {
# Set distro repo variable # Set distro repo variable
if [ "${DISTRO_MAJOR_VERSION}" -gt 2015 ]; then if [ "${DISTRO_MAJOR_VERSION}" -gt 2015 ]; then
DISTRO_REPO="openSUSE_Tumbleweed" DISTRO_REPO="openSUSE_Tumbleweed"
elif [ "${DISTRO_MAJOR_VERSION}" -eq 15 ] && [ "${DISTRO_MINOR_VERSION}" -ge 4 ]; then
DISTRO_REPO="${DISTRO_MAJOR_VERSION}.${DISTRO_MINOR_VERSION}"
elif [ "${DISTRO_MAJOR_VERSION}" -ge 42 ] || [ "${DISTRO_MAJOR_VERSION}" -eq 15 ]; then elif [ "${DISTRO_MAJOR_VERSION}" -ge 42 ] || [ "${DISTRO_MAJOR_VERSION}" -eq 15 ]; then
DISTRO_REPO="openSUSE_Leap_${DISTRO_MAJOR_VERSION}.${DISTRO_MINOR_VERSION}" DISTRO_REPO="openSUSE_Leap_${DISTRO_MAJOR_VERSION}.${DISTRO_MINOR_VERSION}"
else else
@ -6612,7 +7225,7 @@ install_opensuse_git_deps() {
fi fi
# Check for Tumbleweed # Check for Tumbleweed
elif [ "${DISTRO_MAJOR_VERSION}" -ge 20210101 ]; then elif [ "${DISTRO_MAJOR_VERSION}" -ge 20210101 ]; then
__PACKAGES="python3-pip" __PACKAGES="python3-pip gcc-c++ python310-pyzmq-devel"
else else
__PACKAGES="python-pip python-setuptools gcc" __PACKAGES="python-pip python-setuptools gcc"
fi fi
@ -7916,6 +8529,39 @@ preseed_master() {
# #
####################################################################################################################### #######################################################################################################################
#######################################################################################################################
#
# This function checks if all of the installed daemons are running or not.
#
daemons_running_onedir() {
[ "$_START_DAEMONS" -eq $BS_FALSE ] && return 0
FAILED_DAEMONS=0
for fname in api master minion syndic; do
# Skip salt-api since the service should be opt-in and not necessarily started on boot
[ $fname = "api" ] && continue
# Skip if not meant to be installed
[ $fname = "minion" ] && [ "$_INSTALL_MINION" -eq $BS_FALSE ] && continue
[ $fname = "master" ] && [ "$_INSTALL_MASTER" -eq $BS_FALSE ] && continue
[ $fname = "syndic" ] && [ "$_INSTALL_SYNDIC" -eq $BS_FALSE ] && continue
salt_path="/opt/saltstack/salt/run/run ${fname}"
process_running=$(pgrep -f "${salt_path}")
if [ "${process_running}" = "" ]; then
echoerror "${salt_path} was not found running"
FAILED_DAEMONS=$((FAILED_DAEMONS + 1))
fi
done
return $FAILED_DAEMONS
}
#
# Ended daemons running check function
#
#######################################################################################################################
####################################################################################################################### #######################################################################################################################
# #
# This function checks if all of the installed daemons are running or not. # This function checks if all of the installed daemons are running or not.
@ -8016,6 +8662,7 @@ echodebug "PRESEED_MASTER_FUNC=${PRESEED_MASTER_FUNC}"
INSTALL_FUNC_NAMES="install_${DISTRO_NAME_L}${PREFIXED_DISTRO_MAJOR_VERSION}_${ITYPE}" INSTALL_FUNC_NAMES="install_${DISTRO_NAME_L}${PREFIXED_DISTRO_MAJOR_VERSION}_${ITYPE}"
INSTALL_FUNC_NAMES="$INSTALL_FUNC_NAMES install_${DISTRO_NAME_L}${PREFIXED_DISTRO_MAJOR_VERSION}${PREFIXED_DISTRO_MINOR_VERSION}_${ITYPE}" INSTALL_FUNC_NAMES="$INSTALL_FUNC_NAMES install_${DISTRO_NAME_L}${PREFIXED_DISTRO_MAJOR_VERSION}${PREFIXED_DISTRO_MINOR_VERSION}_${ITYPE}"
INSTALL_FUNC_NAMES="$INSTALL_FUNC_NAMES install_${DISTRO_NAME_L}_${ITYPE}" INSTALL_FUNC_NAMES="$INSTALL_FUNC_NAMES install_${DISTRO_NAME_L}_${ITYPE}"
echodebug "INSTALL_FUNC_NAMES=${INSTALL_FUNC_NAMES}"
INSTALL_FUNC="null" INSTALL_FUNC="null"
for FUNC_NAME in $(__strip_duplicates "$INSTALL_FUNC_NAMES"); do for FUNC_NAME in $(__strip_duplicates "$INSTALL_FUNC_NAMES"); do
@ -8067,6 +8714,7 @@ DAEMONS_RUNNING_FUNC_NAMES="$DAEMONS_RUNNING_FUNC_NAMES daemons_running_${DISTRO
DAEMONS_RUNNING_FUNC_NAMES="$DAEMONS_RUNNING_FUNC_NAMES daemons_running_${DISTRO_NAME_L}${PREFIXED_DISTRO_MAJOR_VERSION}${PREFIXED_DISTRO_MINOR_VERSION}" DAEMONS_RUNNING_FUNC_NAMES="$DAEMONS_RUNNING_FUNC_NAMES daemons_running_${DISTRO_NAME_L}${PREFIXED_DISTRO_MAJOR_VERSION}${PREFIXED_DISTRO_MINOR_VERSION}"
DAEMONS_RUNNING_FUNC_NAMES="$DAEMONS_RUNNING_FUNC_NAMES daemons_running_${DISTRO_NAME_L}_${ITYPE}" DAEMONS_RUNNING_FUNC_NAMES="$DAEMONS_RUNNING_FUNC_NAMES daemons_running_${DISTRO_NAME_L}_${ITYPE}"
DAEMONS_RUNNING_FUNC_NAMES="$DAEMONS_RUNNING_FUNC_NAMES daemons_running_${DISTRO_NAME_L}" DAEMONS_RUNNING_FUNC_NAMES="$DAEMONS_RUNNING_FUNC_NAMES daemons_running_${DISTRO_NAME_L}"
DAEMONS_RUNNING_FUNC_NAMES="$DAEMONS_RUNNING_FUNC_NAMES daemons_running_${ITYPE}"
DAEMONS_RUNNING_FUNC_NAMES="$DAEMONS_RUNNING_FUNC_NAMES daemons_running" DAEMONS_RUNNING_FUNC_NAMES="$DAEMONS_RUNNING_FUNC_NAMES daemons_running"
DAEMONS_RUNNING_FUNC="null" DAEMONS_RUNNING_FUNC="null"

View file

@ -27,9 +27,9 @@ provisioner:
sudo: true sudo: true
platforms: platforms:
- name: freebsd-130 - name: freebsd-131
driver: driver:
box: bento/freebsd-13.0 box: bento/freebsd-13.1
- name: freebsd-123 - name: freebsd-123
driver: driver:
box: bento/freebsd-12.3 box: bento/freebsd-12.3

View file

@ -19,6 +19,7 @@ platforms:
- name: macos-1015 - name: macos-1015
suites: suites:
<<<<<<< HEAD
- name: py3-stable-3002 - name: py3-stable-3002
provisioner: provisioner:
salt_version: 3002.8 salt_version: 3002.8
@ -26,6 +27,12 @@ suites:
provisioner: provisioner:
salt_version: 3003.4 salt_version: 3003.4
- name: py3-stable-3004 - name: py3-stable-3004
=======
- name: stable-3003
provisioner:
salt_version: 3003.4
- name: stable-3004
>>>>>>> origin/develop
provisioner: provisioner:
salt_version: 3004.1 salt_version: 3004.1
- name: latest - name: latest

View file

@ -17,13 +17,10 @@ platforms:
- name: windows-2019 - name: windows-2019
suites: suites:
- name: py3-stable-3002 - name: stable-3003
provisioner:
salt_version: 3002.8-1
- name: py3-stable-3003
provisioner: provisioner:
salt_version: 3003.4-1 salt_version: 3003.4-1
- name: py3-stable-3004 - name: stable-3004
provisioner: provisioner:
salt_version: 3004.1-1 salt_version: 3004.1-1
- name: latest - name: latest

View file

@ -57,14 +57,11 @@ platforms:
driver: driver:
image: debian:bullseye image: debian:bullseye
run_command: /lib/systemd/systemd run_command: /lib/systemd/systemd
- name: fedora-34 - name: fedora-35
driver: driver:
provision_command: &fedora_provision_command provision_command: &fedora_provision_command
- dnf -y install procps-ng crypto-policies-scripts - dnf -y install procps-ng crypto-policies-scripts
- update-crypto-policies --set LEGACY - update-crypto-policies --set LEGACY
- name: fedora-35
driver:
provision_command: *fedora_provision_command
- name: fedora-36 - name: fedora-36
driver: driver:
provision_command: *fedora_provision_command provision_command: *fedora_provision_command
@ -84,7 +81,7 @@ platforms:
- echo "PubkeyAcceptedAlgorithms +ssh-rsa" | tee -a /etc/ssh/sshd_config - echo "PubkeyAcceptedAlgorithms +ssh-rsa" | tee -a /etc/ssh/sshd_config
- name: opensuse-15 - name: opensuse-15
driver: driver:
image: opensuse/leap:15.3 image: opensuse/leap:15.4
provision_command: provision_command:
- &opensuse_provision_command_01 zypper --non-interactive install --auto-agree-with-licenses dbus-1 - &opensuse_provision_command_01 zypper --non-interactive install --auto-agree-with-licenses dbus-1
- &opensuse_provision_command_02 zypper --non-interactive install --auto-agree-with-licenses sudo openssh which curl systemd - &opensuse_provision_command_02 zypper --non-interactive install --auto-agree-with-licenses sudo openssh which curl systemd
@ -116,22 +113,14 @@ platforms:
run_command: /lib/systemd/systemd run_command: /lib/systemd/systemd
suites: suites:
- name: py3-git-3002 - name: git-3003
provisioner:
salt_version: 3002
salt_bootstrap_options: -x python3 -MPfq git %s
- name: py3-git-3003
provisioner: provisioner:
salt_version: 3003 salt_version: 3003
salt_bootstrap_options: -x python3 -MPfq git %s salt_bootstrap_options: -x python3 -MPfq git %s
- name: py3-git-3004 - name: git-3004
provisioner: provisioner:
salt_version: 3004 salt_version: 3004
salt_bootstrap_options: -x python3 -MPfq git %s salt_bootstrap_options: -x python3 -MPfq git %s
- name: py3-stable-3002-0
provisioner:
salt_version: 3002
salt_bootstrap_options: -x python3 -MP stable 3002.0
excludes: excludes:
- opensuse-15 - opensuse-15
- opensuse-tumbleweed - opensuse-tumbleweed
@ -139,10 +128,10 @@ suites:
- arch - arch
- gentoo - gentoo
- gentoo-systemd - gentoo-systemd
- freebsd-130 - freebsd-131
- freebsd-123 - freebsd-123
- openbsd-6 - openbsd-6
- name: py3-stable-3003-0 - name: stable-3003-0
provisioner: provisioner:
salt_version: 3003 salt_version: 3003
salt_bootstrap_options: -x python3 -MP stable 3003.0 salt_bootstrap_options: -x python3 -MP stable 3003.0
@ -152,21 +141,17 @@ suites:
- arch - arch
- gentoo - gentoo
- gentoo-systemd - gentoo-systemd
- freebsd-130 - freebsd-131
- freebsd-123 - freebsd-123
- openbsd-6 - openbsd-6
- name: py3-stable-3002
provisioner:
salt_version: 3002
salt_bootstrap_options: -x python3 -MP stable %s
excludes: excludes:
- opensuse-15 - opensuse-15
- opensuse-tumbleweed - opensuse-tumbleweed
- arch - arch
- freebsd-130 - freebsd-131
- freebsd-123 - freebsd-123
- openbsd-6 - openbsd-6
- name: py3-stable-3003 - name: stable-3003
provisioner: provisioner:
salt_version: 3003 salt_version: 3003
salt_bootstrap_options: -x python3 -MP stable %s salt_bootstrap_options: -x python3 -MP stable %s
@ -174,10 +159,10 @@ suites:
- opensuse-15 - opensuse-15
- opensuse-tumbleweed - opensuse-tumbleweed
- arch - arch
- freebsd-130 - freebsd-131
- freebsd-123 - freebsd-123
- openbsd-6 - openbsd-6
- name: py3-stable-3004-0 - name: stable-3004-0
provisioner: provisioner:
salt_version: 3004 salt_version: 3004
salt_bootstrap_options: -x python3 -MP stable 3004.0 salt_bootstrap_options: -x python3 -MP stable 3004.0
@ -187,10 +172,10 @@ suites:
- arch - arch
- gentoo - gentoo
- gentoo-systemd - gentoo-systemd
- freebsd-130 - freebsd-131
- freebsd-123 - freebsd-123
- openbsd-6 - openbsd-6
- name: py3-stable-3004 - name: stable-3004
provisioner: provisioner:
salt_version: 3004 salt_version: 3004
salt_bootstrap_options: -x python3 -MP stable %s salt_bootstrap_options: -x python3 -MP stable %s
@ -198,10 +183,10 @@ suites:
- opensuse-15 - opensuse-15
- opensuse-tumbleweed - opensuse-tumbleweed
- arch - arch
- freebsd-130 - freebsd-131
- freebsd-123 - freebsd-123
- openbsd-6 - openbsd-6
- name: py3-git-master - name: git-master
provisioner: provisioner:
salt_version: master salt_version: master
salt_bootstrap_options: -x python3 -MPfq -D git %s salt_bootstrap_options: -x python3 -MPfq -D git %s

View file

@ -9,7 +9,10 @@ log = logging.getLogger(__name__)
@pytest.fixture(scope="session") @pytest.fixture(scope="session")
def host(): def host():
if os.environ.get("RUNNER_OS", "") == "macOS": if (
os.environ.get("RUNNER_OS", "") == "macOS"
and os.environ.get("KITCHEN_LOCAL_YAML", "") == "kitchen.macos.yml"
):
# Adjust the `PATH` so that the `salt-call` executable can be found # Adjust the `PATH` so that the `salt-call` executable can be found
os.environ["PATH"] = "/opt/salt/bin{}{}".format(os.pathsep, os.environ["PATH"]) os.environ["PATH"] = "/opt/salt/bin{}{}".format(os.pathsep, os.environ["PATH"])
return testinfra.get_host("local://", sudo=True) return testinfra.get_host("local://", sudo=True)
@ -37,12 +40,7 @@ def host():
@pytest.fixture(scope="session") @pytest.fixture(scope="session")
def target_python_version(): def target_python_version():
target_python = os.environ["KITCHEN_SUITE"].split("-", 1)[0] return 3
if target_python == "latest":
pytest.skip(
"Unable to get target python from {}".format(os.environ["KITCHEN_SUITE"])
)
return int(target_python.replace("py", ""))
@pytest.fixture(scope="session") @pytest.fixture(scope="session")

View file

@ -1,9 +1,6 @@
# -*- coding: utf-8 -*- # -*- coding: utf-8 -*-
import json
import os import os
import pytest
import logging import logging
import pprint
from contextlib import nullcontext from contextlib import nullcontext
log = logging.getLogger(__name__) log = logging.getLogger(__name__)