blob: a55116133cbe2b80ac40c40bd5cc2aa1f2870099 [file] [log] [blame]
Tomáš Kukrál2712be72017-02-23 10:24:31 +01001/**
2 *
3 * Run states on K8s
4 *
5 * Expected parameters:
6 * SALT_MASTER_CREDENTIALS Credentials used to access Salt API
7 * SALT_URL URL usedd to connect to Salt API
8 */
9
10common = new com.mirantis.mk.Common()
11salt = new com.mirantis.mk.Salt()
12orchestrate = new com.mirantis.mk.Orchestrate()
13
14node {
15
16 // connection objects
17 def master
18
19 stage("Connect to Salt master") {
20 master = salt.connection(SALT_URL, SALT_MASTER_CREDENTIALS)
21 }
22
23
24 stage("Enforce kubernetes.control") {
25 common.infoMsg('Enforcing kubernetes.control on I@kubernetes:master')
26
27 salt.enforceState(
28 master,
29 ['expression': 'I@kubernetes:master', 'type': 'compound'],
30 ['kubernetes.control'],
31 true
32 )
33 }
34
35 stage("setup-components") {
36 common.infoMsg('Setting up components')
37
38 salt.runSaltProcessStep(
39 master,
40 'I@kubernetes:master',
41 'cmd.run',
42 ['/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\'']
43 )
44
45 }
46
47}