k3s/scripts/test-setup-sonobuoy-postgres

57 lines
1.7 KiB
Bash

#!/bin/bash
. ./scripts/test-setup-sonobuoy
# ---
cluster-pre-hook() {
# gen-certs
mkdir -p $TEST_DIR/db/$LABEL_SUFFIX/metadata
local testID=$(basename $TEST_DIR)
local name=$(echo $LABEL_SUFFIX-$testID | tee $TEST_DIR/db/$LABEL_SUFFIX/metadata/name)
local port=$(timeout --foreground 5s bash -c get-port | tee $TEST_DIR/db/$LABEL_SUFFIX/metadata/port)
local secret=$(echo "${RANDOM}${RANDOM}${RANDOM}" | tee $TEST_DIR/db/$LABEL_SUFFIX/metadata/secret)
docker run --name $name \
--privileged \
-p 0.0.0.0:$port:5432 \
-v $TEST_DIR/db-ca/:/db-ca \
-e POSTGRES_USER=root \
-e POSTGRES_PASSWORD=$secret \
-d postgres:latest \
>/dev/null
# -c ssl=on \
# -c ssl_ca_file=/db-ca/certs/ca.crt \
# -c ssl_cert_file=/db-ca/certs/db.crt \
# -c ssl_key_file=/db-ca/private/db.key \
local ip=$(docker inspect --format '{{ .NetworkSettings.IPAddress }}' $name | tee $TEST_DIR/db/$LABEL_SUFFIX/metadata/ip)
# local host=host.docker.internal
local host=172.17.0.1
DB_CONNECTION_TEST="
docker run
-v $TEST_DIR/db-ca/:/db-ca
-e PGPASSWORD=$secret
--rm postgres
psql
-h $host
-p $port
-U root
-c \conninfo" \
timeout --foreground 1m bash -c "wait-for-db-connection"
# --set sslrootcert=/db-ca/certs/ca.crt
# --set sslcert=/db-ca/certs/client.crt
# --set sslkey=/db-ca/private/client.key
echo "Started $LABEL_SUFFIX db @ $host"
export SERVER_ARGS="${SERVER_ARGS}
--datastore-endpoint=postgres://root:$secret@$host:$port/testdb?sslmode=disable
"
# --datastore-cafile /db-ca/certs/ca.crt
# --datastore-certfile /db-ca/certs/client.crt
# --datastore-keyfile /db-ca/private/client.key
}
export -f cluster-pre-hook