# -*- coding: utf-8 -*-
# vim: ft=yaml
---
# For help on this file's format, see https://kitchen.ci/
driver:
  name: docker
  use_sudo: false
  privileged: true
  run_command: /usr/lib/systemd/systemd

provisioner:
  name: salt_solo
  log_level: debug
  salt_install: none
  require_chef: false
  formula: letsencrypt
  salt_copy_filter:
    - .kitchen
    - .git

platforms:
  ## SALT `tiamat`
  - name: debian-11-tiamat-py3
    driver:
      image: saltimages/salt-tiamat-py3:debian-11
      run_command: /lib/systemd/systemd
  - name: debian-10-tiamat-py3
    driver:
      image: saltimages/salt-tiamat-py3:debian-10
      run_command: /lib/systemd/systemd
  - name: debian-9-tiamat-py3
    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
      run_command: /lib/systemd/systemd
  - name: ubuntu-1804-tiamat-py3
    driver:
      image: saltimages/salt-tiamat-py3:ubuntu-18.04
      run_command: /lib/systemd/systemd
  - name: centos-stream8-tiamat-py3
    driver:
      image: saltimages/salt-tiamat-py3:centos-stream8
  - name: centos-7-tiamat-py3
    driver:
      image: saltimages/salt-tiamat-py3:centos-7
  - name: amazonlinux-2-tiamat-py3
    driver:
      image: saltimages/salt-tiamat-py3:amazonlinux-2
  - name: oraclelinux-8-tiamat-py3
    driver:
      image: saltimages/salt-tiamat-py3:oraclelinux-8
  - name: oraclelinux-7-tiamat-py3
    driver:
      image: saltimages/salt-tiamat-py3:oraclelinux-7
  - name: almalinux-8-tiamat-py3
    driver:
      image: saltimages/salt-tiamat-py3:almalinux-8
  - name: rockylinux-8-tiamat-py3
    driver:
      image: saltimages/salt-tiamat-py3:rockylinux-8

  ## SALT `master`
  - name: debian-11-master-py3
    driver:
      image: saltimages/salt-master-py3:debian-11
      run_command: /lib/systemd/systemd
  - name: debian-10-master-py3
    driver:
      image: saltimages/salt-master-py3:debian-10
      run_command: /lib/systemd/systemd
  - name: debian-9-master-py3
    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
      run_command: /lib/systemd/systemd
  - name: ubuntu-1804-master-py3
    driver:
      image: saltimages/salt-master-py3:ubuntu-18.04
      run_command: /lib/systemd/systemd
  - name: centos-stream8-master-py3
    driver:
      image: saltimages/salt-master-py3:centos-stream8
  - name: centos-7-master-py3
    driver:
      image: saltimages/salt-master-py3:centos-7
  - name: fedora-36-master-py3
    driver:
      image: saltimages/salt-master-py3:fedora-36
  - name: fedora-35-master-py3
    driver:
      image: saltimages/salt-master-py3:fedora-35
  - name: opensuse-leap-153-master-py3
    driver:
      image: saltimages/salt-master-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-tmbl-latest-master-py3
    driver:
      image: saltimages/salt-master-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-master-py3
    driver:
      image: saltimages/salt-master-py3:amazonlinux-2
  - name: oraclelinux-8-master-py3
    driver:
      image: saltimages/salt-master-py3:oraclelinux-8
  - name: oraclelinux-7-master-py3
    driver:
      image: saltimages/salt-master-py3:oraclelinux-7
  - name: arch-base-latest-master-py3
    driver:
      image: saltimages/salt-master-py3:arch-base-latest
  - name: gentoo-stage3-latest-master-py3
    driver:
      image: saltimages/salt-master-py3:gentoo-stage3-latest
      run_command: /sbin/init
  - name: gentoo-stage3-systemd-master-py3
    driver:
      image: saltimages/salt-master-py3:gentoo-stage3-systemd
  - name: almalinux-8-master-py3
    driver:
      image: saltimages/salt-master-py3:almalinux-8
  - name: rockylinux-8-master-py3
    driver:
      image: saltimages/salt-master-py3:rockylinux-8

  ## SALT `3004.1`
  - name: debian-11-3004-1-py3
    driver:
      image: saltimages/salt-3004.1-py3:debian-11
      run_command: /lib/systemd/systemd
  - name: debian-10-3004-1-py3
    driver:
      image: saltimages/salt-3004.1-py3:debian-10
      run_command: /lib/systemd/systemd
  - name: debian-9-3004-1-py3
    driver:
      image: saltimages/salt-3004.1-py3:debian-9
      run_command: /lib/systemd/systemd
  - name: ubuntu-2204-3004-1-py3
    driver:
      image: saltimages/salt-3004.1-py3:ubuntu-22.04
      run_command: /lib/systemd/systemd
  - name: ubuntu-2004-3004-1-py3
    driver:
      image: saltimages/salt-3004.1-py3:ubuntu-20.04
      run_command: /lib/systemd/systemd
  - name: ubuntu-1804-3004-1-py3
    driver:
      image: saltimages/salt-3004.1-py3:ubuntu-18.04
      run_command: /lib/systemd/systemd
  - name: centos-stream8-3004-1-py3
    driver:
      image: saltimages/salt-3004.1-py3:centos-stream8
  - name: centos-7-3004-1-py3
    driver:
      image: saltimages/salt-3004.1-py3:centos-7
  - name: fedora-36-3004-1-py3
    driver:
      image: saltimages/salt-3004.1-py3:fedora-36
  - name: fedora-35-3004-1-py3
    driver:
      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-tmbl-latest-3004-0-py3
    driver:
      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 `3003.4`
  - name: debian-10-3003-4-py3
    driver:
      image: saltimages/salt-3003.4-py3:debian-10
      run_command: /lib/systemd/systemd
  - name: debian-9-3003-4-py3
    driver:
      image: saltimages/salt-3003.4-py3:debian-9
      run_command: /lib/systemd/systemd
  - name: ubuntu-2004-3003-4-py3
    driver:
      image: saltimages/salt-3003.4-py3:ubuntu-20.04
      run_command: /lib/systemd/systemd
  - name: ubuntu-1804-3003-4-py3
    driver:
      image: saltimages/salt-3003.4-py3:ubuntu-18.04
      run_command: /lib/systemd/systemd
  - name: centos-stream8-3003-4-py3
    driver:
      image: saltimages/salt-3003.4-py3:centos-stream8
  - name: centos-7-3003-4-py3
    driver:
      image: saltimages/salt-3003.4-py3:centos-7
  - name: amazonlinux-2-3003-4-py3
    driver:
      image: saltimages/salt-3003.4-py3:amazonlinux-2
  - name: oraclelinux-8-3003-4-py3
    driver:
      image: saltimages/salt-3003.4-py3:oraclelinux-8
  - name: oraclelinux-7-3003-4-py3
    driver:
      image: saltimages/salt-3003.4-py3:oraclelinux-7
  - name: almalinux-8-3003-4-py3
    driver:
      image: saltimages/salt-3003.4-py3:almalinux-8

