1
0
Fork 0

Compare commits

...

59 Commits

Author SHA1 Message Date
Imran Iqbal ee93b6928d
chore(gemfile.lock): update to latest gem versions (2022-W28) [skip ci]
* Automated using https://github.com/myii/ssf-formula/pull/454
2022-07-17 19:48:40 +01:00
Imran Iqbal 8051893cb9
chore(gemfile.lock): update to latest gem versions (2022-W26) [skip ci]
* Automated using https://github.com/myii/ssf-formula/pull/453
2022-06-30 23:09:49 +01:00
Imran Iqbal 1fb3a75bae
chore(gemfile.lock): update to latest gem versions (2022-W24) [skip ci]
* Automated using https://github.com/myii/ssf-formula/pull/452
2022-06-15 23:06:55 +01:00
Imran Iqbal 47cf2411c2
ci: update `pre-commit` configuration inc. for pre-commit.ci [skip ci]
* Automated using https://github.com/myii/ssf-formula/pull/450
2022-06-09 00:06:09 +01:00
Imran Iqbal f4fecb7fe8
chore(gemfile.lock): update to latest gem versions (2022-W23) [skip ci]
* Automated using https://github.com/myii/ssf-formula/pull/449
2022-06-07 23:31:43 +01:00
Imran Iqbal 6c2e46f398
chore(gemfile.lock): update to latest gem versions (2022-W22) [skip ci]
* Automated using https://github.com/myii/ssf-formula/pull/447
2022-05-30 17:29:41 +01:00
Imran Iqbal 18ca7ca872
chore(gemfile.lock): update to latest gem versions (2022-W20) [skip ci]
* Automated using https://github.com/myii/ssf-formula/pull/444
2022-05-17 13:22:33 +01:00
Imran Iqbal 5263127a6d
test(system.rb): add support for `mac_os_x` [skip ci]
* Automated using https://github.com/myii/ssf-formula/pull/442
2022-05-17 08:52:09 +01:00
Imran Iqbal e21b8ff6f1
test(_mapdata): add verification files for `ubuntu-22` [skip ci] 2022-05-10 10:46:05 +01:00
Imran Iqbal 27b9a0bbb6
chore(gemfile.lock): update to latest gem versions (2022-W19) [skip ci]
* Automated using https://github.com/myii/ssf-formula/pull/439
2022-05-10 07:34:33 +01:00
Imran Iqbal b5d74e6dfa
chore(gemfile.lock): update to latest gem versions (2022-W18) [skip ci]
* Automated using https://github.com/myii/ssf-formula/pull/437
2022-05-06 23:19:21 +01:00
Imran Iqbal d9666fcfd1
chore(gemfile.lock): update to latest gem versions (2022-W17) [skip ci]
* Automated using https://github.com/myii/ssf-formula/pull/433
2022-04-25 09:12:25 +01:00
Imran Iqbal 9bf93003ef
chore(gemfile.lock): update to latest gem versions (2022-W16) [skip ci]
* Automated using https://github.com/myii/ssf-formula/pull/431
2022-04-18 23:38:35 +01:00
Imran Iqbal b965b3cb60
chore(gemfile.lock): update to latest gem versions (2022-W15) [skip ci]
* Automated using https://github.com/myii/ssf-formula/pull/428
2022-04-11 19:24:10 +01:00
Imran Iqbal 4eb8b3101e
test(_mapdata): add verification files for `fedora-36` [skip ci] 2022-04-11 16:18:02 +01:00
Imran Iqbal 048448307e
chore(gemfile.lock): update to latest gem versions (2022-W14) [skip ci]
* Automated using https://github.com/myii/ssf-formula/pull/427
2022-04-04 09:24:52 +01:00
Imran Iqbal 41a3819974
ci(kitchen+gitlab): update for new pre-salted images [skip ci]
* Automated using https://github.com/myii/ssf-formula/pull/426
2022-04-03 15:09:11 +01:00
Imran Iqbal ee6113fe80
chore(gemfile.lock): update to latest gem versions (2022-W13) [skip ci]
* Automated using https://github.com/myii/ssf-formula/pull/425
2022-04-01 15:37:58 +01:00
Imran Iqbal 00986861b2
test(_mapdata): add verification files for `fedora-35` [skip ci] 2022-03-30 09:20:08 +01:00
Imran Iqbal 48057c781f
chore(gemfile.lock): update to latest gem versions (2022-W12) [skip ci]
* Automated using https://github.com/myii/ssf-formula/pull/424
2022-03-22 12:03:15 +00:00
Imran Iqbal 99d0a22ee5
chore(gemfile.lock): update to latest gem versions (2022-W11) [skip ci]
* Automated using https://github.com/myii/ssf-formula/pull/423
2022-03-17 23:42:12 +00:00
Imran Iqbal f0a81b327b
chore(gemfile.lock): update to latest gem versions (2022-W10) [skip ci]
* Automated using https://github.com/myii/ssf-formula/pull/422
2022-03-12 10:07:21 +00:00
Imran Iqbal 01c57e1372
chore(gemfile.lock): update to latest gem versions (2022-W09) [skip ci]
* Automated using https://github.com/myii/ssf-formula/pull/421
2022-03-04 15:34:26 +00:00
Imran Iqbal 7f911c1317
chore(gemfile.lock): update to latest gem versions (2022-W08) [skip ci]
* Automated using https://github.com/myii/ssf-formula/pull/419
2022-02-21 19:12:20 +00:00
Imran Iqbal e0e91ea685
chore(gemfile.lock): update to latest gem versions (2022-W07) [skip ci]
* Automated using https://github.com/myii/ssf-formula/pull/416
2022-02-15 09:03:56 +00:00
Imran Iqbal e3cbbb174f
test(system): add `build_platform_codename` [skip ci]
* Automated using https://github.com/myii/ssf-formula/pull/415
2022-02-14 08:09:10 +00:00
Imran Iqbal ca1023cccb
ci: update linters to latest versions [skip ci]
* Automated using https://github.com/myii/ssf-formula/pull/414
2022-02-12 23:24:43 +00:00
Imran Iqbal d5cb0cb259
chore(gemfile.lock): update to latest gem versions (2022-W06) [skip ci]
* Automated using https://github.com/myii/ssf-formula/pull/412
2022-02-07 17:31:35 +00:00
Imran Iqbal f63dc87b9e
ci(kitchen+gitlab): update for new pre-salted images [skip ci]
* Automated using https://github.com/myii/ssf-formula/pull/410
2022-02-02 23:06:42 +00:00
Imran Iqbal bb23643e90
chore(gemfile.lock): update to latest gem versions (2022-W05) [skip ci]
* Automated using https://github.com/myii/ssf-formula/pull/409
2022-02-01 23:42:59 +00:00
noelmcloughlin 91950b1c86
ci(gemfile): allow rubygems proxy to be provided as an env var [skip ci]
* Automated using https://github.com/myii/ssf-formula/pull/408
2022-01-26 08:44:23 +00:00
Imran Iqbal 8059e869a6
chore(gemfile.lock): update to latest gem versions (2022-W04) [skip ci]
* Automated using https://github.com/myii/ssf-formula/pull/407
2022-01-25 14:15:13 +00:00
Imran Iqbal e547943b50
chore(gemfile.lock): update to latest gem versions (2022-W03) [skip ci]
* Automated using https://github.com/myii/ssf-formula/pull/405
2022-01-17 19:51:04 +00:00
Imran Iqbal 17cf047307
chore(semantic-release): replace broken `m2r` with `m2r2` [skip ci]
* Automated using https://github.com/myii/ssf-formula/pull/404
2022-01-17 08:16:42 +00:00
Imran Iqbal 50e3e0b1fb
chore(gemfile.lock): update to latest gem versions (2022-W02) [skip ci]
* Automated using https://github.com/myii/ssf-formula/pull/398
2022-01-11 09:39:37 +00:00
Imran Iqbal 82f0828e30
chore(gemfile.lock): update to latest gem versions (2022-W01) [skip ci]
* Automated using https://github.com/myii/ssf-formula/pull/397
2022-01-06 08:08:57 +00:00
Imran Iqbal ae7f0e14d6
chore(gemfile.lock): update to latest gem versions (2021-W52) [skip ci]
* Automated using https://github.com/myii/ssf-formula/pull/396
2021-12-28 21:07:17 +00:00
Imran Iqbal 2e8a52a520
chore(gemfile.lock): update to latest gem versions (2021-W51) [skip ci]
* Automated using https://github.com/myii/ssf-formula/pull/394
2021-12-22 11:59:05 +00:00
Imran Iqbal 955760d54d
chore(gemfile.lock): update to latest gem versions (2021-W50) [skip ci]
* Automated using https://github.com/myii/ssf-formula/pull/391
2021-12-14 15:23:35 +00:00
Imran Iqbal 386fc0f563
chore(gemfile.lock): update to latest gem versions (2021-W49) [skip ci]
* Automated using https://github.com/myii/ssf-formula/pull/388
2021-12-06 08:23:20 +00:00
Imran Iqbal aa93c70507
chore(gemfile.lock): update to latest gem versions (2021-W47) [skip ci]
* Automated using https://github.com/myii/ssf-formula/pull/386
2021-11-23 11:44:30 +00:00
Imran Iqbal 1ae87ddb8a
ci(kitchen+ci): update with `3004` pre-salted images/boxes [skip ci]
* Automated using https://github.com/myii/ssf-formula/pull/385
2021-11-23 10:37:54 +00:00
Imran Iqbal 92958d3ac8
chore(gemfile.lock): update to latest gem versions (2021-W43) [skip ci]
* Automated using https://github.com/myii/ssf-formula/pull/381
2021-10-26 11:16:43 +01:00
Imran Iqbal 2c700b37e5
chore(gemfile.lock): update to latest gem versions (2021-W42) [skip ci]
* Automated using https://github.com/myii/ssf-formula/pull/380
2021-10-23 21:12:17 +01:00
Imran Iqbal 10029b4183
chore(gemfile.lock): update to latest gem versions (2021-W41) [skip ci]
* Automated using https://github.com/myii/ssf-formula/pull/378
2021-10-15 19:12:09 +01:00
Imran Iqbal 350a0a362e
chore(gemfile.lock): update to latest gem versions (2021-W40) [skip ci]
* Automated using https://github.com/myii/ssf-formula/pull/375
2021-10-06 17:06:11 +01:00
Imran Iqbal 1fb360ce5c
ci(kitchen+ci): update with latest CVE pre-salted images [skip ci]
* Automated using https://github.com/myii/ssf-formula/pull/374
2021-10-05 11:17:35 +01:00
Imran Iqbal c05321abae
chore(gemfile.lock): update to latest gem versions (2021-W39) [skip ci]
* Automated using https://github.com/myii/ssf-formula/pull/370
2021-09-30 07:21:21 +01:00
Imran Iqbal 7912f2c8b3
chore(gemfile.lock): update to latest gem versions (2021-W38) [skip ci]
* Automated using https://github.com/myii/ssf-formula/pull/369
2021-09-21 12:00:16 +01:00
Imran Iqbal eb617b7eea
chore(gemfile.lock): update to latest gem versions (2021-W37) [skip ci]
* Automated using https://github.com/myii/ssf-formula/pull/368
2021-09-14 09:58:53 +01:00
Imran Iqbal 82b4fbabc2
chore(gemfile.lock): update to latest gem versions (2021-W36) [skip ci]
* Automated using https://github.com/myii/ssf-formula/pull/367
2021-09-08 23:35:41 +01:00
Imran Iqbal 4570bb6bef
chore(gemfile.lock): update to latest gem versions (2021-W35) [skip ci]
* Automated using https://github.com/myii/ssf-formula/pull/364
2021-08-30 18:11:51 +01:00
Imran Iqbal 9ea8e3ddce
ci: review #78, fix verification files & standardise structure [skip ci]
* Semi-automated using https://github.com/myii/ssf-formula/pull/363
2021-08-30 16:10:49 +01:00
semantic-release-bot cc83b76633 chore(release): 0.25.0 [skip ci]
# [0.25.0](https://github.com/saltstack-formulas/sudoers-formula/compare/v0.24.0...v0.25.0) (2021-08-29)

### Continuous Integration

* **appended:** add second test suite ([38126a3](38126a31a6))
* **kitchen+ci:** update with latest `3003.2` pre-salted images [skip ci] ([93ae700](93ae700eed))

### Features

* **ordering:** optionally append includefiles to main config ([751eff7](751eff7218))
2021-08-29 00:09:11 +00:00
N cd81da881c
Merge pull request #78 from noelmcloughlin/append
feat(ordering): optionally append includefiles to main config
2021-08-29 00:57:26 +01:00
Imran Iqbal 8adc38bee7
chore(gemfile.lock): update to latest gem versions (2021-W34) [skip ci]
* Automated using https://github.com/myii/ssf-formula/pull/362
2021-08-23 09:26:06 +01:00
Imran Iqbal 93ae700eed
ci(kitchen+ci): update with latest `3003.2` pre-salted images [skip ci]
* Automated using https://github.com/myii/ssf-formula/pull/360
2021-08-19 10:15:14 +01:00
noelmcloughlin 38126a31a6 ci(appended): add second test suite 2021-08-19 01:24:17 +01:00
noelmcloughlin 751eff7218 feat(ordering): optionally append includefiles to main config 2021-08-19 00:36:59 +01:00
84 changed files with 1921 additions and 642 deletions

1
.gitignore vendored
View File

@ -127,6 +127,7 @@ tmp/
# `salt-formula` -- Vagrant Specific files
.vagrant
top.sls
!test/salt/pillar/top.sls
# `suricata-formula` -- Platform binaries
*.rpm

View File

