Skip to content

Commit

Permalink
fix repository plugin config
Browse files Browse the repository at this point in the history
  • Loading branch information
rhanka committed Dec 25, 2023
1 parent 946412d commit b6f8679
Showing 1 changed file with 49 additions and 28 deletions.
77 changes: 49 additions & 28 deletions Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -192,49 +192,70 @@ endif
elasticsearch2-stop:
@${DC} -f ${DC_FILE}-elasticsearch-huge-remote.yml down

elastisearch-repository-plugin:
@docker exec -i ${USE_TTY} ${DC_PREFIX}-elasticsearch sh -c \
"echo ${STORAGE_ACCESS_KEY} | bin/elasticsearch-keystore add --stdin --force s3.client.default.access_key"
@docker exec -i ${USE_TTY} ${DC_PREFIX}-elasticsearch sh -c \
"echo ${STORAGE_SECRET_KEY} | bin/elasticsearch-keystore add --stdin --force s3.client.default.secret_key"
@docker restart ${DC_PREFIX}-elasticsearch
@timeout=${TIMEOUT} ; ret=1 ; until [ "$$timeout" -le 0 -o "$$ret" -eq "0" ] ; do (docker exec -i ${USE_TTY} ${DC_PREFIX}-elasticsearch curl -s --fail -XGET localhost:9200/_cat/indices > /dev/null) ; ret=$$? ; if [ "$$ret" -ne "0" ] ; then echo -en "\rwaiting for elasticsearch to start $$timeout" ; fi ; ((timeout--)); sleep 1 ; done ; echo ; exit $$ret
@touch elastisearch-repository-plugin
elasticsearch-repository-plugin: elasticsearch
@if [ ! -f "elasticsearch-repository-plugin" ]; then\
echo installing elasticsearch repository plugin;\
docker exec -i ${USE_TTY} ${DC_PREFIX}-elasticsearch sh -c \
"echo ${STORAGE_ACCESS_KEY} | bin/elasticsearch-keystore add --stdin --force s3.client.default.access_key";\
docker exec -i ${USE_TTY} ${DC_PREFIX}-elasticsearch sh -c \
"echo ${STORAGE_SECRET_KEY} | bin/elasticsearch-keystore add --stdin --force s3.client.default.secret_key";\
docker restart ${DC_PREFIX}-elasticsearch;\
timeout=${TIMEOUT} ; ret=1 ; until [ "$$timeout" -le 0 -o "$$ret" -eq "0" ] ; do (docker exec -i ${USE_TTY} ${DC_PREFIX}-elasticsearch curl -s --fail -XGET localhost:9200/_cat/indices > /dev/null) ; ret=$$? ; if [ "$$ret" -ne "0" ] ; then echo -en "\rwaiting for elasticsearch to start $$timeout" ; fi ; ((timeout--)); sleep 1 ; done ;\
echo; touch elasticsearch-repository-plugin ; exit $$ret;\
fi;

elasticsearch-repository-config: elastisearch-repository-plugin
@docker exec -i ${USE_TTY} ${DC_PREFIX}-elasticsearch \
curl -s -XPUT "localhost:9200/_snapshot/${APP_GROUP}" -H 'Content-Type: application/json' \
-d '{"type": "s3","settings": {"bucket": "${REPOSITORY_BUCKET}","client": "default","region": "${SCW_REGION}","endpoint": "${SCW_ENDPOINT}","path_style_access": true,"protocol": "https"}}' \
| grep -q '"acknowledged":true' && touch elasticsearch-repository-config
elasticsearch-repository-config: elasticsearch-repository-plugin
@if [ ! -f "elasticsearch-repository-config" ]; then\
echo creating elasticsearch repository ${APP_GROUP} in s3 bucket ${REPOSITORY_BUCKET} && \
docker exec -i ${USE_TTY} ${DC_PREFIX}-elasticsearch \
curl -s -XPUT "localhost:9200/_snapshot/${APP_GROUP}" -H 'Content-Type: application/json' \
-d '{"type": "s3","settings": {"bucket": "${REPOSITORY_BUCKET}","client": "default","region": "${SCW_REGION}","endpoint": "${SCW_ENDPOINT}","path_style_access": true,"protocol": "https"}}' \
| grep -q '"acknowledged":true' && touch elasticsearch-repository-config;
fi

elasticsearch-repository-backup: elasticsearch-repository-config
@echo creating snapshot ${ES_BACKUP_NAME} in elasticsearch repository;\
docker exec -i ${USE_TTY} ${DC_PREFIX}-elasticsearch \
curl -s -XPUT "localhost:9200/_snapshot/${APP_GROUP}/${ES_BACKUP_NAME}?wait_for_completion=true" -H 'Content-Type: application/json'\
-d '{"indices": "${ES_INDEX}", "ignore_unavailable": true, "include_global_state": false}'

