add kafka-demo pipeline

Change-Id: I6c6c4e21af1b0824ffcd5ebea82e7d116a29a01b
diff --git a/kafka-demo.groovy b/kafka-demo.groovy
new file mode 100644
index 0000000..a551161
--- /dev/null
+++ b/kafka-demo.groovy
@@ -0,0 +1,47 @@
+/**
+ *
+ * Run states on K8s
+ *
+ * Expected parameters:
+ *   SALT_MASTER_CREDENTIALS    Credentials used to access Salt API
+ *   SALT_URL                   URL usedd to connect to Salt API
+ */
+
+common = new com.mirantis.mk.Common()
+salt = new com.mirantis.mk.Salt()
+orchestrate = new com.mirantis.mk.Orchestrate()
+
+node {
+
+    // connection objects
+    def master
+
+    stage("Connect to Salt master") {
+        master = salt.connection(SALT_URL, SALT_MASTER_CREDENTIALS)
+    }
+
+
+    stage("Enforce kubernetes.control") {
+        common.infoMsg('Enforcing kubernetes.control on I@kubernetes:master')
+
+        salt.enforceState(
+            master,
+            ['expression': 'I@kubernetes:master', 'type': 'compound'],
+            ['kubernetes.control'],
+            true
+        )
+    }
+
+    stage("setup-components") {
+        common.infoMsg('Setting up components')
+
+        salt.runSaltProcessStep(
+            master,
+            'I@kubernetes:master',
+            'cmd.run',
+            ['/bin/bash -c \'find /srv/kubernetes/ -type d | grep -v jobs | while read i; do ls $i/*.yml &>/dev/null && (set -x; hyperkube kubectl apply -f $i || echo Command failed; set +x); done; jobs=$(hyperkube kubectl get jobs -o name); find /srv/kubernetes/jobs -type f -name "*.yml" | while read i; do name=$(grep "name:" $i | head -1 | awk "{print $NF}"); echo $jobs|grep $name >/dev/null || (set -x; hyperkube kubectl apply -f $i || echo Command failed; set +x);done\'']
+        )
+
+    }
+
+}