@ -102,7 +102,7 @@ rubocop:
###############################################################################
# Define `test` template
###############################################################################
.test_instance:
.test_instance: &test_instance
stage: *stage_test
image: *image_dindruby
services: *services_docker_dind
@ -117,111 +117,124 @@ rubocop:
# Alternative value to consider: `${CI_JOB_NAME}`
- 'bin/kitchen verify "${DOCKER_ENV_CI_JOB_NAME}"'
###############################################################################
# Define `test` template (`allow_failure: true`)
###############################################################################
.test_instance_failure_permitted:
<<: *test_instance
allow_failure: true
###############################################################################
# `test` stage: each instance below uses the `test` template above
###############################################################################
## 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`
# yamllint disable rule:line-length
# default-debian-11-tiamat-py3: {extends: '.test_instance'}
# default-debian-10-tiamat-py3: {extends: '.test_instance'}
# default-debian-9-tiamat-py3: {extends: '.test_instance'}
# default-ubuntu-2204-tiamat-py3: {extends: '.test_instance_failure_permitted'}
# default-ubuntu-2004-tiamat-py3: {extends: '.test_instance'}
# default-ubuntu-1804-tiamat-py3: {extends: '.test_instance'}
# default-centos-8-tiamat-py3: {extends: '.test_instance'}
# default-centos-stream8-tiamat-py3: {extends: '.test_instance_failure_permitted'}
# default-centos-7-tiamat-py3: {extends: '.test_instance'}
# default-amazonlinux-2-tiamat-py3: {extends: '.test_instance'}
# default-oraclelinux-8-tiamat-py3: {extends: '.test_instance'}
# default-oraclelinux-7-tiamat-py3: {extends: '.test_instance'}
# default-almalinux-8-tiamat-py3: {extends: '.test_instance'}
# default-rockylinux-8-tiamat-py3: {extends: '.test_instance'}
default-debian-11-master-py3: {extends: '.test_instance'}
default-debian-10-master-py3: {extends: '.test_instance'}
default-debian-9-master-py3: {extends: '.test_instance'}
default-ubuntu-2004-master-py3: {extends: '.test_instance'}
default-ubuntu-1804-master-py3: {extends: '.test_instance'}
default-centos-8-master-py3: {extends: '.test_instance'}
default-centos-7-master-py3: {extends: '.test_instance'}
default-fedora-34-master-py3: {extends: '.test_instance'}
default-fedora-33-master-py3: {extends: '.test_instance'}
default-opensuse-leap-153-master-py3: {extends: '.test_instance'}
default-opensuse-leap-152-master-py3: {extends: '.test_instance'}
default-opensuse-tmbl-latest-master-py3: {extends: '.test_instance'}
default-amazonlinux-2-master-py3: {extends: '.test_instance'}
default-oraclelinux-8-master-py3: {extends: '.test_instance'}
default-oraclelinux-7-master-py3: {extends: '.test_instance'}
default-arch-base-latest-master-py3: {extends: '.test_instance'}
default-gentoo-stage3-latest-master-py3: {extends: '.test_instance'}
default-gentoo-stage3-systemd-master-py3: {extends: '.test_instance'}
default-almalinux-8-master-py3: {extends: '.test_instance'}
default-rockylinux-8-master-py3: {extends: '.test_instance'}
# default-debian-11-3003-1-py3: {extends: '.test_instance'}
# default-debian-10-3003-1-py3: {extends: '.test_instance'}
# default-debian-9-3003-1-py3: {extends: '.test_instance'}
# default-ubuntu-2004-3003-1-py3: {extends: '.test_instance'}
# default-ubuntu-1804-3003-1-py3: {extends: '.test_instance'}
# default-centos-8-3003-1-py3: {extends: '.test_instance'}
# default-centos-7-3003-1-py3: {extends: '.test_instance'}
# default-fedora-34-3003-1-py3: {extends: '.test_instance'}
# default-fedora-33-3003-1-py3: {extends: '.test_instance'}
# default-opensuse-leap-153-3003-1-py3: {extends: '.test_instance'}
# default-opensuse-leap-152-3003-1-py3: {extends: '.test_instance'}
# default-opensuse-tmbl-latest-3003-1-py3: {extends: '.test_instance'}
# default-amazonlinux-2-3003-1-py3: {extends: '.test_instance'}
# default-oraclelinux-8-3003-1-py3: {extends: '.test_instance'}
# default-oraclelinux-7-3003-1-py3: {extends: '.test_instance'}
# default-arch-base-latest-3003-1-py3: {extends: '.test_instance'}
# default-gentoo-stage3-latest-3003-1-py3: {extends: '.test_instance'}
# default-gentoo-stage3-systemd-3003-1-py3: {extends: '.test_instance'}
# default-debian-11-3002-6-py3: {extends: '.test_instance'}
# default-debian-10-3002-6-py3: {extends: '.test_instance'}
# default-debian-9-3002-6-py3: {extends: '.test_instance'}
# default-ubuntu-2004-3002-6-py3: {extends: '.test_instance'}
# default-ubuntu-1804-3002-6-py3: {extends: '.test_instance'}
# default-centos-8-3002-6-py3: {extends: '.test_instance'}
# default-centos-7-3002-6-py3: {extends: '.test_instance'}
# default-fedora-34-3002-6-py3: {extends: '.test_instance'}
# default-fedora-33-3002-6-py3: {extends: '.test_instance'}
# default-amazonlinux-2-3002-6-py3: {extends: '.test_instance'}
# default-oraclelinux-8-3002-6-py3: {extends: '.test_instance'}
# default-oraclelinux-7-3002-6-py3: {extends: '.test_instance'}
# default-arch-base-latest-3002-6-py3: {extends: '.test_instance'}
# default-gentoo-stage3-latest-3002-6-py3: {extends: '.test_instance'}
# default-gentoo-stage3-systemd-3002-6-py3: {extends: '.test_instance'}
# default-opensuse-leap-153-3002-2-py3: {extends: '.test_instance'}
# default-opensuse-leap-152-3002-2-py3: {extends: '.test_instance'}
# default-opensuse-tmbl-latest-3002-2-py3: {extends: '.test_instance'}
# default-debian-10-3001-7-py3: {extends: '.test_instance'}
# default-debian-9-3001-7-py3: {extends: '.test_instance'}
# default-ubuntu-2004-3001-7-py3: {extends: '.test_instance'}
# default-ubuntu-1804-3001-7-py3: {extends: '.test_instance'}
# default-centos-8-3001-7-py3: {extends: '.test_instance'}
# default-centos-7-3001-7-py3: {extends: '.test_instance'}
# default-fedora-34-3001-7-py3: {extends: '.test_instance'}
# default-fedora-33-3001-7-py3: {extends: '.test_instance'}
# default-opensuse-leap-153-3001-7-py3: {extends: '.test_instance'}
# default-opensuse-leap-152-3001-7-py3: {extends: '.test_instance'}
# default-opensuse-tmbl-latest-3001-7-py3: {extends: '.test_instance'}
# default-amazonlinux-2-3001-7-py3: {extends: '.test_instance'}
# default-oraclelinux-8-3001-7-py3: {extends: '.test_instance'}
# default-oraclelinux-7-3001-7-py3: {extends: '.test_instance'}
# default-arch-base-latest-3001-7-py3: {extends: '.test_instance'}
# default-gentoo-stage3-latest-3001-7-py3: {extends: '.test_instance'}
# default-gentoo-stage3-systemd-3001-7-py3: {extends: '.test_instance'}
# default-debian-10-3000-9-py3: {extends: '.test_instance'}
# default-debian-9-3000-9-py3: {extends: '.test_instance'}
# default-ubuntu-1804-3000-9-py3: {extends: '.test_instance'}
# default-centos-8-3000-9-py3: {extends: '.test_instance'}
# default-centos-7-3000-9-py3: {extends: '.test_instance'}
# default-opensuse-leap-153-3000-9-py3: {extends: '.test_instance'}
# default-opensuse-leap-152-3000-9-py3: {extends: '.test_instance'}
# default-amazonlinux-2-3000-9-py3: {extends: '.test_instance'}
# default-oraclelinux-8-3000-9-py3: {extends: '.test_instance'}
# default-oraclelinux-7-3000-9-py3: {extends: '.test_instance'}
# default-gentoo-stage3-latest-3000-9-py3: {extends: '.test_instance'}
# default-gentoo-stage3-systemd-3000-9-py3: {extends: '.test_instance'}
# default-ubuntu-1804-3000-9-py2: {extends: '.test_instance'}
# default-arch-base-latest-3000-9-py2: {extends: '.test_instance'}
# default-debian-11-master-py3: {extends: '.test_instance'}
# appended-debian-11-master-py3: {extends: '.test_instance'}
debian-11-master-py3: {extends: '.test_instance'}
# default-debian-10-master-py3: {extends: '.test_instance'}
# appended-debian-10-master-py3: {extends: '.test_instance'}
debian-10-master-py3: {extends: '.test_instance'}
# default-debian-9-master-py3: {extends: '.test_instance'}
# appended-debian-9-master-py3: {extends: '.test_instance'}
debian-9-master-py3: {extends: '.test_instance'}
# default-ubuntu-2204-master-py3: {extends: '.test_instance_failure_permitted'}
# appended-ubuntu-2204-master-py3: {extends: '.test_instance_failure_permitted'}
ubuntu-2204-master-py3: {extends: '.test_instance_failure_permitted'}
# default-ubuntu-2004-master-py3: {extends: '.test_instance'}
# appended-ubuntu-2004-master-py3: {extends: '.test_instance'}
ubuntu-2004-master-py3: {extends: '.test_instance'}
# default-ubuntu-1804-master-py3: {extends: '.test_instance'}
# appended-ubuntu-1804-master-py3: {extends: '.test_instance'}
ubuntu-1804-master-py3: {extends: '.test_instance'}
# default-centos-stream8-master-py3: {extends: '.test_instance_failure_permitted'}
# appended-centos-stream8-master-py3: {extends: '.test_instance_failure_permitted'}
centos-stream8-master-py3: {extends: '.test_instance_failure_permitted'}
# default-centos-7-master-py3: {extends: '.test_instance'}
# appended-centos-7-master-py3: {extends: '.test_instance'}
centos-7-master-py3: {extends: '.test_instance'}
# default-fedora-36-master-py3: {extends: '.test_instance_failure_permitted'}
# appended-fedora-36-master-py3: {extends: '.test_instance_failure_permitted'}
fedora-36-master-py3: {extends: '.test_instance_failure_permitted'}
# default-fedora-35-master-py3: {extends: '.test_instance'}
# appended-fedora-35-master-py3: {extends: '.test_instance'}
fedora-35-master-py3: {extends: '.test_instance'}
# default-opensuse-leap-153-master-py3: {extends: '.test_instance'}
# appended-opensuse-leap-153-master-py3: {extends: '.test_instance'}
opensuse-leap-153-master-py3: {extends: '.test_instance'}
# default-opensuse-tmbl-latest-master-py3: {extends: '.test_instance_failure_permitted'}
# appended-opensuse-tmbl-latest-master-py3: {extends: '.test_instance_failure_permitted'}
opensuse-tmbl-latest-master-py3: {extends: '.test_instance_failure_permitted'}
# default-amazonlinux-2-master-py3: {extends: '.test_instance'}
# appended-amazonlinux-2-master-py3: {extends: '.test_instance'}
amazonlinux-2-master-py3: {extends: '.test_instance'}
# default-oraclelinux-8-master-py3: {extends: '.test_instance'}
# appended-oraclelinux-8-master-py3: {extends: '.test_instance'}
oraclelinux-8-master-py3: {extends: '.test_instance'}
# default-oraclelinux-7-master-py3: {extends: '.test_instance'}
# appended-oraclelinux-7-master-py3: {extends: '.test_instance'}
oraclelinux-7-master-py3: {extends: '.test_instance'}
# default-arch-base-latest-master-py3: {extends: '.test_instance'}
# appended-arch-base-latest-master-py3: {extends: '.test_instance'}
arch-base-latest-master-py3: {extends: '.test_instance'}
# default-gentoo-stage3-latest-master-py3: {extends: '.test_instance'}
# appended-gentoo-stage3-latest-master-py3: {extends: '.test_instance'}
gentoo-stage3-latest-master-py3: {extends: '.test_instance'}
# default-gentoo-stage3-systemd-master-py3: {extends: '.test_instance'}
# appended-gentoo-stage3-systemd-master-py3: {extends: '.test_instance'}
gentoo-stage3-systemd-master-py3: {extends: '.test_instance'}
# default-almalinux-8-master-py3: {extends: '.test_instance'}
# appended-almalinux-8-master-py3: {extends: '.test_instance'}
almalinux-8-master-py3: {extends: '.test_instance'}
# default-rockylinux-8-master-py3: {extends: '.test_instance'}
# appended-rockylinux-8-master-py3: {extends: '.test_instance'}
rockylinux-8-master-py3: {extends: '.test_instance'}
# default-debian-11-3004-1-py3: {extends: '.test_instance'}
# default-debian-10-3004-1-py3: {extends: '.test_instance'}
# default-debian-9-3004-1-py3: {extends: '.test_instance'}
# default-ubuntu-2204-3004-1-py3: {extends: '.test_instance_failure_permitted'}
# default-ubuntu-2004-3004-1-py3: {extends: '.test_instance'}
# default-ubuntu-1804-3004-1-py3: {extends: '.test_instance'}
# default-centos-stream8-3004-1-py3: {extends: '.test_instance_failure_permitted'}
# default-centos-7-3004-1-py3: {extends: '.test_instance'}
# default-fedora-36-3004-1-py3: {extends: '.test_instance_failure_permitted'}
# default-fedora-35-3004-1-py3: {extends: '.test_instance'}
# default-amazonlinux-2-3004-1-py3: {extends: '.test_instance'}
# default-oraclelinux-8-3004-1-py3: {extends: '.test_instance'}
# default-oraclelinux-7-3004-1-py3: {extends: '.test_instance'}
# default-arch-base-latest-3004-1-py3: {extends: '.test_instance'}
# default-gentoo-stage3-latest-3004-1-py3: {extends: '.test_instance'}
# default-gentoo-stage3-systemd-3004-1-py3: {extends: '.test_instance'}
# default-almalinux-8-3004-1-py3: {extends: '.test_instance'}
# default-rockylinux-8-3004-1-py3: {extends: '.test_instance'}
# default-opensuse-leap-153-3004-0-py3: {extends: '.test_instance'}
# default-opensuse-tmbl-latest-3004-0-py3: {extends: '.test_instance_failure_permitted'}
# default-debian-10-3003-4-py3: {extends: '.test_instance'}
# default-debian-9-3003-4-py3: {extends: '.test_instance'}
# default-ubuntu-2004-3003-4-py3: {extends: '.test_instance'}
# default-ubuntu-1804-3003-4-py3: {extends: '.test_instance'}
# default-centos-stream8-3003-4-py3: {extends: '.test_instance_failure_permitted'}
# default-centos-7-3003-4-py3: {extends: '.test_instance'}
# default-amazonlinux-2-3003-4-py3: {extends: '.test_instance'}
# default-oraclelinux-8-3003-4-py3: {extends: '.test_instance'}
# default-oraclelinux-7-3003-4-py3: {extends: '.test_instance'}
# default-almalinux-8-3003-4-py3: {extends: '.test_instance'}
# yamllint enable rule:line-length
###############################################################################
# `release` stage: `semantic-release`

View File

@ -3,6 +3,18 @@
---
# See https://pre-commit.com for more information
# See https://pre-commit.com/hooks.html for more hooks
ci:
autofix_commit_msg: |
ci(pre-commit.ci): apply auto fixes from pre-commit.com hooks
For more information, see https://pre-commit.ci
autofix_prs: true
autoupdate_branch: ''
autoupdate_commit_msg: |
ci(pre-commit.ci): perform `pre-commit` autoupdate
autoupdate_schedule: quarterly
skip: []
submodules: false
default_stages: [commit]
repos:
- repo: https://github.com/dafyddj/commitlint-pre-commit-hook
@ -18,7 +30,7 @@ repos:
additional_dependencies: ['@commitlint/config-conventional@8.3.4']
always_run: true
- repo: https://github.com/rubocop-hq/rubocop
rev: v1.9.1
rev: v1.30.1
hooks:
- id: rubocop
name: Check Ruby files with rubocop
@ -26,14 +38,14 @@ repos:
always_run: true
pass_filenames: false
- repo: https://github.com/shellcheck-py/shellcheck-py
rev: v0.7.1.1
rev: v0.8.0.4
hooks:
- id: shellcheck
name: Check shell scripts with shellcheck
files: ^.*\.(sh|bash|ksh)$
types: []
- repo: https://github.com/adrienverge/yamllint
rev: v1.23.0
rev: v1.26.3
hooks:
- id: yamllint
name: Check YAML syntax with yamllint
@ -41,7 +53,7 @@ repos:
always_run: true
pass_filenames: false
- repo: https://github.com/warpnet/salt-lint
rev: v0.3.0
rev: v0.8.0
hooks:
- id: salt-lint
name: Check Salt files using salt-lint

View File

@ -16,4 +16,8 @@ Security/YAMLLoad:
Exclude:
- test/integration/**/_mapdata.rb
# General settings across all cops in this formula
AllCops:
NewCops: enable
# Any offenses that should be fixed, e.g. collected via. `rubocop --auto-gen-config`

View File