elasticsearch-repository-backup-async: elastisearch-repository-config
(\
docker exec -i ${USE_TTY} ${DC_PREFIX}-elasticsearch \
curl -s -XPUT "localhost:9200/_snapshot/${APP_GROUP}/${ES_BACKUP_NAME}?wait_for_completion=true" -H 'Content-Type: application/json'\
-d '{"indices": "${ES_INDEX}", "ignore_unavailable": true, "include_global_state": false}' \
> /dev/null 2>&1\
) && echo "snapshot ${ES_BACKUP_NAME} created in elasticsearch repository" && touch elasticsearch-repository-backup

elasticsearch-repository-backup-async: elasticsearch-repository-config
@docker exec -i ${USE_TTY} ${DC_PREFIX}-elasticsearch \
curl -s -XPUT "localhost:9200/_snapshot/${APP_GROUP}/${ES_BACKUP_NAME}" -H 'Content-Type: application/json'\
-d '{"indices": "${ES_INDEX}", "ignore_unavailable": true, "include_global_state": false}'

elasticsearch-repository-delete: elastisearch-repository-config
@docker exec -i ${USE_TTY} ${DC_PREFIX}-elasticsearch \
curl -s -XDELETE "localhost:9200/_snapshot/${APP_GROUP}/${ES_BACKUP_NAME}"
elasticsearch-repository-delete: elasticsearch-repository-config
@(\
docker exec -i ${USE_TTY} ${DC_PREFIX}-elasticsearch \
curl -s -XDELETE "localhost:9200/_snapshot/${APP_GROUP}/${ES_BACKUP_NAME}"\
> /dev/null 2>&1\
) && echo "snapshot ${ES_BACKUP_NAME} deleted from elasticsearch repository"

elasticsearch-repository-restore: elastisearch-repository-config
elasticsearch-repository-list: elasticsearch-repository-config
@docker exec -i ${USE_TTY} ${DC_PREFIX}-elasticsearch \
curl -s -XPOST localhost:9200/_snapshot/${APP_GROUP}/${ES_BACKUP_NAME}/_restore?wait_for_completion=true -H 'Content-Type: application/json'\
-d '{"indices": "${ES_INDEX}","ignore_unavailable": true,"include_global_state": false}'

elasticsearch-repository-check:
curl -s -XGET "localhost:9200/_snapshot/${APP_GROUP}/_all"\
| jq -r '.snapshots[].snapshot'

elasticsearch-repository-restore: elasticsearch-repository-config
@echo restoring snapshot ${ES_BACKUP_NAME} from elasticsearch repository;\
(\
docker exec -i ${USE_TTY} ${DC_PREFIX}-elasticsearch \
curl -s -XPOST localhost:9200/_snapshot/${APP_GROUP}/${ES_BACKUP_NAME}/_restore?wait_for_completion=true -H 'Content-Type: application/json'\
-d '{"indices": "${ES_INDEX}","ignore_unavailable": true,"include_global_state": false}' \
> /dev/null 2>&1\
) && echo "snapshot ${ES_BACKUP_NAME} restored from elasticsearch repository" && touch elasticsearch-repository-restore

elasticsearch-repository-check: elasticsearch-repository-config backup-dir
@if [ ! -f "${BACKUP_DIR}/${ES_BACKUP_NAME}.check" ]; then\
(\
docker exec -i ${USE_TTY} ${DC_PREFIX}-elasticsearch \
curl -s -XGET "localhost:9200/_snapshot/${APP_GROUP}/${ES_BACKUP_NAME}" \
curl -s -XGET "localhost:9200/_snapshot/${APP_GROUP}/_all" \
| jq -r '.snapshots[].snapshot' | grep -q "${ES_BACKUP_NAME}" \
) > /dev/null 2>&1 \
&& echo "snapshot found for or ${ES_BACKUP_NAME} in elasticsearch repository" && touch "${BACKUP_DIR}/${ES_BACKUP_NAME}.check" \
&& echo "snapshot found for or ${ES_BACKUP_NAME} in elasticsearch repository" && mkdir -p touch "${BACKUP_DIR}/${ES_BACKUP_NAME}.check" \
|| (echo "no snapshot found for ${ES_BACKUP_NAME} in elasticsearch repository")\
fi

Expand Down

0 comments on commit b6f8679

Please sign in to comment.