github.com/replicatedhq/ship@v0.55.0/integration/init/kibana/expected/.ship/upstream/templates/configmap-dashboardimport.yaml (about) 1 {{- if .Values.dashboardImport.dashboards }} 2 apiVersion: v1 3 kind: ConfigMap 4 metadata: 5 name: {{ template "kibana.fullname" . }}-importscript 6 labels: 7 app: {{ template "kibana.name" . }} 8 chart: "{{ .Chart.Name }}-{{ .Chart.Version }}" 9 release: {{ .Release.Name }} 10 heritage: {{ .Release.Service }} 11 data: 12 dashboardImport.sh: | 13 #!/usr/bin/env bash 14 # 15 # kibana dashboard import script 16 # 17 18 cd /kibanadashboards 19 20 echo "Starting Kibana..." 21 22 /usr/local/bin/kibana-docker $@ & 23 24 echo "Waiting up to {{ .Values.dashboardImport.timeout }} seconds for Kibana to get in green overall state..." 25 26 for i in {1..{{ .Values.dashboardImport.timeout }}}; do 27 curl -s localhost:5601/api/status | python -c 'import sys, json; print json.load(sys.stdin)["status"]["overall"]["state"]' 2> /dev/null | grep green > /dev/null && break || sleep 1 28 done 29 30 for DASHBOARD_FILE in *; do 31 echo -e "Importing ${DASHBOARD_FILE} dashboard..." 32 33 if ! python -c 'import sys, json; print json.load(sys.stdin)' < "${DASHBOARD_FILE}" &> /dev/null ; then 34 echo "${DASHBOARD_FILE} is not valid JSON, assuming it's an URL..." 35 TMP_FILE="$(mktemp)" 36 curl -s $(cat ${DASHBOARD_FILE}) > ${TMP_FILE} 37 curl -v {{ if .Values.dashboardImport.xpackauth.enabled }}--user {{ .Values.dashboardImport.xpackauth.username }}:{{ .Values.dashboardImport.xpackauth.password }}{{ end }} -s --connect-timeout 60 --max-time 60 -XPOST localhost:5601/api/kibana/dashboards/import?force=true -H 'kbn-xsrf:true' -H 'Content-type:application/json' -d @${TMP_FILE} 38 rm ${TMP_FILE} 39 else 40 echo "Valid JSON found in ${DASHBOARD_FILE}, importing..." 41 curl -v {{ if .Values.dashboardImport.xpackauth.enabled }}--user {{ .Values.dashboardImport.xpackauth.username }}:{{ .Values.dashboardImport.xpackauth.password }}{{ end }} -s --connect-timeout 60 --max-time 60 -XPOST localhost:5601/api/kibana/dashboards/import?force=true -H 'kbn-xsrf:true' -H 'Content-type:application/json' -d @./${DASHBOARD_FILE} 42 fi 43 44 if [ "$?" != "0" ]; then 45 echo -e "\nImport of ${DASHBOARD_FILE} dashboard failed... Exiting..." 46 exit 1 47 else 48 echo -e "\nImport of ${DASHBOARD_FILE} dashboard finished :-)" 49 fi 50 51 done 52 --- 53 apiVersion: v1 54 kind: ConfigMap 55 metadata: 56 name: {{ template "kibana.fullname" . }}-dashboards 57 labels: 58 app: {{ template "kibana.name" . }} 59 chart: "{{ .Chart.Name }}-{{ .Chart.Version }}" 60 release: {{ .Release.Name }} 61 heritage: {{ .Release.Service }} 62 data: 63 {{- range $key, $value := .Values.dashboardImport.dashboards }} 64 {{ $key }}: |- 65 {{ $value | indent 4 }} 66 {{- end -}} 67 {{- end -}}