Report ONOS ready status
- Use the existing onos-ready-status script
Change-Id: I15d874fbe4fcb239d1bd2dd3625ccb1632bfa4dc
diff --git a/apps/tost-telegraf/templates/configmap-config.yaml b/apps/tost-telegraf/templates/configmap-config.yaml
index 13c1548..33b35bf 100644
--- a/apps/tost-telegraf/templates/configmap-config.yaml
+++ b/apps/tost-telegraf/templates/configmap-config.yaml
@@ -14,8 +14,15 @@
app: tost-telegraf
data:
tost_telegraf.sh: |
- #!/bin/sh
+ #!/bin/bash
set -x
+ #Locale setting for json_pp
+ export LC_CTYPE="POSIX"
+ export LC_NUMERIC="POSIX"
+
+ #Install kubectl
+ curl -sLO https://dl.k8s.io/release/v1.21.0/bin/linux/amd64/kubectl
+ install -m 755 kubectl /usr/local/bin/kubectl
while IFS= read -r LINE; do
ACTIVE_LINKS=$(curl --fail -sSL --user {{ .Values.onos.username }}:{{ .Values.onos.password }} --noproxy {{ .Values.onos.server }} -X GET -H 'Accept: application/json' \
@@ -27,5 +34,8 @@
DEVICES=$(curl --fail -sSL --user {{ .Values.onos.username }}:{{ .Values.onos.password }} --noproxy {{ .Values.onos.server }} -X GET -H 'Accept: application/json' \
http://{{ .Values.onos.server }}:{{ .Values.onos.port }}/onos/v1/devices | json_pp | grep "\"type\" : \"SWITCH\"" | wc -l)
- echo "onos_telegraf active_links=${ACTIVE_LINKS},enable_device_ports=${ENABLE_DEVICE_PORTS},devices=${DEVICES}"
+ # Config Pod's ready status indicate the status of ONOS cluster
+ # Assumption: Config Pod has only one instance
+ ONOS_READY=$(kubectl -n {{ .Values.onos.namespace }} get pods -lcomponent={{ .Values.onos.component_label }} --no-headers -o custom-columns=':.status.containerStatuses[*].ready' | grep true | wc -l)
+ echo "onos_telegraf active_links=${ACTIVE_LINKS},enable_device_ports=${ENABLE_DEVICE_PORTS},devices=${DEVICES},ready=${ONOS_READY}"
done