@ -86,102 +86,106 @@ jobs:
# - env: INSTANCE=default-debian-11-tiamat-py3
# - env: INSTANCE=default-debian-10-tiamat-py3
# - env: INSTANCE=default-debian-9-tiamat-py3
# - env: INSTANCE=default-ubuntu-2204-tiamat-py3
# - env: INSTANCE=default-ubuntu-2004-tiamat-py3
# - env: INSTANCE=default-ubuntu-1804-tiamat-py3
# - env: INSTANCE=default-centos-8-tiamat-py3
# - env: INSTANCE=default-centos-stream8-tiamat-py3
# - env: INSTANCE=default-centos-7-tiamat-py3
# - env: INSTANCE=default-amazonlinux-2-tiamat-py3
# - env: INSTANCE=default-oraclelinux-8-tiamat-py3
# - env: INSTANCE=default-oraclelinux-7-tiamat-py3
# - env: INSTANCE=default-almalinux-8-tiamat-py3
# - env: INSTANCE=default-rockylinux-8-tiamat-py3
- env: INSTANCE=default-debian-11-master-py3
- env: INSTANCE=default-debian-10-master-py3
- env: INSTANCE=default-debian-9-master-py3
- env: INSTANCE=default-ubuntu-2004-master-py3
- env: INSTANCE=default-ubuntu-1804-master-py3
- env: INSTANCE=default-centos-8-master-py3
- env: INSTANCE=default-centos-7-master-py3
- env: INSTANCE=default-fedora-34-master-py3
- env: INSTANCE=default-fedora-33-master-py3
- env: INSTANCE=default-opensuse-leap-153-master-py3
- env: INSTANCE=default-opensuse-leap-152-master-py3
- env: INSTANCE=default-opensuse-tmbl-latest-master-py3
- env: INSTANCE=default-amazonlinux-2-master-py3
- env: INSTANCE=default-oraclelinux-8-master-py3
- env: INSTANCE=default-oraclelinux-7-master-py3
- env: INSTANCE=default-arch-base-latest-master-py3
- env: INSTANCE=default-gentoo-stage3-latest-master-py3
- env: INSTANCE=default-gentoo-stage3-systemd-master-py3
- env: INSTANCE=default-almalinux-8-master-py3
- env: INSTANCE=default-rockylinux-8-master-py3
# - env: INSTANCE=default-debian-11-3003-1-py3
# - env: INSTANCE=default-debian-10-3003-1-py3
# - env: INSTANCE=default-debian-9-3003-1-py3
# - env: INSTANCE=default-ubuntu-2004-3003-1-py3
# - env: INSTANCE=default-ubuntu-1804-3003-1-py3
# - env: INSTANCE=default-centos-8-3003-1-py3
# - env: INSTANCE=default-centos-7-3003-1-py3
# - env: INSTANCE=default-fedora-34-3003-1-py3
# - env: INSTANCE=default-fedora-33-3003-1-py3
# - env: INSTANCE=default-opensuse-leap-153-3003-1-py3
# - env: INSTANCE=default-opensuse-leap-152-3003-1-py3
# - env: INSTANCE=default-opensuse-tmbl-latest-3003-1-py3
# - env: INSTANCE=default-amazonlinux-2-3003-1-py3
# - env: INSTANCE=default-oraclelinux-8-3003-1-py3
# - env: INSTANCE=default-oraclelinux-7-3003-1-py3
# - env: INSTANCE=default-arch-base-latest-3003-1-py3
# - env: INSTANCE=default-gentoo-stage3-latest-3003-1-py3
# - env: INSTANCE=default-gentoo-stage3-systemd-3003-1-py3
# - env: INSTANCE=default-debian-11-3002-6-py3
# - env: INSTANCE=default-debian-10-3002-6-py3
# - env: INSTANCE=default-debian-9-3002-6-py3
# - env: INSTANCE=default-ubuntu-2004-3002-6-py3
# - env: INSTANCE=default-ubuntu-1804-3002-6-py3
# - env: INSTANCE=default-centos-8-3002-6-py3
# - env: INSTANCE=default-centos-7-3002-6-py3
# - env: INSTANCE=default-fedora-34-3002-6-py3
# - env: INSTANCE=default-fedora-33-3002-6-py3
# - env: INSTANCE=default-amazonlinux-2-3002-6-py3
# - env: INSTANCE=default-oraclelinux-8-3002-6-py3
# - env: INSTANCE=default-oraclelinux-7-3002-6-py3
# - env: INSTANCE=default-arch-base-latest-3002-6-py3
# - env: INSTANCE=default-gentoo-stage3-latest-3002-6-py3
# - env: INSTANCE=default-gentoo-stage3-systemd-3002-6-py3
# - env: INSTANCE=default-opensuse-leap-153-3002-2-py3
# - env: INSTANCE=default-opensuse-leap-152-3002-2-py3
# - env: INSTANCE=default-opensuse-tmbl-latest-3002-2-py3
# - env: INSTANCE=default-debian-10-3001-7-py3
# - env: INSTANCE=default-debian-9-3001-7-py3
# - env: INSTANCE=default-ubuntu-2004-3001-7-py3
# - env: INSTANCE=default-ubuntu-1804-3001-7-py3
# - env: INSTANCE=default-centos-8-3001-7-py3
# - env: INSTANCE=default-centos-7-3001-7-py3
# - env: INSTANCE=default-fedora-34-3001-7-py3
# - env: INSTANCE=default-fedora-33-3001-7-py3
# - env: INSTANCE=default-opensuse-leap-153-3001-7-py3
# - env: INSTANCE=default-opensuse-leap-152-3001-7-py3
# - env: INSTANCE=default-opensuse-tmbl-latest-3001-7-py3
# - env: INSTANCE=default-amazonlinux-2-3001-7-py3
# - env: INSTANCE=default-oraclelinux-8-3001-7-py3
# - env: INSTANCE=default-oraclelinux-7-3001-7-py3
# - env: INSTANCE=default-arch-base-latest-3001-7-py3
# - env: INSTANCE=default-gentoo-stage3-latest-3001-7-py3
# - env: INSTANCE=default-gentoo-stage3-systemd-3001-7-py3
# - env: INSTANCE=default-debian-10-3000-9-py3
# - env: INSTANCE=default-debian-9-3000-9-py3
# - env: INSTANCE=default-ubuntu-1804-3000-9-py3
# - env: INSTANCE=default-centos-8-3000-9-py3
# - env: INSTANCE=default-centos-7-3000-9-py3
# - env: INSTANCE=default-opensuse-leap-153-3000-9-py3
# - env: INSTANCE=default-opensuse-leap-152-3000-9-py3
# - env: INSTANCE=default-amazonlinux-2-3000-9-py3
# - env: INSTANCE=default-oraclelinux-8-3000-9-py3
# - env: INSTANCE=default-oraclelinux-7-3000-9-py3
# - env: INSTANCE=default-gentoo-stage3-latest-3000-9-py3
# - env: INSTANCE=default-gentoo-stage3-systemd-3000-9-py3
# - env: INSTANCE=default-ubuntu-1804-3000-9-py2
# - env: INSTANCE=default-arch-base-latest-3000-9-py2
# - env: INSTANCE=default-debian-11-master-py3
# - env: INSTANCE=appended-debian-11-master-py3
- env: INSTANCE=debian-11-master-py3
# - env: INSTANCE=default-debian-10-master-py3
# - env: INSTANCE=appended-debian-10-master-py3
- env: INSTANCE=debian-10-master-py3
# - env: INSTANCE=default-debian-9-master-py3
# - env: INSTANCE=appended-debian-9-master-py3
- env: INSTANCE=debian-9-master-py3
# - env: INSTANCE=default-ubuntu-2204-master-py3
# - env: INSTANCE=appended-ubuntu-2204-master-py3
- env: INSTANCE=ubuntu-2204-master-py3
# - env: INSTANCE=default-ubuntu-2004-master-py3
# - env: INSTANCE=appended-ubuntu-2004-master-py3
- env: INSTANCE=ubuntu-2004-master-py3
# - env: INSTANCE=default-ubuntu-1804-master-py3
# - env: INSTANCE=appended-ubuntu-1804-master-py3
- env: INSTANCE=ubuntu-1804-master-py3
# - env: INSTANCE=default-centos-stream8-master-py3
# - env: INSTANCE=appended-centos-stream8-master-py3
- env: INSTANCE=centos-stream8-master-py3
# - env: INSTANCE=default-centos-7-master-py3
# - env: INSTANCE=appended-centos-7-master-py3
- env: INSTANCE=centos-7-master-py3
# - env: INSTANCE=default-fedora-36-master-py3
# - env: INSTANCE=appended-fedora-36-master-py3
- env: INSTANCE=fedora-36-master-py3
# - env: INSTANCE=default-fedora-35-master-py3
# - env: INSTANCE=appended-fedora-35-master-py3
- env: INSTANCE=fedora-35-master-py3
# - env: INSTANCE=default-opensuse-leap-153-master-py3
# - env: INSTANCE=appended-opensuse-leap-153-master-py3
- env: INSTANCE=opensuse-leap-153-master-py3
# - env: INSTANCE=default-opensuse-tmbl-latest-master-py3
# - env: INSTANCE=appended-opensuse-tmbl-latest-master-py3
- env: INSTANCE=opensuse-tmbl-latest-master-py3
# - env: INSTANCE=default-amazonlinux-2-master-py3
# - env: INSTANCE=appended-amazonlinux-2-master-py3
- env: INSTANCE=amazonlinux-2-master-py3
# - env: INSTANCE=default-oraclelinux-8-master-py3
# - env: INSTANCE=appended-oraclelinux-8-master-py3
- env: INSTANCE=oraclelinux-8-master-py3
# - env: INSTANCE=default-oraclelinux-7-master-py3
# - env: INSTANCE=appended-oraclelinux-7-master-py3
- env: INSTANCE=oraclelinux-7-master-py3
# - env: INSTANCE=default-arch-base-latest-master-py3
# - env: INSTANCE=appended-arch-base-latest-master-py3
- env: INSTANCE=arch-base-latest-master-py3
# - env: INSTANCE=default-gentoo-stage3-latest-master-py3
# - env: INSTANCE=appended-gentoo-stage3-latest-master-py3
- env: INSTANCE=gentoo-stage3-latest-master-py3
# - env: INSTANCE=default-gentoo-stage3-systemd-master-py3
# - env: INSTANCE=appended-gentoo-stage3-systemd-master-py3
- env: INSTANCE=gentoo-stage3-systemd-master-py3
# - env: INSTANCE=default-almalinux-8-master-py3
# - env: INSTANCE=appended-almalinux-8-master-py3
- env: INSTANCE=almalinux-8-master-py3
# - env: INSTANCE=default-rockylinux-8-master-py3
# - env: INSTANCE=appended-rockylinux-8-master-py3
- env: INSTANCE=rockylinux-8-master-py3
# - env: INSTANCE=default-debian-11-3004-1-py3
# - env: INSTANCE=default-debian-10-3004-1-py3
# - env: INSTANCE=default-debian-9-3004-1-py3
# - env: INSTANCE=default-ubuntu-2204-3004-1-py3
# - env: INSTANCE=default-ubuntu-2004-3004-1-py3
# - env: INSTANCE=default-ubuntu-1804-3004-1-py3
# - env: INSTANCE=default-centos-stream8-3004-1-py3
# - env: INSTANCE=default-centos-7-3004-1-py3
# - env: INSTANCE=default-fedora-36-3004-1-py3
# - env: INSTANCE=default-fedora-35-3004-1-py3
# - env: INSTANCE=default-amazonlinux-2-3004-1-py3
# - env: INSTANCE=default-oraclelinux-8-3004-1-py3
# - env: INSTANCE=default-oraclelinux-7-3004-1-py3
# - env: INSTANCE=default-arch-base-latest-3004-1-py3
# - env: INSTANCE=default-gentoo-stage3-latest-3004-1-py3
# - env: INSTANCE=default-gentoo-stage3-systemd-3004-1-py3
# - env: INSTANCE=default-almalinux-8-3004-1-py3
# - env: INSTANCE=default-rockylinux-8-3004-1-py3
# - env: INSTANCE=default-opensuse-leap-153-3004-0-py3
# - env: INSTANCE=default-opensuse-tmbl-latest-3004-0-py3
# - env: INSTANCE=default-debian-10-3003-4-py3
# - env: INSTANCE=default-debian-9-3003-4-py3
# - env: INSTANCE=default-ubuntu-2004-3003-4-py3
# - env: INSTANCE=default-ubuntu-1804-3003-4-py3
# - env: INSTANCE=default-centos-stream8-3003-4-py3
# - env: INSTANCE=default-centos-7-3003-4-py3
# - env: INSTANCE=default-amazonlinux-2-3003-4-py3
# - env: INSTANCE=default-oraclelinux-8-3003-4-py3
# - env: INSTANCE=default-oraclelinux-7-3003-4-py3
# - env: INSTANCE=default-almalinux-8-3003-4-py3
## Define the release stage that runs `semantic-release`
- stage: 'release'

View File

