From c9a1a8844db555631dbfe219eb36779f3c597e44 Mon Sep 17 00:00:00 2001 From: Wilfried Goesgens Date: Wed, 23 Oct 2024 10:17:31 +0200 Subject: [PATCH 01/11] mount directory instead of docker volume --- docker/start_db.sh | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/docker/start_db.sh b/docker/start_db.sh index 058b108..b35b85e 100755 --- a/docker/start_db.sh +++ b/docker/start_db.sh @@ -55,14 +55,17 @@ if [ "$EXTENDED_NAMES" == "true" ]; then fi # data volume -docker create -v /data --name adb-data alpine:3 /bin/true -docker cp "$LOCATION"/jwtSecret adb-data:/data -docker cp "$LOCATION"/server.pem adb-data:/data +#docker create -v /data --name adb-data alpine:3 /bin/true +#docker cp "$LOCATION"/jwtSecret adb-data:/data +#docker cp "$LOCATION"/server.pem adb-data:/data + +mkdir data +cp "$LOCATION"/jwtSecret "$LOCATION"/server.pem data docker run -d \ --name=adb \ -p 8528:8528 \ - --volumes-from adb-data \ + -v ${PWD}/data:/data -v /var/run/docker.sock:/var/run/docker.sock \ -e ARANGO_LICENSE_KEY="$ARANGO_LICENSE_KEY" \ $STARTER_DOCKER_IMAGE \ From 0b6e842500f9bcb9883973d7e59ab02f4bd02c4b Mon Sep 17 00:00:00 2001 From: Wilfried Goesgens Date: Wed, 23 Oct 2024 10:28:10 +0200 Subject: [PATCH 02/11] mount directory instead of docker volume --- docker/start_db.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docker/start_db.sh b/docker/start_db.sh index b35b85e..3fce94c 100755 --- a/docker/start_db.sh +++ b/docker/start_db.sh @@ -1,4 +1,4 @@ -#!/bin/bash +#!/bin/bash -x # Configuration environment variables: # STARTER_MODE: (single|cluster|activefailover), default single From 01c6192db64ce23e1b571e68390e68e5d183b2b0 Mon Sep 17 00:00:00 2001 From: Wilfried Goesgens Date: Wed, 23 Oct 2024 10:32:38 +0200 Subject: [PATCH 03/11] mount directory instead of docker volume --- docker/start_db.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docker/start_db.sh b/docker/start_db.sh index 3fce94c..52010fa 100755 --- a/docker/start_db.sh +++ b/docker/start_db.sh @@ -65,7 +65,7 @@ cp "$LOCATION"/jwtSecret "$LOCATION"/server.pem data docker run -d \ --name=adb \ -p 8528:8528 \ - -v ${PWD}/data:/data + -v ${PWD}/data:/data \ -v /var/run/docker.sock:/var/run/docker.sock \ -e ARANGO_LICENSE_KEY="$ARANGO_LICENSE_KEY" \ $STARTER_DOCKER_IMAGE \ From e790f92efddb8c8004f16558d765d926c5e1c63d Mon Sep 17 00:00:00 2001 From: Wilfried Goesgens Date: Wed, 23 Oct 2024 10:55:29 +0200 Subject: [PATCH 04/11] mount directory instead of docker volume --- docker/start_db.sh | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/docker/start_db.sh b/docker/start_db.sh index 52010fa..bb9edbb 100755 --- a/docker/start_db.sh +++ b/docker/start_db.sh @@ -80,7 +80,8 @@ docker run -d \ wait_server() { # shellcheck disable=SC2091 - until $(curl --output /dev/null --insecure --fail --silent --head -i -H "$AUTHORIZATION_HEADER" "$SCHEME://$1/_api/version"); do + # --output /dev/null + until $(curl --insecure --fail --silent --head -i -H "$AUTHORIZATION_HEADER" "$SCHEME://$1/_api/version"); do printf '.' sleep 1 done From fb887699a7969705b5777f02cac9b6d13c64baba Mon Sep 17 00:00:00 2001 From: Wilfried Goesgens Date: Wed, 23 Oct 2024 10:56:35 +0200 Subject: [PATCH 05/11] mount directory instead of docker volume --- docker/start_db.sh | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docker/start_db.sh b/docker/start_db.sh index bb9edbb..9b4efc8 100755 --- a/docker/start_db.sh +++ b/docker/start_db.sh @@ -80,8 +80,8 @@ docker run -d \ wait_server() { # shellcheck disable=SC2091 - # --output /dev/null - until $(curl --insecure --fail --silent --head -i -H "$AUTHORIZATION_HEADER" "$SCHEME://$1/_api/version"); do + # --output /dev/null --silent --head + until $(curl --insecure --fail -i -H "$AUTHORIZATION_HEADER" "$SCHEME://$1/_api/version"); do printf '.' sleep 1 done From 81e7d6a35654a039dfc0dafde4c11e45d6aa36db Mon Sep 17 00:00:00 2001 From: Wilfried Goesgens Date: Wed, 23 Oct 2024 12:07:56 +0200 Subject: [PATCH 06/11] add stopp that copies data from remote into a zip --- .circleci/config.yml | 20 +++++++++++++++ docker/start_db.sh | 16 +++++------- docker/stop_db.sh | 61 ++++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 87 insertions(+), 10 deletions(-) create mode 100644 docker/stop_db.sh diff --git a/.circleci/config.yml b/.circleci/config.yml index 5c13220..fed164a 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -89,6 +89,11 @@ jobs: - run: name: Integration Tests command: mvn integration-test + - run: + name: zip and retrieve test data + command: ./docker/stop_db.sh + - store_artifacts: + result.tar.gz - report - store_cache @@ -126,6 +131,11 @@ jobs: - run: name: Integration Tests command: mvn integration-test -Ddistributed -Darango.topology=$STARTER_MODE + - run: + name: zip and retrieve test data + command: ./docker/stop_db.sh + - store_artifacts: + result.tar.gz - report - store_cache @@ -153,6 +163,11 @@ jobs: - run: name: Integration Tests command: mvn integration-test -Ddistributed -DSslTest=true -Dit.test=com.arangodb.kafka.SslIT + - run: + name: zip and retrieve test data + command: ./docker/stop_db.sh + - store_artifacts: + result.tar.gz - report - store_cache @@ -181,6 +196,11 @@ jobs: - run: name: Integration Tests command: mvn integration-test -DresilienceTests -Darango.topology=$STARTER_MODE -Dit.test=com.arangodb.kafka.resilience.** + - run: + name: zip and retrieve test data + command: ./docker/stop_db.sh + - store_artifacts: + result.tar.gz - report - store_cache diff --git a/docker/start_db.sh b/docker/start_db.sh index 9b4efc8..058b108 100755 --- a/docker/start_db.sh +++ b/docker/start_db.sh @@ -1,4 +1,4 @@ -#!/bin/bash -x +#!/bin/bash # Configuration environment variables: # STARTER_MODE: (single|cluster|activefailover), default single @@ -55,17 +55,14 @@ if [ "$EXTENDED_NAMES" == "true" ]; then fi # data volume -#docker create -v /data --name adb-data alpine:3 /bin/true -#docker cp "$LOCATION"/jwtSecret adb-data:/data -#docker cp "$LOCATION"/server.pem adb-data:/data - -mkdir data -cp "$LOCATION"/jwtSecret "$LOCATION"/server.pem data +docker create -v /data --name adb-data alpine:3 /bin/true +docker cp "$LOCATION"/jwtSecret adb-data:/data +docker cp "$LOCATION"/server.pem adb-data:/data docker run -d \ --name=adb \ -p 8528:8528 \ - -v ${PWD}/data:/data \ + --volumes-from adb-data \ -v /var/run/docker.sock:/var/run/docker.sock \ -e ARANGO_LICENSE_KEY="$ARANGO_LICENSE_KEY" \ $STARTER_DOCKER_IMAGE \ @@ -80,8 +77,7 @@ docker run -d \ wait_server() { # shellcheck disable=SC2091 - # --output /dev/null --silent --head - until $(curl --insecure --fail -i -H "$AUTHORIZATION_HEADER" "$SCHEME://$1/_api/version"); do + until $(curl --output /dev/null --insecure --fail --silent --head -i -H "$AUTHORIZATION_HEADER" "$SCHEME://$1/_api/version"); do printf '.' sleep 1 done diff --git a/docker/stop_db.sh b/docker/stop_db.sh new file mode 100644 index 0000000..4f278fe --- /dev/null +++ b/docker/stop_db.sh @@ -0,0 +1,61 @@ +#!/bin/bash -x +# Configuration environment variables: +# STARTER_MODE: (single|cluster|activefailover), default single +# DOCKER_IMAGE: ArangoDB docker image, default docker.io/arangodb/arangodb:latest +# SSL: (true|false), default false +# EXTENDED_NAMES: (true|false), default false +# ARANGO_LICENSE_KEY: only required for ArangoDB Enterprise + +# EXAMPLE: +# STARTER_MODE=cluster SSL=true ./start_db.sh + +STARTER_MODE=${STARTER_MODE:=single} +DOCKER_IMAGE=${DOCKER_IMAGE:=docker.io/arangodb/arangodb:latest} +SSL=${SSL:=false} +EXTENDED_NAMES=${EXTENDED_NAMES:=false} + +STARTER_DOCKER_IMAGE=docker.io/arangodb/arangodb-starter:latest +GW=172.28.0.1 + +echo "---" +echo "starting ArangoDB with:" +echo "DOCKER_IMAGE=$DOCKER_IMAGE" +echo "STARTER_DOCKER_IMAGE=$STARTER_DOCKER_IMAGE" +echo "STARTER_MODE=$STARTER_MODE" +echo "SSL=$SSL" +echo "EXTENDED_NAMES=$EXTENDED_NAMES" + +# exit when any command fails +set -e + +docker pull $STARTER_DOCKER_IMAGE +docker pull $DOCKER_IMAGE + +LOCATION=$(pwd)/$(dirname "$0") +AUTHORIZATION_HEADER=$(cat "$LOCATION"/jwtHeader) + +STARTER_ARGS= +SCHEME=http +ARANGOSH_SCHEME=http+tcp +COORDINATORS=("$GW:8529" "$GW:8539" "$GW:8549") + +if [ "$STARTER_MODE" == "single" ]; then + COORDINATORS=("$GW:8529") +fi + +if [ "$SSL" == "true" ]; then + STARTER_ARGS="$STARTER_ARGS --ssl.keyfile=/data/server.pem" + SCHEME=https + ARANGOSH_SCHEME=http+ssl +fi + +if [ "$EXTENDED_NAMES" == "true" ]; then + STARTER_ARGS="${STARTER_ARGS} --all.database.extended-names=true" +fi + + +docker stop adb + +docker cp adb-data:/data - > result.tar +gzip result.tar + From 9839ef2d19084bd1705e8c2e77648853d884f86c Mon Sep 17 00:00:00 2001 From: Wilfried Goesgens Date: Wed, 23 Oct 2024 12:10:12 +0200 Subject: [PATCH 07/11] add stopp that copies data from remote into a zip --- .circleci/config.yml | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/.circleci/config.yml b/.circleci/config.yml index fed164a..2165792 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -93,7 +93,7 @@ jobs: name: zip and retrieve test data command: ./docker/stop_db.sh - store_artifacts: - result.tar.gz + path: result.tar.gz - report - store_cache @@ -135,7 +135,7 @@ jobs: name: zip and retrieve test data command: ./docker/stop_db.sh - store_artifacts: - result.tar.gz + path: result.tar.gz - report - store_cache @@ -167,7 +167,7 @@ jobs: name: zip and retrieve test data command: ./docker/stop_db.sh - store_artifacts: - result.tar.gz + path: result.tar.gz - report - store_cache @@ -200,7 +200,7 @@ jobs: name: zip and retrieve test data command: ./docker/stop_db.sh - store_artifacts: - result.tar.gz + path: result.tar.gz - report - store_cache From 9a53467a4ff85c3273a84947ca82aae2704ebee1 Mon Sep 17 00:00:00 2001 From: Wilfried Goesgens Date: Wed, 23 Oct 2024 12:13:13 +0200 Subject: [PATCH 08/11] add stopp that copies data from remote into a zip --- docker/stop_db.sh | 0 1 file changed, 0 insertions(+), 0 deletions(-) mode change 100644 => 100755 docker/stop_db.sh diff --git a/docker/stop_db.sh b/docker/stop_db.sh old mode 100644 new mode 100755 From 547a99423cdef16439a21e86f0f4919d519a92e4 Mon Sep 17 00:00:00 2001 From: Wilfried Goesgens Date: Wed, 23 Oct 2024 12:41:55 +0200 Subject: [PATCH 09/11] only on fail --- .circleci/config.yml | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/.circleci/config.yml b/.circleci/config.yml index 2165792..50ffa73 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -92,8 +92,10 @@ jobs: - run: name: zip and retrieve test data command: ./docker/stop_db.sh + when: on_fail - store_artifacts: path: result.tar.gz + when: on_fail - report - store_cache @@ -134,8 +136,10 @@ jobs: - run: name: zip and retrieve test data command: ./docker/stop_db.sh + when: on_fail - store_artifacts: path: result.tar.gz + when: on_fail - report - store_cache @@ -166,8 +170,10 @@ jobs: - run: name: zip and retrieve test data command: ./docker/stop_db.sh + when: on_fail - store_artifacts: path: result.tar.gz + when: on_fail - report - store_cache @@ -199,8 +205,10 @@ jobs: - run: name: zip and retrieve test data command: ./docker/stop_db.sh + when: on_fail - store_artifacts: path: result.tar.gz + when: on_fail - report - store_cache From 42e1e169be2c87aba43cdcaf36bb8c7301628395 Mon Sep 17 00:00:00 2001 From: Wilfried Goesgens Date: Wed, 23 Oct 2024 12:56:57 +0200 Subject: [PATCH 10/11] only on fail --- .circleci/config.yml | 4 ---- 1 file changed, 4 deletions(-) diff --git a/.circleci/config.yml b/.circleci/config.yml index 50ffa73..f9a3489 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -95,7 +95,6 @@ jobs: when: on_fail - store_artifacts: path: result.tar.gz - when: on_fail - report - store_cache @@ -139,7 +138,6 @@ jobs: when: on_fail - store_artifacts: path: result.tar.gz - when: on_fail - report - store_cache @@ -173,7 +171,6 @@ jobs: when: on_fail - store_artifacts: path: result.tar.gz - when: on_fail - report - store_cache @@ -208,7 +205,6 @@ jobs: when: on_fail - store_artifacts: path: result.tar.gz - when: on_fail - report - store_cache From c195eb8a04c6ebc67cbe527f293872853fa45397 Mon Sep 17 00:00:00 2001 From: Michele Rastelli Date: Wed, 23 Oct 2024 13:12:46 +0200 Subject: [PATCH 11/11] cleanup --- docker/stop_db.sh | 55 ----------------------------------------------- 1 file changed, 55 deletions(-) diff --git a/docker/stop_db.sh b/docker/stop_db.sh index 4f278fe..1e21621 100755 --- a/docker/stop_db.sh +++ b/docker/stop_db.sh @@ -1,61 +1,6 @@ #!/bin/bash -x -# Configuration environment variables: -# STARTER_MODE: (single|cluster|activefailover), default single -# DOCKER_IMAGE: ArangoDB docker image, default docker.io/arangodb/arangodb:latest -# SSL: (true|false), default false -# EXTENDED_NAMES: (true|false), default false -# ARANGO_LICENSE_KEY: only required for ArangoDB Enterprise - -# EXAMPLE: -# STARTER_MODE=cluster SSL=true ./start_db.sh - -STARTER_MODE=${STARTER_MODE:=single} -DOCKER_IMAGE=${DOCKER_IMAGE:=docker.io/arangodb/arangodb:latest} -SSL=${SSL:=false} -EXTENDED_NAMES=${EXTENDED_NAMES:=false} - -STARTER_DOCKER_IMAGE=docker.io/arangodb/arangodb-starter:latest -GW=172.28.0.1 - -echo "---" -echo "starting ArangoDB with:" -echo "DOCKER_IMAGE=$DOCKER_IMAGE" -echo "STARTER_DOCKER_IMAGE=$STARTER_DOCKER_IMAGE" -echo "STARTER_MODE=$STARTER_MODE" -echo "SSL=$SSL" -echo "EXTENDED_NAMES=$EXTENDED_NAMES" - -# exit when any command fails -set -e - -docker pull $STARTER_DOCKER_IMAGE -docker pull $DOCKER_IMAGE - -LOCATION=$(pwd)/$(dirname "$0") -AUTHORIZATION_HEADER=$(cat "$LOCATION"/jwtHeader) - -STARTER_ARGS= -SCHEME=http -ARANGOSH_SCHEME=http+tcp -COORDINATORS=("$GW:8529" "$GW:8539" "$GW:8549") - -if [ "$STARTER_MODE" == "single" ]; then - COORDINATORS=("$GW:8529") -fi - -if [ "$SSL" == "true" ]; then - STARTER_ARGS="$STARTER_ARGS --ssl.keyfile=/data/server.pem" - SCHEME=https - ARANGOSH_SCHEME=http+ssl -fi - -if [ "$EXTENDED_NAMES" == "true" ]; then - STARTER_ARGS="${STARTER_ARGS} --all.database.extended-names=true" -fi - docker stop adb docker cp adb-data:/data - > result.tar gzip result.tar -