From 0da366c7b25778dcec12f2a4a80cd4072c3d4d29 Mon Sep 17 00:00:00 2001 From: Imran Iqbal Date: Sat, 21 Mar 2020 00:21:40 +0000 Subject: [PATCH 1/4] refactor(osfamilymap): remove workaround for OpenSUSE 15.1 --- salt/osfamilymap.yaml | 4 ---- 1 file changed, 4 deletions(-) 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 %} From f91f10c2800edfc1b59fd731a6b6f82a47f74fcc Mon Sep 17 00:00:00 2001 From: Imran Iqbal Date: Fri, 20 Mar 2020 23:46:45 +0000 Subject: [PATCH 2/4] test(neon): add pillar and tests for `3000` --- .../v201902-py3/controls/pkgs_spec.rb | 2 +- .../v3000-py3/controls/pkgs_spec.rb | 32 +++++++++++++++++++ .../v3000-py3/controls/service_spec.rb | 15 +++++++++ test/salt/pillar/v3000-py3.sls | 6 ++++ 4 files changed, 54 insertions(+), 1 deletion(-) create mode 100644 test/integration/v3000-py3/controls/pkgs_spec.rb create mode 100644 test/integration/v3000-py3/controls/service_spec.rb create mode 100644 test/salt/pillar/v3000-py3.sls 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/v3000-py3/controls/pkgs_spec.rb b/test/integration/v3000-py3/controls/pkgs_spec.rb new file mode 100644 index 0000000..7f95373 --- /dev/null +++ b/test/integration/v3000-py3/controls/pkgs_spec.rb @@ -0,0 +1,32 @@ +# frozen_string_literal: true + +version = + case platform[:family] + when 'redhat' + case platform[:name] + when 'amazon' + '3000-1.amzn2' + when 'centos' + '3000-1.el8' + end + when 'fedora' + '3000-5.fc31' + when 'suse' + '3000-lp151.28.1' + when 'debian' + '3000+ds-1' + end + +control 'salt packages' do + title 'should be installed' + + %w[ + salt-master + salt-minion + ].each do |p| + describe package(p) do + it { should be_installed } + its('version') { should eq version } + end + end +end diff --git a/test/integration/v3000-py3/controls/service_spec.rb b/test/integration/v3000-py3/controls/service_spec.rb new file mode 100644 index 0000000..27f8ae5 --- /dev/null +++ b/test/integration/v3000-py3/controls/service_spec.rb @@ -0,0 +1,15 @@ +# frozen_string_literal: true + +control 'salt services' do + title 'should be running' + + %w[ + salt-master + salt-minion + ].each do |p| + describe service(p) do + it { should be_enabled } + it { should be_running } + end + end +end diff --git a/test/salt/pillar/v3000-py3.sls b/test/salt/pillar/v3000-py3.sls new file mode 100644 index 0000000..97daba2 --- /dev/null +++ b/test/salt/pillar/v3000-py3.sls @@ -0,0 +1,6 @@ +# -*- coding: utf-8 -*- +# vim: ft=yaml +--- +salt: + release: '3000' + py_ver: 'py3' From f246a5e0af84f527df2f87428d929440c716361b Mon Sep 17 00:00:00 2001 From: Imran Iqbal Date: Sat, 21 Mar 2020 00:25:11 +0000 Subject: [PATCH 3/4] test(nitrogen): remove pillar and tests for `2017.7` --- test/integration/v201707-py2/README.md | 50 ------------------- .../v201707-py2/controls/pkgs_spec.rb | 28 ----------- .../v201707-py2/controls/service_spec.rb | 15 ------ test/integration/v201707-py2/inspec.yml | 18 ------- test/salt/pillar/v201707-py2.sls | 5 -- 5 files changed, 116 deletions(-) delete mode 100644 test/integration/v201707-py2/README.md delete mode 100644 test/integration/v201707-py2/controls/pkgs_spec.rb delete mode 100644 test/integration/v201707-py2/controls/service_spec.rb delete mode 100644 test/integration/v201707-py2/inspec.yml delete mode 100644 test/salt/pillar/v201707-py2.sls diff --git a/test/integration/v201707-py2/README.md b/test/integration/v201707-py2/README.md deleted file mode 100644 index ab6b7bb..0000000 --- a/test/integration/v201707-py2/README.md +++ /dev/null @@ -1,50 +0,0 @@ -# InSpec Profile: `v201707-py2` - -This shows the implementation of the `v201707-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 -Summary -------- -Location: v201707-py2 -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 v201707-py2 -.. - -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 v201707-py2 --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/v201707-py2/controls/pkgs_spec.rb deleted file mode 100644 index 2d09b69..0000000 --- a/test/integration/v201707-py2/controls/pkgs_spec.rb +++ /dev/null @@ -1,28 +0,0 @@ -# frozen_string_literal: true - -version = - case platform[:family] - when 'redhat' - case platform[:name] - when 'amazon' - '2017.7.8-1.el7' - when 'centos' - '2017.7.8-1.el6' - end - when 'debian' - '2017.7.8+ds-1' - end - -control 'salt packages' do - title 'should be installed' - - %w[ - salt-master - salt-minion - ].each do |p| - describe package(p) do - it { should be_installed } - its('version') { should eq version } - end - end -end diff --git a/test/integration/v201707-py2/controls/service_spec.rb b/test/integration/v201707-py2/controls/service_spec.rb deleted file mode 100644 index 27f8ae5..0000000 --- a/test/integration/v201707-py2/controls/service_spec.rb +++ /dev/null @@ -1,15 +0,0 @@ -# frozen_string_literal: true - -control 'salt services' do - title 'should be running' - - %w[ - salt-master - salt-minion - ].each do |p| - describe service(p) do - it { should be_enabled } - it { should be_running } - end - end -end diff --git a/test/integration/v201707-py2/inspec.yml b/test/integration/v201707-py2/inspec.yml deleted file mode 100644 index f196e73..0000000 --- a/test/integration/v201707-py2/inspec.yml +++ /dev/null @@ -1,18 +0,0 @@ -# -*- coding: utf-8 -*- -# vim: ft=yaml ---- -name: v201707-py2 -title: salt formula -maintainer: SaltStack Formulas -license: Apache-2.0 -summary: Verify that Salt `v201707-py2` 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/v201707-py2.sls deleted file mode 100644 index 341c0bf..0000000 --- a/test/salt/pillar/v201707-py2.sls +++ /dev/null @@ -1,5 +0,0 @@ -# -*- coding: utf-8 -*- -# vim: ft=yaml ---- -salt: - release: '2017.7' From 4a5f8053e938569814a2043405416c74b8c990fd Mon Sep 17 00:00:00 2001 From: Imran Iqbal Date: Sat, 21 Mar 2020 11:30:25 +0000 Subject: [PATCH 4/4] ci(kitchen+travis): adjust matrix to add `3000` & remove `2017.7` * Semi-automated using https://github.com/myii/ssf-formula/pull/135 --- .travis.yml | 39 +++--- kitchen.yml | 168 +++++++++++++++----------- test/integration/v3000-py2/README.md | 50 ++++++++ test/integration/v3000-py2/inspec.yml | 18 +++ test/integration/v3000-py3/README.md | 50 ++++++++ test/integration/v3000-py3/inspec.yml | 18 +++ 6 files changed, 254 insertions(+), 89 deletions(-) create mode 100644 test/integration/v3000-py2/README.md create mode 100644 test/integration/v3000-py2/inspec.yml create mode 100644 test/integration/v3000-py3/README.md create mode 100644 test/integration/v3000-py3/inspec.yml 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/test/integration/v3000-py2/README.md b/test/integration/v3000-py2/README.md new file mode 100644 index 0000000..85dda6c --- /dev/null +++ b/test/integration/v3000-py2/README.md @@ -0,0 +1,50 @@ +# InSpec Profile: `v3000-py2` + +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 v3000-py2 +Summary +------- +Location: v3000-py2 +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-py2 +.. + +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-py2 --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/v3000-py2/inspec.yml b/test/integration/v3000-py2/inspec.yml new file mode 100644 index 0000000..a70fde0 --- /dev/null +++ b/test/integration/v3000-py2/inspec.yml @@ -0,0 +1,18 @@ +# -*- coding: utf-8 -*- +# vim: ft=yaml +--- +name: v3000-py2 +title: salt formula +maintainer: SaltStack Formulas +license: Apache-2.0 +summary: Verify that Salt `v3000-py2` 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/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/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