diff options
Diffstat (limited to 'service/check_kaas.sh')
-rwxr-xr-x | service/check_kaas.sh | 37 |
1 files changed, 37 insertions, 0 deletions
diff --git a/service/check_kaas.sh b/service/check_kaas.sh new file mode 100755 index 0000000..d6e7300 --- /dev/null +++ b/service/check_kaas.sh @@ -0,0 +1,37 @@ +#! /bin/bash + +cd "$(dirname "$0")" +. opts.sh + +e_nodes=$2 + + +online=$(../scripts/ping.pl "$host") +healthy=$online + +version=$(oc version | head -n 1 | awk '{ print $2 }') +if [ -z "$version" ]; then + healthy=0 +else + version="OpenShift $version" +fi + +etcd=$(oc get cs | grep etcd | grep "Healthy" | wc -l) +if [ -z "$etcd" -o "$etcd" -lt 3 ]; then + healthy=2 + oc get cs | grep etcd | grep "Healthy" | sed -r -e 's/\s+/ /g' | awk '{ print $1, $2 }' | sed 's/^/* /' +fi + +if [ $healthy -ne 0 ]; then + nodes=$(oc get nodes | grep Ready | wc -l) + if [ $nodes -ge $e_nodes ]; then + nodes=" / \${color gray}$etcd etcd, $nodes nodes" + else + offline=$(oc get nodes | grep -v "STATUS" | grep -v "Ready" | wc -l) + nodes=" / \${color gray}$etcd etcd, $nodes ready, $offline offline" + healthy=2 + oc get nodes | grep -v "STATUS" | grep -v "Ready" | awk '{ print $1, $2 }' | sed 's/^/* /' + fi +fi + +echo "$online $healthy $version $nodes" |