saltstack/salt

View on GitHub
.kitchen.yml

Summary

Maintainability
Test Coverage
---
<% vagrant = system('gem list -i kitchen-vagrant 2>/dev/null >/dev/null') %>
<% version = '2018.3.3' %>
<% platformsfile = ENV['SALT_KITCHEN_PLATFORMS'] || '.kitchen/platforms.yml' %>
<% driverfile = ENV['SALT_KITCHEN_DRIVER'] || '.kitchen/driver.yml' %>
<% verifierfile = ENV['SALT_KITCHEN_VERIFIER'] || '.kitchen/verifier.yml' %>

<% if File.exists?(driverfile) %>
<%= ERB.new(File.read(driverfile)).result %>
<% else %>
driver:
  name: docker
  use_sudo: false
  hostname: salt
  privileged: true
  username: kitchen
  volume:
    - /var/run/docker.sock:/docker.sock
  cap_add:
    - sys_admin
  disable_upstart: false
  provision_command:
    - echo 'L /run/docker.sock - - - - /docker.sock' > /etc/tmpfiles.d/docker.conf
transport:
  name: rsync
<% end %>

provisioner:
  name: salt_solo
  salt_install: bootstrap
  salt_version: latest
  salt_bootstrap_url: https://bootstrap.saltstack.com
  salt_bootstrap_options: -X -p rsync git v<%= version %>
  log_level: info
  sudo: true
  require_chef: false
  retry_on_exit_code:
    - 139
  max_retries: 2
  remote_states:
    name: git://github.com/saltstack/salt-jenkins.git
    branch: develop
    repo: git
    testingdir: /testing
  salt_copy_filter:
    - __pycache__
    - '*.pyc'
    - .bundle
    - .tox
    - .nox
    - .kitchen
    - artifacts
    - Gemfile.lock
  state_top:
    base:
      "os:Windows":
        - match: grain
        - windows
      "*":
        - <%= ENV['KITCHEN_STATE'] || 'git.salt' %>
  pillars:
    top.sls:
      base:
        "*":
          - jenkins
        "os:Windows":
          - match: grain
          - windows
    jenkins.sls:
      testing_dir: "{{salt.config.get('root_dir')|replace('\\', '\\\\')}}/testing"
      clone_repo: false
      salttesting_namespec: salttesting==2017.6.1
    windows.sls:
      virtualenv_path: 'c:\Python27\Scripts\pip.exe'
<% if File.exists?(platformsfile) %>
<%= ERB.new(File.read(platformsfile)).result %>
<% else %>
platforms:
  - name: fedora
    driver_config:
      image: fedora:latest
      run_command: /usr/lib/systemd/systemd
    provisioner:
      salt_bootstrap_options: -X -p rsync git v<%= version %> >/dev/null
  - name: centos-7
    driver_config:
      run_command: /usr/lib/systemd/systemd
  - name: centos-6
    driver_config:
      run_command: /sbin/init
      provision_command:
        - yum install -y upstart
    provisioner:
      salt_bootstrap_options: -P -p rsync -y -x python2.7 -X git v<%= version %> >/dev/null
  - name: ubuntu-18.04
    driver_config:
      run_command: /lib/systemd/systemd
  - name: ubuntu-16.04
    driver_config:
      run_command: /lib/systemd/systemd
  - name: ubuntu-14.04
    driver_config:
      run_command: /sbin/init
      provision_command:
        - rm -f /sbin/initctl
        - dpkg-divert --local --rename --remove /sbin/initctl
  - name: debian-8
    driver_config:
      run_command: /lib/systemd/systemd
      provision_command:
        - apt-get install -y dbus
        - echo 'L /run/docker.sock - - - - /docker.sock' > /etc/tmpfiles.d/docker.conf
  - name: debian-9
    driver_config:
      run_command: /lib/systemd/systemd
  - name: arch
    driver_config:
      image: archlinux/base
      run_command: /usr/lib/systemd/systemd
      provision_command:
        - pacman -Syu --noconfirm systemd
        - systemctl enable sshd
        - echo 'L /run/docker.sock - - - - /docker.sock' > /etc/tmpfiles.d/docker.conf
    provisioner:
      salt_bootstrap_options: -X -p rsync git v<%= version %> >/dev/null
  - name: opensuse-15
    driver_config:
      image: opensuse/leap:15.0
      run_command: /usr/lib/systemd/systemd
      provision_command:
        - zypper --non-interactive install --auto-agree-with-licenses dbus-1
        - systemctl enable sshd.service
        - echo 'L /run/docker.sock - - - - /docker.sock' > /etc/tmpfiles.d/docker.conf
    provisioner:
      salt_bootstrap_options: -qXU -x python2 git v<%= @version %>
  - name: opensuse-42.3
    driver_config:
      image: opensuse/leap:42.3
      run_command: /usr/lib/systemd/systemd
      provision_command:
        - zypper --non-interactive install --auto-agree-with-licenses dbus-1
        - systemctl enable sshd.service
        - echo 'L /run/docker.sock - - - - /docker.sock' > /etc/tmpfiles.d/docker.conf