verifier:
  # https://www.inspec.io/
  name: inspec
  sudo: true
  reporter:
    # cli, documentation, html, progress, json, json-min, json-rspec, junit
    - cli

suites:
  - name: git
    provisioner:
      state_top:
        base:
          '*':
            - letsencrypt._mapdata
            - letsencrypt.install
            - letsencrypt.config
      pillars:
        top.sls:
          base:
            '*':
              - letsencrypt
      pillars_from_files:
        letsencrypt.sls: test/salt/pillar/git.sls
    verifier:
      inspec_tests:
        - path: test/integration/git
  - name: deb
    includes:
      - debian-11-tiamat-py3
      - debian-10-tiamat-py3
      - debian-9-tiamat-py3
      - debian-11-master-py3
      - debian-10-master-py3
      - debian-9-master-py3
      - debian-11-3004-1-py3
      - debian-10-3004-1-py3
      - debian-9-3004-1-py3
      - debian-10-3003-4-py3
      - debian-9-3003-4-py3
    provisioner:
      dependencies:
        - name: apt
          repo: git
          source: https://github.com/saltstack-formulas/apt-formula.git
      state_top:
        base:
          '*':
            - letsencrypt._mapdata
            - apt.repositories
            - apt.preferences
            - apt.update
            - letsencrypt.install
            - letsencrypt.config
      pillars:
        top.sls:
          base:
            '*':
              - apt
              - letsencrypt
      pillars_from_files:
        apt.sls: test/salt/pillar/apt.sls
        letsencrypt.sls: test/salt/pillar/deb.sls
    verifier:
      inspec_tests:
        - path: test/integration/deb
  - name: rpm
    includes:
      - centos-stream8-tiamat-py3
      - centos-7-tiamat-py3
      - amazonlinux-2-tiamat-py3
      - oraclelinux-8-tiamat-py3
      - oraclelinux-7-tiamat-py3
      - almalinux-8-tiamat-py3
      - rockylinux-8-tiamat-py3
      - centos-stream8-master-py3
      - centos-7-master-py3
      - fedora-36-master-py3
      - fedora-35-master-py3
      - amazonlinux-2-master-py3
      - oraclelinux-8-master-py3
      - oraclelinux-7-master-py3
      - almalinux-8-master-py3
      - rockylinux-8-master-py3
      - centos-stream8-3004-1-py3
      - centos-7-3004-1-py3
      - fedora-36-3004-1-py3
      - fedora-35-3004-1-py3
      - amazonlinux-2-3004-1-py3
      - oraclelinux-8-3004-1-py3
      - oraclelinux-7-3004-1-py3
      - almalinux-8-3004-1-py3
      - rockylinux-8-3004-1-py3
      - centos-stream8-3003-4-py3
      - centos-7-3003-4-py3
      - amazonlinux-2-3003-4-py3
      - oraclelinux-8-3003-4-py3
      - oraclelinux-7-3003-4-py3
      - almalinux-8-3003-4-py3
    provisioner:
      state_top:
        base:
          '*':
            - letsencrypt._mapdata
            - letsencrypt.install
            - letsencrypt.config
      pillars:
        top.sls:
          base:
            '*':
              - letsencrypt
      pillars_from_files:
        letsencrypt.sls: test/salt/pillar/rpm.sls
    verifier:
      inspec_tests:
        - path: test/integration/rpm
  - name: domains
    includes:
      - debian-11-tiamat-py3
      - debian-10-tiamat-py3
      - debian-9-tiamat-py3
      - ubuntu-2204-tiamat-py3
      - ubuntu-2004-tiamat-py3
      - ubuntu-1804-tiamat-py3
      - debian-11-master-py3
      - debian-10-master-py3
      - debian-9-master-py3
      - ubuntu-2204-master-py3
      - ubuntu-2004-master-py3
      - ubuntu-1804-master-py3
      - debian-11-3004-1-py3
      - debian-10-3004-1-py3
      - debian-9-3004-1-py3
      - ubuntu-2204-3004-1-py3
      - ubuntu-2004-3004-1-py3
      - ubuntu-1804-3004-1-py3
      - debian-10-3003-4-py3
      - debian-9-3003-4-py3
      - ubuntu-2004-3003-4-py3
      - ubuntu-1804-3003-4-py3
    provisioner:
      dependencies:
        - name: states
          path: ./test/salt
      state_top:
        base:
          '*':
            - letsencrypt._mapdata
            - states.install_letsencrypt_test_server
            - letsencrypt
      pillars:
        top.sls:
          base:
            '*':
              - letsencrypt
      pillars_from_files:
        letsencrypt.sls: test/salt/pillar/domains.sls
    verifier:
      inspec_tests:
        - path: test/integration/domains
  - name: pip
    provisioner:
      state_top:
        base:
          '*':
            - letsencrypt._mapdata
            - letsencrypt.install
            - letsencrypt.config
      pillars:
        top.sls:
          base:
            '*':
              - letsencrypt
      pillars_from_files:
        letsencrypt.sls: test/salt/pillar/pip.sls
    verifier:
      inspec_tests:
        - path: test/integration/pip