Skip to content

Commit

Permalink
test(pillar): use static test/salt/pillar/top.sls
Browse files Browse the repository at this point in the history
The kitchen-salt provisionner have the `pillars_from_directories`
option to recusively copy directories under target pillar root.

This has 3 advantages:

- simplify `kitchen.yml`

- manage pillar assignment with standard salt targetting mechanism,
  this avoid the dedicated `gentoo` suite (it could have been done
  from `kitchen.yml` itself by the way)

- ease the test outside kitchen by running `salt-call` directly with
  `--pillar-root` like:
  ```
  salt-call --local --id test-minion.example.net \
    --file-root=template-formula/ \
    --pillar-root=template-formula/test/salt/pillar/ \
    state.show_sls TEMPLATE
  ```

* pillar.example: remove settings for testing purpose.

* test/salt/pillar/top.sls: limit `gentoo` pillars based on `os_family`
  grain.

* test/salt/pillar/defaults.sls: base pillar dedicated to tests.

* kitchen.yml (suites): remove the now useless `gentoo` suite.
  Define `pillars_from_directories` to copy them under `pillar_root`.
  Remove useless `pillars_from_files`.

* .gitlab-ci.yml: fix gentoo suite name

* .gitignore: do not ignore test pillar `top.sls`
  • Loading branch information
baby-gnu authored and myii committed Nov 16, 2021
1 parent bf9a9bd commit 7708e12
Show file tree
Hide file tree
Showing 5 changed files with 83 additions and 73 deletions.
16 changes: 8 additions & 8 deletions .gitlab-ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -197,8 +197,8 @@ 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'}
gentoo-gentoo-stage3-latest-master-py3: {extends: '.test_instance'}
gentoo-gentoo-stage3-systemd-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-3-py3: {extends: '.test_instance'}
Expand All @@ -217,8 +217,8 @@ default-rockylinux-8-master-py3: {extends: '.test_instance'}
# default-oraclelinux-8-3003-3-py3: {extends: '.test_instance'}
# default-oraclelinux-7-3003-3-py3: {extends: '.test_instance'}
# default-arch-base-latest-3003-3-py3: {extends: '.test_instance'}
# gentoo-gentoo-stage3-latest-3003-3-py3: {extends: '.test_instance'}
# gentoo-gentoo-stage3-systemd-3003-3-py3: {extends: '.test_instance'}
# default-gentoo-stage3-latest-3003-3-py3: {extends: '.test_instance'}
# default-gentoo-stage3-systemd-3003-3-py3: {extends: '.test_instance'}
# default-almalinux-8-3003-3-py3: {extends: '.test_instance'}
# default-debian-11-3002-7-py3: {extends: '.test_instance'}
# default-debian-10-3002-7-py3: {extends: '.test_instance'}
Expand All @@ -236,8 +236,8 @@ default-rockylinux-8-master-py3: {extends: '.test_instance'}
# default-oraclelinux-8-3002-7-py3: {extends: '.test_instance'}
# default-oraclelinux-7-3002-7-py3: {extends: '.test_instance'}
# default-arch-base-latest-3002-7-py3: {extends: '.test_instance'}
# gentoo-gentoo-stage3-latest-3002-7-py3: {extends: '.test_instance'}
# gentoo-gentoo-stage3-systemd-3002-7-py3: {extends: '.test_instance'}
# default-gentoo-stage3-latest-3002-7-py3: {extends: '.test_instance'}
# default-gentoo-stage3-systemd-3002-7-py3: {extends: '.test_instance'}
# default-debian-10-3001-8-py3: {extends: '.test_instance'}
# default-debian-9-3001-8-py3: {extends: '.test_instance'}
# default-ubuntu-2004-3001-8-py3: {extends: '.test_instance'}
Expand All @@ -253,8 +253,8 @@ default-rockylinux-8-master-py3: {extends: '.test_instance'}
# default-oraclelinux-8-3001-8-py3: {extends: '.test_instance'}
# default-oraclelinux-7-3001-8-py3: {extends: '.test_instance'}
# default-arch-base-latest-3001-8-py3: {extends: '.test_instance'}
# gentoo-gentoo-stage3-latest-3001-8-py3: {extends: '.test_instance'}
# gentoo-gentoo-stage3-systemd-3001-8-py3: {extends: '.test_instance'}
# default-gentoo-stage3-latest-3001-8-py3: {extends: '.test_instance'}
# default-gentoo-stage3-systemd-3001-8-py3: {extends: '.test_instance'}

###############################################################################
# `release` stage: `semantic-release`
Expand Down
50 changes: 2 additions & 48 deletions kitchen.yml
Original file line number Diff line number Diff line change
Expand Up @@ -373,60 +373,14 @@ verifier:

