Spaces:
Build error
Build error
set -e | |
# Ensure current path script dir | |
cd "$(dirname "$0")/" | |
CERT_DIR="$PWD/cert" | |
function clear_after_tests() | |
{ | |
docker compose down --timeout 20 | |
} | |
function run_with_retry() | |
{ | |
set +e | |
for i in $(seq 1 $1) | |
do | |
RET=$($2) | |
if [ "$?" == 0 ] | |
then | |
set -e | |
return 0 | |
fi | |
printf "Wait before retry\n" | |
sleep 10 | |
done | |
printf "ERROR: %s\n" "$3" 1>&2 | |
set -e | |
return 1 | |
} | |
# Prevent double building in docker-compose | |
docker buildx build --build-arg=PROFILE=ci --load ../../ --tag=qdrant_tls | |
docker compose down --volumes | |
docker compose up -d --force-recreate | |
trap clear_after_tests EXIT | |
# Wait for service to start and test http and grpc endpoints with TLS | |
for node in 1 2 | |
do | |
run_with_retry 5 "docker run --rm --network=tls_qdrant -v $CERT_DIR:/tls_path curlimages/curl --cacert /tls_path/cacert.pem --cert /tls_path/cert.pem --key /tls_path/key.pem https://node$node.qdrant:6333/telemetry" "Failed to GET /telemetry of node$node" | |
run_with_retry 5 "docker run --rm --network=tls_qdrant -v $CERT_DIR:/tls_path -v ${PWD}/../../lib/api/src/grpc/proto:/proto fullstorydev/grpcurl -cacert /tls_path/cacert.pem -import-path /proto -proto qdrant.proto -d {} node$node.qdrant:6334 qdrant.Qdrant/HealthCheck" "Failed to perform health check via grpc of node$node" | |
done | |
printf "Client TLS connection OK\n" | |
# Verify both nodes are in cluster | |
CLUSTER_INFO=$(docker run --rm --network=tls_qdrant -v $CERT_DIR:/tls_path curlimages/curl --cacert /tls_path/cacert.pem --cert /tls_path/cert.pem --key /tls_path/key.pem https://node1.qdrant:6333/cluster) | |
for node in 1 2 | |
do | |
grep -q "{\"uri\":\"https://node$node.qdrant:6335/\"}" <<< "$CLUSTER_INFO" | |
done | |
printf "Internodal TLS connection OK\n" | |