From f19275991fb42792c0db209aac66acb63f731a77 Mon Sep 17 00:00:00 2001 From: Tal Gitelman Date: Mon, 29 Jan 2018 17:24:56 +0200 Subject: ES OOM alignment Change-Id: I798502516a4b9200243ed072985faa9f528f2073 Issue-ID: SDC-912 Signed-off-by: Tal Gitelman --- sdc-os-chef/scripts/docker_run.sh | 40 +++++++++++++++++++++++++-- sdc-os-chef/sdc-elasticsearch/startup.sh | 5 ++-- sdc-os-chef/sdc-init-elasticsearch/startup.sh | 2 ++ 3 files changed, 42 insertions(+), 5 deletions(-) diff --git a/sdc-os-chef/scripts/docker_run.sh b/sdc-os-chef/scripts/docker_run.sh index 2a8591cdfa..7e5498e765 100755 --- a/sdc-os-chef/scripts/docker_run.sh +++ b/sdc-os-chef/scripts/docker_run.sh @@ -64,7 +64,7 @@ function healthCheck { echo "" echo "" - healthCheck_http_code=$(curl -o out.html -w '%{http_code}' -H "Accept: application/json" -H "Content-Type: application/json" -H "USER_ID: jh0003" http://localhost:8080/sdc2/rest/v1/user/demo;) + healthCheck_http_code=$(curl -o /dev/null -w '%{http_code}' -H "Accept: application/json" -H "Content-Type: application/json" -H "USER_ID: jh0003" http://localhost:8080/sdc2/rest/v1/user/demo;) if [[ ${healthCheck_http_code} != 200 ]] then echo "Error [${healthCheck_http_code}] while user existance check" @@ -74,6 +74,32 @@ function healthCheck { return ${healthCheck_http_code} } +function elasticHealthCheck { + echo "Elastic Health-Check:" + + COUNTER=0 + while [ $COUNTER -lt 20 ]; do + echo "Waiting ES docker to start" + health_Check_http_code=$(curl -o /dev/null -w '%{http_code}' http://localhost:9200/_cluster/health?wait_for_status=yellow&timeout=120s) + if [[ "$health_Check_http_code" -eq 200 ]] + then + break + fi + let COUNTER=COUNTER+1 + sleep 4 + done + + healthCheck_http_code=$(curl -o /dev/null -w '%{http_code}' http://localhost:9200/_cluster/health?wait_for_status=yellow&timeout=120s) + if [[ "$health_Check_http_code" != 200 ]] + then + echo "Error [${healthCheck_http_code}] ES NOT started correctly" + exit ${healthCheck_http_code} + fi + echo "ES started correctly" + curl localhost:9200/_cluster/health?pretty=true + return ${healthCheck_http_code} +} + RELEASE=latest LOCAL=false RUNTESTS=false @@ -140,7 +166,9 @@ if [ ${LOCAL} = false ]; then echo "pulling code" docker pull ${PREFIX}/sdc-elasticsearch:${RELEASE} fi -docker run --detach --name sdc-es --env ENVNAME="${DEP_ENV}" --log-driver=json-file --log-opt max-size=100m --log-opt max-file=10 --memory 750m --env ES_JAVA_OPTS="-Xms512m -Xmx512m" --ulimit memlock=-1:-1 --ulimit nofile=4096:100000 --volume /etc/localtime:/etc/localtime:ro --env ES_HEAP_SIZE=1024M --volume ${WORKSPACE}/data/ES:/usr/share/elasticsearch/data --volume ${WORKSPACE}/data/environments:/root/chef-solo/environments --publish 9200:9200 --publish 9300:9300 ${PREFIX}/sdc-elasticsearch:${RELEASE} +docker run -dit --name sdc-es --env ENVNAME="${DEP_ENV}" --log-driver=json-file --log-opt max-size=100m --log-opt max-file=10 --memory 750m --env ES_JAVA_OPTS="-Xms512m -Xmx512m" --ulimit memlock=-1:-1 --ulimit nofile=4096:100000 --volume /etc/localtime:/etc/localtime:ro --env ES_HEAP_SIZE=1024M --volume ${WORKSPACE}/data/ES:/usr/share/elasticsearch/data --volume ${WORKSPACE}/data/environments:/root/chef-solo/environments --publish 9200:9200 --publish 9300:9300 ${PREFIX}/sdc-elasticsearch:${RELEASE} /bin/sh + +elasticHealthCheck # Init-Elastic-Search echo "docker run sdc-init-elasticsearch..." @@ -148,7 +176,13 @@ if [ ${LOCAL} = false ]; then echo "pulling code" docker pull ${PREFIX}/sdc-init-elasticsearch:${RELEASE} fi -docker run --detach --name sdc-init-es --env ENVNAME="${DEP_ENV}" --log-driver=json-file --log-opt max-size=100m --log-opt max-file=10 --memory 750m --ulimit memlock=-1:-1 --ulimit nofile=4096:100000 --volume /etc/localtime:/etc/localtime:ro --volume ${WORKSPACE}/data/environments:/root/chef-solo/environments ${PREFIX}/sdc-init-elasticsearch:${RELEASE} +docker run --name sdc-init-es --env ENVNAME="${DEP_ENV}" --log-driver=json-file --log-opt max-size=100m --log-opt max-file=10 --memory 750m --ulimit memlock=-1:-1 --ulimit nofile=4096:100000 --volume /etc/localtime:/etc/localtime:ro --volume ${WORKSPACE}/data/environments:/root/chef-solo/environments ${PREFIX}/sdc-init-elasticsearch:${RELEASE} + +# Checking Elastic-Search-Init chef status +if [ ! $? -eq 0 ]; then + echo "Elastic-Search Initialization failed" + exit $? +fi # Cassandra echo "docker run sdc-cassandra..." diff --git a/sdc-os-chef/sdc-elasticsearch/startup.sh b/sdc-os-chef/sdc-elasticsearch/startup.sh index 6c9b0c0629..1871d685f6 100644 --- a/sdc-os-chef/sdc-elasticsearch/startup.sh +++ b/sdc-os-chef/sdc-elasticsearch/startup.sh @@ -3,7 +3,8 @@ cd /root/chef-solo/ chef-solo -c solo.rb -E ${ENVNAME} -/docker-entrypoint.sh elasticsearch & +chef_status=$? -while true; do sleep 2; done +/docker-entrypoint.sh elasticsearch & +exec "$@"; \ No newline at end of file diff --git a/sdc-os-chef/sdc-init-elasticsearch/startup.sh b/sdc-os-chef/sdc-init-elasticsearch/startup.sh index ac260523cb..9a8cbc3394 100644 --- a/sdc-os-chef/sdc-init-elasticsearch/startup.sh +++ b/sdc-os-chef/sdc-init-elasticsearch/startup.sh @@ -2,3 +2,5 @@ cd /root/chef-solo/ chef-solo -c solo.rb -E ${ENVNAME} + +exit $? \ No newline at end of file -- cgit 1.2.3-korg