suites:
- name: default
excludes:
- gentoo-stage3-latest-master-py3
- gentoo-stage3-systemd-master-py3
- gentoo-stage3-latest-3003-3-py3
- gentoo-stage3-systemd-3003-3-py3
- gentoo-stage3-latest-3002-7-py3
- gentoo-stage3-systemd-3002-7-py3
- gentoo-stage3-latest-3001-8-py3
- gentoo-stage3-systemd-3001-8-py3
provisioner:
state_top:
base:
'*':
- TEMPLATE._mapdata
- TEMPLATE
pillars:
top.sls:
base:
'*':
- TEMPLATE
- define_roles
pillars_from_files:
TEMPLATE.sls: pillar.example
define_roles.sls: test/salt/pillar/define_roles.sls
verifier:
inspec_tests:
- path: test/integration/default
- name: gentoo
includes:
- gentoo-stage3-latest-master-py3
- gentoo-stage3-systemd-master-py3
- gentoo-stage3-latest-3003-3-py3
- gentoo-stage3-systemd-3003-3-py3
- gentoo-stage3-latest-3002-7-py3
- gentoo-stage3-systemd-3002-7-py3
- gentoo-stage3-latest-3001-8-py3
- gentoo-stage3-systemd-3001-8-py3
provisioner:
state_top:
base:
'*':
- TEMPLATE._mapdata
- TEMPLATE
pillars:
top.sls:
base:
'*':
- TEMPLATE
- gentoo
- define_roles
pillars_from_files:
TEMPLATE.sls: pillar.example
gentoo.sls: test/salt/pillar/gentoo.sls
define_roles.sls: test/salt/pillar/define_roles.sls
pillars_from_directories:
- test/salt/pillar
verifier:
inspec_tests:
- path: test/integration/default
21 changes: 4 additions & 17 deletions pillar.example
Original file line number Diff line number Diff line change
Expand Up @@ -4,9 +4,6 @@
TEMPLATE:
lookup:
master: template-master
# Just for testing purposes
winner: lookup
added_in_lookup: lookup_value

# Using bash package and udev service as an example. This allows us to
# test the template formula itself. You should set these parameters to
Expand All @@ -30,28 +27,18 @@ TEMPLATE:
- osfinger
- os
- os_family

# All aspects of path/file resolution are customisable using the options below.
# This is unnecessary in most cases; there are sensible defaults.
# Default path: salt://< path_prefix >/< dirs.files >/< dirs.default >
# I.e.: salt://TEMPLATE/files/default
# I.e.: salt://TEMPLATE/files/default
# path_prefix: template_alt
# dirs:
# files: files_alt
# default: default_alt
# The entries under `source_files` are prepended to the default source files
# given for the state
# source_files:
# TEMPLATE-config-file-file-managed:
# - 'example_alt.tmpl'
# - 'example_alt.tmpl.jinja'

# For testing purposes
source_files:
TEMPLATE-config-file-file-managed:
- 'example.tmpl.jinja'
TEMPLATE-subcomponent-config-file-file-managed:
- 'subcomponent-example.tmpl.jinja'

# Just for testing purposes
winner: pillar
added_in_pillar: pillar_value
- 'example_alt.tmpl'
- 'example_alt.tmpl.jinja'
57 changes: 57 additions & 0 deletions test/salt/pillar/defaults.sls
Original file line number Diff line number Diff line change
@@ -0,0 +1,57 @@
# -*- coding: utf-8 -*-
# vim: ft=yaml
---
TEMPLATE:
lookup:
master: template-master
# Just for testing purposes
winner: lookup
added_in_lookup: lookup_value

# Using bash package and udev service as an example. This allows us to
# test the template formula itself. You should set these parameters to
# examples that make sense in the contexto of the formula you're writing.
pkg:
name: bash
service:
name: systemd-journald
config: /etc/template-formula.conf

tofs:
# The files_switch key serves as a selector for alternative
# directories under the formula files directory. See TOFS pattern
# doc for more info.
# Note: Any value not evaluated by `config.get` will be used literally.
# This can be used to set custom paths, as many levels deep as required.
files_switch:
- any/path/can/be/used/here
- id
- roles
- osfinger
- os
- os_family
# All aspects of path/file resolution are customisable using the options below.
# This is unnecessary in most cases; there are sensible defaults.
# Default path: salt://< path_prefix >/< dirs.files >/< dirs.default >
# I.e.: salt://TEMPLATE/files/default
# path_prefix: template_alt
# dirs:
# files: files_alt
# default: default_alt
# The entries under `source_files` are prepended to the default source files
# given for the state
# source_files:
# TEMPLATE-config-file-file-managed:
# - 'example_alt.tmpl'
# - 'example_alt.tmpl.jinja'

# For testing purposes
source_files:
TEMPLATE-config-file-file-managed:
- 'example.tmpl.jinja'
TEMPLATE-subcomponent-config-file-file-managed:
- 'subcomponent-example.tmpl.jinja'

# Just for testing purposes
winner: pillar
added_in_pillar: pillar_value
12 changes: 12 additions & 0 deletions test/salt/pillar/top.sls
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
# -*- coding: utf-8 -*-
# vim: ft=yaml
---
base:
'*':
- defaults
'os_family:Gentoo':
- match: grain
- gentoo
'os:*':
- define_roles
...

0 comments on commit 7708e12

Please sign in to comment.