6de864110e
This change updates how the Elasticsearch chart handles S3 configuration and snapshot repository registration. This allows for - Multiple snapshot destinations to be configued - Repositories to use a specific placement target - Management of multiple account credentials Change-Id: I12de918adc5964a4ded46f6f6cd3fa94c7235112
102 lines
3.3 KiB
Smarty
102 lines
3.3 KiB
Smarty
#!/bin/bash
|
|
{{/*
|
|
Licensed under the Apache License, Version 2.0 (the "License");
|
|
you may not use this file except in compliance with the License.
|
|
You may obtain a copy of the License at
|
|
|
|
http://www.apache.org/licenses/LICENSE-2.0
|
|
|
|
Unless required by applicable law or agreed to in writing, software
|
|
distributed under the License is distributed on an "AS IS" BASIS,
|
|
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
See the License for the specific language governing permissions and
|
|
limitations under the License.
|
|
*/}}
|
|
|
|
set -ex
|
|
|
|
function create_test_index () {
|
|
index_result=$(curl -K- <<< "--user ${ELASTICSEARCH_USERNAME}:${ELASTICSEARCH_PASSWORD}" \
|
|
-XPUT "${ELASTICSEARCH_ENDPOINT}/test_index?pretty" -H 'Content-Type: application/json' -d'
|
|
{
|
|
"settings" : {
|
|
"index" : {
|
|
"number_of_shards" : 3,
|
|
"number_of_replicas" : 2
|
|
}
|
|
}
|
|
}
|
|
' | python -c "import sys, json; print(json.load(sys.stdin)['acknowledged'])")
|
|
if [ "$index_result" == "True" ];
|
|
then
|
|
echo "PASS: Test index created!";
|
|
else
|
|
echo "FAIL: Test index not created!";
|
|
exit 1;
|
|
fi
|
|
}
|
|
|
|
{{ if .Values.conf.elasticsearch.snapshots.enabled }}
|
|
function check_snapshot_repositories_registered () {
|
|
total_hits=$(curl -K- <<< "--user ${ELASTICSEARCH_USERNAME}:${ELASTICSEARCH_PASSWORD}" \
|
|
"${ELASTICSEARCH_ENDPOINT}/_snapshot" | jq length)
|
|
if [ "$total_hits" -gt 0 ]; then
|
|
echo "PASS: $total_hits Snapshot repositories have been registered!"
|
|
else
|
|
echo "FAIL: No snapshot repositories found! Exiting";
|
|
exit 1;
|
|
fi
|
|
}
|
|
{{ end }}
|
|
|
|
{{ if .Values.conf.elasticsearch.snapshots.enabled }}
|
|
function check_snapshot_repositories_verified () {
|
|
repositories=$(curl -K- <<< "--user ${ELASTICSEARCH_USERNAME}:${ELASTICSEARCH_PASSWORD}" \
|
|
"${ELASTICSEARCH_ENDPOINT}/_snapshot" | jq -r "keys | @sh" )
|
|
|
|
repositories=$(echo $repositories | sed "s/'//g") # Strip single quotes from jq output
|
|
|
|
for repository in $repositories; do
|
|
error=$(curl -K- <<< "--user ${ELASTICSEARCH_USERNAME}:${ELASTICSEARCH_PASSWORD}" \
|
|
-XPOST "${ELASTICSEARCH_ENDPOINT}/_snapshot/${repository}/_verify" | jq -r '.error')
|
|
|
|
if [ $error == "null" ]; then
|
|
echo "PASS: $repository is verified."
|
|
else
|
|
echo "FAIL: Error for $repository: $(echo $error | jq -r)"
|
|
exit 1;
|
|
fi
|
|
done
|
|
}
|
|
{{ end }}
|
|
|
|
{{ if .Values.manifests.job_elasticsearch_templates }}
|
|
# Tests whether elasticsearch has successfully generated the elasticsearch index mapping
|
|
# templates defined by values.yaml
|
|
function check_templates () {
|
|
total_hits=$(curl -K- <<< "--user ${ELASTICSEARCH_USERNAME}:${ELASTICSEARCH_PASSWORD}" \
|
|
-XGET "${ELASTICSEARCH_ENDPOINT}/_template" | jq length)
|
|
if [ "$total_hits" -gt 0 ]; then
|
|
echo "PASS: Successful hits on templates!"
|
|
else
|
|
echo "FAIL: No hits on query for templates! Exiting";
|
|
exit 1;
|
|
fi
|
|
}
|
|
{{ end }}
|
|
|
|
function remove_test_index () {
|
|
echo "Deleting index created for service testing"
|
|
curl -K- <<< "--user ${ELASTICSEARCH_USERNAME}:${ELASTICSEARCH_PASSWORD}" \
|
|
-XDELETE "${ELASTICSEARCH_ENDPOINT}/test_index"
|
|
}
|
|
|
|
remove_test_index || true
|
|
create_test_index
|
|
{{ if .Values.conf.elasticsearch.snapshots.enabled }}
|
|
check_snapshot_repositories_registered
|
|
check_snapshot_repositories_verified
|
|
{{ end }}
|
|
check_templates
|
|
remove_test_index
|