mirror of
https://github.com/saltstack/salt-bootstrap.git
synced 2025-04-16 01:30: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
|
||||
Alex Van't Hof alexvh
|
||||
Alexander Krasnukhin themalkolm the.malkolm@gmail.com
|
||||
Alexandru Avadanii alexandruavadanii Alexandru.Avadanii@enea.com
|
||||
Alexey dmitrievav
|
||||
Ali Rizvi-Santiago arizvisa
|
||||
amendlik amendlik
|
||||
|
@ -69,6 +70,7 @@ Guillaume Derval GuillaumeDerval guillaume@guillaumederval.be
|
|||
gweis gweis
|
||||
Henrik Holmboe holmboe
|
||||
Howard Mei HowardMei howardleomei@gmail.com
|
||||
Jan Heidbrink jheidbrink
|
||||
James Booth absolutejam vvalentine1337@gmail.com
|
||||
Jared E Stroud jaredestroud jaredestroud@gmail.com
|
||||
Jasper Lievisse Adriaanse jasperla jasper@humppa.nl
|
||||
|
@ -80,6 +82,7 @@ Justin Anderson justinta justin.ta@outlook.com
|
|||
Justin Findlay jfindlay jfindlay@gmail.com
|
||||
Karl Grzeszczak karlgrz
|
||||
Kenneth Wilke KennethWilke
|
||||
Ky-Anh Huynh icy
|
||||
lomeroe lomeroe
|
||||
Liu Xiaohui oreh herolxh@gmail.com
|
||||
Lorenzo Perone lopezio lorenzo.perone@yellowspace.net
|
||||
|
@ -96,11 +99,13 @@ Matthew Mead-Briggs mattmb
|
|||
Matthew Richardson mrichar1
|
||||
Matthew Willson ixela
|
||||
Matthieu Guegan mguegan
|
||||
mfapouw mfapouw
|
||||
Michael A. Smith kojiromike michaels@syapse.com
|
||||
Michael Scherer mscherer
|
||||
Michele Bologna mbologna michele.bologna@gmail.com
|
||||
Mike Carlson m87carlson mike@bayphoto.com
|
||||
Mike Place cachedout mp@saltstack.com
|
||||
N noelmcloughlin noel.maclochlainn@gmail.com
|
||||
nasenbaer13 nasenbaer13
|
||||
nevins-b nevins-b
|
||||
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:
|
||||
* Install py-tornado4 for FreeBSD. (abednarik) #1219
|
||||
* 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:
|
||||
|
||||
- 2018.04.25: ``e2e3397d6642ba6462174b4723f1b30d04229b75efc099a553e15ea727877dfb``
|
||||
- 2017.12.13: ``c127b3aa4a8422f6b81f5b4a40d31d13cec97bf3a39bca9c11a28f24910a6895``
|
||||
- 2017.08.17: ``909b4d35696b9867b34b22ef4b60edbc5a0e9f8d1ed8d05f922acb79a02e46e3``
|
||||
- 2017.05.24: ``8c42c2e5ad3d4384ddc557da5c214ba3e40c056ca1b758d14a392c1364650e89``
|
||||
|
@ -256,7 +257,7 @@ Red Hat family
|
|||
- Amazon Linux 2012.3 and later
|
||||
- CentOS 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
|
||||
- Red Hat Enterprise Linux 6/7
|
||||
- Scientific Linux 6/7
|
||||
|
@ -265,17 +266,26 @@ Red Hat family
|
|||
SUSE family
|
||||
~~~~~~~~~~~
|
||||
|
||||
- openSUSE Leap 42.2/42.3
|
||||
- openSUSE Leap 15 (see note below)
|
||||
- openSUSE Leap 42.3
|
||||
- openSUSE Tumbleweed 2015
|
||||
- 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
|
||||
~~~~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
- KDE neon (based on Ubuntu 16.04)
|
||||
- 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
|
||||
********************************************
|
||||
|
@ -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
|
||||
release instead.
|
||||
|
||||
For example, when installing Salt on Ubuntu 17.10, the bootstrap script will setup the repository
|
||||
for Ubuntu 16.04 from `SaltStack's Ubuntu repository`_ and install the 16.04 packages.
|
||||
For example, when installing Salt on Ubuntu 18.10, the bootstrap script will setup the repository
|
||||
for Ubuntu 18.04 from `SaltStack's Ubuntu repository`_ and install the 18.04 packages.
|
||||
|
||||
Non-LTS Ubuntu releases are not supported once the release reaches End-of-Life as defined by
|
||||
`Ubuntu's release schedule`_.
|
||||
|
||||
|
||||
Other Linux distributions
|
||||
|
@ -309,8 +322,8 @@ UNIX systems
|
|||
|
||||
- SmartOS
|
||||
|
||||
Unsupported Distro
|
||||
------------------
|
||||
Unsupported Distributions
|
||||
-------------------------
|
||||
|
||||
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:
|
||||
|
@ -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
|
||||
`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
|
||||
-------
|
||||
|
||||
|
@ -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 Debian repository`: http://repo.saltstack.com/#debian
|
||||
.. _`SaltStack's Ubuntu repository`: http://repo.saltstack.com/#ubuntu
|
||||
.. _`Ubuntu's release schedule`: https://wiki.ubuntu.com/Releases
|
||||
.. _Vagrant: http://www.vagrantup.com
|
||||
|
||||
|
||||
|
|
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):
|
||||
args = []
|
||||
if requires_pip_based_installations():
|
||||
|
|
Loading…
Add table
Reference in a new issue