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 -}}