Add a released-image dependency compatibility testbed
This commit is contained in:
parent
d07a4085db
commit
f42343855f
1 changed files with 1107 additions and 1 deletions
83
tests/kind/run.sh
Executable file
83
tests/kind/run.sh
Executable file
|
|
@ -0,0 +1,83 @@
|
|||
#!/usr/bin/env bash
|
||||
set -euo pipefail
|
||||
|
||||
ROOT="$(cd "$(dirname "$0")/../.." && pwd)"
|
||||
source "$ROOT/tests/kind/lib.sh"
|
||||
|
||||
mkdir -p "$RUNTIME"
|
||||
rm -rf "$RUNTIME/image-archives"
|
||||
mkdir -p "$RUNTIME/image-archives"
|
||||
USER_KUBECONFIG_BEFORE="$(user_kubeconfig_digest)"
|
||||
SUCCEEDED=false
|
||||
|
||||
cleanup() {
|
||||
local status=$?
|
||||
trap - EXIT INT TERM
|
||||
if [[ "${REMORA_TESTBED_RETAIN:-0}" = 1 ]] && [[ "$SUCCEEDED" != true ]]; then
|
||||
printf 'retained kubeconfig: %s\n' "$KUBECONFIG_PATH"
|
||||
printf 'retained context: %s\n' "$CONTEXT"
|
||||
exit "$status"
|
||||
fi
|
||||
if [[ -n "${REMORA_REAL_NERDCTL:-}" ]]; then
|
||||
delete_cluster || status=1
|
||||
remove_runtime_namespace || status=1
|
||||
fi
|
||||
rm -rf "$RUNTIME/image-archives" || status=1
|
||||
rm -f "$KUBECONFIG_PATH" "$RUNTIME/dependencies.yaml" "$RUNTIME/probe.yaml" || status=1
|
||||
if [[ "$(user_kubeconfig_digest)" != "$USER_KUBECONFIG_BEFORE" ]]; then
|
||||
printf 'user kubeconfig changed unexpectedly\n' >&2
|
||||
status=1
|
||||
fi
|
||||
if [[ "$status" = 0 ]] && [[ "$SUCCEEDED" = true ]]; then
|
||||
printf 'WP-02 hermetic dependency testbed passed\n'
|
||||
fi
|
||||
exit "$status"
|
||||
}
|
||||
|
||||
trap cleanup EXIT INT TERM
|
||||
|
||||
prepare_tools
|
||||
prepare_provider
|
||||
|
||||
"$BIN/kind" create cluster \
|
||||
--name "$CLUSTER" \
|
||||
--image "$NODE_IMAGE" \
|
||||
--config "$TESTBED/cluster.yaml" \
|
||||
--kubeconfig "$KUBECONFIG_PATH" \
|
||||
--wait 180s
|
||||
|
||||
POSTGRES_LOCAL_IMAGE="$(load_external_image postgres "$POSTGRES_IMAGE")"
|
||||
REDIS_LOCAL_IMAGE="$(load_external_image redis "$REDIS_IMAGE")"
|
||||
DRAGONFLY_LOCAL_IMAGE="$(load_external_image dragonfly "$DRAGONFLY_IMAGE")"
|
||||
VAULT_LOCAL_IMAGE="$(load_external_image vault "$VAULT_IMAGE")"
|
||||
KEYCLOAK_LOCAL_IMAGE="$(load_external_image keycloak "$KEYCLOAK_IMAGE")"
|
||||
ZITADEL_LOCAL_IMAGE="$(load_external_image zitadel "$ZITADEL_IMAGE")"
|
||||
GARAGE_LOCAL_IMAGE="$(load_external_image garage "$GARAGE_IMAGE")"
|
||||
VERSITYGW_LOCAL_IMAGE="$(load_external_image versitygw "$VERSITYGW_IMAGE")"
|
||||
COREDNS_LOCAL_IMAGE="$(load_external_image coredns "$COREDNS_IMAGE")"
|
||||
CURL_LOCAL_IMAGE="$(load_external_image curl "$CURL_IMAGE")"
|
||||
AWS_CLI_LOCAL_IMAGE="$(load_external_image aws-cli "$AWS_CLI_IMAGE")"
|
||||
render_manifests \
|
||||
"$POSTGRES_LOCAL_IMAGE" \
|
||||
"$REDIS_LOCAL_IMAGE" \
|
||||
"$DRAGONFLY_LOCAL_IMAGE" \
|
||||
"$VAULT_LOCAL_IMAGE" \
|
||||
"$KEYCLOAK_LOCAL_IMAGE" \
|
||||
"$ZITADEL_LOCAL_IMAGE" \
|
||||
"$GARAGE_LOCAL_IMAGE" \
|
||||
"$VERSITYGW_LOCAL_IMAGE" \
|
||||
"$COREDNS_LOCAL_IMAGE" \
|
||||
"$CURL_LOCAL_IMAGE" \
|
||||
"$AWS_CLI_LOCAL_IMAGE"
|
||||
|
||||
kube apply --filename "$RUNTIME/dependencies.yaml"
|
||||
for deployment in postgres redis dragonfly vault keycloak zitadel garage versitygw controlled-dns; do
|
||||
kube --namespace remora-testbed rollout status "deployment/$deployment" --timeout 240s
|
||||
done
|
||||
|
||||
kube apply --filename "$RUNTIME/probe.yaml"
|
||||
for job in state-probe oidc-probe garage-probe versitygw-probe; do
|
||||
wait_for_job "$job"
|
||||
done
|
||||
|
||||
SUCCEEDED=true
|
||||
Loading…
Reference in a new issue