Skip to content
This repository has been archived by the owner on Feb 12, 2021. It is now read-only.

ahelal/kitchen-goss

Repository files navigation

kitchen-goss

Gem Version Gem Downloads

A test-kitchen verifier plugin for GOSS

Intro

GOSS is a tool for validating a server's configuration. This kitchen plugin adds Goss support as a validation to kitchen. Since GOSS is written in GO lang. This plugin use sftp to push tests to remote machines no ruby is needed to run verify.

How to install

Ruby gem

gem install kitchen-goss

To install from code or develop

git clone git@github.com:ahelal/kitchen-goss.git
cd kitchen-goss
gem build kitchen-goss.gemspec
gem install kitchen-goss-<version>.gem

kitchen.yml configuration

verifier                    :
  name                      : "goss"
  sleep                     : 0
  use_sudo                  : true
  goss_version              : "v0.3.6"
  goss_link                 : "https://github.com/aelsabbahy/goss/releases/download/$VERSION/goss-linux-${ARCH}"
  goss_var_path             : "common.yml"
  env_vars                  : {"test_uid": 123}

kitchen.yml options

Besides the normal config in kitchen.yml goss validation can accept the following options.

default_config :sleep, 0
default_config :use_sudo, false
default_config :env_vars, {}
default_config :goss_version, "v0.1.5"
default_config :validate_output, "documentation"
default_config :custom_install_command, nil
default_config :goss_link, "https://github.com/aelsabbahy/goss/releases/download/$VERSION/goss-${DISTRO}-${ARCH}"
default_config :goss_download_path, "/tmp/goss-${VERSION}-${DISTRO}-${ARCH}"
default_config :goss_var_path, nil

Test structure

Lets say you have a suite name simple all yaml files will be uses for testing.

.kitchen.yml
test/
  \_integration/
    \_simple/
      \_goss/
        \_test1.yml
        |_test2.yml
        |_common.yml  # --vars common.yml with .Vars render, not for goss test

License

MIT