mirror of
https://github.com/saltstack/salt-bootstrap.git
synced 2025-04-16 09:40:21 +00:00
Merge pull request #1275 from rallytime/merge-stable
[stable] Merge develop into stable for new release
This commit is contained in:
commit
36f843063e
6 changed files with 628 additions and 281 deletions
|
@ -12,6 +12,7 @@ Adam Wright hipikat adam@hipikat.org
|
||||||
Alec Koumjian akoumjian akoumjian@gmail.com
|
Alec Koumjian akoumjian akoumjian@gmail.com
|
||||||
Alex Van't Hof alexvh
|
Alex Van't Hof alexvh
|
||||||
Alexander Krasnukhin themalkolm the.malkolm@gmail.com
|
Alexander Krasnukhin themalkolm the.malkolm@gmail.com
|
||||||
|
Alexandru Avadanii alexandruavadanii Alexandru.Avadanii@enea.com
|
||||||
Alexey dmitrievav
|
Alexey dmitrievav
|
||||||
Ali Rizvi-Santiago arizvisa
|
Ali Rizvi-Santiago arizvisa
|
||||||
amendlik amendlik
|
amendlik amendlik
|
||||||
|
@ -69,6 +70,7 @@ Guillaume Derval GuillaumeDerval guillaume@guillaumederval.be
|
||||||
gweis gweis
|
gweis gweis
|
||||||
Henrik Holmboe holmboe
|
Henrik Holmboe holmboe
|
||||||
Howard Mei HowardMei howardleomei@gmail.com
|
Howard Mei HowardMei howardleomei@gmail.com
|
||||||
|
Jan Heidbrink jheidbrink
|
||||||
James Booth absolutejam vvalentine1337@gmail.com
|
James Booth absolutejam vvalentine1337@gmail.com
|
||||||
Jared E Stroud jaredestroud jaredestroud@gmail.com
|
Jared E Stroud jaredestroud jaredestroud@gmail.com
|
||||||
Jasper Lievisse Adriaanse jasperla jasper@humppa.nl
|
Jasper Lievisse Adriaanse jasperla jasper@humppa.nl
|
||||||
|
@ -80,6 +82,7 @@ Justin Anderson justinta justin.ta@outlook.com
|
||||||
Justin Findlay jfindlay jfindlay@gmail.com
|
Justin Findlay jfindlay jfindlay@gmail.com
|
||||||
Karl Grzeszczak karlgrz
|
Karl Grzeszczak karlgrz
|
||||||
Kenneth Wilke KennethWilke
|
Kenneth Wilke KennethWilke
|
||||||
|
Ky-Anh Huynh icy
|
||||||
lomeroe lomeroe
|
lomeroe lomeroe
|
||||||
Liu Xiaohui oreh herolxh@gmail.com
|
Liu Xiaohui oreh herolxh@gmail.com
|
||||||
Lorenzo Perone lopezio lorenzo.perone@yellowspace.net
|
Lorenzo Perone lopezio lorenzo.perone@yellowspace.net
|
||||||
|
@ -96,11 +99,13 @@ Matthew Mead-Briggs mattmb
|
||||||
Matthew Richardson mrichar1
|
Matthew Richardson mrichar1
|
||||||
Matthew Willson ixela
|
Matthew Willson ixela
|
||||||
Matthieu Guegan mguegan
|
Matthieu Guegan mguegan
|
||||||
|
mfapouw mfapouw
|
||||||
Michael A. Smith kojiromike michaels@syapse.com
|
Michael A. Smith kojiromike michaels@syapse.com
|
||||||
Michael Scherer mscherer
|
Michael Scherer mscherer
|
||||||
Michele Bologna mbologna michele.bologna@gmail.com
|
Michele Bologna mbologna michele.bologna@gmail.com
|
||||||
Mike Carlson m87carlson mike@bayphoto.com
|
Mike Carlson m87carlson mike@bayphoto.com
|
||||||
Mike Place cachedout mp@saltstack.com
|
Mike Place cachedout mp@saltstack.com
|
||||||
|
N noelmcloughlin noel.maclochlainn@gmail.com
|
||||||
nasenbaer13 nasenbaer13
|
nasenbaer13 nasenbaer13
|
||||||
nevins-b nevins-b
|
nevins-b nevins-b
|
||||||
Nicole Thomas rallytime nicole@saltstack.com
|
Nicole Thomas rallytime nicole@saltstack.com
|
||||||
|
|
30
ChangeLog
30
ChangeLog
|
@ -1,3 +1,33 @@
|
||||||
|
Version TBD (In Progress on the Develop Branch):
|
||||||
|
|
||||||
|
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:
|
Version 2018.04.25:
|
||||||
* Install py-tornado4 for FreeBSD. (abednarik) #1219
|
* Install py-tornado4 for FreeBSD. (abednarik) #1219
|
||||||
* Remove COPR repos configuration for Fedora (vutny ) #1211
|
* Remove COPR repos configuration for Fedora (vutny ) #1211
|
||||||
|
|
114
Jenkinsfile
vendored
Normal file
114
Jenkinsfile
vendored
Normal file
|
@ -0,0 +1,114 @@
|
||||||
|
import java.util.Random
|
||||||
|
|
||||||
|
Random rand = new Random()
|
||||||
|
|
||||||
|
// ONLY CHANGE THIS BIT PLEASE
|
||||||
|
def baseDistros = ["debian8",
|
||||||
|
"suse",
|
||||||
|
"centos6",
|
||||||
|
"arch",
|
||||||
|
"ubuntu-14.04",
|
||||||
|
"ubuntu-18.04",
|
||||||
|
"windows",
|
||||||
|
]
|
||||||
|
def versions = ["stable", "git", "stable-old"]
|
||||||
|
|
||||||
|
def basePrDistros = ["ubuntu-16.04",
|
||||||
|
"centos7"]
|
||||||
|
|
||||||
|
def prVersions = ["stable", "git"]
|
||||||
|
|
||||||
|
// You probably shouldn't be messing with this stuff down here
|
||||||
|
|
||||||
|
def distros = (baseDistros + basePrDistros).unique()
|
||||||
|
|
||||||
|
def notifySuccessful(String stageName) {
|
||||||
|
slackSend (color: '#00FF00', message: "SUCCESSFUL: Job '${env.JOB_NAME} [${env.BUILD_NUMBER}]' (${env.BUILD_URL})" + "\n Stage -- " + stageName)
|
||||||
|
}
|
||||||
|
|
||||||
|
def notifyFailed(String stageName) {
|
||||||
|
slackSend (color: '#FF0000', message: "FAILED: Job '${env.JOB_NAME} [${env.BUILD_NUMBER}]' (${env.BUILD_URL})" + "\n Stage -- " + stageName)
|
||||||
|
}
|
||||||
|
|
||||||
|
def runKitchen(String distro) {
|
||||||
|
echo "kitchen create ${distro}"
|
||||||
|
echo "kitchen converge ${distro}"
|
||||||
|
echo "kitchen destroy ${distro}"
|
||||||
|
}
|
||||||
|
|
||||||
|
def distroversions = []
|
||||||
|
for (d in distros) {
|
||||||
|
for (v in versions) {
|
||||||
|
distroversions = distroversions + ["${d}-${v}"]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
def prDistros = (basePrDistros + distros[rand.nextInt(baseDistros.size())]).unique()
|
||||||
|
|
||||||
|
def prDistroversions = []
|
||||||
|
for (d in prDistros) {
|
||||||
|
for (v in prVersions) {
|
||||||
|
prDistroversions = prDistroversions + ["${d}-${v}"]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
def makeSetupRuns(dv) {
|
||||||
|
return {
|
||||||
|
node {
|
||||||
|
runKitchen("${dv}")
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
def setupRuns = distroversions.collectEntries {
|
||||||
|
["kitchen-${it}" : makeSetupRuns("${it}")]
|
||||||
|
}
|
||||||
|
|
||||||
|
def prSetupRuns = prDistroversions.collectEntries {
|
||||||
|
["kitchen-${it}" : makeSetupRuns("${it}")]
|
||||||
|
}
|
||||||
|
|
||||||
|
node ('bootstrap') {
|
||||||
|
timestamps {
|
||||||
|
ansiColor('xterm') {
|
||||||
|
stage('checkout') { checkout scm }
|
||||||
|
stage('shellcheck') {
|
||||||
|
sh 'stack exec -- shellcheck -s sh -f checkstyle bootstrap-salt.sh | tee checkstyle.xml'
|
||||||
|
checkstyle canComputeNew: false, defaultEncoding: '', healthy: '', pattern: '**/checkstyle.xml', unHealthy: '', unstableTotalAll: '0'
|
||||||
|
archiveArtifacts artifacts: '**/checkstyle.xml'
|
||||||
|
}
|
||||||
|
// if (env.CHANGE_ID) {
|
||||||
|
// // Running for a PR only runs against 4 random distros from a shorter list
|
||||||
|
// stage('kitchen-pr') {
|
||||||
|
// parallel prSetupRuns
|
||||||
|
// }
|
||||||
|
// } else {
|
||||||
|
// // If we're not running for a pr we run *everything*
|
||||||
|
// stage('kitchen-all') {
|
||||||
|
// parallel setupRuns
|
||||||
|
// }
|
||||||
|
// }
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
* TODO:
|
||||||
|
* 1. Tests for each supported distro in bootstrap + branch shellcheck test (Shellcheck should be done)
|
||||||
|
* 2. Each distro needs a "stable" install (installs stable packages from our repo) and a "git" install (installs off of a git tag)
|
||||||
|
* 3. Running against each branch (stable, develop)
|
||||||
|
* 4. And probably a small subset against each pull request (similar to what we do in salt)
|
||||||
|
*
|
||||||
|
* Distros to check:
|
||||||
|
* Debian 8
|
||||||
|
* Suse 42.1
|
||||||
|
* CentOS 7
|
||||||
|
* CentOS 6
|
||||||
|
* Arch
|
||||||
|
* Ubuntu 16.04
|
||||||
|
* Ubuntu 14.04
|
||||||
|
* Windows
|
||||||
|
*
|
||||||
|
* Runs each against develop and stable
|
||||||
|
*
|
||||||
|
*/
|
50
README.rst
50
README.rst
|
@ -28,6 +28,7 @@ sum** of the downloaded ``bootstrap-salt.sh`` file.
|
||||||
|
|
||||||
The SHA256 sum of the ``bootstrap-salt.sh`` file, per release, is:
|
The SHA256 sum of the ``bootstrap-salt.sh`` file, per release, is:
|
||||||
|
|
||||||
|
- 2018.04.25: ``e2e3397d6642ba6462174b4723f1b30d04229b75efc099a553e15ea727877dfb``
|
||||||
- 2017.12.13: ``c127b3aa4a8422f6b81f5b4a40d31d13cec97bf3a39bca9c11a28f24910a6895``
|
- 2017.12.13: ``c127b3aa4a8422f6b81f5b4a40d31d13cec97bf3a39bca9c11a28f24910a6895``
|
||||||
- 2017.08.17: ``909b4d35696b9867b34b22ef4b60edbc5a0e9f8d1ed8d05f922acb79a02e46e3``
|
- 2017.08.17: ``909b4d35696b9867b34b22ef4b60edbc5a0e9f8d1ed8d05f922acb79a02e46e3``
|
||||||
- 2017.05.24: ``8c42c2e5ad3d4384ddc557da5c214ba3e40c056ca1b758d14a392c1364650e89``
|
- 2017.05.24: ``8c42c2e5ad3d4384ddc557da5c214ba3e40c056ca1b758d14a392c1364650e89``
|
||||||
|
@ -256,7 +257,7 @@ Red Hat family
|
||||||
- Amazon Linux 2012.3 and later
|
- Amazon Linux 2012.3 and later
|
||||||
- CentOS 6/7
|
- CentOS 6/7
|
||||||
- Cloud Linux 6/7
|
- Cloud Linux 6/7
|
||||||
- Fedora 26/27/28 (install latest stable from standard repositories)
|
- Fedora 27/28 (install latest stable from standard repositories)
|
||||||
- Oracle Linux 6/7
|
- Oracle Linux 6/7
|
||||||
- Red Hat Enterprise Linux 6/7
|
- Red Hat Enterprise Linux 6/7
|
||||||
- Scientific Linux 6/7
|
- Scientific Linux 6/7
|
||||||
|
@ -265,17 +266,26 @@ Red Hat family
|
||||||
SUSE family
|
SUSE family
|
||||||
~~~~~~~~~~~
|
~~~~~~~~~~~
|
||||||
|
|
||||||
- openSUSE Leap 42.2/42.3
|
- openSUSE Leap 15 (see note below)
|
||||||
|
- openSUSE Leap 42.3
|
||||||
- openSUSE Tumbleweed 2015
|
- openSUSE Tumbleweed 2015
|
||||||
- SUSE Linux Enterprise Server 11 SP4, 12 SP2
|
- SUSE Linux Enterprise Server 11 SP4, 12 SP2
|
||||||
|
|
||||||
|
**NOTE:** Leap 15 installs Python 3 Salt packages by default. Salt is packaged by SUSE, and
|
||||||
|
Leap 15 ships with Python 3. Salt with Python 2 can be installed using the the ``-x`` option
|
||||||
|
in combination with the ``git`` installation method.
|
||||||
|
|
||||||
|
.. code:: console
|
||||||
|
|
||||||
|
sh bootstrap-salt.sh -x python2 git v2018.3.2
|
||||||
|
|
||||||
|
|
||||||
Ubuntu and derivatives
|
Ubuntu and derivatives
|
||||||
~~~~~~~~~~~~~~~~~~~~~~
|
~~~~~~~~~~~~~~~~~~~~~~
|
||||||
|
|
||||||
- KDE neon (based on Ubuntu 16.04)
|
- KDE neon (based on Ubuntu 16.04)
|
||||||
- Linux Mint 17/18
|
- Linux Mint 17/18
|
||||||
- Ubuntu 14.04/16.04 and subsequent non-TLS releases (see below)
|
- Ubuntu 14.04/16.04/18.04 and subsequent non-LTS releases (see below)
|
||||||
|
|
||||||
Ubuntu Best Effort Support: Non-LTS Releases
|
Ubuntu Best Effort Support: Non-LTS Releases
|
||||||
********************************************
|
********************************************
|
||||||
|
@ -285,8 +295,11 @@ repositories are not provided on `SaltStack's Ubuntu repository`_ for the non-LT
|
||||||
bootstrap script will attempt to install the packages for the most closely related LTS Ubuntu
|
bootstrap script will attempt to install the packages for the most closely related LTS Ubuntu
|
||||||
release instead.
|
release instead.
|
||||||
|
|
||||||
For example, when installing Salt on Ubuntu 17.10, the bootstrap script will setup the repository
|
For example, when installing Salt on Ubuntu 18.10, the bootstrap script will setup the repository
|
||||||
for Ubuntu 16.04 from `SaltStack's Ubuntu repository`_ and install the 16.04 packages.
|
for Ubuntu 18.04 from `SaltStack's Ubuntu repository`_ and install the 18.04 packages.
|
||||||
|
|
||||||
|
Non-LTS Ubuntu releases are not supported once the release reaches End-of-Life as defined by
|
||||||
|
`Ubuntu's release schedule`_.
|
||||||
|
|
||||||
|
|
||||||
Other Linux distributions
|
Other Linux distributions
|
||||||
|
@ -309,8 +322,8 @@ UNIX systems
|
||||||
|
|
||||||
- SmartOS
|
- SmartOS
|
||||||
|
|
||||||
Unsupported Distro
|
Unsupported Distributions
|
||||||
------------------
|
-------------------------
|
||||||
|
|
||||||
If you are running a Linux distribution that is not supported yet or is not correctly identified,
|
If you are running a Linux distribution that is not supported yet or is not correctly identified,
|
||||||
please run the following commands and report their output when creating an issue:
|
please run the following commands and report their output when creating an issue:
|
||||||
|
@ -323,6 +336,28 @@ please run the following commands and report their output when creating an issue
|
||||||
For information on how to add support for a currently unsupported distribution, please refer to the
|
For information on how to add support for a currently unsupported distribution, please refer to the
|
||||||
`Contributing Guidelines`_.
|
`Contributing Guidelines`_.
|
||||||
|
|
||||||
|
Python 3 Support
|
||||||
|
----------------
|
||||||
|
|
||||||
|
Some distributions support installing Salt to use Python 3 instead of Python 2. The availability of
|
||||||
|
this offering, while limited, is as follows:
|
||||||
|
|
||||||
|
- CentOS 7
|
||||||
|
- Debian 9
|
||||||
|
- Fedora (only git installations)
|
||||||
|
- Ubuntu 16.04
|
||||||
|
- Ubuntu 18.04
|
||||||
|
|
||||||
|
On Fedora 28, PIP installation must be allowed (-P) due to incompatibility with the shipped Tornado library.
|
||||||
|
|
||||||
|
Installing the Python 3 packages for Salt is done via the ``-x`` option:
|
||||||
|
|
||||||
|
.. code:: console
|
||||||
|
|
||||||
|
sh bootstrap-salt.sh -x python3
|
||||||
|
|
||||||
|
See the ``-x`` option for more information.
|
||||||
|
|
||||||
Testing
|
Testing
|
||||||
-------
|
-------
|
||||||
|
|
||||||
|
@ -381,6 +416,7 @@ Salt components, custom configurations, and even `pre-accepted Minion keys`_ alr
|
||||||
.. _`SaltStack's corporate repository`: https://repo.saltstack.com/
|
.. _`SaltStack's corporate repository`: https://repo.saltstack.com/
|
||||||
.. _`SaltStack's Debian repository`: http://repo.saltstack.com/#debian
|
.. _`SaltStack's Debian repository`: http://repo.saltstack.com/#debian
|
||||||
.. _`SaltStack's Ubuntu repository`: http://repo.saltstack.com/#ubuntu
|
.. _`SaltStack's Ubuntu repository`: http://repo.saltstack.com/#ubuntu
|
||||||
|
.. _`Ubuntu's release schedule`: https://wiki.ubuntu.com/Releases
|
||||||
.. _Vagrant: http://www.vagrantup.com
|
.. _Vagrant: http://www.vagrantup.com
|
||||||
|
|
||||||
|
|
||||||
|
|
File diff suppressed because it is too large
Load diff
|
@ -270,39 +270,6 @@ class InstallationTestCase(BootstrapTestCase):
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
|
|
||||||
def test_install_daily(self):
|
|
||||||
args = []
|
|
||||||
if requires_pip_based_installations():
|
|
||||||
args.append('-P')
|
|
||||||
|
|
||||||
args.append('daily')
|
|
||||||
|
|
||||||
rc, out, err = self.run_script(
|
|
||||||
args=args, timeout=15 * 60, stream_stds=True
|
|
||||||
)
|
|
||||||
if GRAINS['os'] in ('Ubuntu', 'Trisquel', 'Mint'):
|
|
||||||
self.assert_script_result(
|
|
||||||
'Failed to install daily',
|
|
||||||
0, (rc, out, err)
|
|
||||||
)
|
|
||||||
|
|
||||||
# Try to get the versions report
|
|
||||||
self.assert_script_result(
|
|
||||||
'Failed to get the versions report (\'--versions-report\')',
|
|
||||||
0,
|
|
||||||
self.run_script(
|
|
||||||
script=None,
|
|
||||||
args=('salt-minion', '--versions-report'),
|
|
||||||
timeout=15 * 60,
|
|
||||||
stream_stds=True
|
|
||||||
)
|
|
||||||
)
|
|
||||||
else:
|
|
||||||
self.assert_script_result(
|
|
||||||
'Although system is not Ubuntu, we managed to install',
|
|
||||||
1, (rc, out, err)
|
|
||||||
)
|
|
||||||
|
|
||||||
def test_install_testing(self):
|
def test_install_testing(self):
|
||||||
args = []
|
args = []
|
||||||
if requires_pip_based_installations():
|
if requires_pip_based_installations():
|
||||||
|
|
Loading…
Add table
Reference in a new issue