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:
push:
tags:
- '*'
on: workflow_dispatch
jobs:
bootstrap:
name: Update Release Checksums on Develop
update-develop:
name: Update CHANGELOG.md and bootstrap-salt.sh
runs-on: ubuntu-latest
if: github.repository == 'saltstack/salt-bootstrap'
permissions:
contents: write # To be able to publish the release
environment: Release
steps:
- uses: actions/checkout@v2
if: github.repository == 'saltstack/salt-bootstrap'
- name: Check For Admin Permission
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:
ref: stable
repository: ${{ github.repository }}
ssh-key: ${{ secrets.SALT_BOOTSTRAP_RELEASE_KEY }}
fetch-depth: 0
- name: Get bootstrap-salt.sh sha256sum
if: github.repository == 'saltstack/salt-bootstrap'
- 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: 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: |
echo "SH=$(sha256sum bootstrap-salt.sh | awk '{ print $1 }')" >> $GITHUB_ENV
echo "BS_VERSION=$(sh bootstrap-salt.sh -v | awk '{ print $4 }')" >> $GITHUB_ENV
- uses: actions/checkout@v2
if: github.repository == 'saltstack/salt-bootstrap'
- 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
if: github.repository == 'saltstack/salt-bootstrap'
uses: actions/setup-python@v1
uses: actions/setup-python@v4
with:
python-version: 3.7
- name: Update Latest Release on README
if: github.repository == 'saltstack/salt-bootstrap'
run: |
python3 .github/workflows/scripts/update-release-shasum.py ${{ env.BS_VERSION }} ${{ env.SH }}
- name: Create Pull Request Against Develop
uses: peter-evans/create-pull-request@v3
- name: Show Changes
run: |
git status
git diff
- name: Commit Changes
run: |
git commit -am "Update README.rst with ${{ env.BS_VERSION }} release sha256sum" || \
git commit -am "Update README.rst with ${{ env.BS_VERSION }} release sha256sum"
- name: Push Changes
uses: ad-m/github-push-action@master
with:
title: Update README.rst with ${{ env.BS_VERSION }} release sha256sum
commit-message: Update README.rst with ${{ env.BS_VERSION }} release sha256sum
delete-branch: true
repository: ${{ github.repository }}
branch: develop
ssh: true
salt:
name: Update Release on Salt Repo
runs-on: ubuntu-latest
if: github.repository == 'saltstack/salt-bootstrap'
needs: update-develop-checksums
environment: Open PR Against Salt
permissions:
contents: write # For action peter-evans/create-pull-request
pull-requests: write # For action peter-evans/create-pull-request
steps:
- uses: actions/checkout@v2
if: github.repository == 'saltstack/salt-bootstrap'
- uses: actions/checkout@v3
with:
ref: stable
repository: ${{ github.repository }}
- name: Get bootstrap version
if: github.repository == 'saltstack/salt-bootstrap'
run: |
echo "BS_VERSION=$(sh bootstrap-salt.sh -v | awk '{ print $4 }')" >> $GITHUB_ENV
- uses: actions/checkout@v2
if: github.repository == 'saltstack/salt-bootstrap'
- uses: actions/checkout@v3
with:
repository: saltstack/salt
ref: master
path: salt-checkout
token: ${{ secrets.SALT_REPO_WRITE_TOKEN }}
- name: Update Git Settings
run: |
git config --local user.email "41898282+github-actions[bot]@users.noreply.github.com"
git config --local user.name "github-actions[bot] on behalf of @${{ github.event.sender.login }}"
- name: Update bootstrap script on Salt
if: github.repository == 'saltstack/salt-bootstrap'
run: |
cp bootstrap-salt.sh salt-checkout/salt/cloud/deploy/bootstrap-salt.sh
- name: Create Pull Request Against Develop
uses: peter-evans/create-pull-request@v3
uses: peter-evans/create-pull-request@v4
with:
title: Update the bootstrap script to v${{ env.BS_VERSION }}
title: "Update the bootstrap script to v${{ env.BS_VERSION }}"
path: salt-checkout
base: master
token: ${{ secrets.SALT_REPO_WRITE_TOKEN }}
commit-message: Update the bootstrap script to v${{ env.BS_VERSION }}
delete-branch: true

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
import sys
import pathlib
import subprocess
THIS_FILE = pathlib.Path(__file__).resolve()
CODE_ROOT = THIS_FILE.parent.parent.parent.parent
@ -9,6 +10,9 @@ README_PATH = CODE_ROOT / "README.rst"
def main(version, sha256sum):
in_contents = README_PATH.read_text()
if version in in_contents:
print(f"README file already contains an entry for version {version}")
sys.exit(1)
out_contents = ""
found_anchor = False
updated_version = False
@ -32,6 +36,14 @@ def main(version, sha256sum):
if in_contents != out_contents:
README_PATH.write_text(out_contents)
ret = subprocess.run(
["git", "diff", "--stat"], universal_newlines=True, capture_output=True
)
if "1 file changed, 1 insertion(+)" not in ret.stdout:
print("Too Many Changes to the readme file")
sys.exit(1)
sys.exit(0)
if __name__ == "__main__":
main(sys.argv[1], sys.argv[2])

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
# -*- coding: utf-8 -*-
import os
import json
import pathlib
import datetime
os.chdir(os.path.abspath(os.path.dirname(__file__)))
@ -14,7 +16,6 @@ LINUX_DISTROS = [
"debian-10",
"debian-11",
"debian-9",
"fedora-34",
"fedora-35",
"fedora-36",
"gentoo",
@ -26,10 +27,23 @@ LINUX_DISTROS = [
"rockylinux-8",
"ubuntu-1804",
"ubuntu-2004",
"ubuntu-2110",
"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 = [
"almalinux-8",
@ -40,7 +54,6 @@ STABLE_DISTROS = [
"debian-10",
"debian-11",
"debian-9",
"fedora-34",
"fedora-35",
"fedora-36",
"gentoo",
@ -52,50 +65,12 @@ STABLE_DISTROS = [
"rockylinux-8",
"ubuntu-1804",
"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",
]
BLACKLIST_3003 = [
"arch",
"debian-11",
"fedora-34",
"fedora-35",
"fedora-36",
"gentoo",
@ -111,7 +86,6 @@ BLACKLIST_GIT_3003 = [
"arch",
"debian-10",
"debian-11",
"fedora-34",
"fedora-35",
"fedora-36",
"gentoo",
@ -126,7 +100,6 @@ BLACKLIST_GIT_3003 = [
BLACKLIST_3004 = [
"arch",
"fedora-34",
"fedora-35",
"fedora-36",
"gentoo",
@ -140,7 +113,6 @@ BLACKLIST_GIT_3004 = [
"arch",
"debian-10",
"debian-11",
"fedora-34",
"fedora-35",
"fedora-36",
"gentoo",
@ -152,23 +124,21 @@ BLACKLIST_GIT_3004 = [
"ubuntu-2204",
]
SALT_BRANCHES = [
"3002",
SALT_VERSIONS = [
"3003",
"3004",
"master",
"latest",
]
BRANCH_DISPLAY_NAMES = {
"3002": "v3002",
VERSION_DISPLAY_NAMES = {
"3003": "v3003",
"3004": "v3004",
"master": "Master",
"latest": "Latest",
}
STABLE_BRANCH_BLACKLIST = []
STABLE_VERSION_BLACKLIST = []
LATEST_PKG_BLACKLIST = []
@ -181,7 +151,6 @@ DISTRO_DISPLAY_NAMES = {
"debian-10": "Debian 10",
"debian-11": "Debian 11",
"debian-9": "Debian 9",
"fedora-34": "Fedora 34",
"fedora-35": "Fedora 35",
"fedora-36": "Fedora 36",
"gentoo": "Gentoo",
@ -193,8 +162,15 @@ DISTRO_DISPLAY_NAMES = {
"rockylinux-8": "Rocky Linux 8",
"ubuntu-1804": "Ubuntu 18.04",
"ubuntu-2004": "Ubuntu 20.04",
"ubuntu-2110": "Ubuntu 21.10",
"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
@ -202,170 +178,270 @@ TIMEOUT_OVERRIDES = {
"gentoo": 90,
"gentoo-systemd": 90,
}
BRANCH_ONLY_OVERRIDES = [
VERSION_ONLY_OVERRIDES = [
"gentoo",
"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():
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_OVERRIDES[distro]
if distro in TIMEOUT_OVERRIDES
else TIMEOUT_DEFAULT
)
needs = " needs: lint"
if distro in BRANCH_ONLY_OVERRIDES:
needs = ""
current_test_jobs = ""
for salt_version in SALT_VERSIONS:
for branch in SALT_BRANCHES:
if branch == "latest":
if salt_version == "latest":
if distro in LATEST_PKG_BLACKLIST:
continue
if distro in LINUX_DISTROS:
template = "linux.yml"
elif distro in OSX:
template = "osx.yml"
elif distro in WINDOWS:
template = "windows.yml"
else:
print("Don't know how to handle {}".format(distro))
with open(template) as rfh:
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,
)
)
instances.append(salt_version)
continue
for python_version in ("py3",):
if distro == "openbsd-6":
# Only test latest on OpenBSD 6
continue
for bootstrap_type in ("stable", "git"):
if bootstrap_type == "stable":
if branch == "master":
# For the master branch there's no stable build
continue
if distro not in STABLE_DISTROS:
continue
if salt_version != "master":
# Only test the master branch on BSD's
continue
if branch in STABLE_BRANCH_BLACKLIST:
continue
if distro.startswith("fedora") and branch != "latest":
# Fedora does not keep old builds around
continue
# BSD's don't have a stable release, only use git
for bootstrap_type in ("git",):
BLACKLIST = {
"3003": BLACKLIST_3003,
"3004": BLACKLIST_3004,
}
if bootstrap_type == "git":
BLACKLIST = {
"3002": BLACKLIST_3002,
"3003": BLACKLIST_3003,
"3004": BLACKLIST_3004,
"3003": BLACKLIST_GIT_3003,
"3004": BLACKLIST_GIT_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.
if branch.endswith("-0"):
continue
if (
branch in ("3002", "3003", "3004")
and distro in BLACKLIST[branch]
):
# .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 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))
if (
salt_version in ("3003", "3004")
and distro in BLACKLIST[salt_version]
):
continue
with open(template) as rfh:
current_test_jobs += "\n{}\n".format(
rfh.read().format(
distro=distro,
branch=branch,
python_version=python_version,
bootstrap_type=bootstrap_type,
display_name="{} {} {} {}".format(
DISTRO_DISPLAY_NAMES[distro],
BRANCH_DISPLAY_NAMES[branch],
python_version.capitalize(),
bootstrap_type.capitalize(),
),
timeout_minutes=timeout_minutes,
needs=needs,
)
)
if distro in BRANCH_ONLY_OVERRIDES:
branch_only_test_jobs += current_test_jobs
kitchen_target = f"{bootstrap_type}-{salt_version}"
instances.append(kitchen_target)
if instances:
needs.append(distro)
test_jobs += TEMPLATE.format(
distro=distro,
runs_on=runs_on,
uses=uses,
ifcheck=ifcheck,
instances=json.dumps(instances),
display_name=DISTRO_DISPLAY_NAMES[distro],
timeout_minutes=timeout_minutes,
)
test_jobs += "\n"
for distro in OSX:
test_jobs += "\n"
if distro == "macos-1015":
runs_on = "macos-10.15"
else:
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:
lint_job = "\n{}\n".format(rfh.read())
for salt_version in SALT_VERSIONS:
with open("pre-commit.yml") as rfh:
pre_commit_job = "\n{}\n".format(rfh.read())
if salt_version == "latest":
with open("../main.yml", "w") as wfh:
with open("main.yml") as rfh:
wfh.write(
"{}\n".format(
rfh.read()
.format(
jobs="{pre_commit}{lint}{test}".format(
lint=lint_job,
test=test_jobs,
pre_commit=pre_commit_job,
),
on="push, pull_request",
name="Testing",
)
.strip()
)
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,
)
with open("../main-branch-only.yml", "w") as wfh:
with open("main.yml") as rfh:
wfh.write(
"{}\n".format(
rfh.read()
.format(
jobs="{test}".format(
test=branch_only_test_jobs,
),
on="push",
name="Branch Testing",
)
.strip()
)
test_jobs += "\n"
for distro in WINDOWS:
test_jobs += "\n"
runs_on = f"\n runs-on: {distro}"
ifcheck = "\n if: github.event_name == 'push' || needs.collect-changed-files.outputs.run-tests == 'true'"
uses = "./.github/workflows/test-windows.yml"
instances = []
timeout_minutes = (
TIMEOUT_OVERRIDES[distro]
if distro in TIMEOUT_OVERRIDES
else TIMEOUT_DEFAULT
)
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__":
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
repos:
- repo: https://github.com/pre-commit/pre-commit-hooks
rev: v2.1.0
rev: v4.3.0
hooks:
- id: check-merge-conflict # Check for files that contain merge conflict strings.
- id: trailing-whitespace # Trims trailing whitespace.
@ -11,8 +11,13 @@ repos:
args: [--fix=lf]
- id: end-of-file-fixer # Makes sure files end in a newline and only a newline.
- repo: https://github.com/executablebooks/mdformat
rev: 0.7.14
hooks:
- id: mdformat
- repo: https://github.com/psf/black
rev: 22.3.0
rev: 22.6.0
hooks:
- id: black
@ -22,7 +27,7 @@ repos:
name: Generate Github Actions Workflow
entry: .github/workflows/templates/generate.py
pass_filenames: false
files: '.github/workflows/templates/.*'
files: '^.github/workflows/.*$'
language: script
- id: shellcheck

View file

@ -1,5 +1,11 @@
This authors list is kept for historical purposes
=================================================
Feel free to add yourself to this list, but for a full list of contributors,
`check here <https://github.com/saltstack/salt-bootstrap/graphs/contributors>`_.
Authors
=======
-------
Here's a list of everyone who contributed to salt-bootstrap in alphabetical
order.

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

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

@ -23,7 +23,7 @@
#======================================================================================================================
set -o nounset # Treat unset variables as an error
__ScriptVersion="2022.05.19"
__ScriptVersion="2022.08.12"
__ScriptName="bootstrap-salt.sh"
__ScriptFullName="$0"
@ -268,6 +268,7 @@ _CUSTOM_MASTER_CONFIG="null"
_CUSTOM_MINION_CONFIG="null"
_QUIET_GIT_INSTALLATION=$BS_FALSE
_REPO_URL="repo.saltproject.io"
_ONEDIR_DIR="salt"
_PY_EXE="python3"
_INSTALL_PY="$BS_FALSE"
_TORNADO_MAX_PY3_VERSION="5.0"
@ -290,17 +291,24 @@ __usage() {
Usage : ${__ScriptName} [options] <install-type> [install-type-args]
Installation types:
- stable Install latest stable release. This is the default
install type
- stable [branch] Install latest version on a branch. Only supported
for packages available at repo.saltproject.io
- stable [version] Install a specific version. Only supported for
packages available at repo.saltproject.io
To pin a 3xxx minor version, specify it as 3xxx.0
- testing RHEL-family specific: configure EPEL testing repo
- git Install from the head of the master branch
- git [ref] Install from any git ref (such as a branch, tag, or
commit)
- stable Install latest stable release. This is the default
install type
- stable [branch] Install latest version on a branch. Only supported
for packages available at repo.saltproject.io
- stable [version] Install a specific version. Only supported for
packages available at repo.saltproject.io
To pin a 3xxx minor version, specify it as 3xxx.0
- testing RHEL-family specific: configure EPEL testing repo
- git Install from the head of the master branch
- git [ref] Install from any git ref (such as a branch, tag, or
commit)
- 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:
- ${__ScriptName}
@ -312,6 +320,10 @@ __usage() {
- ${__ScriptName} git 2017.7
- ${__ScriptName} git v2017.7.2
- ${__ScriptName} git 06f249901a2e2f1ed310d58ea3921a129f214358
- ${__ScriptName} onedir
- ${__ScriptName} onedir 3005
- ${__ScriptName} onedir_rc
- ${__ScriptName} onedir_rc 3005
Options:
-a Pip install all Python pkg dependencies for Salt. Requires -V to install
@ -582,7 +594,7 @@ if [ "$#" -gt 0 ];then
fi
# 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..."
exit 1
fi
@ -604,7 +616,7 @@ elif [ "$ITYPE" = "stable" ]; then
if [ "$#" -eq 0 ];then
STABLE_REV="latest"
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"
shift
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
shift
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
fi
fi
@ -2969,6 +3023,48 @@ __install_saltstack_ubuntu_repository() {
__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() {
if [ $_DISABLE_REPOS -eq $BS_FALSE ]; then
# Install add-apt-repository
@ -3141,6 +3237,44 @@ install_ubuntu_git_deps() {
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() {
__PACKAGES=""
@ -3200,6 +3334,28 @@ install_ubuntu_git() {
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() {
for fname in api master minion syndic; do
# 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
}
__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() {
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."
@ -3450,6 +3640,59 @@ install_debian_deps() {
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() {
if ! __check_command_exists git; then
__apt_get_install_noinput git || return 1
@ -3726,6 +3969,28 @@ install_debian_9_git() {
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() {
for fname in api master minion syndic; do
# Skip if not meant to be installed
@ -4117,9 +4382,13 @@ __install_epel_repository() {
return 0
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
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
@ -4143,6 +4412,8 @@ __install_saltstack_rhel_repository() {
base_url="${HTTP_VAL}://${_REPO_URL}/${__PY_VERSION_REPO}/redhat/${DISTRO_MAJOR_VERSION}/\$basearch/${repo_rev}/"
if [ "${DISTRO_MAJOR_VERSION}" -eq 7 ]; then
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
gpg_key="SALTSTACK-GPG-KEY.pub"
fi
@ -4180,6 +4451,60 @@ _eof
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() {
if [ "$_UPGRADE_SYS" -eq $BS_TRUE ]; then
yum -y update || return 1
@ -4484,6 +4809,101 @@ install_centos_git_post() {
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() {
[ $_START_DAEMONS -eq $BS_FALSE ] && return
@ -4583,6 +5003,11 @@ install_red_hat_linux_git_deps() {
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_linux_stable_deps || return 1
return 0
@ -4593,6 +5018,11 @@ install_red_hat_enterprise_git_deps() {
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_linux_stable_deps || return 1
return 0
@ -4603,6 +5033,11 @@ install_red_hat_enterprise_linux_git_deps() {
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_linux_stable_deps || return 1
return 0
@ -4613,6 +5048,11 @@ install_red_hat_enterprise_server_git_deps() {
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_linux_stable_deps || return 1
return 0
@ -4623,6 +5063,11 @@ install_red_hat_enterprise_workstation_git_deps() {
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_centos_stable || return 1
return 0
@ -4633,6 +5078,11 @@ install_red_hat_linux_git() {
return 0
}
install_red_hat_linux_onedir() {
install_centos_onedir || return 1
return 0
}
install_red_hat_enterprise_stable() {
install_red_hat_linux_stable || return 1
return 0
@ -4643,6 +5093,11 @@ install_red_hat_enterprise_git() {
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_linux_stable || return 1
return 0
@ -4653,6 +5108,11 @@ install_red_hat_enterprise_linux_git() {
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_linux_stable || return 1
return 0
@ -4663,6 +5123,11 @@ install_red_hat_enterprise_server_git() {
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_linux_stable || return 1
return 0
@ -4673,6 +5138,11 @@ install_red_hat_enterprise_workstation_git() {
return 0
}
install_red_hat_enterprise_workstation_onedir() {
install_red_hat_linux_onedir || return 1
return 0
}
install_red_hat_linux_stable_post() {
install_centos_stable_post || return 1
return 0
@ -4826,6 +5296,11 @@ install_oracle_linux_git_deps() {
return 0
}
install_oracle_linux_onedir_deps() {
install_centos_onedir_deps || return 1
return 0
}
install_oracle_linux_testing_deps() {
install_centos_testing_deps || return 1
return 0
@ -4841,6 +5316,11 @@ install_oracle_linux_git() {
return 0
}
install_oracle_linux_onedir() {
install_centos_onedir || return 1
return 0
}
install_oracle_linux_testing() {
install_centos_testing || return 1
return 0
@ -4889,6 +5369,11 @@ install_almalinux_git_deps() {
return 0
}
install_almalinux_onedir_deps() {
install_centos_onedir_deps || return 1
return 0
}
install_almalinux_testing_deps() {
install_centos_testing_deps || return 1
return 0
@ -4904,6 +5389,11 @@ install_almalinux_git() {
return 0
}
install_almalinux_onedir() {
install_centos_onedir || return 1
return 0
}
install_almalinux_testing() {
install_centos_testing || return 1
return 0
@ -4952,6 +5442,11 @@ install_rocky_linux_git_deps() {
return 0
}
install_rocky_linux_onedir_deps() {
install_centos_onedir_deps || return 1
return 0
}
install_rocky_linux_testing_deps() {
install_centos_testing_deps || return 1
return 0
@ -4962,6 +5457,11 @@ install_rocky_linux_stable() {
return 0
}
install_rocky_linux_onedir() {
install_centos_onedir || return 1
return 0
}
install_rocky_linux_git() {
install_centos_git || return 1
return 0
@ -5015,6 +5515,11 @@ install_scientific_linux_git_deps() {
return 0
}
install_scientific_linux_onedir_deps() {
install_centos_onedir_deps || return 1
return 0
}
install_scientific_linux_testing_deps() {
install_centos_testing_deps || return 1
return 0
@ -5030,6 +5535,11 @@ install_scientific_linux_git() {
return 0
}
install_scientific_linux_onedir() {
install_centos_onedir || return 1
return 0
}
install_scientific_linux_testing() {
install_centos_testing || return 1
return 0
@ -5078,6 +5588,11 @@ install_cloud_linux_git_deps() {
return 0
}
install_cloud_linux_onedir_deps() {
install_centos_onedir_deps || return 1
return 0
}
install_cloud_linux_testing_deps() {
install_centos_testing_deps || return 1
return 0
@ -5642,6 +6157,92 @@ _eof
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_centos_stable || return 1
return 0
@ -5717,6 +6318,16 @@ install_amazon_linux_ami_2_check_services() {
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
#
@ -5983,15 +6594,15 @@ install_freebsd_git_deps() {
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
/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 py38-tornado4 || return 1
/usr/local/sbin/pkg install -y py39-requests || return 1
/usr/local/sbin/pkg install -y py39-tornado4 || return 1
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
echodebug "Adapting paths to FreeBSD"
@ -6037,7 +6648,7 @@ install_freebsd_stable() {
# installing latest version of salt from FreeBSD CURRENT ports repo
#
# 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
}
@ -6463,6 +7074,8 @@ __set_suse_pkg_repo() {
# Set distro repo variable
if [ "${DISTRO_MAJOR_VERSION}" -gt 2015 ]; then
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
DISTRO_REPO="openSUSE_Leap_${DISTRO_MAJOR_VERSION}.${DISTRO_MINOR_VERSION}"
else
@ -6612,7 +7225,7 @@ install_opensuse_git_deps() {
fi
# Check for Tumbleweed
elif [ "${DISTRO_MAJOR_VERSION}" -ge 20210101 ]; then
__PACKAGES="python3-pip"
__PACKAGES="python3-pip gcc-c++ python310-pyzmq-devel"
else
__PACKAGES="python-pip python-setuptools gcc"
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.
@ -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_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}"
echodebug "INSTALL_FUNC_NAMES=${INSTALL_FUNC_NAMES}"
INSTALL_FUNC="null"
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}_${ITYPE}"
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="null"

View file

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

View file

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

View file

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

View file

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

View file

@ -9,7 +9,10 @@ log = logging.getLogger(__name__)
@pytest.fixture(scope="session")
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
os.environ["PATH"] = "/opt/salt/bin{}{}".format(os.pathsep, os.environ["PATH"])
return testinfra.get_host("local://", sudo=True)
@ -37,12 +40,7 @@ def host():
@pytest.fixture(scope="session")
def target_python_version():
target_python = os.environ["KITCHEN_SUITE"].split("-", 1)[0]
if target_python == "latest":
pytest.skip(
"Unable to get target python from {}".format(os.environ["KITCHEN_SUITE"])
)
return int(target_python.replace("py", ""))
return 3
@pytest.fixture(scope="session")

View file

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