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
@@ -1,4 +1,104 @@ | |||
.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 | |||
# virtualenv | |||
.venv | |||
venv/ | |||
ENV/ | |||
# Spyder project settings | |||
.spyderproject | |||
.spyproject | |||
# Rope project settings | |||
.ropeproject | |||
# mkdocs documentation | |||
/site | |||
# mypy | |||
.mypy_cache/ |
@@ -1,76 +0,0 @@ | |||
--- | |||
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 |
@@ -10,10 +10,20 @@ before_install: | |||
env: | |||
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: | |||
- bundle exec kitchen verify ${INSTANCE} | |||
@@ -1,7 +1,6 @@ | |||
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' | |||
@@ -0,0 +1,173 @@ | |||
--- | |||
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 | |||
@@ -46,6 +46,8 @@ RedHat: | |||
gitfs_provider: pygit2 | |||
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 | |||
pyinotify: python-pyinotify | |||
gitfs: |
@@ -1,5 +1,6 @@ | |||
{% from "salt/map.jinja" import salt_settings with context %} | |||
{%- if grains['os']|lower not in ('amazon', 'fedora', 'suse',) %} | |||
saltstack-pkgrepo: | |||
pkgrepo.managed: | |||
- humanname: SaltStack repo for RHEL/CentOS $releasever | |||
@@ -7,3 +8,4 @@ saltstack-pkgrepo: | |||
- enabled: 1 | |||
- gpgcheck: 1 | |||
- gpgkey: {{ salt_settings.key_url }} | |||
{% endif %} |
@@ -0,0 +1,3 @@ | |||
drop-saltstack-pkgrepo: | |||
pkgrepo.absent: | |||
- name: saltstack-pkgrepo |
@@ -0,0 +1,10 @@ | |||
{% 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 }} |
@@ -1,11 +1,20 @@ | |||
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 | |||
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 |
@@ -0,0 +1,24 @@ | |||
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 |
@@ -0,0 +1,14 @@ | |||
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 |
@@ -0,0 +1,22 @@ | |||
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 |
@@ -0,0 +1,14 @@ | |||
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 |