-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathutils.sh
64 lines (53 loc) · 1.28 KB
/
utils.sh
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
#!/bin/bash
announce() {
echo "++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++"
echo ""
printf "$@\n"
echo ""
echo "++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++"
}
function load_policy_k8s() {
filename=$(basename $1)
announce "Loading '$2' policy"
kubectl cp "$1" "$3:/"
kubectl exec $(basename $3) -- conjur policy load --replace "$2" "$filename"
}
has_serviceaccount() {
kubectl get serviceaccount "$1" &> /dev/null;
}
has_namespace() {
if kubectl get namespace "$1" > /dev/null; then
true
else
false
fi
}
set_namespace() {
if [[ $# != 1 ]]; then
printf "Error in %s/%s - expecting 1 arg.\n" $(pwd) $0
exit -1
fi
kubectl config set-context $(oc config current-context) --namespace="$1" > /dev/null
}
function wait_for_it() {
local timeout=$1
local spacer=2
shift
if ! [ $timeout = '-1' ]; then
local times_to_run=$((timeout / spacer))
echo "Waiting for '$@' up to $timeout s"
for i in $(seq $times_to_run); do
eval $@ > /dev/null && echo 'Success!' && break
echo -n .
sleep $spacer
done
eval $@
else
echo "Waiting for '$@' forever"
while ! eval $@ > /dev/null; do
echo -n .
sleep $spacer
done
echo 'Success!'
fi
}