Skip to content

Commit

Permalink
test: add salt pre test scripts and pillar
Browse files Browse the repository at this point in the history
  • Loading branch information
genaumann committed Jan 29, 2024
1 parent c471522 commit 49a0d5f
Show file tree
Hide file tree
Showing 8 changed files with 127 additions and 0 deletions.
15 changes: 15 additions & 0 deletions kitchen.yml
Original file line number Diff line number Diff line change
Expand Up @@ -30,14 +30,23 @@ suites:
state_top:
base:
"*":
- pre.pkg
- pre.pebble
- docker
- docker.compose
- docker.compose.up
- pre.dns
- pre.env
- acme_sh
pillars_from_files:
acme_sh.sls: test/salt/pillar/acme_sh.sls
pebble.sls: test/salt/pillar/pebble.sls
pillars:
top.sls:
base:
"*":
- acme_sh
- pebble
verifier:
inspec_tests:
- path: test/integration/default
Expand All @@ -53,6 +62,12 @@ provisioner:
- .git/
- .github/
- .kitchen/
dependencies:
- name: docker
repo: git
source: https://github.com/saltstack-formulas/docker-formula
- name: pre
path: ./test/salt/state

verifier:
name: inspec
30 changes: 30 additions & 0 deletions test/salt/pillar/acme_sh.sls
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
---
{%- set os = grains['os'] | lower %}
{%- set osrelease = grains['osrelease'] | regex_replace('(\.)', '') | lower %}
{%- set release_str = os + osrelease %}
_release_str: {{ release_str }}
acme_sh:
vagrant:
email: [email protected]
certs:
{{ 'acmesh' ~ release_str ~ '.gn98.de' }}:
acme_mode: dns
dns_plugin: dns_hetzner
keysize: '4096'
server: letsencrypt_test
cert_path: /home/vagrant/crt
standalone.gn98.de:
acme_mode: standalone
server: https://localhost:14000/dir
keysize: '2048'
cert_path: /home/vagrant/crt
insecure: true
http_port: '5002'
aliases:
- www.standalone.gn98.de
alpn.gn98.de:
acme_mode: standalone-tls-alpn
http_port: '5001'
server: https://localhost:14000/dir
cert_path: /home/vagrant/crt
insecure: true
29 changes: 29 additions & 0 deletions test/salt/pillar/pebble.sls
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
---
docker:
wanted:
- docker
- compose
pkg:
{%- if grains['os'] == 'Rocky' %}
deps:
- python3-pip
- git
- tar
- python3-dnf-plugin-versionlock
{%- elif grains['os'] == "SUSE" %}
deps:
- python3-pip
- python3-docker
- git
- tar
{%- endif %}
docker:
use_upstream: repo
compose:
use_upstream: binary

compose:
applications:
- pebble
pebble:
path: /opt/pebble/docker-compose.yml
2 changes: 2 additions & 0 deletions test/salt/state/pre/dns/init.sls
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
include:
- .pebble
23 changes: 23 additions & 0 deletions test/salt/state/pre/dns/pebble.sls
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
{%- set dns = ['standalone.gn98.de', 'www.standalone.gn98.de', 'alpn.gn98.de'] %}

pebble_sleep:
module.run:
- test.sleep:
- 15

{%- for entry in dns %}
{%- set data = {"host": entry, "addresses": [grains['ipv4'][0]]} %}
pebble_set_dns_{{ entry }}:
http.query:
- name: http://localhost:8055/add-a
- method: POST
- data: '{{ data | json | string }}'
- header_dict:
Content-Type: application/json
- status: 200
- require:
- module: pebble_sleep
host.present:
- name: {{ entry }}
- ip: {{ grains['ipv4'][0] }}
{%- endfor %}
7 changes: 7 additions & 0 deletions test/salt/state/pre/env.sls
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
{%- set release_string = salt['pillar.get']('_release_str') %}
{%- set hetzner_token = salt['environ.get']('HETZNER_TOKEN') %}

{%- do salt['environ.setenv'](
{'ACMESH_vagrant_acmesh' ~ release_string ~ 'Gn98De_HETZNER_Token': hetzner_token}
)
%}
4 changes: 4 additions & 0 deletions test/salt/state/pre/pebble.sls
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
pebble_clone:
git.cloned:
- name: https://github.com/letsencrypt/pebble
- target: /opt/pebble
17 changes: 17 additions & 0 deletions test/salt/state/pre/pkg.sls
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
{%- set pkgs = ['socat'] %}

pkg_pre-install:
pkg.installed:
- pkgs: {{ pkgs }}

pkg_install_docker_pip:
pip.installed:
- name: docker <= 6.1.3 # see https://github.com/geerlingguy/internet-pi/issues/567
- reload_modules: True

pkg_install_docker-compose_pip:
pip.installed:
- name: docker-compose
- extra_args:
- --no-build-isolation # see https://stackoverflow.com/questions/76708329/docker-compose-no-longer-building-image-attributeerror-cython-sources
- reload_modules: True

0 comments on commit 49a0d5f

Please sign in to comment.