Add model local verification toolchain
Change-Id: I89b775d0e4f598fd396e42c6fad4cc55733781ff
diff --git a/.kitchen.yml b/.kitchen.yml
new file mode 100644
index 0000000..7df4724
--- /dev/null
+++ b/.kitchen.yml
@@ -0,0 +1,41 @@
+---
+driver:
+ name: docker
+ use_sudo: false
+ volume:
+ - <%= ENV['PWD'] %>:/tmp/kitchen
+
+provisioner:
+ name: shell
+ script: verify.sh
+
+platforms:
+ <% `find classes/cluster -maxdepth 1 -mindepth 1 -type d | tr '_' '-' |sort -u`.split().each do |cluster| %>
+ <% cluster=cluster.split('/')[2] %>
+ - name: <%= cluster %>
+ driver_config:
+ #image: ubuntu:16.04
+ image: tcpcloud/salt-models-testing # With preinstalled dependencies (faster)
+ platform: ubuntu
+ hostname: cfg01.<%= cluster %>.local
+ provision_command:
+ - apt-get update
+ - apt-get install -y git curl python-pip
+ - git clone https://github.com/salt-formulas/salt-formulas-scripts /srv/salt/scripts
+ - cd /srv/salt/scripts; git pull -r; cd -
+ # NOTE: Configure ENV options as needed, example:
+ - echo "
+ export BOOTSTRAP=1;\n
+ export CLUSTER_NAME=<%= cluster %>;\n
+ export FORMULAS_SOURCE=pkg;\n
+ export RECLASS_VERSION=dev;\n
+ export RECLASS_IGNORE_CLASS_NOTFOUND=True;\n
+ export EXTRA_FORMULAS="";\n
+ " > /kitchen.env
+ #export RECLASS_SOURCE_PATH=/usr/lib/python2.7/site-packages/reclass;\n
+ #export PYTHONPATH=$RECLASS_SOURCE_PATH:$PYTHONPATH;\n
+ <% end %>
+
+suites:
+ - name: cluster
+
diff --git a/verify.sh b/verify.sh
new file mode 100755
index 0000000..f1f9739
--- /dev/null
+++ b/verify.sh
@@ -0,0 +1,29 @@
+#!/bin/bash
+
+#export HOSTNAME=${`hostname -s`}
+#export DOMAIN=${`hostname -d`}
+cd /srv/salt/scripts; git pull -r || true; source bootstrap.sh || exit 1
+
+# BOOTSTRAP
+if [[ $BOOTSTRAP =~ ^(True|true|1|yes)$ ]]; then
+ # workarounds for kitchen
+ test ! -e /tmp/kitchen || (mkdir -p /srv/salt/reclass; rsync -avh /tmp/kitchen/ /srv/salt/reclass)
+ cd /srv/salt/reclass
+ # clone latest system-level if missing
+ if [[ -e .gitmodules ]] && [[ ! -e classes/system/linux ]]; then
+ git submodule update --init --recursive --remote || true
+ fi
+ source_local_envs
+ /srv/salt/scripts/bootstrap.sh
+ if [[ -e /tmp/kitchen ]]; then sed -i '/export BOOTSTRAP=/d' /kitchen.env; fi
+fi
+
+# VERIFY
+export RECLASS_IGNORE_CLASS_NOTFOUND=False
+cd /srv/salt/reclass &&\
+if [[ -z "$1" ]] ; then
+ verify_salt_master &&\
+ verify_salt_minions
+else
+ verify_salt_minion "$1"
+fi