Merge "Elasticsearch - Cluster Wait Function Improvements"
This commit is contained in:
commit
84426374b6
@ -13,96 +13,16 @@ See the License for the specific language governing permissions and
|
|||||||
limitations under the License.
|
limitations under the License.
|
||||||
*/}}
|
*/}}
|
||||||
|
|
||||||
function check_master_nodes() {
|
|
||||||
numMasterNodes=0
|
|
||||||
expectedMasterNodes={{ .Values.pod.replicas.master | int64 }}
|
|
||||||
while [ "$numMasterNodes" -ne "$expectedMasterNodes" ]
|
|
||||||
do
|
|
||||||
currentMasterNodes=$(curl -K- <<< "--user ${ELASTICSEARCH_USERNAME}:${ELASTICSEARCH_PASSWORD}" \
|
|
||||||
"${ELASTICSEARCH_HOST}/_cat/nodes?format=json&pretty" | jq -r '.[] | select(.name|test("elasticsearch-master.")) | .name')
|
|
||||||
numMasterNodes=$(echo $currentMasterNodes | wc -w)
|
|
||||||
if [ "$numMasterNodes" -ne "$expectedMasterNodes" ]
|
|
||||||
then
|
|
||||||
if [ "$numMasterNodes" -eq 0 ]
|
|
||||||
then
|
|
||||||
echo "No Elasticsearch master nodes accounted for: 0/${expectedMasterNodes}"
|
|
||||||
else
|
|
||||||
echo "Not all Elasticsearch master nodes accounted for and ready: (${numMasterNodes} / ${expectedMasterNodes})"
|
|
||||||
echo "$currentMasterNodes"
|
|
||||||
fi
|
|
||||||
echo "Sleeping for 10 seconds before next check"
|
|
||||||
echo ""
|
|
||||||
sleep 10
|
|
||||||
fi
|
|
||||||
done
|
|
||||||
echo "All Elasticsearch master nodes accounted for and ready: (${numMasterNodes} / ${expectedMasterNodes})"
|
|
||||||
echo "$currentMasterNodes"
|
|
||||||
echo ""
|
|
||||||
}
|
|
||||||
|
|
||||||
function check_data_nodes() {
|
|
||||||
numDataNodes=0
|
|
||||||
expectedDataNodes={{ .Values.pod.replicas.data | int64 }}
|
|
||||||
while [ "$numDataNodes" -ne "$expectedDataNodes" ]
|
|
||||||
do
|
|
||||||
currentDataNodes=$(curl -K- <<< "--user ${ELASTICSEARCH_USERNAME}:${ELASTICSEARCH_PASSWORD}" \
|
|
||||||
"${ELASTICSEARCH_HOST}/_cat/nodes?format=json&pretty" | jq -r '.[] | select(.name|test("elasticsearch-data.")) | .name')
|
|
||||||
numDataNodes=$(echo $currentDataNodes | wc -w)
|
|
||||||
if [ "$numDataNodes" -ne "$expectedDataNodes" ]
|
|
||||||
then
|
|
||||||
if [ "$numDataNodes" -eq 0 ]
|
|
||||||
then
|
|
||||||
echo "No Elasticsearch data nodes accounted for: 0/${expectedDataNodes}"
|
|
||||||
else
|
|
||||||
echo "Not all Elasticsearch data nodes accounted for and ready: (${numDataNodes} / ${expectedDataNodes})"
|
|
||||||
echo "$currentDataNodes"
|
|
||||||
fi
|
|
||||||
echo "Sleeping for 10 seconds before next check"
|
|
||||||
echo ""
|
|
||||||
sleep 10
|
|
||||||
fi
|
|
||||||
done
|
|
||||||
echo "All Elasticsearch data nodes accounted for and ready: (${numDataNodes} / ${expectedDataNodes})"
|
|
||||||
echo "$currentDataNodes"
|
|
||||||
echo ""
|
|
||||||
}
|
|
||||||
|
|
||||||
function check_client_nodes() {
|
|
||||||
numClientNodes=0
|
|
||||||
expectedClientNodes={{ .Values.pod.replicas.client | int64 }}
|
|
||||||
while [ "$numClientNodes" -ne "$expectedClientNodes" ]
|
|
||||||
do
|
|
||||||
currentClientNodes=$(curl -K- <<< "--user ${ELASTICSEARCH_USERNAME}:${ELASTICSEARCH_PASSWORD}" \
|
|
||||||
"${ELASTICSEARCH_HOST}/_cat/nodes?format=json&pretty" | jq -r '.[] | select(.name|test("elasticsearch-client.")) | .name')
|
|
||||||
numClientNodes=$(echo $currentClientNodes | wc -w)
|
|
||||||
if [ "$numClientNodes" -ne "$expectedClientNodes" ]
|
|
||||||
then
|
|
||||||
if [ "$numClientNodes" -eq 0 ]
|
|
||||||
then
|
|
||||||
echo "No Elasticsearch client nodes accounted for: 0/${expectedClientNodes}"
|
|
||||||
else
|
|
||||||
echo "Not all Elasticsearch client nodes accounted for and ready: (${numClientNodes} / ${expectedClientNodes})"
|
|
||||||
echo "$currentClientNodes"
|
|
||||||
fi
|
|
||||||
echo "Sleeping for 10 seconds before next check"
|
|
||||||
echo ""
|
|
||||||
sleep 10
|
|
||||||
fi
|
|
||||||
done
|
|
||||||
echo "All Elasticsearch client nodes accounted for and ready: (${numClientNodes} / ${expectedClientNodes})"
|
|
||||||
echo "$currentClientNodes"
|
|
||||||
echo ""
|
|
||||||
}
|
|
||||||
|
|
||||||
function check_cluster_health() {
|
function check_cluster_health() {
|
||||||
clusterHealth=$(curl -K- <<< "--user ${ELASTICSEARCH_USERNAME}:${ELASTICSEARCH_PASSWORD}" \
|
STATUS=$(curl -s -K- <<< "--user ${ELASTICSEARCH_USERNAME}:${ELASTICSEARCH_PASSWORD}" \
|
||||||
"${ELASTICSEARCH_HOST}/_cat/health?format=json&pretty")
|
"${ELASTICSEARCH_HOST}/_cat/health?format=json&pretty" | jq -r .[].status)
|
||||||
echo "Elasticsearch cluster health is:"
|
echo "Status: $STATUS"
|
||||||
echo "$clusterHealth"
|
|
||||||
}
|
}
|
||||||
|
|
||||||
sleep 10
|
|
||||||
check_data_nodes
|
|
||||||
check_client_nodes
|
|
||||||
check_master_nodes
|
|
||||||
check_cluster_health
|
check_cluster_health
|
||||||
|
while [[ $STATUS == "red" ]]; do
|
||||||
|
echo "Waiting for cluster to become ready."
|
||||||
|
sleep 30
|
||||||
|
check_cluster_health
|
||||||
|
done
|
||||||
|
echo "Cluster is ready."
|
||||||
|
@ -28,7 +28,6 @@ metadata:
|
|||||||
annotations:
|
annotations:
|
||||||
{{ tuple $envAll | include "helm-toolkit.snippets.release_uuid" }}
|
{{ tuple $envAll | include "helm-toolkit.snippets.release_uuid" }}
|
||||||
spec:
|
spec:
|
||||||
backoffLimit: {{ .Values.jobs.snapshot_repository.backoffLimit }}
|
|
||||||
template:
|
template:
|
||||||
metadata:
|
metadata:
|
||||||
labels:
|
labels:
|
||||||
@ -38,7 +37,6 @@ spec:
|
|||||||
spec:
|
spec:
|
||||||
{{ dict "envAll" $envAll "application" "snapshot_repository" | include "helm-toolkit.snippets.kubernetes_pod_security_context" | indent 6 }}
|
{{ dict "envAll" $envAll "application" "snapshot_repository" | include "helm-toolkit.snippets.kubernetes_pod_security_context" | indent 6 }}
|
||||||
serviceAccountName: {{ $serviceAccountName }}
|
serviceAccountName: {{ $serviceAccountName }}
|
||||||
activeDeadlineSeconds: {{ .Values.jobs.snapshot_repository.activeDeadlineSeconds }}
|
|
||||||
restartPolicy: OnFailure
|
restartPolicy: OnFailure
|
||||||
nodeSelector:
|
nodeSelector:
|
||||||
{{ .Values.labels.job.node_selector_key }}: {{ .Values.labels.job.node_selector_value | quote }}
|
{{ .Values.labels.job.node_selector_key }}: {{ .Values.labels.job.node_selector_value | quote }}
|
||||||
|
@ -438,10 +438,7 @@ jobs:
|
|||||||
failed: 1
|
failed: 1
|
||||||
es_cluster_wait:
|
es_cluster_wait:
|
||||||
backoffLimit: 6
|
backoffLimit: 6
|
||||||
activeDeadlineSeconds: 600
|
activeDeadlineSeconds: 1200
|
||||||
snapshot_repository:
|
|
||||||
backoffLimit: 6
|
|
||||||
activeDeadlineSeconds: 600
|
|
||||||
verify_repositories:
|
verify_repositories:
|
||||||
cron: "*/30 * * * *"
|
cron: "*/30 * * * *"
|
||||||
history:
|
history:
|
||||||
|
Loading…
Reference in New Issue
Block a user