<% if vagrant != false %>
  - name: windows-2012r2
    driver:
      box: mwrock/Windows2012R2
      name: vagrant
      gui: true
    transport:
      name: winrm
      username: Administrator
      password: Pass@word1
    provisioner:
      init_environment: |
        Clear-Host
        $AddedLocation ="c:\salt;c:\salt\bin\Scripts"
        $Reg = "Registry::HKLM\System\CurrentControlSet\Control\Session Manager\Environment"
        $OldPath = (Get-ItemProperty -Path $Reg -Name PATH).Path
        $NewPath= $OldPath + ";" + $AddedLocation
        Set-ItemProperty -Path $Reg -Value $NewPath -Name PATH
        reg add "hklm\system\currentcontrolset\control\session manager\memory management" /v pagingfiles /t reg_multi_sz /d "d:\pagefile.sys 4096 8192" /f
        winrm set winrm/config/winrs '@{MaxMemoryPerShellMB="5000"}'
      salt_bootstrap_url: https://raw.githubusercontent.com/saltstack/salt-bootstrap/develop/bootstrap-salt.ps1
      salt_bootstrap_options: ''
    verifier:
      windows: true
      types:
        - unit
      coverage_xml: false
      save:
        $env:TEMP/salt-runtests.log: artifacts/logs/salt-runtests.log
        /salt/var/log/salt/minion: artifacts/logs/minion
  - name: windows-2016
    driver:
      box: mwrock/Windows2016
      name: vagrant
      gui: true
      customize:
        cpus: 4
        memory: 8192
    transport:
      name: winrm
      username: Vagrant
      password: vagrant
    provisioner:
      salt_bootstrap_url: https://raw.githubusercontent.com/saltstack/salt-bootstrap/develop/bootstrap-salt.ps1
      salt_bootstrap_options: -version <%= version %>
      init_environment: |
        Clear-Host
        $AddedLocation ="c:\salt;c:\salt\bin\Scripts"
        $Reg = "Registry::HKLM\System\CurrentControlSet\Control\Session Manager\Environment"
        $OldPath = (Get-ItemProperty -Path $Reg -Name PATH).Path
        $NewPath= $OldPath + ";" + $AddedLocation
        Set-ItemProperty -Path $Reg -Value $NewPath -Name PATH
        reg add "hklm\system\currentcontrolset\control\session manager\memory management" /v pagingfiles /t reg_multi_sz /d "d:\pagefile.sys 4096 8192" /f
        winrm set winrm/config/winrs '@{MaxMemoryPerShellMB="5000"}'
      salt_bootstrap_url: https://raw.githubusercontent.com/saltstack/salt-bootstrap/develop/bootstrap-salt.ps1
      salt_bootstrap_options: ''
    verifier:
      windows: true
      types:
        - unit
      coverage_xml: false
      xml: /tmp/xml-unittests-output/
      save:
        /tmp/xml-unittests-output/: artifacts/
        $env:TEMP/salt-runtests.log: artifacts/logs/salt-runtests.log
        /salt/var/log/salt/minion: artifacts/logs/minion
<% end %>
<% end %>
suites:
  - name: py2
    verifier:
      python_bin: python2.7
  - name: py3
    excludes:
      - centos-6
      - ubuntu-14.04
    verifier:
      python_bin: python3
    provisioner:
      pillars:
        jenkins.sls:
          py3: true
        windows.sls:
          virtualenv_path: 'c:\Python35\Scripts\pip.exe'

<% if File.exists?(verifierfile) %>
<%= ERB.new(File.read(verifierfile)).result %>
<% else %>
verifier:
  name: runtests
  sudo: true
  run_destructive: true
  transport: zeromq
  enable_filenames: true
  types:
    - ssh
  xml: /tmp/xml-unittests-output/
  coverage_xml: /tmp/coverage.xml
  save:
    /tmp/xml-unittests-output: artifacts/
    /tmp/coverage.xml: artifacts/coverage/coverage.xml
    /tmp/kitchen/var/log/salt/minion: artifacts/logs/minion
    /tmp/salt-runtests.log: artifacts/logs/salt-runtests.log
<% end %>