49 lines
1.4 KiB
YAML
49 lines
1.4 KiB
YAML
apiVersion: v1
|
|
kind: ConfigMap
|
|
metadata:
|
|
name: {{ include "opencoze.fullname" . }}-es-init-script
|
|
data:
|
|
setup_es.sh: |
|
|
#!/bin/sh
|
|
set -ex
|
|
|
|
ES_HOST="http://{{ include "opencoze.fullname" . }}-elasticsearch:9200"
|
|
|
|
CURL_AUTH=""
|
|
if [ -n "$ES_USERNAME" ] && [ -n "$ES_PASSWORD" ]; then
|
|
CURL_AUTH="-u $ES_USERNAME:$ES_PASSWORD"
|
|
fi
|
|
|
|
# Wait for Elasticsearch to be ready
|
|
until curl -s -f $CURL_AUTH "$ES_HOST/_cluster/health?wait_for_status=yellow&timeout=5s"; do
|
|
echo "Waiting for Elasticsearch..."
|
|
sleep 5
|
|
done
|
|
|
|
# Upload index templates
|
|
for file in /es_index_schema/*.json; do
|
|
if [ -f "$file" ]; then
|
|
template_name=$(basename "$file" .index-template.json)
|
|
echo "Uploading index template $template_name"
|
|
curl -X PUT $CURL_AUTH "$ES_HOST/_index_template/$template_name" -H "Content-Type: application/json" --data-binary "@$file"
|
|
fi
|
|
done
|
|
|
|
# Create indices
|
|
for file in /es_index_schema/*.json; do
|
|
if [ -f "$file" ]; then
|
|
template_name=$(basename "$file" .index-template.json)
|
|
index_name=$template_name
|
|
echo "Creating index $index_name"
|
|
curl -X PUT $CURL_AUTH "$ES_HOST/$index_name" -H "Content-Type: application/json" -d'{
|
|
"settings": {
|
|
"index": {
|
|
"number_of_shards": 1,
|
|
"number_of_replicas": 1
|
|
}
|
|
}
|
|
}'
|
|
fi
|
|
done
|
|
|
|
echo "Elasticsearch setup complete." |