diff --git a/.travis.yml b/.travis.yml index c5835de..7071db7 100644 --- a/.travis.yml +++ b/.travis.yml @@ -58,30 +58,27 @@ jobs: ## Define the rest of the matrix based on Kitchen testing # Make sure the instances listed below match up with # the `platforms` defined in `kitchen.yml` - # The ordering used below has been selected based on the time required in Travis - # The slower ones are kept as high up as possible, to run concurrently rather than - # slow down the entire run at the end (i.e. `centos-6` and `opensuse`) - # However, the groupings needed to be maintained in some semblance of order - # so this is a best-effort matrix, in the circumstances - # - env: INSTANCE=v201707-py2-debian-8-2017-7-py2 - - env: INSTANCE=v201707-py2-ubuntu-1604-2017-7-py2 - - env: INSTANCE=v201707-py2-centos-6-2017-7-py2 - # - env: INSTANCE=v201707-py2-amazonlinux-1-2017-7-py2 - # - env: INSTANCE=v201707-py2-arch-base-latest-2017-7-py2 - - env: INSTANCE=v201803-py2-debian-9-2018-3-py2 - # - env: INSTANCE=v201803-py2-ubuntu-1604-2018-3-py2 - - env: INSTANCE=v201803-py2-centos-7-2018-3-py2 - # - env: INSTANCE=v201803-py2-amazonlinux-1-2018-3-py2 - # - env: INSTANCE=v201803-py2-arch-base-latest-2018-3-py2 - - env: INSTANCE=v201902-py2-ubuntu-1804-2019-2-py2 - # - env: INSTANCE=v201902-py2-centos-7-2019-2-py2 - - env: INSTANCE=v201902-py3-amazonlinux-2-2019-2-py3 - # - env: INSTANCE=v201902-py2-arch-base-latest-2019-2-py2 - - env: INSTANCE=v201902-py3-debian-10-2019-2-py3 - # - env: INSTANCE=v201902-py3-debian-9-2019-2-py3 + - env: INSTANCE=v3000-py3-debian-10-3000-py3 + - env: INSTANCE=v3000-py3-ubuntu-1804-3000-py3 + - env: INSTANCE=v3000-py3-centos-8-3000-py3 + - env: INSTANCE=v3000-py3-fedora-31-3000-py3 + # - env: INSTANCE=v3000-py3-opensuse-leap-151-3000-py3 + - env: INSTANCE=v3000-py3-amazonlinux-2-3000-py3 + # - env: INSTANCE=v3000-py2-arch-base-latest-3000-py2 + # - env: INSTANCE=v201902-py3-debian-10-2019-2-py3 + - env: INSTANCE=v201902-py3-debian-9-2019-2-py3 # - env: INSTANCE=v201902-py3-ubuntu-1804-2019-2-py3 # - env: INSTANCE=v201902-py3-centos-8-2019-2-py3 - env: INSTANCE=v201902-py3-opensuse-leap-151-2019-2-py3 + # - env: INSTANCE=v201902-py3-amazonlinux-2-2019-2-py3 + - env: INSTANCE=v201902-py2-ubuntu-1804-2019-2-py2 + # - env: INSTANCE=v201902-py2-centos-7-2019-2-py2 + # - env: INSTANCE=v201902-py2-arch-base-latest-2019-2-py2 + # - env: INSTANCE=v201803-py2-debian-9-2018-3-py2 + - env: INSTANCE=v201803-py2-ubuntu-1604-2018-3-py2 + - env: INSTANCE=v201803-py2-centos-7-2018-3-py2 + # - env: INSTANCE=v201803-py2-amazonlinux-1-2018-3-py2 + # - env: INSTANCE=v201803-py2-arch-base-latest-2018-3-py2 ## Define the release stage that runs `semantic-release` - stage: 'release' diff --git a/kitchen.yml b/kitchen.yml index 6c69f74..7cf0df0 100644 --- a/kitchen.yml +++ b/kitchen.yml @@ -11,59 +11,36 @@ driver: # Make sure the platforms listed below match up with # the `env.matrix` instances defined in `.travis.yml` platforms: - ## SALT `2017.7` - - name: debian-8-2017-7-py2 + ## SALT `3000` + - name: debian-10-3000-py3 driver: - image: netmanagers/salt-2017.7-py2:debian-8 - - name: ubuntu-1604-2017-7-py2 + image: netmanagers/salt-3000-py3:debian-10 + - name: ubuntu-1804-3000-py3 driver: - image: netmanagers/salt-2017.7-py2:ubuntu-16.04 - - name: centos-6-2017-7-py2 + image: netmanagers/salt-3000-py3:ubuntu-18.04 + - name: centos-8-3000-py3 driver: - image: netmanagers/salt-2017.7-py2:centos-6 - run_command: /sbin/init - - name: amazonlinux-1-2017-7-py2 + image: netmanagers/salt-3000-py3:centos-8 + - name: fedora-31-3000-py3 driver: - image: netmanagers/salt-2017.7-py2:amazonlinux-1 - run_command: /sbin/init - - name: arch-base-latest-2017-7-py2 + image: netmanagers/salt-3000-py3:fedora-31 + - name: opensuse-leap-151-3000-py3 driver: - image: netmanagers/salt-2017.7-py2:arch-base-latest + image: netmanagers/salt-3000-py3:opensuse-leap-15.1 run_command: /usr/lib/systemd/systemd - - ## SALT `2018.3` - - name: debian-9-2018-3-py2 + # Workaround to avoid intermittent failures on `opensuse-leap-15.1`: + # => SCP did not finish successfully (255): (Net::SCP::Error) + transport: + max_ssh_sessions: 1 + - name: amazonlinux-2-3000-py3 driver: - image: netmanagers/salt-2018.3-py2:debian-9 - - name: ubuntu-1604-2018-3-py2 + image: netmanagers/salt-3000-py3:amazonlinux-2 + - name: arch-base-latest-3000-py2 driver: - image: netmanagers/salt-2018.3-py2:ubuntu-16.04 - - name: centos-7-2018-3-py2 - driver: - image: netmanagers/salt-2018.3-py2:centos-7 - - name: amazonlinux-1-2018-3-py2 - driver: - image: netmanagers/salt-2018.3-py2:amazonlinux-1 - run_command: /sbin/init - - name: arch-base-latest-2018-3-py2 - driver: - image: netmanagers/salt-2018.3-py2:arch-base-latest + image: netmanagers/salt-3000-py2:arch-base-latest run_command: /usr/lib/systemd/systemd ## SALT `2019.2` - - name: ubuntu-1804-2019-2-py2 - driver: - image: netmanagers/salt-2019.2-py2:ubuntu-18.04 - - name: centos-7-2019-2-py2 - driver: - image: netmanagers/salt-2019.2-py2:centos-7 - - name: amazonlinux-2-2019-2-py3 - driver: - image: netmanagers/salt-2019.2-py3:amazonlinux-2 - - name: arch-base-latest-2019-2-py2 - driver: - image: netmanagers/salt-2019.2-py2:arch-base-latest - run_command: /usr/lib/systemd/systemd - name: debian-10-2019-2-py3 driver: image: netmanagers/salt-2019.2-py3:debian-10 @@ -87,6 +64,38 @@ platforms: # => SCP did not finish successfully (255): (Net::SCP::Error) transport: max_ssh_sessions: 1 + - name: amazonlinux-2-2019-2-py3 + driver: + image: netmanagers/salt-2019.2-py3:amazonlinux-2 + - name: ubuntu-1804-2019-2-py2 + driver: + image: netmanagers/salt-2019.2-py2:ubuntu-18.04 + - name: centos-7-2019-2-py2 + driver: + image: netmanagers/salt-2019.2-py2:centos-7 + - name: arch-base-latest-2019-2-py2 + driver: + image: netmanagers/salt-2019.2-py2:arch-base-latest + run_command: /usr/lib/systemd/systemd + + ## SALT `2018.3` + - name: debian-9-2018-3-py2 + driver: + image: netmanagers/salt-2018.3-py2:debian-9 + - name: ubuntu-1604-2018-3-py2 + driver: + image: netmanagers/salt-2018.3-py2:ubuntu-16.04 + - name: centos-7-2018-3-py2 + driver: + image: netmanagers/salt-2018.3-py2:centos-7 + - name: amazonlinux-1-2018-3-py2 + driver: + image: netmanagers/salt-2018.3-py2:amazonlinux-1 + run_command: /sbin/init + - name: arch-base-latest-2018-3-py2 + driver: + image: netmanagers/salt-2018.3-py2:arch-base-latest + run_command: /usr/lib/systemd/systemd provisioner: name: salt_solo @@ -107,6 +116,55 @@ verifier: - cli suites: + - name: v3000-py3 + includes: + - debian-10-3000-py3 + - ubuntu-1804-3000-py3 + - centos-8-3000-py3 + - fedora-31-3000-py3 + - opensuse-leap-151-3000-py3 + - amazonlinux-2-3000-py3 + provisioner: + state_top: + base: + '*': + - salt.pkgrepo + - salt.master + - salt.minion + pillars: + top.sls: + base: + '*': + - salt + - v3000-py3 + pillars_from_files: + salt.sls: test/salt/pillar/salt.sls + v3000-py3.sls: test/salt/pillar/v3000-py3.sls + verifier: + inspec_tests: + - path: test/integration/v3000-py3 + - name: v3000-py2 + includes: + - arch-base-latest-3000-py2 + provisioner: + state_top: + base: + '*': + - salt.pkgrepo + - salt.master + - salt.minion + pillars: + top.sls: + base: + '*': + - salt + - v3000-py2 + pillars_from_files: + salt.sls: test/salt/pillar/salt.sls + v3000-py2.sls: test/salt/pillar/v3000-py2.sls + verifier: + inspec_tests: + - path: test/integration/v3000-py2 - name: v201902-py3 includes: - debian-10-2019-2-py3 @@ -184,29 +242,3 @@ suites: verifier: inspec_tests: - path: test/integration/v201803-py2 - - name: v201707-py2 - includes: - - debian-8-2017-7-py2 - - ubuntu-1604-2017-7-py2 - - centos-6-2017-7-py2 - - amazonlinux-1-2017-7-py2 - - arch-base-latest-2017-7-py2 - provisioner: - state_top: - base: - '*': - - salt.pkgrepo - - salt.master - - salt.minion - pillars: - top.sls: - base: - '*': - - salt - - v201707-py2 - pillars_from_files: - salt.sls: test/salt/pillar/salt.sls - v201707-py2.sls: test/salt/pillar/v201707-py2.sls - verifier: - inspec_tests: - - path: test/integration/v201707-py2 diff --git a/salt/osfamilymap.yaml b/salt/osfamilymap.yaml index 88d0638..f2eecd9 100644 --- a/salt/osfamilymap.yaml +++ b/salt/osfamilymap.yaml @@ -5,10 +5,6 @@ {%- set py_ver_repr = salt['pillar.get']('salt:py_ver', '') %} {%- set osrelease = salt['grains.get']('osrelease') %} -{#- Workaround for OpenSuse Leap 15.1 until the repo is available #} -{%- if [grains.os_family, osrelease] == ['Suse', '15.1'] %} -{%- set osrelease = '15.0' %} -{%- endif %} {%- set salt_release = salt['pillar.get']('salt:release', 'latest') %} {%- if salt_release.split('.')|length >= 3 %} {%- set salt_release = 'archive/' ~ salt_release %} diff --git a/test/integration/v201902-py3/controls/pkgs_spec.rb b/test/integration/v201902-py3/controls/pkgs_spec.rb index 42be5f2..d3cc963 100644 --- a/test/integration/v201902-py3/controls/pkgs_spec.rb +++ b/test/integration/v201902-py3/controls/pkgs_spec.rb @@ -12,7 +12,7 @@ version = when 'fedora' '2019.2.1rc0-3.fc31' when 'suse' - '2019.2.0-lp151.5.12.1' + '2019.2.0-lp151.28.1' when 'debian' '2019.2.3+ds-1' end diff --git a/test/integration/v201707-py2/README.md b/test/integration/v3000-py2/README.md similarity index 73% rename from test/integration/v201707-py2/README.md rename to test/integration/v3000-py2/README.md index ab6b7bb..85dda6c 100644 --- a/test/integration/v201707-py2/README.md +++ b/test/integration/v3000-py2/README.md @@ -1,16 +1,16 @@ -# InSpec Profile: `v201707-py2` +# InSpec Profile: `v3000-py2` -This shows the implementation of the `v201707-py2` InSpec [profile](https://github.com/inspec/inspec/blob/master/docs/profiles.md). +This shows the implementation of the `v3000-py2` InSpec [profile](https://github.com/inspec/inspec/blob/master/docs/profiles.md). ## Verify a profile InSpec ships with built-in features to verify a profile structure. ```bash -$ inspec check v201707-py2 +$ inspec check v3000-py2 Summary ------- -Location: v201707-py2 +Location: v3000-py2 Profile: profile Controls: 4 Timestamp: 2019-06-24T23:09:01+00:00 @@ -28,7 +28,7 @@ Warnings To run all **supported** controls on a local machine use `inspec exec /path/to/profile`. ```bash -$ inspec exec v201707-py2 +$ inspec exec v3000-py2 .. Finished in 0.0025 seconds (files took 0.12449 seconds to load) @@ -40,7 +40,7 @@ Finished in 0.0025 seconds (files took 0.12449 seconds to load) To run one control from the profile use `inspec exec /path/to/profile --controls name`. ```bash -$ inspec exec v201707-py2 --controls package +$ inspec exec v3000-py2 --controls package . Finished in 0.0025 seconds (files took 0.12449 seconds to load) diff --git a/test/integration/v201707-py2/inspec.yml b/test/integration/v3000-py2/inspec.yml similarity index 81% rename from test/integration/v201707-py2/inspec.yml rename to test/integration/v3000-py2/inspec.yml index f196e73..a70fde0 100644 --- a/test/integration/v201707-py2/inspec.yml +++ b/test/integration/v3000-py2/inspec.yml @@ -1,11 +1,11 @@ # -*- coding: utf-8 -*- # vim: ft=yaml --- -name: v201707-py2 +name: v3000-py2 title: salt formula maintainer: SaltStack Formulas license: Apache-2.0 -summary: Verify that Salt `v201707-py2` is setup and configured +summary: Verify that Salt `v3000-py2` is setup and configured supports: - platform-name: debian - platform-name: ubuntu diff --git a/test/integration/v3000-py3/README.md b/test/integration/v3000-py3/README.md new file mode 100644 index 0000000..f638bb3 --- /dev/null +++ b/test/integration/v3000-py3/README.md @@ -0,0 +1,50 @@ +# InSpec Profile: `v3000-py3` + +This shows the implementation of the `v3000-py3` InSpec [profile](https://github.com/inspec/inspec/blob/master/docs/profiles.md). + +## Verify a profile + +InSpec ships with built-in features to verify a profile structure. + +```bash +$ inspec check v3000-py3 +Summary +------- +Location: v3000-py3 +Profile: profile +Controls: 4 +Timestamp: 2019-06-24T23:09:01+00:00 +Valid: true + +Errors +------ + +Warnings +-------- +``` + +## Execute a profile + +To run all **supported** controls on a local machine use `inspec exec /path/to/profile`. + +```bash +$ inspec exec v3000-py3 +.. + +Finished in 0.0025 seconds (files took 0.12449 seconds to load) +8 examples, 0 failures +``` + +## Execute a specific control from a profile + +To run one control from the profile use `inspec exec /path/to/profile --controls name`. + +```bash +$ inspec exec v3000-py3 --controls package +. + +Finished in 0.0025 seconds (files took 0.12449 seconds to load) +1 examples, 0 failures +``` + +See an [example control here](https://github.com/inspec/inspec/blob/master/examples/profile/controls/example.rb). diff --git a/test/integration/v201707-py2/controls/pkgs_spec.rb b/test/integration/v3000-py3/controls/pkgs_spec.rb similarity index 76% rename from test/integration/v201707-py2/controls/pkgs_spec.rb rename to test/integration/v3000-py3/controls/pkgs_spec.rb index 2d09b69..7f95373 100644 --- a/test/integration/v201707-py2/controls/pkgs_spec.rb +++ b/test/integration/v3000-py3/controls/pkgs_spec.rb @@ -5,12 +5,16 @@ version = when 'redhat' case platform[:name] when 'amazon' - '2017.7.8-1.el7' + '3000-1.amzn2' when 'centos' - '2017.7.8-1.el6' + '3000-1.el8' end + when 'fedora' + '3000-5.fc31' + when 'suse' + '3000-lp151.28.1' when 'debian' - '2017.7.8+ds-1' + '3000+ds-1' end control 'salt packages' do diff --git a/test/integration/v201707-py2/controls/service_spec.rb b/test/integration/v3000-py3/controls/service_spec.rb similarity index 100% rename from test/integration/v201707-py2/controls/service_spec.rb rename to test/integration/v3000-py3/controls/service_spec.rb diff --git a/test/integration/v3000-py3/inspec.yml b/test/integration/v3000-py3/inspec.yml new file mode 100644 index 0000000..883400b --- /dev/null +++ b/test/integration/v3000-py3/inspec.yml @@ -0,0 +1,18 @@ +# -*- coding: utf-8 -*- +# vim: ft=yaml +--- +name: v3000-py3 +title: salt formula +maintainer: SaltStack Formulas +license: Apache-2.0 +summary: Verify that Salt `v3000-py3` is setup and configured +supports: + - platform-name: debian + - platform-name: ubuntu + - platform-name: centos + - platform-name: fedora + - platform-name: opensuse + - platform-name: suse + - platform-name: freebsd + - platform-name: amazon + - platform-name: arch diff --git a/test/salt/pillar/v201707-py2.sls b/test/salt/pillar/v3000-py3.sls similarity index 59% rename from test/salt/pillar/v201707-py2.sls rename to test/salt/pillar/v3000-py3.sls index 341c0bf..97daba2 100644 --- a/test/salt/pillar/v201707-py2.sls +++ b/test/salt/pillar/v3000-py3.sls @@ -2,4 +2,5 @@ # vim: ft=yaml --- salt: - release: '2017.7' + release: '3000' + py_ver: 'py3'