@ -4,10 +4,11 @@ This list is sorted by the number of commits per contributor in _descending_ ord
Avatar|Contributor|Contributions
:-:|---|:-:
<img class='float-left rounded-1' src='https://avatars.githubusercontent.com/u/10231489?v=4' width='36' height='36' alt='@myii'>|[@myii](https://github.com/myii)|108
<img class='float-left rounded-1' src='https://avatars.githubusercontent.com/u/10231489?v=4' width='36' height='36' alt='@myii'>|[@myii](https://github.com/myii)|110
<img class='float-left rounded-1' src='https://avatars.githubusercontent.com/u/3374962?v=4' width='36' height='36' alt='@nmadhok'>|[@nmadhok](https://github.com/nmadhok)|14
<img class='float-left rounded-1' src='https://avatars.githubusercontent.com/u/1800660?v=4' width='36' height='36' alt='@aboe76'>|[@aboe76](https://github.com/aboe76)|14
<img class='float-left rounded-1' src='https://avatars.githubusercontent.com/u/52996?v=4' width='36' height='36' alt='@daks'>|[@daks](https://github.com/daks)|11
<img class='float-left rounded-1' src='https://avatars.githubusercontent.com/u/13322818?v=4' width='36' height='36' alt='@noelmcloughlin'>|[@noelmcloughlin](https://github.com/noelmcloughlin)|5
<img class='float-left rounded-1' src='https://avatars.githubusercontent.com/u/776662?v=4' width='36' height='36' alt='@carlosperello'>|[@carlosperello](https://github.com/carlosperello)|4
<img class='float-left rounded-1' src='https://avatars.githubusercontent.com/u/91293?v=4' width='36' height='36' alt='@whiteinge'>|[@whiteinge](https://github.com/whiteinge)|4
<img class='float-left rounded-1' src='https://avatars.githubusercontent.com/u/4195158?v=4' width='36' height='36' alt='@dafyddj'>|[@dafyddj](https://github.com/dafyddj)|3
@ -19,7 +20,6 @@ Avatar|Contributor|Contributions
<img class='float-left rounded-1' src='https://avatars.githubusercontent.com/u/8029478?v=4' width='36' height='36' alt='@rfairburn'>|[@rfairburn](https://github.com/rfairburn)|2
<img class='float-left rounded-1' src='https://avatars.githubusercontent.com/u/2377054?v=4' width='36' height='36' alt='@smlloyd'>|[@smlloyd](https://github.com/smlloyd)|2
<img class='float-left rounded-1' src='https://avatars.githubusercontent.com/u/228723?v=4' width='36' height='36' alt='@abednarik'>|[@abednarik](https://github.com/abednarik)|2
<img class='float-left rounded-1' src='https://avatars.githubusercontent.com/u/13322818?v=4' width='36' height='36' alt='@noelmcloughlin'>|[@noelmcloughlin](https://github.com/noelmcloughlin)|2
<img class='float-left rounded-1' src='https://avatars.githubusercontent.com/u/2762274?v=4' width='36' height='36' alt='@9numbernine9'>|[@9numbernine9](https://github.com/9numbernine9)|1
<img class='float-left rounded-1' src='https://avatars.githubusercontent.com/u/762280?v=4' width='36' height='36' alt='@asenci'>|[@asenci](https://github.com/asenci)|1
<img class='float-left rounded-1' src='https://avatars.githubusercontent.com/u/20441?v=4' width='36' height='36' alt='@iggy'>|[@iggy](https://github.com/iggy)|1
@ -33,9 +33,9 @@ Avatar|Contributor|Contributions
<img class='float-left rounded-1' src='https://avatars.githubusercontent.com/u/4160493?v=4' width='36' height='36' alt='@derqurps'>|[@derqurps](https://github.com/derqurps)|1
<img class='float-left rounded-1' src='https://avatars.githubusercontent.com/u/3667731?v=4' width='36' height='36' alt='@netzvieh'>|[@netzvieh](https://github.com/netzvieh)|1
<img class='float-left rounded-1' src='https://avatars.githubusercontent.com/u/1353637?v=4' width='36' height='36' alt='@stasjok'>|[@stasjok](https://github.com/stasjok)|1
<img class='float-left rounded-1' src='https://avatars.githubusercontent.com/u/117961?v=4' width='36' height='36' alt='@babilen5'>|[@babilen5](https://github.com/babilen5)|1
<img class='float-left rounded-1' src='https://avatars.githubusercontent.com/u/117961?v=4' width='36' height='36' alt='@babilen'>|[@babilen](https://github.com/babilen)|1
<img class='float-left rounded-1' src='https://avatars.githubusercontent.com/u/528061?v=4' width='36' height='36' alt='@puneetk'>|[@puneetk](https://github.com/puneetk)|1
---
Auto-generated by a [forked version](https://github.com/myii/maintainer) of [gaocegege/maintainer](https://github.com/gaocegege/maintainer) on 2021-08-18.
Auto-generated by a [forked version](https://github.com/myii/maintainer) of [gaocegege/maintainer](https://github.com/gaocegege/maintainer) on 2021-08-29.

View File

@ -1,5 +1,18 @@
# Changelog
# [0.25.0](https://github.com/saltstack-formulas/sudoers-formula/compare/v0.24.0...v0.25.0) (2021-08-29)
### Continuous Integration
* **appended:** add second test suite ([38126a3](https://github.com/saltstack-formulas/sudoers-formula/commit/38126a31a6c27266111e96a02252a6e845fcb8f1))
* **kitchen+ci:** update with latest `3003.2` pre-salted images [skip ci] ([93ae700](https://github.com/saltstack-formulas/sudoers-formula/commit/93ae700eede582e10e8f8d35a89b54a7de4afe1b))
### Features
* **ordering:** optionally append includefiles to main config ([751eff7](https://github.com/saltstack-formulas/sudoers-formula/commit/751eff7218883b18628306d1b9f9251ac4b3b361))
# [0.24.0](https://github.com/saltstack-formulas/sudoers-formula/compare/v0.23.4...v0.24.0) (2021-08-18)

View File

@ -26,6 +26,7 @@
/test/integration/**/libraries/system.rb @saltstack-formulas/ssf
/test/integration/**/inspec.yml @saltstack-formulas/ssf
/test/integration/**/README.md @saltstack-formulas/ssf
/test/salt/pillar/top.sls @saltstack-formulas/ssf
/.gitignore @saltstack-formulas/ssf
/.cirrus.yml @saltstack-formulas/ssf
/.gitlab-ci.yml @saltstack-formulas/ssf

View File

@ -1,7 +1,7 @@
name: sudoers
os: Debian, Ubuntu, Raspbian, RedHat, Fedora, CentOS, Suse, openSUSE
os_family: Debian, RedHat, Suse
version: 0.24.0
version: 0.25.0
release: 1
minimum_version: 2016.11
summary: Sudoers formula

View File

@ -1,6 +1,6 @@
# frozen_string_literal: true
source 'https://rubygems.org'
source ENV.fetch('PROXY_RUBYGEMSORG', 'https://rubygems.org')
# Install the `inspec` gem using `git` because versions after `4.22.22`
# suppress diff output; this version fixes this for our uses.
@ -16,4 +16,4 @@ gem 'kitchen-docker', git: 'https://gitlab.com/saltstack-formulas/infrastructure
# rubocop:enable Layout/LineLength
gem 'kitchen-inspec', '>= 2.5.0'
gem 'kitchen-salt', '>= 0.6.3'
gem 'kitchen-salt', '>= 0.7.2'

View File

@ -1,17 +1,20 @@
GIT
remote: https://gitlab.com/saltstack-formulas/infrastructure/inspec
revision: eaeef51095a51ba581c59209df9dd048d93b7154
revision: aaef842906a5666f0fc0b4f186b4dd3498f5b28c
branch: ssf
specs:
inspec (4.41.2)
inspec (5.18.15)
cookstyle
faraday_middleware (>= 0.12.2, < 1.1)
inspec-core (= 4.41.2)
inspec-core (= 5.18.15)
mongo (= 2.13.2)
train (~> 3.0)
train-aws (~> 0.1)
progress_bar (~> 1.3.3)
rake
train (~> 3.10)
train-aws (~> 0.2)
train-habitat (~> 0.1)
train-winrm (~> 0.2)
inspec-core (4.41.2)
inspec-core (5.18.15)
addressable (~> 2.4)
chef-telemetry (~> 1.0, >= 1.0.8)
faraday (>= 0.9.0, < 1.5)
@ -24,234 +27,268 @@ GIT
parallel (~> 1.9)
parslet (>= 1.5, < 2.0)
pry (~> 0.13)
rspec (>= 3.9, < 3.11)
rspec (>= 3.9, <= 3.11)
rspec-its (~> 1.2)
rubyzip (>= 1.2.2, < 3.0)
semverse (~> 3.0)
sslshake (~> 1.2)
thor (>= 0.20, < 2.0)
tomlrb (>= 1.2, < 2.1)
train-core (~> 3.0)
train-core (~> 3.10)
tty-prompt (~> 0.17)
tty-table (~> 0.10)
GIT
remote: https://gitlab.com/saltstack-formulas/infrastructure/kitchen-docker
revision: 428c89fc250b3790abad5ecb0afe0c3d4956084c
revision: 9a09bc1e571e25f3ccabf4725ca2048d970fff82
branch: ssf
specs:
kitchen-docker (2.11.0)
kitchen-docker (2.12.0)
test-kitchen (>= 1.0.0)
GEM
remote: https://rubygems.org/
specs:
activesupport (6.1.4)
activesupport (7.0.3.1)
concurrent-ruby (~> 1.0, >= 1.0.2)
i18n (>= 1.6, < 2)
minitest (>= 5.1)
tzinfo (~> 2.0)
zeitwerk (~> 2.3)
addressable (2.8.0)
public_suffix (>= 2.0.2, < 5.0)
aws-eventstream (1.1.1)
aws-partitions (1.487.0)
aws-sdk-apigateway (1.65.0)
aws-sdk-core (~> 3, >= 3.119.0)
ast (2.4.2)
aws-eventstream (1.2.0)
aws-partitions (1.607.0)
aws-sdk-alexaforbusiness (1.56.0)
aws-sdk-core (~> 3, >= 3.127.0)
aws-sigv4 (~> 1.1)
aws-sdk-apigatewayv2 (1.35.0)
aws-sdk-core (~> 3, >= 3.119.0)
aws-sdk-amplify (1.32.0)
aws-sdk-core (~> 3, >= 3.120.0)
aws-sigv4 (~> 1.1)
aws-sdk-apigateway (1.78.0)
aws-sdk-core (~> 3, >= 3.127.0)
aws-sigv4 (~> 1.1)
aws-sdk-apigatewayv2 (1.42.0)
aws-sdk-core (~> 3, >= 3.127.0)
aws-sigv4 (~> 1.1)
aws-sdk-applicationautoscaling (1.51.0)
aws-sdk-core (~> 3, >= 3.112.0)
aws-sigv4 (~> 1.1)
aws-sdk-athena (1.40.0)
aws-sdk-core (~> 3, >= 3.119.0)
aws-sdk-athena (1.55.0)
aws-sdk-core (~> 3, >= 3.127.0)
aws-sigv4 (~> 1.1)
aws-sdk-autoscaling (1.61.0)
aws-sdk-autoscaling (1.63.0)
aws-sdk-core (~> 3, >= 3.112.0)
aws-sigv4 (~> 1.1)
aws-sdk-batch (1.47.0)
aws-sdk-core (~> 3, >= 3.112.0)
aws-sigv4 (~> 1.1)
aws-sdk-budgets (1.40.0)
aws-sdk-core (~> 3, >= 3.119.0)
aws-sdk-budgets (1.50.0)
aws-sdk-core (~> 3, >= 3.127.0)
aws-sigv4 (~> 1.1)
aws-sdk-cloudformation (1.55.0)
aws-sdk-core (~> 3, >= 3.119.0)
aws-sdk-cloudformation (1.70.0)
aws-sdk-core (~> 3, >= 3.127.0)
aws-sigv4 (~> 1.1)
aws-sdk-cloudfront (1.55.0)
aws-sdk-core (~> 3, >= 3.119.0)
aws-sdk-cloudfront (1.65.0)
aws-sdk-core (~> 3, >= 3.127.0)
aws-sigv4 (~> 1.1)
aws-sdk-cloudhsm (1.32.0)
aws-sdk-core (~> 3, >= 3.119.0)
aws-sdk-cloudhsm (1.39.0)
aws-sdk-core (~> 3, >= 3.127.0)
aws-sigv4 (~> 1.1)
aws-sdk-cloudhsmv2 (1.35.0)
aws-sdk-core (~> 3, >= 3.119.0)
aws-sdk-cloudhsmv2 (1.42.0)
aws-sdk-core (~> 3, >= 3.127.0)
aws-sigv4 (~> 1.1)
aws-sdk-cloudtrail (1.37.0)
aws-sdk-core (~> 3, >= 3.119.0)
aws-sdk-cloudtrail (1.49.0)
aws-sdk-core (~> 3, >= 3.127.0)
aws-sigv4 (~> 1.1)
aws-sdk-cloudwatch (1.54.0)
aws-sdk-core (~> 3, >= 3.119.0)
aws-sdk-cloudwatch (1.64.0)
aws-sdk-core (~> 3, >= 3.127.0)
aws-sigv4 (~> 1.1)
aws-sdk-cloudwatchevents (1.46.0)
aws-sdk-core (~> 3, >= 3.112.0)
aws-sigv4 (~> 1.1)
aws-sdk-cloudwatchlogs (1.43.0)
aws-sdk-core (~> 3, >= 3.119.0)
aws-sdk-cloudwatchlogs (1.53.0)
aws-sdk-core (~> 3, >= 3.127.0)
aws-sigv4 (~> 1.1)
aws-sdk-codecommit (1.44.0)
aws-sdk-core (~> 3, >= 3.119.0)
aws-sdk-codecommit (1.51.0)
aws-sdk-core (~> 3, >= 3.127.0)
aws-sigv4 (~> 1.1)
aws-sdk-codedeploy (1.42.0)
aws-sdk-core (~> 3, >= 3.119.0)
aws-sdk-codedeploy (1.49.0)
aws-sdk-core (~> 3, >= 3.127.0)
aws-sigv4 (~> 1.1)
aws-sdk-codepipeline (1.46.0)
aws-sdk-core (~> 3, >= 3.119.0)
aws-sdk-codepipeline (1.53.0)
aws-sdk-core (~> 3, >= 3.127.0)
aws-sigv4 (~> 1.1)
aws-sdk-cognitoidentity (1.31.0)
aws-sdk-core (~> 3, >= 3.112.0)
aws-sigv4 (~> 1.1)
aws-sdk-cognitoidentityprovider (1.51.0)
aws-sdk-cognitoidentityprovider (1.53.0)
aws-sdk-core (~> 3, >= 3.112.0)
aws-sigv4 (~> 1.1)
aws-sdk-configservice (1.64.0)
aws-sdk-core (~> 3, >= 3.119.0)
aws-sdk-configservice (1.79.0)
aws-sdk-core (~> 3, >= 3.127.0)
aws-sigv4 (~> 1.1)
aws-sdk-core (3.119.0)
aws-sdk-core (3.131.2)
aws-eventstream (~> 1, >= 1.0.2)
aws-partitions (~> 1, >= 1.239.0)
aws-partitions (~> 1, >= 1.525.0)
aws-sigv4 (~> 1.1)
jmespath (~> 1.0)
aws-sdk-costandusagereportservice (1.33.0)
aws-sdk-core (~> 3, >= 3.119.0)
jmespath (~> 1, >= 1.6.1)
aws-sdk-costandusagereportservice (1.40.0)
aws-sdk-core (~> 3, >= 3.127.0)
aws-sigv4 (~> 1.1)
aws-sdk-databasemigrationservice (1.53.0)
aws-sdk-core (~> 3, >= 3.112.0)
aws-sigv4 (~> 1.1)
aws-sdk-dynamodb (1.62.0)
aws-sdk-core (~> 3, >= 3.119.0)
aws-sdk-dynamodb (1.75.0)
aws-sdk-core (~> 3, >= 3.127.0)
aws-sigv4 (~> 1.1)
aws-sdk-ec2 (1.254.0)
aws-sdk-core (~> 3, >= 3.119.0)
aws-sdk-ec2 (1.322.0)
aws-sdk-core (~> 3, >= 3.127.0)
aws-sigv4 (~> 1.1)
aws-sdk-ecr (1.44.0)
aws-sdk-core (~> 3, >= 3.119.0)
aws-sdk-ecr (1.56.0)
aws-sdk-core (~> 3, >= 3.127.0)
aws-sigv4 (~> 1.1)
aws-sdk-ecrpublic (1.5.0)
aws-sdk-core (~> 3, >= 3.119.0)
aws-sdk-ecrpublic (1.12.0)
aws-sdk-core (~> 3, >= 3.127.0)
aws-sigv4 (~> 1.1)
aws-sdk-ecs (1.84.0)
aws-sdk-core (~> 3, >= 3.119.0)
aws-sdk-ecs (1.100.0)
aws-sdk-core (~> 3, >= 3.127.0)
aws-sigv4 (~> 1.1)
aws-sdk-efs (1.42.0)
aws-sdk-core (~> 3, >= 3.119.0)
aws-sdk-efs (1.54.0)
aws-sdk-core (~> 3, >= 3.127.0)
aws-sigv4 (~> 1.1)
aws-sdk-eks (1.60.0)
aws-sdk-core (~> 3, >= 3.119.0)
aws-sdk-eks (1.75.0)
aws-sdk-core (~> 3, >= 3.127.0)
aws-sigv4 (~> 1.1)
aws-sdk-elasticache (1.60.0)
aws-sdk-core (~> 3, >= 3.119.0)
aws-sdk-elasticache (1.78.0)
aws-sdk-core (~> 3, >= 3.127.0)
aws-sigv4 (~> 1.1)
aws-sdk-elasticbeanstalk (1.44.0)
aws-sdk-core (~> 3, >= 3.119.0)
aws-sdk-elasticbeanstalk (1.51.0)
aws-sdk-core (~> 3, >= 3.127.0)
aws-sigv4 (~> 1.1)
aws-sdk-elasticloadbalancing (1.33.0)
aws-sdk-core (~> 3, >= 3.119.0)
aws-sdk-elasticloadbalancing (1.40.0)
aws-sdk-core (~> 3, >= 3.127.0)
aws-sigv4 (~> 1.1)
aws-sdk-elasticloadbalancingv2 (1.66.0)
aws-sdk-core (~> 3, >= 3.119.0)
aws-sdk-elasticloadbalancingv2 (1.78.0)
aws-sdk-core (~> 3, >= 3.127.0)
aws-sigv4 (~> 1.1)
aws-sdk-elasticsearchservice (1.54.0)
aws-sdk-core (~> 3, >= 3.119.0)
aws-sdk-elasticsearchservice (1.65.0)
aws-sdk-core (~> 3, >= 3.127.0)
aws-sigv4 (~> 1.1)
aws-sdk-emr (1.53.0)
aws-sdk-core (~> 3, >= 3.121.2)
aws-sigv4 (~> 1.1)
aws-sdk-eventbridge (1.24.0)
aws-sdk-core (~> 3, >= 3.112.0)
aws-sigv4 (~> 1.1)
aws-sdk-firehose (1.39.0)
aws-sdk-core (~> 3, >= 3.119.0)
aws-sdk-firehose (1.48.0)
aws-sdk-core (~> 3, >= 3.127.0)
aws-sigv4 (~> 1.1)
aws-sdk-glue (1.87.0)
aws-sdk-glue (1.88.0)
aws-sdk-core (~> 3, >= 3.112.0)
aws-sigv4 (~> 1.1)
aws-sdk-guardduty (1.47.0)
aws-sdk-core (~> 3, >= 3.119.0)
aws-sdk-guardduty (1.58.0)
aws-sdk-core (~> 3, >= 3.127.0)
aws-sigv4 (~> 1.1)
aws-sdk-iam (1.59.0)
aws-sdk-core (~> 3, >= 3.119.0)
aws-sdk-iam (1.69.0)
aws-sdk-core (~> 3, >= 3.127.0)
aws-sigv4 (~> 1.1)
aws-sdk-kafka (1.38.0)
aws-sdk-core (~> 3, >= 3.119.0)
aws-sdk-kafka (1.50.0)
aws-sdk-core (~> 3, >= 3.127.0)
aws-sigv4 (~> 1.1)
aws-sdk-kinesis (1.34.0)
aws-sdk-core (~> 3, >= 3.119.0)
aws-sdk-kinesis (1.41.0)
aws-sdk-core (~> 3, >= 3.127.0)
aws-sigv4 (~> 1.1)
aws-sdk-kms (1.46.0)
aws-sdk-core (~> 3, >= 3.119.0)
aws-sdk-kms (1.57.0)
aws-sdk-core (~> 3, >= 3.127.0)
aws-sigv4 (~> 1.1)
aws-sdk-lambda (1.67.0)
aws-sdk-core (~> 3, >= 3.119.0)
aws-sdk-lambda (1.84.0)
aws-sdk-core (~> 3, >= 3.127.0)
aws-sigv4 (~> 1.1)
aws-sdk-mq (1.40.0)
aws-sdk-core (~> 3, >= 3.120.0)
aws-sigv4 (~> 1.1)
aws-sdk-networkfirewall (1.17.0)
aws-sdk-core (~> 3, >= 3.127.0)
aws-sigv4 (~> 1.1)
aws-sdk-networkmanager (1.24.0)
aws-sdk-core (~> 3, >= 3.127.0)
aws-sigv4 (~> 1.1)
aws-sdk-organizations (1.59.0)
aws-sdk-core (~> 3, >= 3.112.0)
aws-sigv4 (~> 1.1)
aws-sdk-ram (1.25.0)
aws-sdk-ram (1.26.0)
aws-sdk-core (~> 3, >= 3.112.0)
aws-sigv4 (~> 1.1)
aws-sdk-rds (1.125.0)
aws-sdk-core (~> 3, >= 3.119.0)
aws-sdk-rds (1.148.0)
aws-sdk-core (~> 3, >= 3.127.0)
aws-sigv4 (~> 1.1)
aws-sdk-redshift (1.68.0)
aws-sdk-core (~> 3, >= 3.119.0)
aws-sdk-redshift (1.84.0)
aws-sdk-core (~> 3, >= 3.127.0)
aws-sigv4 (~> 1.1)
aws-sdk-route53 (1.53.0)
aws-sdk-core (~> 3, >= 3.119.0)
aws-sdk-route53 (1.63.0)
aws-sdk-core (~> 3, >= 3.127.0)
aws-sigv4 (~> 1.1)
aws-sdk-route53domains (1.32.0)
aws-sdk-core (~> 3, >= 3.119.0)
aws-sdk-route53domains (1.40.0)
aws-sdk-core (~> 3, >= 3.127.0)
aws-sigv4 (~> 1.1)
aws-sdk-route53resolver (1.28.0)
aws-sdk-core (~> 3, >= 3.119.0)
aws-sdk-route53resolver (1.37.0)
aws-sdk-core (~> 3, >= 3.127.0)
aws-sigv4 (~> 1.1)
aws-sdk-s3 (1.98.0)
aws-sdk-core (~> 3, >= 3.119.0)
aws-sdk-s3 (1.114.0)
aws-sdk-core (~> 3, >= 3.127.0)
aws-sdk-kms (~> 1)
aws-sigv4 (~> 1.4)
aws-sdk-s3control (1.43.0)
aws-sdk-core (~> 3, >= 3.122.0)
aws-sigv4 (~> 1.1)
aws-sdk-secretsmanager (1.46.0)
aws-sdk-core (~> 3, >= 3.112.0)
aws-sigv4 (~> 1.1)
aws-sdk-securityhub (1.50.0)
aws-sdk-core (~> 3, >= 3.119.0)
aws-sdk-securityhub (1.67.0)
aws-sdk-core (~> 3, >= 3.127.0)
aws-sigv4 (~> 1.1)
aws-sdk-servicecatalog (1.59.0)
aws-sdk-servicecatalog (1.60.0)
aws-sdk-core (~> 3, >= 3.112.0)
aws-sigv4 (~> 1.1)
aws-sdk-ses (1.40.0)
aws-sdk-core (~> 3, >= 3.119.0)
aws-sdk-ses (1.41.0)
aws-sdk-core (~> 3, >= 3.120.0)
aws-sigv4 (~> 1.1)
aws-sdk-shield (1.40.0)
aws-sdk-core (~> 3, >= 3.119.0)
aws-sdk-shield (1.48.0)
aws-sdk-core (~> 3, >= 3.127.0)
aws-sigv4 (~> 1.1)
aws-sdk-sms (1.31.0)
aws-sdk-core (~> 3, >= 3.119.0)
aws-sdk-signer (1.32.0)
aws-sdk-core (~> 3, >= 3.120.0)
aws-sigv4 (~> 1.1)
aws-sdk-sns (1.44.0)
aws-sdk-core (~> 3, >= 3.119.0)
aws-sdk-simpledb (1.29.0)
aws-sdk-core (~> 3, >= 3.120.0)
aws-sigv2 (~> 1.0)
aws-sdk-sms (1.40.0)
aws-sdk-core (~> 3, >= 3.127.0)
aws-sigv4 (~> 1.1)
aws-sdk-sqs (1.42.0)
aws-sdk-core (~> 3, >= 3.119.0)
aws-sdk-sns (1.53.0)
aws-sdk-core (~> 3, >= 3.127.0)
aws-sigv4 (~> 1.1)
aws-sdk-ssm (1.115.0)
aws-sdk-core (~> 3, >= 3.119.0)
aws-sdk-sqs (1.51.1)
aws-sdk-core (~> 3, >= 3.127.0)
aws-sigv4 (~> 1.1)
aws-sdk-ssm (1.137.0)
aws-sdk-core (~> 3, >= 3.127.0)
aws-sigv4 (~> 1.1)
aws-sdk-states (1.39.0)
aws-sdk-core (~> 3, >= 3.112.0)
aws-sigv4 (~> 1.1)
aws-sdk-transfer (1.32.0)
aws-sdk-synthetics (1.19.0)
aws-sdk-core (~> 3, >= 3.121.2)
aws-sigv4 (~> 1.1)
aws-sdk-transfer (1.34.0)
aws-sdk-core (~> 3, >= 3.112.0)
aws-sigv4 (~> 1.1)
aws-sigv4 (1.2.4)
aws-sdk-waf (1.43.0)
aws-sdk-core (~> 3, >= 3.122.0)
aws-sigv4 (~> 1.1)
aws-sigv2 (1.1.0)
aws-sigv4 (1.5.0)
aws-eventstream (~> 1, >= 1.0.2)
azure_graph_rbac (0.17.2)
ms_rest_azure (~> 0.12.0)
@ -264,11 +301,11 @@ GEM
azure_mgmt_storage (0.23.0)
ms_rest_azure (~> 0.12.0)
bcrypt_pbkdf (1.1.0)
bson (4.12.1)
bson (4.15.0)
builder (3.2.4)
chef-config (17.3.48)
chef-config (17.10.0)
addressable
chef-utils (= 17.3.48)
chef-utils (= 17.10.0)
fuzzyurl
mixlib-config (>= 2.2.12, < 4.0)
mixlib-shellout (>= 2.0, < 4.0)
@ -276,20 +313,22 @@ GEM
chef-telemetry (1.1.1)
chef-config
concurrent-ruby (~> 1.0)
chef-utils (17.3.48)
chef-utils (17.10.0)
concurrent-ruby
coderay (1.1.3)
concurrent-ruby (1.1.9)
concurrent-ruby (1.1.10)
cookstyle (7.32.1)
rubocop (= 1.25.1)
declarative (0.0.20)
diff-lcs (1.4.4)
diff-lcs (1.5.0)
docker-api (2.2.0)
excon (>= 0.47.0)
multi_json
domain_name (0.5.20190701)
unf (>= 0.0.5, < 1.0.0)
ed25519 (1.2.4)
ed25519 (1.3.0)
erubi (1.10.0)
excon (0.85.0)
excon (0.92.3)
faraday (1.4.3)
faraday-em_http (~> 1.0)
faraday-em_synchrony (~> 1.0)
@ -308,7 +347,7 @@ GEM
faraday-net_http_persistent (1.2.0)
faraday_middleware (1.0.0)
faraday (~> 1.0)
ffi (1.15.3)
ffi (1.15.5)
fuzzyurl (0.9.0)
google-api-client (0.52.0)
addressable (~> 2.5, >= 2.5.1)
@ -328,23 +367,25 @@ GEM
signet (~> 0.14)
gssapi (1.3.1)
ffi (>= 1.0.1)
gyoku (1.3.1)
gyoku (1.4.0)
builder (>= 2.1.2)
rexml (~> 3.0)
hashie (4.1.0)
http-cookie (1.0.4)
highline (2.0.3)
http-cookie (1.0.5)
domain_name (~> 0.5)
httpclient (2.8.3)
i18n (1.8.10)
i18n (1.12.0)
concurrent-ruby (~> 1.0)
inifile (3.0.0)
jmespath (1.4.0)
json (2.5.1)
jwt (2.2.3)
kitchen-inspec (2.5.0)
jmespath (1.6.1)
json (2.6.2)
jwt (2.4.1)
kitchen-inspec (2.6.1)
hashie (>= 3.4, <= 5.0)
inspec (>= 2.2.64, < 5.0)
inspec (>= 2.2.64, < 7.0)
test-kitchen (>= 2.7, < 4)
kitchen-salt (0.6.3)
kitchen-salt (0.7.2)
hashie (>= 3.5)
test-kitchen (>= 1.4)
license-acceptance (2.1.13)
@ -353,21 +394,21 @@ GEM
tty-box (~> 0.6)
tty-prompt (~> 0.20)
little-plugger (1.1.4)
logging (2.3.0)
logging (2.3.1)
little-plugger (~> 1.1)
multi_json (~> 1.14)
memoist (0.16.2)
method_source (1.0.0)
mini_mime (1.1.0)
minitest (5.14.4)
mixlib-config (3.0.9)
mini_mime (1.1.2)
minitest (5.16.2)
mixlib-config (3.0.27)
tomlrb
mixlib-install (3.12.16)
mixlib-install (3.12.19)
mixlib-shellout
mixlib-versioning
thor
mixlib-log (3.0.9)
mixlib-shellout (3.2.5)
mixlib-shellout (3.2.7)
chef-utils
mixlib-versioning (1.2.12)
mongo (2.13.2)
@ -382,51 +423,72 @@ GEM
faraday-cookie_jar (~> 0.0.6)
ms_rest (~> 0.7.6)
multi_json (1.15.0)
multipart-post (2.1.1)
multipart-post (2.2.3)
net-scp (3.0.0)
net-ssh (>= 2.6.5, < 7.0.0)
net-ssh (6.1.0)
net-ssh-gateway (2.0.0)
net-ssh (>= 4.0.0)
nori (2.6.0)
os (1.1.1)
parallel (1.20.1)
options (2.3.2)
os (1.1.4)
parallel (1.22.1)
parser (3.1.2.0)
ast (~> 2.4.1)
parslet (1.8.2)
pastel (0.8.0)
tty-color (~> 0.5)
progress_bar (1.3.3)
highline (>= 1.6, < 3)
options (~> 2.3.0)
pry (0.14.1)
coderay (~> 1.1)
method_source (~> 1.0)
public_suffix (4.0.6)
representable (3.1.1)
public_suffix (4.0.7)
rainbow (3.1.1)
rake (13.0.6)
regexp_parser (2.5.0)
representable (3.2.0)
declarative (< 0.1.0)
trailblazer-option (>= 0.1.1, < 0.2.0)
uber (< 0.2.0)
retriable (3.1.2)
rexml (3.2.5)
rspec (3.10.0)
rspec-core (~> 3.10.0)
rspec-expectations (~> 3.10.0)
rspec-mocks (~> 3.10.0)
rspec-core (3.10.1)
rspec-support (~> 3.10.0)
rspec-expectations (3.10.1)
rspec (3.11.0)
rspec-core (~> 3.11.0)
rspec-expectations (~> 3.11.0)
rspec-mocks (~> 3.11.0)
rspec-core (3.11.0)
rspec-support (~> 3.11.0)
rspec-expectations (3.11.0)
diff-lcs (>= 1.2.0, < 2.0)
rspec-support (~> 3.10.0)
rspec-support (~> 3.11.0)
rspec-its (1.3.0)
rspec-core (>= 3.0.0)
rspec-expectations (>= 3.0.0)
rspec-mocks (3.10.2)
rspec-mocks (3.11.1)
diff-lcs (>= 1.2.0, < 2.0)
rspec-support (~> 3.10.0)
rspec-support (3.10.2)
rspec-support (~> 3.11.0)
rspec-support (3.11.0)
rubocop (1.25.1)
parallel (~> 1.10)
parser (>= 3.1.0.0)
rainbow (>= 2.2.2, < 4.0)
regexp_parser (>= 1.8, < 3.0)
rexml
rubocop-ast (>= 1.15.1, < 2.0)
ruby-progressbar (~> 1.7)
unicode-display_width (>= 1.4.0, < 3.0)
rubocop-ast (1.19.1)
parser (>= 3.1.1.0)
ruby-progressbar (1.11.0)
ruby2_keywords (0.0.5)
rubyntlm (0.6.3)
rubyzip (2.3.2)
semverse (3.0.0)
signet (0.15.0)
addressable (~> 2.3)
faraday (>= 0.17.3, < 2.0)
semverse (3.0.2)
signet (0.17.0)
addressable (~> 2.8)
faraday (>= 0.17.5, < 3.a)
jwt (>= 1.5, < 3.0)
multi_json (~> 1.10)
sslshake (1.3.1)
@ -435,7 +497,7 @@ GEM
unicode-display_width (>= 1.5, < 3.0)
unicode_utils (~> 1.4)
strings-ansi (0.2.0)
test-kitchen (3.0.0)
test-kitchen (3.3.1)
bcrypt_pbkdf (~> 1.0)
chef-utils (>= 16.4.35)
ed25519 (~> 1.2)
@ -449,11 +511,11 @@ GEM
winrm (~> 2.0)
winrm-elevated (~> 1.0)
winrm-fs (~> 1.1)
thor (1.1.0)
thor (1.2.1)
timeliness (0.3.10)
tomlrb (1.3.0)
trailblazer-option (0.1.1)
train (3.8.1)
trailblazer-option (0.1.2)
train (3.10.1)
activesupport (>= 6.0.3.1)
azure_graph_rbac (~> 0.16)
azure_mgmt_key_vault (~> 0.17)
@ -464,14 +526,16 @@ GEM
google-api-client (>= 0.23.9, <= 0.52.0)
googleauth (>= 0.6.6, <= 0.14.0)
inifile (~> 3.0)
train-core (= 3.8.1)
train-core (= 3.10.1)
train-winrm (~> 0.2)
train-aws (0.2.8)
train-aws (0.2.24)
aws-sdk-alexaforbusiness (~> 1.0)
aws-sdk-amplify (~> 1.32.0)
aws-sdk-apigateway (~> 1.0)
aws-sdk-apigatewayv2 (~> 1.0)
aws-sdk-applicationautoscaling (>= 1.46, < 1.52)
aws-sdk-athena (~> 1.0)
aws-sdk-autoscaling (>= 1.22, < 1.62)
aws-sdk-autoscaling (>= 1.22, < 1.64)
aws-sdk-batch (>= 1.36, < 1.48)
aws-sdk-budgets (~> 1.0)
aws-sdk-cloudformation (~> 1.0)
@ -486,7 +550,7 @@ GEM
aws-sdk-codedeploy (~> 1.0)
aws-sdk-codepipeline (~> 1.0)
aws-sdk-cognitoidentity (>= 1.26, < 1.32)
aws-sdk-cognitoidentityprovider (>= 1.46, < 1.52)
aws-sdk-cognitoidentityprovider (>= 1.46, < 1.54)
aws-sdk-configservice (~> 1.21)
aws-sdk-core (~> 3.0)
aws-sdk-costandusagereportservice (~> 1.6)
@ -503,35 +567,44 @@ GEM
aws-sdk-elasticloadbalancing (~> 1.8)
aws-sdk-elasticloadbalancingv2 (~> 1.0)
aws-sdk-elasticsearchservice (~> 1.0)
aws-sdk-emr (~> 1.53.0)
aws-sdk-eventbridge (~> 1.24.0)
aws-sdk-firehose (~> 1.0)
aws-sdk-glue (>= 1.71, < 1.88)
aws-sdk-glue (>= 1.71, < 1.89)
aws-sdk-guardduty (~> 1.31)
aws-sdk-iam (~> 1.13)
aws-sdk-kafka (~> 1.0)
aws-sdk-kinesis (~> 1.0)
aws-sdk-kms (~> 1.13)
aws-sdk-lambda (~> 1.0)
aws-sdk-mq (~> 1.40.0)
aws-sdk-networkfirewall (>= 1.6.0)
aws-sdk-networkmanager (>= 1.13.0)
aws-sdk-organizations (>= 1.17, < 1.60)
aws-sdk-ram (>= 1.21, < 1.26)
aws-sdk-ram (>= 1.21, < 1.27)
aws-sdk-rds (~> 1.43)
aws-sdk-redshift (~> 1.0)
aws-sdk-route53 (~> 1.0)
aws-sdk-route53domains (~> 1.0)
aws-sdk-route53resolver (~> 1.0)
aws-sdk-s3 (~> 1.30)
aws-sdk-s3control (~> 1.43.0)
aws-sdk-secretsmanager (>= 1.42, < 1.47)
aws-sdk-securityhub (~> 1.0)
aws-sdk-servicecatalog (>= 1.48, < 1.60)
aws-sdk-ses (~> 1.0)
aws-sdk-servicecatalog (>= 1.48, < 1.61)
aws-sdk-ses (~> 1.41.0)
aws-sdk-shield (~> 1.30)
aws-sdk-signer (~> 1.32.0)
aws-sdk-simpledb (~> 1.29.0)
aws-sdk-sms (~> 1.0)
aws-sdk-sns (~> 1.9)
aws-sdk-sqs (~> 1.10)
aws-sdk-ssm (~> 1.0)
aws-sdk-states (>= 1.35, < 1.40)
aws-sdk-transfer (>= 1.26, < 1.33)
train-core (3.8.1)
aws-sdk-synthetics (~> 1.19.0)
aws-sdk-transfer (>= 1.26, < 1.35)
aws-sdk-waf (~> 1.43.0)
train-core (3.10.1)
addressable (~> 2.5)
ffi (!= 1.13.0)
json (>= 1.8, < 3.0)
@ -539,7 +612,7 @@ GEM
net-scp (>= 1.2, < 4.0)
net-ssh (>= 2.9, < 7.0)
train-habitat (0.2.22)
train-winrm (0.2.12)
train-winrm (0.2.13)
winrm (>= 2.3.6, < 3.0)
winrm-elevated (~> 1.2.2)
winrm-fs (~> 1.0)
@ -566,8 +639,8 @@ GEM
uber (0.1.0)
unf (0.1.4)
unf_ext
unf_ext (0.0.7.7)
unicode-display_width (2.0.0)
unf_ext (0.0.8.2)
unicode-display_width (2.2.0)
unicode_utils (1.4.0)
winrm (2.3.6)
builder (>= 2.1.2)
@ -588,7 +661,6 @@ GEM
rubyzip (~> 2.0)
winrm (~> 2.0)
wisper (2.0.1)
zeitwerk (2.4.2)
PLATFORMS
ruby
@ -597,7 +669,7 @@ DEPENDENCIES
inspec!
kitchen-docker!
kitchen-inspec (>= 2.5.0)
kitchen-salt (>= 0.6.3)
kitchen-salt (>= 0.7.2)
BUNDLED WITH
2.1.2

View File

@ -19,8 +19,8 @@ if File.file?(bundle_binstub)
load(bundle_binstub)
else
abort(
'Your `bin/bundle` was not generated by Bundler, '\
'so this binstub cannot run. Replace `bin/bundle` by running '\
'Your `bin/bundle` was not generated by Bundler, ' \
'so this binstub cannot run. Replace `bin/bundle` by running ' \
'`bundle binstubs bundler --force`, then run this command again.'
)
end

View File

@ -15,7 +15,7 @@ This list is sorted by the number of commits per contributor in *descending* ord
- Contributions
* - :raw-html-m2r:`<img class='float-left rounded-1' src='https://avatars.githubusercontent.com/u/10231489?v=4' width='36' height='36' alt='@myii'>`
- `@myii <https://github.com/myii>`_
- 108
- 110
* - :raw-html-m2r:`<img class='float-left rounded-1' src='https://avatars.githubusercontent.com/u/3374962?v=4' width='36' height='36' alt='@nmadhok'>`
- `@nmadhok <https://github.com/nmadhok>`_
- 14
@ -25,6 +25,9 @@ This list is sorted by the number of commits per contributor in *descending* ord
* - :raw-html-m2r:`<img class='float-left rounded-1' src='https://avatars.githubusercontent.com/u/52996?v=4' width='36' height='36' alt='@daks'>`
- `@daks <https://github.com/daks>`_
- 11
* - :raw-html-m2r:`<img class='float-left rounded-1' src='https://avatars.githubusercontent.com/u/13322818?v=4' width='36' height='36' alt='@noelmcloughlin'>`
- `@noelmcloughlin <https://github.com/noelmcloughlin>`_
- 5
* - :raw-html-m2r:`<img class='float-left rounded-1' src='https://avatars.githubusercontent.com/u/776662?v=4' width='36' height='36' alt='@carlosperello'>`
- `@carlosperello <https://github.com/carlosperello>`_
- 4
@ -58,9 +61,6 @@ This list is sorted by the number of commits per contributor in *descending* ord
* - :raw-html-m2r:`<img class='float-left rounded-1' src='https://avatars.githubusercontent.com/u/228723?v=4' width='36' height='36' alt='@abednarik'>`
- `@abednarik <https://github.com/abednarik>`_
- 2
* - :raw-html-m2r:`<img class='float-left rounded-1' src='https://avatars.githubusercontent.com/u/13322818?v=4' width='36' height='36' alt='@noelmcloughlin'>`
- `@noelmcloughlin <https://github.com/noelmcloughlin>`_
- 2
* - :raw-html-m2r:`<img class='float-left rounded-1' src='https://avatars.githubusercontent.com/u/2762274?v=4' width='36' height='36' alt='@9numbernine9'>`
- `@9numbernine9 <https://github.com/9numbernine9>`_
- 1
@ -100,8 +100,8 @@ This list is sorted by the number of commits per contributor in *descending* ord
* - :raw-html-m2r:`<img class='float-left rounded-1' src='https://avatars.githubusercontent.com/u/1353637?v=4' width='36' height='36' alt='@stasjok'>`
- `@stasjok <https://github.com/stasjok>`_
- 1
* - :raw-html-m2r:`<img class='float-left rounded-1' src='https://avatars.githubusercontent.com/u/117961?v=4' width='36' height='36' alt='@babilen5'>`
- `@babilen5 <https://github.com/babilen5>`_
* - :raw-html-m2r:`<img class='float-left rounded-1' src='https://avatars.githubusercontent.com/u/117961?v=4' width='36' height='36' alt='@babilen'>`
- `@babilen <https://github.com/babilen>`_
- 1
* - :raw-html-m2r:`<img class='float-left rounded-1' src='https://avatars.githubusercontent.com/u/528061?v=4' width='36' height='36' alt='@puneetk'>`
- `@puneetk <https://github.com/puneetk>`_
@ -110,4 +110,4 @@ This list is sorted by the number of commits per contributor in *descending* ord
----
Auto-generated by a `forked version <https://github.com/myii/maintainer>`_ of `gaocegege/maintainer <https://github.com/gaocegege/maintainer>`_ on 2021-08-18.
Auto-generated by a `forked version <https://github.com/myii/maintainer>`_ of `gaocegege/maintainer <https://github.com/gaocegege/maintainer>`_ on 2021-08-29.

View File

@ -2,6 +2,22 @@
Changelog
=========
`0.25.0 <https://github.com/saltstack-formulas/sudoers-formula/compare/v0.24.0...v0.25.0>`_ (2021-08-29)
------------------------------------------------------------------------------------------------------------
Continuous Integration
^^^^^^^^^^^^^^^^^^^^^^
* **appended:** add second test suite (\ `38126a3 <https://github.com/saltstack-formulas/sudoers-formula/commit/38126a31a6c27266111e96a02252a6e845fcb8f1>`_\ )
* **kitchen+ci:** update with latest ``3003.2`` pre-salted images [skip ci] (\ `93ae700 <https://github.com/saltstack-formulas/sudoers-formula/commit/93ae700eede582e10e8f8d35a89b54a7de4afe1b>`_\ )
Features
^^^^^^^^
* **ordering:** optionally append includefiles to main config (\ `751eff7 <https://github.com/saltstack-formulas/sudoers-formula/commit/751eff7218883b18628306d1b9f9251ac4b3b361>`_\ )
`0.24.0 <https://github.com/saltstack-formulas/sudoers-formula/compare/v0.23.4...v0.24.0>`_ (2021-08-18)
------------------------------------------------------------------------------------------------------------

View File

@ -51,7 +51,7 @@ Set up the sudoers file
``sudoers.included``
^^^^^^^^^^^^^^^^^^^^
Set up an additional sudoers included file
Set up an additional sudoers included file.
Testing

View File

@ -32,6 +32,10 @@ platforms:
driver:
image: saltimages/salt-tiamat-py3:debian-9
run_command: /lib/systemd/systemd
- name: ubuntu-2204-tiamat-py3
driver:
image: saltimages/salt-tiamat-py3:ubuntu-22.04
run_command: /lib/systemd/systemd
- name: ubuntu-2004-tiamat-py3
driver:
image: saltimages/salt-tiamat-py3:ubuntu-20.04
@ -40,9 +44,9 @@ platforms:
driver:
image: saltimages/salt-tiamat-py3:ubuntu-18.04
run_command: /lib/systemd/systemd
- name: centos-8-tiamat-py3
- name: centos-stream8-tiamat-py3
driver:
image: saltimages/salt-tiamat-py3:centos-8
image: saltimages/salt-tiamat-py3:centos-stream8
- name: centos-7-tiamat-py3
driver:
image: saltimages/salt-tiamat-py3:centos-7
@ -75,6 +79,10 @@ platforms:
driver:
image: saltimages/salt-master-py3:debian-9
run_command: /lib/systemd/systemd
- name: ubuntu-2204-master-py3
driver:
image: saltimages/salt-master-py3:ubuntu-22.04
run_command: /lib/systemd/systemd
- name: ubuntu-2004-master-py3
driver:
image: saltimages/salt-master-py3:ubuntu-20.04
@ -83,18 +91,18 @@ platforms:
driver:
image: saltimages/salt-master-py3:ubuntu-18.04
run_command: /lib/systemd/systemd
- name: centos-8-master-py3
- name: centos-stream8-master-py3
driver:
image: saltimages/salt-master-py3:centos-8
image: saltimages/salt-master-py3:centos-stream8
- name: centos-7-master-py3
driver:
image: saltimages/salt-master-py3:centos-7
- name: fedora-34-master-py3
- name: fedora-36-master-py3
driver:
image: saltimages/salt-master-py3:fedora-34
- name: fedora-33-master-py3
image: saltimages/salt-master-py3:fedora-36
- name: fedora-35-master-py3
driver:
image: saltimages/salt-master-py3:fedora-33
image: saltimages/salt-master-py3:fedora-35
- name: opensuse-leap-153-master-py3
driver:
image: saltimages/salt-master-py3:opensuse-leap-15.3
@ -102,13 +110,6 @@ platforms:
# => SCP did not finish successfully (255): (Net::SCP::Error)
transport:
max_ssh_sessions: 1
- name: opensuse-leap-152-master-py3
driver:
image: saltimages/salt-master-py3:opensuse-leap-15.2
# Workaround to avoid intermittent failures on `opensuse-leap-15.2`:
# => SCP did not finish successfully (255): (Net::SCP::Error)
transport:
max_ssh_sessions: 1
- name: opensuse-tmbl-latest-master-py3
driver:
image: saltimages/salt-master-py3:opensuse-tumbleweed-latest
@ -142,282 +143,120 @@ platforms:
driver:
image: saltimages/salt-master-py3:rockylinux-8
## SALT `3003.1`
- name: debian-11-3003-1-py3
## SALT `3004.1`
- name: debian-11-3004-1-py3
driver:
image: saltimages/salt-3003.1-py3:debian-11
image: saltimages/salt-3004.1-py3:debian-11
run_command: /lib/systemd/systemd
- name: debian-10-3003-1-py3
- name: debian-10-3004-1-py3
driver:
image: saltimages/salt-3003.1-py3:debian-10
image: saltimages/salt-3004.1-py3:debian-10
run_command: /lib/systemd/systemd
- name: debian-9-3003-1-py3
- name: debian-9-3004-1-py3
driver:
image: saltimages/salt-3003.1-py3:debian-9
image: saltimages/salt-3004.1-py3:debian-9
run_command: /lib/systemd/systemd
- name: ubuntu-2004-3003-1-py3
- name: ubuntu-2204-3004-1-py3
driver:
image: saltimages/salt-3003.1-py3:ubuntu-20.04
image: saltimages/salt-3004.1-py3:ubuntu-22.04
run_command: /lib/systemd/systemd
- name: ubuntu-1804-3003-1-py3
- name: ubuntu-2004-3004-1-py3
driver:
image: saltimages/salt-3003.1-py3:ubuntu-18.04
image: saltimages/salt-3004.1-py3:ubuntu-20.04
run_command: /lib/systemd/systemd
- name: centos-8-3003-1-py3
- name: ubuntu-1804-3004-1-py3
driver:
image: saltimages/salt-3003.1-py3:centos-8
- name: centos-7-3003-1-py3
image: saltimages/salt-3004.1-py3:ubuntu-18.04
run_command: /lib/systemd/systemd
- name: centos-stream8-3004-1-py3
driver:
image: saltimages/salt-3003.1-py3:centos-7
- name: fedora-34-3003-1-py3
image: saltimages/salt-3004.1-py3:centos-stream8
- name: centos-7-3004-1-py3
driver:
image: saltimages/salt-3003.1-py3:fedora-34
- name: fedora-33-3003-1-py3
image: saltimages/salt-3004.1-py3:centos-7
- name: fedora-36-3004-1-py3
driver:
image: saltimages/salt-3003.1-py3:fedora-33
- name: opensuse-leap-153-3003-1-py3
image: saltimages/salt-3004.1-py3:fedora-36
- name: fedora-35-3004-1-py3
driver:
image: saltimages/salt-3003.1-py3:opensuse-leap-15.3
image: saltimages/salt-3004.1-py3:fedora-35
- name: amazonlinux-2-3004-1-py3
driver:
image: saltimages/salt-3004.1-py3:amazonlinux-2
- name: oraclelinux-8-3004-1-py3
driver:
image: saltimages/salt-3004.1-py3:oraclelinux-8
- name: oraclelinux-7-3004-1-py3
driver:
image: saltimages/salt-3004.1-py3:oraclelinux-7
- name: arch-base-latest-3004-1-py3
driver:
image: saltimages/salt-3004.1-py3:arch-base-latest
- name: gentoo-stage3-latest-3004-1-py3
driver:
image: saltimages/salt-3004.1-py3:gentoo-stage3-latest
run_command: /sbin/init
- name: gentoo-stage3-systemd-3004-1-py3
driver:
image: saltimages/salt-3004.1-py3:gentoo-stage3-systemd
- name: almalinux-8-3004-1-py3
driver:
image: saltimages/salt-3004.1-py3:almalinux-8
- name: rockylinux-8-3004-1-py3
driver:
image: saltimages/salt-3004.1-py3:rockylinux-8
## SALT `3004.0`
- name: opensuse-leap-153-3004-0-py3
driver:
image: saltimages/salt-3004.0-py3:opensuse-leap-15.3
# Workaround to avoid intermittent failures on `opensuse-leap-15.3`:
# => SCP did not finish successfully (255): (Net::SCP::Error)
transport:
max_ssh_sessions: 1
- name: opensuse-leap-152-3003-1-py3
- name: opensuse-tmbl-latest-3004-0-py3
driver:
image: saltimages/salt-3003.1-py3:opensuse-leap-15.2
# Workaround to avoid intermittent failures on `opensuse-leap-15.2`:
# => SCP did not finish successfully (255): (Net::SCP::Error)
transport:
max_ssh_sessions: 1
- name: opensuse-tmbl-latest-3003-1-py3
driver:
image: saltimages/salt-3003.1-py3:opensuse-tumbleweed-latest
# Workaround to avoid intermittent failures on `opensuse-tumbleweed`:
# => SCP did not finish successfully (255): (Net::SCP::Error)
transport:
max_ssh_sessions: 1
- name: amazonlinux-2-3003-1-py3
driver:
image: saltimages/salt-3003.1-py3:amazonlinux-2
- name: oraclelinux-8-3003-1-py3
driver:
image: saltimages/salt-3003.1-py3:oraclelinux-8
- name: oraclelinux-7-3003-1-py3
driver:
image: saltimages/salt-3003.1-py3:oraclelinux-7
- name: arch-base-latest-3003-1-py3
driver:
image: saltimages/salt-3003.1-py3:arch-base-latest
- name: gentoo-stage3-latest-3003-1-py3
driver:
image: saltimages/salt-3003.1-py3:gentoo-stage3-latest
run_command: /sbin/init
- name: gentoo-stage3-systemd-3003-1-py3
driver:
image: saltimages/salt-3003.1-py3:gentoo-stage3-systemd
## SALT `3002.6`
- name: debian-11-3002-6-py3
driver:
image: saltimages/salt-3002.6-py3:debian-11
run_command: /lib/systemd/systemd
- name: debian-10-3002-6-py3
driver:
image: saltimages/salt-3002.6-py3:debian-10
run_command: /lib/systemd/systemd
- name: debian-9-3002-6-py3
driver:
image: saltimages/salt-3002.6-py3:debian-9
run_command: /lib/systemd/systemd
- name: ubuntu-2004-3002-6-py3
driver:
image: saltimages/salt-3002.6-py3:ubuntu-20.04
run_command: /lib/systemd/systemd
- name: ubuntu-1804-3002-6-py3
driver:
image: saltimages/salt-3002.6-py3:ubuntu-18.04
run_command: /lib/systemd/systemd
- name: centos-8-3002-6-py3
driver:
image: saltimages/salt-3002.6-py3:centos-8
- name: centos-7-3002-6-py3
driver:
image: saltimages/salt-3002.6-py3:centos-7
- name: fedora-34-3002-6-py3
driver:
image: saltimages/salt-3002.6-py3:fedora-34
- name: fedora-33-3002-6-py3
driver:
image: saltimages/salt-3002.6-py3:fedora-33
- name: amazonlinux-2-3002-6-py3
driver:
image: saltimages/salt-3002.6-py3:amazonlinux-2
- name: oraclelinux-8-3002-6-py3
driver:
image: saltimages/salt-3002.6-py3:oraclelinux-8
- name: oraclelinux-7-3002-6-py3
driver:
image: saltimages/salt-3002.6-py3:oraclelinux-7
- name: arch-base-latest-3002-6-py3
driver:
image: saltimages/salt-3002.6-py3:arch-base-latest
- name: gentoo-stage3-latest-3002-6-py3
driver:
image: saltimages/salt-3002.6-py3:gentoo-stage3-latest
run_command: /sbin/init
- name: gentoo-stage3-systemd-3002-6-py3
driver:
image: saltimages/salt-3002.6-py3:gentoo-stage3-systemd
## SALT `3002.2`
- name: opensuse-leap-153-3002-2-py3
driver:
image: saltimages/salt-3002.2-py3:opensuse-leap-15.3
# Workaround to avoid intermittent failures on `opensuse-leap-15.3`:
# => SCP did not finish successfully (255): (Net::SCP::Error)
transport:
max_ssh_sessions: 1
- name: opensuse-leap-152-3002-2-py3
driver:
image: saltimages/salt-3002.2-py3:opensuse-leap-15.2
# Workaround to avoid intermittent failures on `opensuse-leap-15.2`:
# => SCP did not finish successfully (255): (Net::SCP::Error)
transport:
max_ssh_sessions: 1
- name: opensuse-tmbl-latest-3002-2-py3
driver:
image: saltimages/salt-3002.2-py3:opensuse-tumbleweed-latest
image: saltimages/salt-3004.0-py3:opensuse-tumbleweed-latest
# Workaround to avoid intermittent failures on `opensuse-tumbleweed`:
# => SCP did not finish successfully (255): (Net::SCP::Error)
transport:
max_ssh_sessions: 1
## SALT `3001.7`
- name: debian-10-3001-7-py3
## SALT `3003.4`
- name: debian-10-3003-4-py3
driver:
image: saltimages/salt-3001.7-py3:debian-10
image: saltimages/salt-3003.4-py3:debian-10
run_command: /lib/systemd/systemd
- name: debian-9-3001-7-py3
- name: debian-9-3003-4-py3
driver:
image: saltimages/salt-3001.7-py3:debian-9
image: saltimages/salt-3003.4-py3:debian-9
run_command: /lib/systemd/systemd
- name: ubuntu-2004-3001-7-py3
- name: ubuntu-2004-3003-4-py3
driver:
image: saltimages/salt-3001.7-py3:ubuntu-20.04
image: saltimages/salt-3003.4-py3:ubuntu-20.04
run_command: /lib/systemd/systemd
- name: ubuntu-1804-3001-7-py3
- name: ubuntu-1804-3003-4-py3
driver:
image: saltimages/salt-3001.7-py3:ubuntu-18.04
image: saltimages/salt-3003.4-py3:ubuntu-18.04
run_command: /lib/systemd/systemd
- name: centos-8-3001-7-py3
- name: centos-stream8-3003-4-py3
driver:
image: saltimages/salt-3001.7-py3:centos-8
- name: centos-7-3001-7-py3
image: saltimages/salt-3003.4-py3:centos-stream8
- name: centos-7-3003-4-py3
driver:
image: saltimages/salt-3001.7-py3:centos-7
- name: fedora-34-3001-7-py3
image: saltimages/salt-3003.4-py3:centos-7
- name: amazonlinux-2-3003-4-py3
driver:
image: saltimages/salt-3001.7-py3:fedora-34
- name: fedora-33-3001-7-py3
image: saltimages/salt-3003.4-py3:amazonlinux-2
- name: oraclelinux-8-3003-4-py3
driver:
image: saltimages/salt-3001.7-py3:fedora-33
- name: opensuse-leap-153-3001-7-py3
image: saltimages/salt-3003.4-py3:oraclelinux-8
- name: oraclelinux-7-3003-4-py3
driver:
image: saltimages/salt-3001.7-py3:opensuse-leap-15.3
# Workaround to avoid intermittent failures on `opensuse-leap-15.3`:
# => SCP did not finish successfully (255): (Net::SCP::Error)
transport:
max_ssh_sessions: 1
- name: opensuse-leap-152-3001-7-py3
image: saltimages/salt-3003.4-py3:oraclelinux-7
- name: almalinux-8-3003-4-py3
driver:
image: saltimages/salt-3001.7-py3:opensuse-leap-15.2
# Workaround to avoid intermittent failures on `opensuse-leap-15.2`:
# => SCP did not finish successfully (255): (Net::SCP::Error)
transport:
max_ssh_sessions: 1
- name: opensuse-tmbl-latest-3001-7-py3
driver:
image: saltimages/salt-3001.7-py3:opensuse-tumbleweed-latest
# Workaround to avoid intermittent failures on `opensuse-tumbleweed`:
# => SCP did not finish successfully (255): (Net::SCP::Error)
transport:
max_ssh_sessions: 1
- name: amazonlinux-2-3001-7-py3
driver:
image: saltimages/salt-3001.7-py3:amazonlinux-2
- name: oraclelinux-8-3001-7-py3
driver:
image: saltimages/salt-3001.7-py3:oraclelinux-8
- name: oraclelinux-7-3001-7-py3
driver:
image: saltimages/salt-3001.7-py3:oraclelinux-7
- name: arch-base-latest-3001-7-py3
driver:
image: saltimages/salt-3001.7-py3:arch-base-latest
- name: gentoo-stage3-latest-3001-7-py3
driver:
image: saltimages/salt-3001.7-py3:gentoo-stage3-latest
run_command: /sbin/init
- name: gentoo-stage3-systemd-3001-7-py3
driver:
image: saltimages/salt-3001.7-py3:gentoo-stage3-systemd
## SALT `3000.9`
- name: debian-10-3000-9-py3
driver:
image: saltimages/salt-3000.9-py3:debian-10
run_command: /lib/systemd/systemd
- name: debian-9-3000-9-py3
driver:
image: saltimages/salt-3000.9-py3:debian-9
run_command: /lib/systemd/systemd
- name: ubuntu-1804-3000-9-py3
driver:
image: saltimages/salt-3000.9-py3:ubuntu-18.04
run_command: /lib/systemd/systemd
- name: centos-8-3000-9-py3
driver:
image: saltimages/salt-3000.9-py3:centos-8
- name: centos-7-3000-9-py3
driver:
image: saltimages/salt-3000.9-py3:centos-7
- name: opensuse-leap-153-3000-9-py3
driver:
image: saltimages/salt-3000.9-py3:opensuse-leap-15.3
# Workaround to avoid intermittent failures on `opensuse-leap-15.3`:
# => SCP did not finish successfully (255): (Net::SCP::Error)
transport:
max_ssh_sessions: 1
- name: opensuse-leap-152-3000-9-py3
driver:
image: saltimages/salt-3000.9-py3:opensuse-leap-15.2
# Workaround to avoid intermittent failures on `opensuse-leap-15.2`:
# => SCP did not finish successfully (255): (Net::SCP::Error)
transport:
max_ssh_sessions: 1
- name: amazonlinux-2-3000-9-py3
driver:
image: saltimages/salt-3000.9-py3:amazonlinux-2
- name: oraclelinux-8-3000-9-py3
driver:
image: saltimages/salt-3000.9-py3:oraclelinux-8
- name: oraclelinux-7-3000-9-py3
driver:
image: saltimages/salt-3000.9-py3:oraclelinux-7
- name: gentoo-stage3-latest-3000-9-py3
driver:
image: saltimages/salt-3000.9-py3:gentoo-stage3-latest
run_command: /sbin/init
- name: gentoo-stage3-systemd-3000-9-py3
driver:
image: saltimages/salt-3000.9-py3:gentoo-stage3-systemd
- name: ubuntu-1804-3000-9-py2
driver:
image: saltimages/salt-3000.9-py2:ubuntu-18.04
run_command: /lib/systemd/systemd
- name: arch-base-latest-3000-9-py2
driver:
image: saltimages/salt-3000.9-py2:arch-base-latest
image: saltimages/salt-3003.4-py3:almalinux-8
verifier:
# https://www.inspec.io/
@ -448,3 +287,23 @@ suites:
verifier:
inspec_tests:
- path: test/integration/default
- name: appended
provisioner:
state_top:
base:
'*':
- sudoers._mapdata
- sudoers
- sudoers.included
pillars:
top.sls:
base:
'*':
- kitchen
- sudoers
pillars_from_files:
kitchen.sls: test/salt/pillar/kitchen.sls
sudoers.sls: test/salt/pillar/appended.sls
verifier:
inspec_tests:
- path: test/integration/appended

View File

@ -63,3 +63,9 @@ sudoers:
netgroups:
other_netgroup:
- 'ALL=(ALL) ALL'
# ordering is important. The sudoers manpage says when multiple
# entries match, the last match is used. However, if we do not
# manage the main config, our included files may not match last.
# To guarantee included files match last, set 'true' below to append
# each '#include <includefile>' to sudoers file.
append_included_files_to_endof_main_config: true

View File

@ -7,16 +7,16 @@ sed -i -e "s_^\(version:\).*_\1 ${1}_" FORMULA
###############################################################################
# (B) Use `m2r` to convert automatically produced `.md` docs to `.rst`
# (B) Use `m2r2` to convert automatically produced `.md` docs to `.rst`
###############################################################################
# Install `m2r`
pip3 install m2r
# Install `m2r2`
pip3 install m2r2
# Copy and then convert the `.md` docs
cp ./*.md docs/
cd docs/ || exit
m2r --overwrite ./*.md
m2r2 --overwrite ./*.md
# Change excess `H1` headings to `H2` in converted `CHANGELOG.rst`
sed -i -e '/^=.*$/s/=/-/g' CHANGELOG.rst

View File

@ -10,3 +10,4 @@ sudoers:
execprefix: /usr/sbin
includedir: /etc/sudoers.d
included_files: {}
append_included_files_to_endof_main_config: false

View File

@ -0,0 +1,5 @@
# -*- coding: utf-8 -*-
# vim: ft=sls
include:
- .install

View File

@ -18,13 +18,13 @@ include:
{% set included_files = sudoers.included_files %}
{% for included_file, spec in included_files.items() -%}
{%- if '/' not in included_file %}
{%- set included_file = sudoers.includedir ~ '/' ~ included_file %}
{%- endif %}
sudoers include {{ included_file }}:
file.managed:
{% if '/' in included_file %}
- name: {{ included_file }}
{% else %}
- name: {{ sudoers.includedir }}/{{ included_file }}
{% endif %}
- user: root
- group: {{ sudoers.group }}
- mode: 440
@ -40,5 +40,15 @@ sudoers include {{ included_file }}:
- file: {{ sudoers.configpath }}/sudoers
- require_in:
- file: {{ sudoers.includedir }}
{% elif sudoers.append_included_files_to_endof_main_config %}
sudoers append {{ included_file }}:
file.append:
- name: {{ sudoers.configpath }}/sudoers
- text: '#include {{ included_file }}'
- require:
- file: sudoers include {{ included_file }}
{% endif %}
{% endfor %}

View File

@ -0,0 +1,50 @@
# InSpec Profile: `appended`
This shows the implementation of the `appended` 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 appended
Summary
-------
Location: appended
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 appended
..
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 appended --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).

View File

@ -0,0 +1,47 @@
# frozen_string_literal: true
require 'yaml'
control 'sudoers._mapdata' do
title '`map.jinja` should match the reference file'
### Method
# The steps below for each file appear convoluted but they are both required
# and similar in nature:
# 1. The earliest method was to simply compare the files textually but this often
# led to false positives due to inconsistencies (e.g. spacing, ordering)
# 2. The next method was to load the files back into YAML structures and then
# compare but InSpec provided block diffs this way, unusable by end users
# 3. The final step was to dump the YAML structures back into a string to use
# for the comparison; this both worked and provided human-friendly diffs
### Comparison file for the specific platform
### Static, adjusted as part of code contributions, as map data is changed
# Strip the `platform[:finger]` version number down to the "OS major release"
platform_finger = system.platform[:finger].split('.').first.to_s
# Use that to set the path to the file (relative to the InSpec suite directory)
mapdata_file_path = "_mapdata/#{platform_finger}.yaml"
# Load the mapdata from profile, into a YAML structure
# https://docs.chef.io/inspec/profiles/#profile-files
mapdata_file_yaml = YAML.load(inspec.profile.file(mapdata_file_path))
# Dump the YAML back into a string for comparison
mapdata_file_dump = YAML.dump(mapdata_file_yaml)
### Output file produced by running the `_mapdata` state
### Dynamic, generated during Kitchen's `converge` phase
# Derive the location of the dumped mapdata (differs for Windows)
output_dir = platform[:family] == 'windows' ? '/temp' : '/tmp'
# Use that to set the path to the file (absolute path, i.e. within the container)
output_file_path = "#{output_dir}/salt_mapdata_dump.yaml"
# Load the output into a YAML structure using InSpec's `yaml` resource
# https://github.com/inspec/inspec/blob/49b7d10/lib/inspec/resources/yaml.rb#L29
output_file_yaml = yaml(output_file_path).params
# Dump the YAML back into a string for comparison
output_file_dump = YAML.dump(output_file_yaml)
describe 'File content' do
it 'should match profile map data exactly' do
expect(output_file_dump).to eq(mapdata_file_dump)
end
end
end

View File

@ -0,0 +1,38 @@
# frozen_string_literal: true
control 'Sudoers configuration' do
title 'should match desired lines'
describe file('/etc/sudoers') do
it { should be_file }
it { should be_owned_by 'root' }
it { should be_grouped_into 'root' }
its('content') { should include '#include /etc/sudoers.d/extra-file1' }
its('content') { should include '#include /etc/sudoers.d/extra-file2' }
its('content') { should include '#include /etc/sudoers.d/extra-file3' }
end
describe file('/etc/sudoers.d/extra-file1') do
it { should be_file }
it { should be_owned_by 'root' }
it { should be_grouped_into 'root' }
its('mode') { should cmp '0440' }
its('content') { should include 'foo ALL=(ALL) ALL' }
end
describe file('/etc/sudoers.d/extra-file2') do
it { should be_file }
it { should be_owned_by 'root' }
it { should be_grouped_into 'root' }
its('mode') { should cmp '0440' }
its('content') { should include '%bargroup ALL=(ALL) NOPASSWD: ALL' }
end
describe file('/etc/sudoers.d/extra-file3') do
it { should be_file }
it { should be_owned_by 'root' }
it { should be_grouped_into 'root' }
its('mode') { should cmp '0440' }
its('content') { should include '+other_netgroup ALL=(ALL) ALL' }
end
end

View File

@ -0,0 +1,9 @@
# frozen_string_literal: true
control 'Sudo package' do
title 'should be installed'
describe package('sudo') do
it { should be_installed }
end
end

View File

@ -0,0 +1,29 @@
# yamllint disable rule:indentation rule:line-length
# AlmaLinux-8
---
values:
append_included_files_to_endof_main_config: true
arch: amd64
configpath: /etc
execprefix: /usr/sbin
group: root
included_files:
/etc/sudoers.d/extra-file1:
users:
foo:
- ALL=(ALL) ALL
/etc/sudoers.d/extra-file2:
groups:
bargroup:
- 'ALL=(ALL) NOPASSWD: ALL'
/etc/sudoers.d/extra-file3:
netgroups:
other_netgroup:
- ALL=(ALL) ALL
includedir: /etc/sudoers.d
manage_main_config: false
pkg: sudo
purge_includedir: false
users:
kitchen:
- 'ALL=(root) NOPASSWD: ALL'

View File

@ -0,0 +1,29 @@
# yamllint disable rule:indentation rule:line-length
# AlmaLinux-8
---
values:
append_included_files_to_endof_main_config: true
arch: amd64
configpath: /etc
execprefix: /usr/sbin
group: root
included_files:
/etc/sudoers.d/extra-file1:
users:
foo:
- ALL=(ALL) ALL
/etc/sudoers.d/extra-file2:
groups:
bargroup:
- 'ALL=(ALL) NOPASSWD: ALL'
/etc/sudoers.d/extra-file3:
netgroups:
other_netgroup:
- ALL=(ALL) ALL
includedir: /etc/sudoers.d
manage_main_config: false
pkg: sudo
purge_includedir: false
users:
kitchen:
- 'ALL=(root) NOPASSWD: ALL'

View File

@ -0,0 +1,29 @@
# yamllint disable rule:indentation rule:line-length
# AlmaLinux-8
---
values:
append_included_files_to_endof_main_config: true
arch: amd64
configpath: /etc
execprefix: /usr/sbin
group: root
included_files:
/etc/sudoers.d/extra-file1:
users:
foo:
- ALL=(ALL) ALL
/etc/sudoers.d/extra-file2:
groups:
bargroup:
- 'ALL=(ALL) NOPASSWD: ALL'
/etc/sudoers.d/extra-file3:
netgroups:
other_netgroup:
- ALL=(ALL) ALL
includedir: /etc/sudoers.d
manage_main_config: false
pkg: sudo
purge_includedir: false
users:
kitchen:
- 'ALL=(root) NOPASSWD: ALL'

View File

@ -0,0 +1,29 @@
# yamllint disable rule:indentation rule:line-length
# AlmaLinux-8
---
values:
append_included_files_to_endof_main_config: true
arch: amd64
configpath: /etc
execprefix: /usr/sbin
group: root
included_files:
/etc/sudoers.d/extra-file1:
users:
foo:
- ALL=(ALL) ALL
/etc/sudoers.d/extra-file2:
groups:
bargroup:
- 'ALL=(ALL) NOPASSWD: ALL'
/etc/sudoers.d/extra-file3:
netgroups:
other_netgroup:
- ALL=(ALL) ALL
includedir: /etc/sudoers.d
manage_main_config: false
pkg: sudo
purge_includedir: false
users:
kitchen:
- 'ALL=(root) NOPASSWD: ALL'

View File

@ -0,0 +1,29 @@
# yamllint disable rule:indentation rule:line-length
# AlmaLinux-8
---
values:
append_included_files_to_endof_main_config: true
arch: amd64
configpath: /etc
execprefix: /usr/sbin
group: root
included_files:
/etc/sudoers.d/extra-file1:
users:
foo:
- ALL=(ALL) ALL
/etc/sudoers.d/extra-file2:
groups:
bargroup:
- 'ALL=(ALL) NOPASSWD: ALL'
/etc/sudoers.d/extra-file3:
netgroups:
other_netgroup:
- ALL=(ALL) ALL
includedir: /etc/sudoers.d
manage_main_config: false
pkg: sudo
purge_includedir: false
users:
kitchen:
- 'ALL=(root) NOPASSWD: ALL'

View File

@ -0,0 +1,29 @@
# yamllint disable rule:indentation rule:line-length
# AlmaLinux-8
---
values:
append_included_files_to_endof_main_config: true
arch: amd64
configpath: /etc
execprefix: /usr/sbin
group: root
included_files:
/etc/sudoers.d/extra-file1:
users:
foo:
- ALL=(ALL) ALL
/etc/sudoers.d/extra-file2:
groups:
bargroup:
- 'ALL=(ALL) NOPASSWD: ALL'
/etc/sudoers.d/extra-file3:
netgroups:
other_netgroup:
- ALL=(ALL) ALL
includedir: /etc/sudoers.d
manage_main_config: false
pkg: sudo
purge_includedir: false
users:
kitchen:
- 'ALL=(root) NOPASSWD: ALL'

View File

@ -0,0 +1,29 @@
# yamllint disable rule:indentation rule:line-length
# AlmaLinux-8
---
values:
append_included_files_to_endof_main_config: true
arch: amd64
configpath: /etc
execprefix: /usr/sbin
group: root
included_files:
/etc/sudoers.d/extra-file1:
users:
foo:
- ALL=(ALL) ALL
/etc/sudoers.d/extra-file2:
groups:
bargroup:
- 'ALL=(ALL) NOPASSWD: ALL'
/etc/sudoers.d/extra-file3:
netgroups:
other_netgroup:
- ALL=(ALL) ALL
includedir: /etc/sudoers.d
manage_main_config: false
pkg: sudo
purge_includedir: false
users:
kitchen:
- 'ALL=(root) NOPASSWD: ALL'

View File

@ -0,0 +1,29 @@
# yamllint disable rule:indentation rule:line-length
# AlmaLinux-8
---
values:
append_included_files_to_endof_main_config: true
arch: amd64
configpath: /etc
execprefix: /usr/sbin
group: root
included_files:
/etc/sudoers.d/extra-file1:
users:
foo:
- ALL=(ALL) ALL
/etc/sudoers.d/extra-file2:
groups:
bargroup:
- 'ALL=(ALL) NOPASSWD: ALL'
/etc/sudoers.d/extra-file3:
netgroups:
other_netgroup:
- ALL=(ALL) ALL
includedir: /etc/sudoers.d
manage_main_config: false
pkg: sudo
purge_includedir: false
users:
kitchen:
- 'ALL=(root) NOPASSWD: ALL'

View File

@ -0,0 +1,29 @@
# yamllint disable rule:indentation rule:line-length
# AlmaLinux-8
---
values:
append_included_files_to_endof_main_config: true
arch: amd64
configpath: /etc
execprefix: /usr/sbin
group: root
included_files:
/etc/sudoers.d/extra-file1:
users:
foo:
- ALL=(ALL) ALL
/etc/sudoers.d/extra-file2:
groups:
bargroup:
- 'ALL=(ALL) NOPASSWD: ALL'
/etc/sudoers.d/extra-file3:
netgroups:
other_netgroup:
- ALL=(ALL) ALL
includedir: /etc/sudoers.d
manage_main_config: false
pkg: sudo
purge_includedir: false
users:
kitchen:
- 'ALL=(root) NOPASSWD: ALL'

View File

@ -0,0 +1,29 @@
# yamllint disable rule:indentation rule:line-length
# AlmaLinux-8
---
values:
append_included_files_to_endof_main_config: true
arch: amd64
configpath: /etc
execprefix: /usr/sbin
group: root
included_files:
/etc/sudoers.d/extra-file1:
users:
foo:
- ALL=(ALL) ALL
/etc/sudoers.d/extra-file2:
groups:
bargroup:
- 'ALL=(ALL) NOPASSWD: ALL'
/etc/sudoers.d/extra-file3:
netgroups:
other_netgroup:
- ALL=(ALL) ALL
includedir: /etc/sudoers.d
manage_main_config: false
pkg: sudo
purge_includedir: false
users:
kitchen:
- 'ALL=(root) NOPASSWD: ALL'

View File

@ -0,0 +1,29 @@
# yamllint disable rule:indentation rule:line-length
# AlmaLinux-8
---
values:
append_included_files_to_endof_main_config: true
arch: amd64
configpath: /etc
execprefix: /usr/sbin
group: root
included_files:
/etc/sudoers.d/extra-file1:
users:
foo:
- ALL=(ALL) ALL
/etc/sudoers.d/extra-file2:
groups:
bargroup:
- 'ALL=(ALL) NOPASSWD: ALL'
/etc/sudoers.d/extra-file3:
netgroups:
other_netgroup:
- ALL=(ALL) ALL
includedir: /etc/sudoers.d
manage_main_config: false
pkg: sudo
purge_includedir: false
users:
kitchen:
- 'ALL=(root) NOPASSWD: ALL'

View File

@ -0,0 +1,29 @@
# yamllint disable rule:indentation rule:line-length
# AlmaLinux-8
---
values:
append_included_files_to_endof_main_config: true
arch: amd64
configpath: /etc
execprefix: /usr/sbin
group: root
included_files:
/etc/sudoers.d/extra-file1:
users:
foo:
- ALL=(ALL) ALL
/etc/sudoers.d/extra-file2:
groups:
bargroup:
- 'ALL=(ALL) NOPASSWD: ALL'
/etc/sudoers.d/extra-file3:
netgroups:
other_netgroup:
- ALL=(ALL) ALL
includedir: /etc/sudoers.d
manage_main_config: false
pkg: sudo
purge_includedir: false
users:
kitchen:
- 'ALL=(root) NOPASSWD: ALL'

View File

@ -0,0 +1,29 @@
# yamllint disable rule:indentation rule:line-length
# AlmaLinux-8
---
values:
append_included_files_to_endof_main_config: true
arch: amd64
configpath: /etc
execprefix: /usr/sbin
group: root
included_files:
/etc/sudoers.d/extra-file1:
users:
foo:
- ALL=(ALL) ALL
/etc/sudoers.d/extra-file2:
groups:
bargroup:
- 'ALL=(ALL) NOPASSWD: ALL'
/etc/sudoers.d/extra-file3:
netgroups:
other_netgroup:
- ALL=(ALL) ALL
includedir: /etc/sudoers.d
manage_main_config: false
pkg: sudo
purge_includedir: false
users:
kitchen:
- 'ALL=(root) NOPASSWD: ALL'

View File

@ -0,0 +1,29 @@
# yamllint disable rule:indentation rule:line-length
# AlmaLinux-8
---
values:
append_included_files_to_endof_main_config: true
arch: amd64
configpath: /etc
execprefix: /usr/sbin
group: root
included_files:
/etc/sudoers.d/extra-file1:
users:
foo:
- ALL=(ALL) ALL
/etc/sudoers.d/extra-file2:
groups:
bargroup:
- 'ALL=(ALL) NOPASSWD: ALL'
/etc/sudoers.d/extra-file3:
netgroups:
other_netgroup:
- ALL=(ALL) ALL
includedir: /etc/sudoers.d
manage_main_config: false
pkg: sudo
purge_includedir: false
users:
kitchen:
- 'ALL=(root) NOPASSWD: ALL'

View File

@ -0,0 +1,29 @@
# yamllint disable rule:indentation rule:line-length
# AlmaLinux-8
---
values:
append_included_files_to_endof_main_config: true
arch: amd64
configpath: /etc
execprefix: /usr/sbin
group: root
included_files:
/etc/sudoers.d/extra-file1:
users:
foo:
- ALL=(ALL) ALL
/etc/sudoers.d/extra-file2:
groups:
bargroup:
- 'ALL=(ALL) NOPASSWD: ALL'
/etc/sudoers.d/extra-file3:
netgroups:
other_netgroup:
- ALL=(ALL) ALL
includedir: /etc/sudoers.d
manage_main_config: false
pkg: sudo
purge_includedir: false
users:
kitchen:
- 'ALL=(root) NOPASSWD: ALL'

View File

@ -0,0 +1,29 @@
# yamllint disable rule:indentation rule:line-length
# AlmaLinux-8
---
values:
append_included_files_to_endof_main_config: true
arch: amd64
configpath: /etc
execprefix: /usr/sbin
group: root
included_files:
/etc/sudoers.d/extra-file1:
users:
foo:
- ALL=(ALL) ALL
/etc/sudoers.d/extra-file2:
groups:
bargroup:
- 'ALL=(ALL) NOPASSWD: ALL'
/etc/sudoers.d/extra-file3:
netgroups:
other_netgroup:
- ALL=(ALL) ALL
includedir: /etc/sudoers.d
manage_main_config: false
pkg: sudo
purge_includedir: false
users:
kitchen:
- 'ALL=(root) NOPASSWD: ALL'

View File

@ -0,0 +1,29 @@
# yamllint disable rule:indentation rule:line-length
# AlmaLinux-8
---
values:
append_included_files_to_endof_main_config: true
arch: amd64
configpath: /etc
execprefix: /usr/sbin
group: root
included_files:
/etc/sudoers.d/extra-file1:
users:
foo:
- ALL=(ALL) ALL
/etc/sudoers.d/extra-file2:
groups:
bargroup:
- 'ALL=(ALL) NOPASSWD: ALL'
/etc/sudoers.d/extra-file3:
netgroups:
other_netgroup:
- ALL=(ALL) ALL
includedir: /etc/sudoers.d
manage_main_config: false
pkg: app-admin/sudo
purge_includedir: false
users:
kitchen:
- 'ALL=(root) NOPASSWD: ALL'

View File

@ -0,0 +1,29 @@
# yamllint disable rule:indentation rule:line-length
# AlmaLinux-8
---
values:
append_included_files_to_endof_main_config: true
arch: amd64
configpath: /etc
execprefix: /usr/sbin
group: root
included_files:
/etc/sudoers.d/extra-file1:
users:
foo:
- ALL=(ALL) ALL
/etc/sudoers.d/extra-file2:
groups:
bargroup:
- 'ALL=(ALL) NOPASSWD: ALL'
/etc/sudoers.d/extra-file3:
netgroups:
other_netgroup:
- ALL=(ALL) ALL
includedir: /etc/sudoers.d
manage_main_config: false
pkg: app-admin/sudo
purge_includedir: false
users:
kitchen:
- 'ALL=(root) NOPASSWD: ALL'

View File

@ -0,0 +1,29 @@
# yamllint disable rule:indentation rule:line-length
# AlmaLinux-8
---
values:
append_included_files_to_endof_main_config: true
arch: amd64
configpath: /etc
execprefix: /usr/sbin
group: root
included_files:
/etc/sudoers.d/extra-file1:
users:
foo:
- ALL=(ALL) ALL
/etc/sudoers.d/extra-file2:
groups:
bargroup:
- 'ALL=(ALL) NOPASSWD: ALL'
/etc/sudoers.d/extra-file3:
netgroups:
other_netgroup:
- ALL=(ALL) ALL
includedir: /etc/sudoers.d
manage_main_config: false
pkg: sudo
purge_includedir: false
users:
kitchen:
- 'ALL=(root) NOPASSWD: ALL'

View File

@ -0,0 +1,29 @@
# yamllint disable rule:indentation rule:line-length
# AlmaLinux-8
---
values:
append_included_files_to_endof_main_config: true
arch: amd64
configpath: /etc
execprefix: /usr/sbin
group: root
included_files:
/etc/sudoers.d/extra-file1:
users:
foo:
- ALL=(ALL) ALL
/etc/sudoers.d/extra-file2:
groups:
bargroup:
- 'ALL=(ALL) NOPASSWD: ALL'
/etc/sudoers.d/extra-file3:
netgroups:
other_netgroup:
- ALL=(ALL) ALL
includedir: /etc/sudoers.d
manage_main_config: false
pkg: sudo
purge_includedir: false
users:
kitchen:
- 'ALL=(root) NOPASSWD: ALL'

View File

@ -0,0 +1,29 @@
# yamllint disable rule:indentation rule:line-length
# AlmaLinux-8
---
values:
append_included_files_to_endof_main_config: true
arch: amd64
configpath: /etc
execprefix: /usr/sbin
group: root
included_files:
/etc/sudoers.d/extra-file1:
users:
foo:
- ALL=(ALL) ALL
/etc/sudoers.d/extra-file2:
groups:
bargroup:
- 'ALL=(ALL) NOPASSWD: ALL'
/etc/sudoers.d/extra-file3:
netgroups:
other_netgroup:
- ALL=(ALL) ALL
includedir: /etc/sudoers.d
manage_main_config: false
pkg: sudo
purge_includedir: false
users:
kitchen:
- 'ALL=(root) NOPASSWD: ALL'

View File

@ -0,0 +1,29 @@
# yamllint disable rule:indentation rule:line-length
# AlmaLinux-8
---
values:
append_included_files_to_endof_main_config: true
arch: amd64
configpath: /etc
execprefix: /usr/sbin
group: root
included_files:
/etc/sudoers.d/extra-file1:
users:
foo:
- ALL=(ALL) ALL
/etc/sudoers.d/extra-file2:
groups:
bargroup:
- 'ALL=(ALL) NOPASSWD: ALL'
/etc/sudoers.d/extra-file3:
netgroups:
other_netgroup:
- ALL=(ALL) ALL
includedir: /etc/sudoers.d
manage_main_config: false
pkg: sudo
purge_includedir: false
users:
kitchen:
- 'ALL=(root) NOPASSWD: ALL'

View File

@ -0,0 +1,29 @@
# yamllint disable rule:indentation rule:line-length
# AlmaLinux-8
---
values:
append_included_files_to_endof_main_config: true
arch: amd64
configpath: /etc
execprefix: /usr/sbin
group: root
included_files:
/etc/sudoers.d/extra-file1:
users:
foo:
- ALL=(ALL) ALL
/etc/sudoers.d/extra-file2:
groups:
bargroup:
- 'ALL=(ALL) NOPASSWD: ALL'
/etc/sudoers.d/extra-file3:
netgroups:
other_netgroup:
- ALL=(ALL) ALL
includedir: /etc/sudoers.d
manage_main_config: false
pkg: sudo
purge_includedir: false
users:
kitchen:
- 'ALL=(root) NOPASSWD: ALL'

View File

@ -0,0 +1,29 @@
# yamllint disable rule:indentation rule:line-length
# AlmaLinux-8
---
values:
append_included_files_to_endof_main_config: true
arch: amd64
configpath: /etc
execprefix: /usr/sbin
group: root
included_files:
/etc/sudoers.d/extra-file1:
users:
foo:
- ALL=(ALL) ALL
/etc/sudoers.d/extra-file2:
groups:
bargroup:
- 'ALL=(ALL) NOPASSWD: ALL'
/etc/sudoers.d/extra-file3:
netgroups:
other_netgroup:
- ALL=(ALL) ALL
includedir: /etc/sudoers.d
manage_main_config: false
pkg: sudo
purge_includedir: false
users:
kitchen:
- 'ALL=(root) NOPASSWD: ALL'

View File

@ -0,0 +1,29 @@
# yamllint disable rule:indentation rule:line-length
# AlmaLinux-8
---
values:
append_included_files_to_endof_main_config: true
arch: amd64
configpath: /etc
execprefix: /usr/sbin
group: root
included_files:
/etc/sudoers.d/extra-file1:
users:
foo:
- ALL=(ALL) ALL
/etc/sudoers.d/extra-file2:
groups:
bargroup:
- 'ALL=(ALL) NOPASSWD: ALL'
/etc/sudoers.d/extra-file3:
netgroups:
other_netgroup:
- ALL=(ALL) ALL
includedir: /etc/sudoers.d
manage_main_config: false
pkg: sudo
purge_includedir: false
users:
kitchen:
- 'ALL=(root) NOPASSWD: ALL'

View File

@ -0,0 +1,29 @@
# yamllint disable rule:indentation rule:line-length
# AlmaLinux-8
---
values:
append_included_files_to_endof_main_config: true
arch: amd64
configpath: /etc
execprefix: /usr/sbin
group: root
included_files:
/etc/sudoers.d/extra-file1:
users:
foo:
- ALL=(ALL) ALL
/etc/sudoers.d/extra-file2:
groups:
bargroup:
- 'ALL=(ALL) NOPASSWD: ALL'
/etc/sudoers.d/extra-file3:
netgroups:
other_netgroup:
- ALL=(ALL) ALL
includedir: /etc/sudoers.d
manage_main_config: false
pkg: sudo
purge_includedir: false
users:
kitchen:
- 'ALL=(root) NOPASSWD: ALL'

View File

@ -0,0 +1,29 @@
# yamllint disable rule:indentation rule:line-length
# AlmaLinux-8
---
values:
append_included_files_to_endof_main_config: true
arch: amd64
configpath: /etc
execprefix: /usr/sbin
group: root
included_files:
/etc/sudoers.d/extra-file1:
users:
foo:
- ALL=(ALL) ALL
/etc/sudoers.d/extra-file2:
groups:
bargroup:
- 'ALL=(ALL) NOPASSWD: ALL'
/etc/sudoers.d/extra-file3:
netgroups:
other_netgroup:
- ALL=(ALL) ALL
includedir: /etc/sudoers.d
manage_main_config: false
pkg: sudo
purge_includedir: false
users:
kitchen:
- 'ALL=(root) NOPASSWD: ALL'

View File

@ -0,0 +1,29 @@
# -*- coding: utf-8 -*-
# vim: ft=yaml
---
name: appended
title: sudoers formula
maintainer: SaltStack Formulas
license: Apache-2.0
# yamllint disable-line rule:line-length
summary: Verify that the sudoers formula is setup and configured correctly (when appending to the main file)
depends:
- name: share
path: test/integration/share
supports:
- platform-name: debian
- platform-name: ubuntu
- platform-name: centos
- platform-name: fedora
- platform-name: opensuse
- platform-name: suse
- platform-name: freebsd
- platform-name: openbsd
- platform-name: amazon
- platform-name: oracle
- platform-name: arch
- platform-name: gentoo
- platform-name: almalinux
- platform-name: rocky
- platform-name: mac_os_x
- platform: windows

View File

@ -20,6 +20,7 @@ values:
- millert
- dowdy
- mikef
append_included_files_to_endof_main_config: false
arch: amd64
configpath: /etc
defaults:

View File

@ -20,6 +20,7 @@ values:
- millert
- dowdy
- mikef
append_included_files_to_endof_main_config: false
arch: amd64
configpath: /etc
defaults:

View File

@ -20,6 +20,7 @@ values:
- millert
- dowdy
- mikef
append_included_files_to_endof_main_config: false
arch: amd64
configpath: /etc
defaults:

View File

@ -20,6 +20,7 @@ values:
- millert
- dowdy
- mikef
append_included_files_to_endof_main_config: false
arch: amd64
configpath: /etc
defaults:

View File

@ -20,6 +20,7 @@ values:
- millert
- dowdy
- mikef
append_included_files_to_endof_main_config: false
arch: amd64
configpath: /etc
defaults:

View File

@ -20,6 +20,7 @@ values:
- millert
- dowdy
- mikef
append_included_files_to_endof_main_config: false
arch: amd64
configpath: /etc
defaults:

View File

@ -20,6 +20,7 @@ values:
- millert
- dowdy
- mikef
append_included_files_to_endof_main_config: false
arch: amd64
configpath: /etc
defaults:

View File

@ -20,6 +20,7 @@ values:
- millert
- dowdy
- mikef
append_included_files_to_endof_main_config: false
arch: amd64
configpath: /etc
defaults:

View File

@ -20,6 +20,7 @@ values:
- millert
- dowdy
- mikef
append_included_files_to_endof_main_config: false
arch: amd64
configpath: /etc
defaults:

View File

@ -20,6 +20,7 @@ values:
- millert
- dowdy
- mikef
append_included_files_to_endof_main_config: false
arch: amd64
configpath: /etc
defaults:

View File

@ -20,6 +20,7 @@ values:
- millert
- dowdy
- mikef
append_included_files_to_endof_main_config: false
arch: amd64
configpath: /etc
defaults:

View File

@ -20,6 +20,7 @@ values:
- millert
- dowdy
- mikef
append_included_files_to_endof_main_config: false
arch: amd64
configpath: /etc
defaults:

View File

@ -20,6 +20,7 @@ values:
- millert
- dowdy
- mikef
append_included_files_to_endof_main_config: false
arch: amd64
configpath: /etc
defaults:

View File

@ -20,6 +20,7 @@ values:
- millert
- dowdy
- mikef
append_included_files_to_endof_main_config: false
arch: amd64
configpath: /etc
defaults:

View File

@ -0,0 +1,71 @@
# yamllint disable rule:indentation rule:line-length
# Fedora-35
---
values:
aliases:
commands:
PROCESSES:
- /usr/bin/nice
- /bin/kill
- /usr/bin/renice
- /usr/bin/pkill
- /usr/bin/top
hosts:
WEBSERVERS:
- www1
- www2
- www3
users:
ADMINS:
- millert
- dowdy
- mikef
append_included_files_to_endof_main_config: false
arch: amd64
configpath: /etc
defaults:
command_list:
PROCESSES: noexec
generic:
- env_reset
- mail_badpass
- secure_path="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"
host_list:
www1: log_year, logfile=/var/log/sudo.log
runas_list:
root: '!set_logname'
user_list:
ADMINS: '!lecture'
johndoe: '!requiretty'
execprefix: /usr/sbin
group: root
groups:
sudo:
- ALL=(ALL) ALL
- 'ALL=(nodejs) NOPASSWD: ALL'
included_files:
/etc/sudoers.d/extra-file:
users:
foo:
- ALL=(ALL) ALL
extra-file-2:
groups:
bargroup:
- 'ALL=(ALL) NOPASSWD: ALL'
extra-file-3:
netgroups:
other_netgroup:
- ALL=(ALL) ALL
includedir: /etc/sudoers.d
manage_main_config: true
netgroups:
sysadmins:
- ALL=(ALL) ALL
pkg: sudo
purge_includedir: false
users:
johndoe:
- ALL=(ALL) ALL
- 'ALL=(root) NOPASSWD: /etc/init.d/httpd'
kitchen:
- 'ALL=(root) NOPASSWD: ALL'

View File

@ -0,0 +1,71 @@
# yamllint disable rule:indentation rule:line-length
# Fedora-36
---
values:
aliases:
commands:
PROCESSES:
- /usr/bin/nice
- /bin/kill
- /usr/bin/renice
- /usr/bin/pkill
- /usr/bin/top
hosts:
WEBSERVERS:
- www1
- www2
- www3
users:
ADMINS:
- millert
- dowdy
- mikef
append_included_files_to_endof_main_config: false
arch: amd64
configpath: /etc
defaults:
command_list:
PROCESSES: noexec
generic:
- env_reset
- mail_badpass
- secure_path="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"
host_list:
www1: log_year, logfile=/var/log/sudo.log
runas_list:
root: '!set_logname'
user_list:
ADMINS: '!lecture'
johndoe: '!requiretty'
execprefix: /usr/sbin
group: root
groups:
sudo:
- ALL=(ALL) ALL
- 'ALL=(nodejs) NOPASSWD: ALL'
included_files:
/etc/sudoers.d/extra-file:
users:
foo:
- ALL=(ALL) ALL
extra-file-2:
groups:
bargroup:
- 'ALL=(ALL) NOPASSWD: ALL'
extra-file-3:
netgroups:
other_netgroup:
- ALL=(ALL) ALL
includedir: /etc/sudoers.d
manage_main_config: true
netgroups:
sysadmins:
- ALL=(ALL) ALL
pkg: sudo
purge_includedir: false
users:
johndoe:
- ALL=(ALL) ALL
- 'ALL=(root) NOPASSWD: /etc/init.d/httpd'
kitchen:
- 'ALL=(root) NOPASSWD: ALL'

View File

@ -20,6 +20,7 @@ values:
- millert
- dowdy
- mikef
append_included_files_to_endof_main_config: false
arch: amd64
configpath: /etc
defaults:

View File

@ -20,6 +20,7 @@ values:
- millert
- dowdy
- mikef
append_included_files_to_endof_main_config: false
arch: amd64
configpath: /etc
defaults:

View File

@ -20,6 +20,7 @@ values:
- millert
- dowdy
- mikef
append_included_files_to_endof_main_config: false
arch: amd64
configpath: /etc
defaults:

View File

@ -20,6 +20,7 @@ values:
- millert
- dowdy
- mikef
append_included_files_to_endof_main_config: false
arch: amd64
configpath: /etc
defaults:

View File

@ -20,6 +20,7 @@ values:
- millert
- dowdy
- mikef
append_included_files_to_endof_main_config: false
arch: amd64
configpath: /etc
defaults:

View File

@ -20,6 +20,7 @@ values:
- millert
- dowdy
- mikef
append_included_files_to_endof_main_config: false
arch: amd64
configpath: /etc
defaults:

View File

@ -20,6 +20,7 @@ values:
- millert
- dowdy
- mikef
append_included_files_to_endof_main_config: false
arch: amd64
configpath: /etc
defaults:

View File

@ -20,6 +20,7 @@ values:
- millert
- dowdy
- mikef
append_included_files_to_endof_main_config: false
arch: amd64
configpath: /etc
defaults:

View File

@ -20,6 +20,7 @@ values:
- millert
- dowdy
- mikef
append_included_files_to_endof_main_config: false
arch: amd64
configpath: /etc
defaults:

View File

@ -20,6 +20,7 @@ values:
- millert
- dowdy
- mikef
append_included_files_to_endof_main_config: false
arch: amd64
configpath: /etc
defaults:

View File

@ -0,0 +1,71 @@
# yamllint disable rule:indentation rule:line-length
# Ubuntu-22.04
---
values:
aliases:
commands:
PROCESSES:
- /usr/bin/nice
- /bin/kill
- /usr/bin/renice
- /usr/bin/pkill
- /usr/bin/top
hosts:
WEBSERVERS:
- www1
- www2
- www3
users:
ADMINS:
- millert
- dowdy
- mikef
append_included_files_to_endof_main_config: false
arch: amd64
configpath: /etc
defaults:
command_list:
PROCESSES: noexec
generic:
- env_reset
- mail_badpass
- secure_path="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"
host_list:
www1: log_year, logfile=/var/log/sudo.log
runas_list:
root: '!set_logname'
user_list:
ADMINS: '!lecture'
johndoe: '!requiretty'
execprefix: /usr/sbin
group: root
groups:
sudo:
- ALL=(ALL) ALL
- 'ALL=(nodejs) NOPASSWD: ALL'
included_files:
/etc/sudoers.d/extra-file:
users:
foo:
- ALL=(ALL) ALL
extra-file-2:
groups:
bargroup:
- 'ALL=(ALL) NOPASSWD: ALL'
extra-file-3:
netgroups:
other_netgroup:
- ALL=(ALL) ALL
includedir: /etc/sudoers.d
manage_main_config: true
netgroups:
sysadmins:
- ALL=(ALL) ALL
pkg: sudo
purge_includedir: false
users:
johndoe:
- ALL=(ALL) ALL
- 'ALL=(root) NOPASSWD: /etc/init.d/httpd'
kitchen:
- 'ALL=(root) NOPASSWD: ALL'

View File

@ -24,4 +24,5 @@ supports:
- platform-name: gentoo
- platform-name: almalinux
- platform-name: rocky
- platform-name: mac_os_x
- platform: windows

View File

@ -21,4 +21,5 @@ supports:
- platform-name: gentoo
- platform-name: almalinux
- platform-name: rocky
- platform-name: mac_os_x
- platform: windows

View File

@ -4,6 +4,7 @@
# Author: Daniel Dehennin <daniel.dehennin@ac-dijon.fr>
# Copyright (C) 2020 Daniel Dehennin <daniel.dehennin@ac-dijon.fr>
# rubocop:disable Metrics/ClassLength
class SystemResource < Inspec.resource(1)
name 'system'
@ -21,7 +22,8 @@ class SystemResource < Inspec.resource(1)
family: build_platform_family,
name: build_platform_name,
release: build_platform_release,
finger: build_platform_finger
finger: build_platform_finger,
codename: build_platform_codename
}
end
@ -55,12 +57,16 @@ class SystemResource < Inspec.resource(1)
'base-latest'
when 'gentoo'
"#{inspec.platform[:release].split('.')[0]}-#{derive_gentoo_init_system}"
when 'mac_os_x'
inspec.command('sw_vers -productVersion').stdout.to_s
when 'opensuse'
# rubocop:disable Style/NumericLiterals,Layout/LineLength
inspec.platform[:release].to_i > 20210101 ? 'tumbleweed' : inspec.platform[:release]
# rubocop:enable Style/NumericLiterals,Layout/LineLength
when 'windows_8.1_pro'
'8.1'
when 'windows_server_2022_datacenter'
'2022-server'
when 'windows_server_2019_datacenter'
'2019-server'
when 'windows_server_2016_datacenter'
@ -87,4 +93,46 @@ class SystemResource < Inspec.resource(1)
build_platform_release.split('.')[0]
end
end
# rubocop:disable Metrics/MethodLength,Metrics/CyclomaticComplexity
def build_platform_codename
case build_platform_finger
when 'ubuntu-22.04'
'jammy'
when 'ubuntu-20.04'
'focal'
when 'ubuntu-18.04'
'bionic'
when 'debian-11'
'bullseye'
when 'debian-10'
'buster'
when 'debian-9'
'stretch'
when 'almalinux-8'
"AlmaLinux #{build_platform_release} (Arctic Sphynx)"
when 'amazonlinux-2'
'Amazon Linux 2'
when 'arch-base-latest'
'Arch Linux'
when 'centos-7'
'CentOS Linux 7 (Core)'
when 'centos-8'
'CentOS Stream 8'
when 'opensuse-tumbleweed'
'openSUSE Tumbleweed'
when 'opensuse-15'
"openSUSE Leap #{build_platform_release}"
when 'oraclelinux-8', 'oraclelinux-7'
"Oracle Linux Server #{build_platform_release}"
when 'gentoo-2-sysd', 'gentoo-2-sysv'
'Gentoo/Linux'
when 'rockylinux-8'
"Rocky Linux #{build_platform_release} (Green Obsidian)"
else
''
end
end
# rubocop:enable Metrics/MethodLength,Metrics/CyclomaticComplexity
end
# rubocop:enable Metrics/ClassLength

View File

@ -0,0 +1,19 @@
# -*- coding: utf-8 -*-
# vim: ft=yaml
---
sudoers:
manage_main_config: false
included_files:
/etc/sudoers.d/extra-file1:
users:
foo:
- 'ALL=(ALL) ALL'
/etc/sudoers.d/extra-file2:
groups:
bargroup:
- 'ALL=(ALL) NOPASSWD: ALL'
/etc/sudoers.d/extra-file3:
netgroups:
other_netgroup:
- 'ALL=(ALL) ALL'
append_included_files_to_endof_main_config: true