diff --git a/.gitignore b/.gitignore index 45f46f6..bb422f7 100644 --- a/.gitignore +++ b/.gitignore @@ -47,6 +47,7 @@ coverage.xml .hypothesis/ .kitchen .kitchen.local.yml +kitchen.local.yml # Translations *.mo diff --git a/.kitchen.yml b/.kitchen.yml deleted file mode 100644 index 070d4b8..0000000 --- a/.kitchen.yml +++ /dev/null @@ -1,98 +0,0 @@ ---- -driver: - name: docker - -driver_config: - use_sudo: false - privileged: true - provision_command: mkdir -p /run/sshd - -platforms: - - name: debian-9 - driver_config: - run_command: /lib/systemd/systemd - provision_command: - - apt-get install udev -y - - name: ubuntu-18.04 - driver_config: - run_command: /lib/systemd/systemd - provision_command: - - apt-get install udev -y - - name: fedora-27 - driver_config: - run_command: /usr/lib/systemd/systemd - - name: centos-7 - driver_config: - image: saltstack/centos-7-minimal - run_command: /usr/lib/systemd/systemd - -provisioner: - name: salt_solo - log_level: info - require_chef: false - salt_version: latest - formula: packages - salt_copy_filter: - - .kitchen - - .git - pillars-from-files: - packages.sls: pillar.example - pillars: - top.sls: - base: - '*': - - packages - state_top: - base: - '*': - - packages - -verifier: - name: inspec - sudo: true - # cli, documentation, html, progress, json, json-min, json-rspec, junit - reporter: - - cli - inspec_tests: - - path: test/integration/default - -suites: - - name: deb - excludes: - - centos-7 - - fedora-27 - - - name: fedora - excludes: - - debian-9 - - ubuntu-18.04 - - centos-7 - provisioner: - pillars-from-files: - packages.sls: test/integration/default/pillar.example.fedora - - - name: centos - excludes: - - debian-9 - - ubuntu-18.04 - - fedora-27 - provisioner: - dependencies: - - name: epel - repo: git - source: https://github.com/saltstack-formulas/epel-formula.git - state_top: - base: - '*': - - epel - - packages - pillars-from-files: - packages.sls: test/integration/default/pillar.example.redhat - pillars: - top.sls: - base: - '*': - - epel - - packages - epel.sls: - disabled: false diff --git a/.travis.yml b/.travis.yml index b0cc808..bf287c2 100644 --- a/.travis.yml +++ b/.travis.yml @@ -11,8 +11,12 @@ before_install: env: matrix: - INSTANCE: deb-debian-9 + - INSTANCE: deb-debian-8-backports + - INSTANCE: deb-ubuntu-1604 - INSTANCE: deb-ubuntu-1804 - - INSTANCE: centos-centos-7 + - INSTANCE: rpm-centos-7 + - INSTANCE: fed-fedora + - INSTANCE: rpm-opensuse-leap-salt-minion script: - bundle exec kitchen verify ${INSTANCE} diff --git a/Gemfile b/Gemfile index 67a327c..d87d92d 100644 --- a/Gemfile +++ b/Gemfile @@ -1,7 +1,7 @@ source "https://rubygems.org" -gem "test-kitchen", '>=1.20.0' +gem "test-kitchen" gem "kitchen-docker" -gem "kitchen-salt", ">=0.1.0" +gem "kitchen-salt" gem "kitchen-inspec" diff --git a/README.rst b/README.rst index fa0c958..7e6361f 100644 --- a/README.rst +++ b/README.rst @@ -172,7 +172,9 @@ for integration tests. Tested on * Debian/9 +* Debian/8 (with backports) * Centos/7 * Fedora/27 +* Ubuntu/16.04 * Ubuntu/18.04 - +* Opensuse/leap diff --git a/kitchen.yml b/kitchen.yml new file mode 100644 index 0000000..6b4d171 --- /dev/null +++ b/kitchen.yml @@ -0,0 +1,146 @@ +# -*- coding: utf-8 -*- +# vim: ft=yaml +--- +# For help on this file's format, see https://kitchen.ci/ +driver: + name: docker + +driver_config: + use_sudo: false + privileged: true + provision_command: mkdir -p /run/sshd + +# Make sure the platforms listed below match up with +# the `env.matrix` instances defined in `.travis.yml` +platforms: + # The `run_command` used for each platform is required to + # test `systemd` services in docker + - name: debian-9 + driver_config: + image: debian:9 + run_command: /lib/systemd/systemd + provision_command: + - apt-get update && apt-get install -y udev + - name: debian-8-backports + driver_config: + image: debian:jessie-backports + run_command: /lib/systemd/systemd + provision_command: + - apt-get update && apt-get install -y udev + - name: ubuntu-18.04 + driver_config: + image: ubuntu:18.04 + run_command: /lib/systemd/systemd + provision_command: + - apt-get update && apt-get install -y udev + - name: ubuntu-16.04 + driver_config: + image: ubuntu:16.04 + run_command: /lib/systemd/systemd + provision_command: + - apt-get update && apt-get install -y udev + - name: centos-7 + driver_config: + image: centos:7 + run_command: /usr/lib/systemd/systemd + # - name: centos-6 + # driver_config: + # image: centos:6 + # run_command: /usr/lib/systemd/systemd + - name: fedora + driver_config: + image: fedora + run_command: /usr/lib/systemd/systemd + provision_command: + - yum -y update && yum -y install udev + # As of February 2019, there have been problems getting `opensuse` to work: + # * `opensuse` is deprecated + # * `opensuse/leap` grabs `15.x`, which doesn't run the `inspec` tests + # * `opensuse/tumbleweed` doesn't install `salt-minion` + # * `opensuse/leap:42.3` does work + # * `opensuse/salt-minion` uses `42.3` with `salt-minion` pre-installed + - name: opensuse-leap-salt-minion + driver_config: + image: opensuse/salt-minion + run_command: /usr/lib/systemd/systemd + provision_command: + - zypper refresh && zypper install -y udev + - systemctl enable sshd.service + - cat /etc/os-release + +provisioner: + name: salt_solo + log_level: info + require_chef: false + salt_version: latest + formula: packages + salt_copy_filter: + - .kitchen + - .git + pillars-from-files: + packages.sls: pillar.example + pillars: + top.sls: + base: + '*': + - packages + state_top: + base: + '*': + - packages + +verifier: + name: inspec + sudo: true + # cli, documentation, html, progress, json, json-min, json-rspec, junit + reporter: + - cli + inspec_tests: + - path: test/integration/default + +suites: + - name: deb + excludes: + - centos-7 + - fedora + - opensuse-leap-salt-minion + + - name: fed + excludes: + - debian-9 + - debian-8-backports + - ubuntu-16.04 + - ubuntu-18.04 + - centos-7 + - opensuse-leap-salt-minion + provisioner: + pillars-from-files: + packages.sls: test/integration/default/pillar.example.fedora + + - name: rpm + excludes: + - debian-9 + - debian-8-backports + - ubuntu-16.04 + - ubuntu-18.04 + - fedora + provisioner: + dependencies: + - name: epel + repo: git + source: https://github.com/saltstack-formulas/epel-formula.git + state_top: + base: + '*': + - epel + - packages + pillars-from-files: + packages.sls: test/integration/default/pillar.example.redhat + pillars: + top.sls: + base: + '*': + - epel + - packages + epel.sls: + disabled: false diff --git a/packages/archives.sls b/packages/archives.sls index 59a44d3..08b7ac4 100644 --- a/packages/archives.sls +++ b/packages/archives.sls @@ -9,7 +9,7 @@ include: extend: pkg_req_pkgs: pkg.installed: - - pkgs: {{ req_packages }} + - pkgs: {{ req_packages | json }} {% set wanted_archives = packages.archives.required.archives %} {% do wanted_archives.update( packages.archives.wanted ) %} diff --git a/packages/gems.sls b/packages/gems.sls index 22e3dc2..df98299 100644 --- a/packages/gems.sls +++ b/packages/gems.sls @@ -10,7 +10,7 @@ ### REQ PKGS (without these, some of the WANTED GEMS will fail to install) gem_req_pkgs: pkg.installed: - - pkgs: {{ req_pkgs }} + - pkgs: {{ req_pkgs | json }} ### GEMS to install # (requires the ruby/rubygem deb/rpm installed, either by the system or listed in diff --git a/packages/pips.sls b/packages/pips.sls index 0eb6cff..7c3bf55 100644 --- a/packages/pips.sls +++ b/packages/pips.sls @@ -11,7 +11,7 @@ ### REQ PKGS (without these, some of the WANTED PIPS will fail to install) pip_req_pkgs: pkg.installed: - - pkgs: {{ req_pkgs }} + - pkgs: {{ req_pkgs | json }} {% if pip_config %} pip_config: diff --git a/packages/pkgs.sls b/packages/pkgs.sls index 9860ac4..06b77a3 100644 --- a/packages/pkgs.sls +++ b/packages/pkgs.sls @@ -12,7 +12,7 @@ ### PRE-REQ PKGS (without these, some of the WANTED PKGS will fail to install) pkg_req_pkgs: pkg.installed: - - pkgs: {{ req_packages }} + - pkgs: {{ req_packages | json }} {% if req_states %} - require: {% for dep in req_states %} @@ -29,7 +29,7 @@ held_pkgs: - {{ p }}: {{ v }} {% endfor %} {% else %} - - pkgs: {{ held_packages }} + - pkgs: {{ held_packages | json }} {% endif %} {% if grains['os_family'] not in ['Suse'] %} - hold: true @@ -44,7 +44,7 @@ held_pkgs: wanted_pkgs: pkg.installed: - - pkgs: {{ wanted_packages }} + - pkgs: {{ wanted_packages | json }} {% if grains['os_family'] not in ['Suse'] %} - hold: false {% endif %} @@ -58,5 +58,5 @@ wanted_pkgs: unwanted_pkgs: pkg.purged: - - pkgs: {{ unwanted_packages }} + - pkgs: {{ unwanted_packages | json }} diff --git a/packages/snaps.sls b/packages/snaps.sls index e4473eb..66b8c3d 100644 --- a/packages/snaps.sls +++ b/packages/snaps.sls @@ -22,11 +22,11 @@ include: extend: unwanted_pkgs: pkg.purged: - - pkgs: {{ unwanted_packages }} + - pkgs: {{ unwanted_packages | json }} pkg_req_pkgs: pkg.installed: - - pkgs: {{ req_packages }} + - pkgs: {{ req_packages | json }} {% if req_states %} - require: {% for dep in req_states %}