Updating script to use data views to support kibana 8.0 and beyond

as some of api is now depreacated.

Change-Id: I58d5c388cc0f6ba56c5fe646be352a0641e0661d
This commit is contained in:
om9464 2024-07-19 12:31:50 -05:00 committed by Sergio Omar Munoz
parent 05f2f45971
commit d9e0230365
3 changed files with 57 additions and 21 deletions

View File

@ -15,7 +15,7 @@ apiVersion: v1
appVersion: v8.9.0 appVersion: v8.9.0
description: OpenStack-Helm Kibana description: OpenStack-Helm Kibana
name: kibana name: kibana
version: 0.1.16 version: 0.1.17
home: https://www.elastic.co/products/kibana home: https://www.elastic.co/products/kibana
sources: sources:
- https://github.com/elastic/kibana - https://github.com/elastic/kibana

View File

@ -14,30 +14,65 @@ limitations under the License.
*/}} */}}
set -ex set -ex
create_data_view() {
local index_name=$1
curl -u "${ELASTICSEARCH_USERNAME}:${ELASTICSEARCH_PASSWORD}" \
--max-time 30 \
-X POST "${KIBANA_ENDPOINT}/api/data_views/data_view" \
-H "kbn-xsrf: true" \
-H "Content-Type: application/json" \
-d "{
\"data_view\": {
\"title\": \"${index_name}-*\",
\"timeFieldName\": \"@timestamp\"
}
}"
}
data_view_exists() {
local index_name=$1
local response=$(curl -s -u "${ELASTICSEARCH_USERNAME}:${ELASTICSEARCH_PASSWORD}" \
--max-time 30 \
-X GET "${KIBANA_ENDPOINT}/api/data_views" \
-H "kbn-xsrf: true" \
-H "Content-Type: application/json")
if echo "$response" | grep -q "\"title\":\"${index_name}-[*]\""; then
return 0
fi
return 1
}
set_default_data_view() {
local index_name=$1
curl -u "${ELASTICSEARCH_USERNAME}:${ELASTICSEARCH_PASSWORD}" \
--max-time 30 \
-X POST "${KIBANA_ENDPOINT}/api/data_views/default" \
-H "kbn-xsrf: true" \
-H "Content-Type: application/json" \
-d "{
\"value\": \"${index_name}-*\"
}"
}
# Create data views
{{- range $objectType, $indices := .Values.conf.create_kibana_indexes.indexes }} {{- range $objectType, $indices := .Values.conf.create_kibana_indexes.indexes }}
{{- range $indices }} {{- range $indices }}
curl -K- <<< "--user ${ELASTICSEARCH_USERNAME}:${ELASTICSEARCH_PASSWORD}" \ if ! data_view_exists "{{ . }}"; then
-XPOST "${KIBANA_ENDPOINT}/api/saved_objects/index-pattern/{{ . }}*" -H 'kbn-xsrf: true' \ create_data_view "{{ . }}"
-H 'Content-Type: application/json' -d \ echo "Data view '{{ . }}' created successfully."
'{"attributes":{"title":"{{ . }}-*","timeFieldName":"@timestamp"}}'
while true
do
if [[ $(curl -s -o /dev/null -K- <<< "--user ${ELASTICSEARCH_USERNAME}:${ELASTICSEARCH_PASSWORD}" \
-w "%{http_code}" -XGET "${KIBANA_ENDPOINT}/api/saved_objects/index-pattern/{{ . }}*") == '200' ]]
then
break
else else
curl -K- <<< "--user ${ELASTICSEARCH_USERNAME}:${ELASTICSEARCH_PASSWORD}" \ echo "Data view '{{ . }}' already exists."
-XPOST "${KIBANA_ENDPOINT}/api/saved_objects/index-pattern/{{ . }}*" -H 'kbn-xsrf: true' \
-H 'Content-Type: application/json' -d \
'{"attributes":{"title":"{{ . }}-*","timeFieldName":"@timestamp"}}'
sleep 30
fi fi
done
{{- end }} {{- end }}
{{- end }} {{- end }}
curl -K- <<< "--user ${ELASTICSEARCH_USERNAME}:${ELASTICSEARCH_PASSWORD}" \ # Ensure default data view exists and set it
-XPOST "${KIBANA_ENDPOINT}/api/kibana/settings/defaultIndex" -H 'kbn-xsrf: true' \ default_index="{{ .Values.conf.create_kibana_indexes.default_index }}"
-H 'Content-Type: application/json' -d \ if ! data_view_exists "$default_index"; then
'{"value" : "{{ .Values.conf.create_kibana_indexes.default_index }}*"}' create_data_view "$default_index"
echo "Default data view '${default_index}' created successfully."
fi
set_default_data_view "$default_index"
echo "Default data view set to '${default_index}'."

View File

@ -17,4 +17,5 @@ kibana:
- 0.1.14 Add 2023.1 Ubuntu Focal overrides - 0.1.14 Add 2023.1 Ubuntu Focal overrides
- 0.1.15 Use quay.io/airshipit/kubernetes-entrypoint:latest-ubuntu_focal by default - 0.1.15 Use quay.io/airshipit/kubernetes-entrypoint:latest-ubuntu_focal by default
- 0.1.16 Add 2024.1 Ubuntu Jammy overrides - 0.1.16 Add 2024.1 Ubuntu Jammy overrides
- 0.1.17 Update script to use data views replacing deprecated api
... ...