Use py3 for latest salt version Use Python 2 on old distros Update Gemfile Updated centos-6 run_command, as it does not use systemd Added tests to verify correct package versions for all cases testedtags/v0.57.0
.vagrant/ | |||||
.idea/ | |||||
top.sls | |||||
# Byte-compiled / optimized / DLL files | |||||
__pycache__/ | |||||
*.py[cod] | |||||
*$py.class | |||||
# C extensions | |||||
*.so | |||||
# Distribution / packaging | |||||
.Python | |||||
env/ | |||||
build/ | |||||
develop-eggs/ | |||||
dist/ | |||||
downloads/ | |||||
eggs/ | |||||
.eggs/ | |||||
lib/ | |||||
lib64/ | |||||
parts/ | |||||
sdist/ | |||||
var/ | |||||
wheels/ | |||||
*.egg-info/ | |||||
.installed.cfg | |||||
*.egg | |||||
# PyInstaller | |||||
# Usually these files are written by a python script from a packager | |||||
# before PyInstaller builds the exe, so as to inject date/other infos into it. | |||||
*.manifest | |||||
*.spec | |||||
# Installer logs | |||||
pip-log.txt | |||||
pip-delete-this-directory.txt | |||||
# Unit test / coverage reports | |||||
htmlcov/ | |||||
.tox/ | |||||
.coverage | |||||
.coverage.* | |||||
.cache | |||||
nosetests.xml | |||||
coverage.xml | |||||
*.cover | |||||
.hypothesis/ | |||||
.kitchen | |||||
.kitchen.local.yml | |||||
kitchen.local.yml | |||||
# Translations | |||||
*.mo | |||||
*.pot | |||||
# Django stuff: | |||||
*.log | |||||
local_settings.py | |||||
# Flask stuff: | |||||
instance/ | |||||
.webassets-cache | |||||
# Scrapy stuff: | |||||
.scrapy | |||||
# Sphinx documentation | |||||
docs/_build/ | |||||
# PyBuilder | |||||
target/ | |||||
# Jupyter Notebook | |||||
.ipynb_checkpoints | |||||
# pyenv | |||||
.python-version | |||||
# celery beat schedule file | |||||
celerybeat-schedule | |||||
# SageMath parsed files | |||||
*.sage.py | |||||
# dotenv | |||||
.env | .env | ||||
# virtualenv | |||||
.venv | |||||
venv/ | |||||
ENV/ | |||||
# Spyder project settings | |||||
.spyderproject | |||||
.spyproject | |||||
# Rope project settings | |||||
.ropeproject | |||||
# mkdocs documentation | |||||
/site | |||||
# mypy | |||||
.mypy_cache/ |
--- | |||||
driver: | |||||
name: docker | |||||
driver_config: | |||||
use_sudo: false | |||||
privileged: true | |||||
provision_command: mkdir -p /run/sshd | |||||
run_command: /lib/systemd/systemd | |||||
platforms: | |||||
- name: debian-9 | |||||
driver_config: | |||||
provision_command: | |||||
- apt-get install udev net-tools -y | |||||
- name: ubuntu-18.04 | |||||
driver_config: | |||||
provision_command: | |||||
- apt-get install udev net-tools -y | |||||
- name: centos-7 | |||||
driver_config: | |||||
provision_command: | |||||
- yum install udev net-tools -y | |||||
provisioner: | |||||
name: salt_solo | |||||
log_level: info | |||||
require_chef: false | |||||
salt_version: latest | |||||
formula: salt | |||||
salt_copy_filter: | |||||
- .kitchen | |||||
- .git | |||||
pillars: | |||||
top.sls: | |||||
base: | |||||
'*': | |||||
- salt | |||||
salt.sls: | |||||
salt: | |||||
master: | |||||
fileserver_backend: | |||||
- rootfs | |||||
file_roots: | |||||
base: | |||||
- /srv/salt | |||||
pillar_roots: | |||||
base: | |||||
- /srv/pillar | |||||
minion: | |||||
master: localhost | |||||
fileserver_backend: | |||||
- rootfs | |||||
file_roots: | |||||
base: | |||||
- /srv/salt | |||||
pillar_roots: | |||||
base: | |||||
- /srv/pillar | |||||
verifier: | |||||
name: inspec | |||||
sudo: true | |||||
reporter: | |||||
- cli | |||||
inspec_tests: | |||||
- path: test/integration/default | |||||
suites: | |||||
- name: salt | |||||
provisioner: | |||||
state_top: | |||||
base: | |||||
'*': | |||||
- salt.master | |||||
- salt.minion |
env: | env: | ||||
matrix: | matrix: | ||||
- INSTANCE: salt-debian-9 | |||||
- INSTANCE: salt-ubuntu-1804 | |||||
- INSTANCE: salt-centos-7 | |||||
- INSTANCE: v2019-2-py3-debian-9 | |||||
- INSTANCE: v2019-2-py3-ubuntu-1804 | |||||
- INSTANCE: v2019-2-py3-centos-7 | |||||
- INSTANCE: v2019-2-py2-fedora-29 | |||||
- INSTANCE: v2018-3-py2-opensuse-423 | |||||
- INSTANCE: v2018-3-py2-debian-8 | |||||
- INSTANCE: v2018-3-py2-ubuntu-1604 | |||||
- INSTANCE: v2018-3-py2-centos-6 | |||||
- INSTANCE: v2018-3-py2-forced-fedora-28 | |||||
- INSTANCE: v2017-7-py2-debian-8 | |||||
- INSTANCE: v2017-7-py2-ubuntu-1604 | |||||
- INSTANCE: v2017-7-py2-centos-6 | |||||
script: | script: | ||||
- bundle exec kitchen verify ${INSTANCE} | - bundle exec kitchen verify ${INSTANCE} | ||||
source "https://rubygems.org" | source "https://rubygems.org" | ||||
gem "test-kitchen", '>=1.23.2' | |||||
gem "kitchen-docker" | |||||
gem "kitchen-salt", ">=0.2.5" | |||||
gem "kitchen-inspec" | |||||
gem 'kitchen-docker', '>= 2.9' | |||||
gem 'kitchen-salt', '>= 0.6.0' | |||||
gem 'kitchen-inspec', '>= 1.1' | |||||
--- | |||||
driver: | |||||
name: docker | |||||
use_sudo: false | |||||
privileged: true | |||||
provision_command: mkdir -p /run/sshd | |||||
run_command: /lib/systemd/systemd | |||||
platforms: | |||||
# Latest distros | |||||
- name: debian-9 | |||||
- name: ubuntu-18.04 | |||||
- name: centos-7 | |||||
- name: fedora-29 | |||||
- name: opensuse-42.3 | |||||
driver: | |||||
run_command: /usr/lib/systemd/systemd | |||||
provision_command: | |||||
- systemctl enable sshd.service | |||||
# Previous distros | |||||
- name: debian-8 | |||||
- name: ubuntu-16.04 | |||||
- name: fedora-28 | |||||
# Fails on Debian due to vsyscall issues, see | |||||
# https://hub.docker.com/_/centos, "A note about vsyscall" | |||||
- name: centos-6 | |||||
driver: | |||||
run_command: /sbin/init | |||||
provisioner: | |||||
name: salt_solo | |||||
log_level: info | |||||
require_chef: false | |||||
formula: salt | |||||
salt_copy_filter: | |||||
- .kitchen | |||||
- .git | |||||
state_top: | |||||
base: | |||||
'*': | |||||
- salt.pkgrepo | |||||
- salt.master | |||||
- salt.minion | |||||
pillars: | |||||
top.sls: | |||||
base: | |||||
'*': | |||||
- salt | |||||
salt.sls: | |||||
salt: | |||||
master: | |||||
fileserver_backend: | |||||
- rootfs | |||||
file_roots: | |||||
base: | |||||
- /srv/salt | |||||
pillar_roots: | |||||
base: | |||||
- /srv/pillar | |||||
minion: | |||||
master: localhost | |||||
fileserver_backend: | |||||
- rootfs | |||||
file_roots: | |||||
base: | |||||
- /srv/salt | |||||
pillar_roots: | |||||
base: | |||||
- /srv/pillar | |||||
verifier: | |||||
name: inspec | |||||
sudo: true | |||||
reporter: | |||||
- cli | |||||
suites: | |||||
# Latest distros, latest salt, python3 | |||||
# These distros have py3 packages available in salt's repo | |||||
- name: v2019-2-py3 | |||||
includes: | |||||
- debian-9 | |||||
- ubuntu-18.04 | |||||
- centos-7 | |||||
provisioner: | |||||
salt_version: '2019.2.0' | |||||
pillars: | |||||
salt.sls: | |||||
salt: | |||||
release: '2019.2' | |||||
py_ver: 'py3' | |||||
verifier: | |||||
inspec_tests: | |||||
- path: test/integration/2019-2 | |||||
# Latest distros, latest salt, python2 | |||||
# Fedora ships updated py2 versions in their own repos | |||||
- name: v2019-2-py2 | |||||
includes: | |||||
- fedora-29 | |||||
provisioner: | |||||
salt_version: '2019.2.0' | |||||
pillars: | |||||
salt.sls: | |||||
salt: | |||||
release: '2019.2' | |||||
py_ver: 'py2' | |||||
verifier: | |||||
inspec_tests: | |||||
- path: test/integration/2019-2 | |||||
# Previous distros, previous salt, python2 | |||||
- name: v2018-3-py2 | |||||
includes: | |||||
- debian-8 | |||||
- ubuntu-16.04 | |||||
- centos-6 | |||||
- opensuse-42.3 | |||||
provisioner: | |||||
# We need to require an old version of salt in the provisioner or, | |||||
# the salt formula fails to downgrade to the desired version to test | |||||
salt_version: '2018.3.3' | |||||
pillars: | |||||
salt.sls: | |||||
salt: | |||||
release: '2018.3' | |||||
py_ver: 'py2' | |||||
verifier: | |||||
inspec_tests: | |||||
- path: test/integration/2018-3 | |||||
# To tests fedora 28 & salt v2018.2, we need to force the package version | |||||
# otherwise the image, which includes the 'updates' repo, will install 2019.2 | |||||
- name: v2018-3-py2-forced | |||||
includes: | |||||
- fedora-28 | |||||
provisioner: | |||||
# We need to require an old version of salt in the provisioner or, | |||||
# the salt formula fails to downgrade to the desired version to test | |||||
salt_version: '2018.3.3' | |||||
pillars: | |||||
salt.sls: | |||||
salt: | |||||
release: '2018.3' | |||||
py_ver: 'py2' | |||||
version: '2018.3.0-1.fc28' | |||||
verifier: | |||||
inspec_tests: | |||||
- path: test/integration/2018-3 | |||||
# Previous distros, oldest salt, python2 | |||||
- name: v2017-7-py2 | |||||
includes: | |||||
- debian-8 | |||||
- ubuntu-16.04 | |||||
- centos-6 | |||||
provisioner: | |||||
# We need to require an old version of salt in the provisioner or, | |||||
# the salt formula fails to downgrade to the desired version to test | |||||
salt_version: '2017.7.8' | |||||
pillars: | |||||
salt.sls: | |||||
salt: | |||||
release: '2017.7' | |||||
py_ver: 'py2' | |||||
verifier: | |||||
inspec_tests: | |||||
- path: test/integration/2017-7 | |||||
gitfs_provider: pygit2 | gitfs_provider: pygit2 | ||||
Suse: | Suse: | ||||
pkgrepo: 'http://repo.saltstack.com/opensuse/openSUSE_Leap_{{ osrelease }}/' | |||||
key_url: 'http://repo.saltstack.com/opensuse/openSUSE_Leap_{{ osrelease }}/repodata/repomd.xml.key' | |||||
pygit2: python-pygit2 | pygit2: python-pygit2 | ||||
pyinotify: python-pyinotify | pyinotify: python-pyinotify | ||||
gitfs: | gitfs: |
{% from "salt/map.jinja" import salt_settings with context %} | {% from "salt/map.jinja" import salt_settings with context %} | ||||
{%- if grains['os']|lower not in ('amazon', 'fedora', 'suse',) %} | |||||
saltstack-pkgrepo: | saltstack-pkgrepo: | ||||
pkgrepo.managed: | pkgrepo.managed: | ||||
- humanname: SaltStack repo for RHEL/CentOS $releasever | - humanname: SaltStack repo for RHEL/CentOS $releasever | ||||
- enabled: 1 | - enabled: 1 | ||||
- gpgcheck: 1 | - gpgcheck: 1 | ||||
- gpgkey: {{ salt_settings.key_url }} | - gpgkey: {{ salt_settings.key_url }} | ||||
{% endif %} |
drop-saltstack-pkgrepo: | |||||
pkgrepo.absent: | |||||
- name: saltstack-pkgrepo |
{% from "salt/map.jinja" import salt_settings with context %} | |||||
saltstack-pkgrepo: | |||||
pkgrepo.managed: | |||||
- name: systemsmanagement_saltstack_products | |||||
- humanname: SaltStack repo for Opensuse 42.3 | |||||
- baseurl: {{ salt_settings.pkgrepo }} | |||||
- enabled: 1 | |||||
- gpgcheck: 1 | |||||
- gpgkey: {{ salt_settings.key_url }} |
case os[:name] | |||||
when 'centos' | |||||
version = '2017.7.8-1.el6' | |||||
when 'debian', 'ubuntu' | |||||
version = '2017.7.8+ds-1' | |||||
end | |||||
control 'salt packages' do | control 'salt packages' do | ||||
title 'should be installed' | title 'should be installed' | ||||
describe package('salt-master') do | describe package('salt-master') do | ||||
it { should be_installed } | it { should be_installed } | ||||
its('version') { should eq version } | |||||
end | end | ||||
describe package('salt-minion') do | describe package('salt-minion') do | ||||
it { should be_installed } | it { should be_installed } | ||||
its('version') { should eq version } | |||||
end | end | ||||
end | end |
case os[:name] | |||||
when 'centos' | |||||
version = '2018.3.4-1.el6' | |||||
when 'debian', 'ubuntu' | |||||
version = '2018.3.4+ds-1' | |||||
when 'opensuse' | |||||
version = '2018.3.0-42.1' | |||||
when 'fedora' | |||||
version = '2018.3.0-1.fc28' | |||||
end | |||||
control 'salt packages' do | |||||
title 'should be installed' | |||||
describe package('salt-master') do | |||||
it { should be_installed } | |||||
its('version') { should eq version } | |||||
end | |||||
describe package('salt-minion') do | |||||
it { should be_installed } | |||||
its('version') { should eq version } | |||||
end | |||||
end |
control 'salt services' do | |||||
title 'should be running' | |||||
describe service('salt-master') do | |||||
it { should be_enabled } | |||||
it { should be_running } | |||||
end | |||||
describe service('salt-minion') do | |||||
it { should be_enabled } | |||||
it { should be_running } | |||||
end | |||||
end |
case os[:name] | |||||
when 'centos' | |||||
version = '2019.2.0-1.el7' | |||||
when 'fedora' | |||||
version = '2019.2.0-1.fc29' | |||||
when 'debian', 'ubuntu' | |||||
version = '2019.2.0+ds-1' | |||||
end | |||||
control 'salt packages' do | |||||
title 'should be installed' | |||||
describe package('salt-master') do | |||||
it { should be_installed } | |||||
its('version') { should eq version } | |||||
end | |||||
describe package('salt-minion') do | |||||
it { should be_installed } | |||||
its('version') { should eq version } | |||||
end | |||||
end |
control 'salt services' do | |||||
title 'should be running' | |||||
describe service('salt-master') do | |||||
it { should be_enabled } | |||||
it { should be_running } | |||||
end | |||||
describe service('salt-minion') do | |||||
it { should be_enabled } | |||||
it { should be_running } | |||||
end | |||||
end |