51 lines
1.4 KiB
Bash
51 lines
1.4 KiB
Bash
#!/usr/bin/env bash
|
|
|
|
# ---
|
|
|
|
e2e-wait-for-kubeconfig() {
|
|
set -e -o pipefail
|
|
# the `--insecure-skip-tls-verify` seems to be only needed here when run in dapper
|
|
while ! kubectl --insecure-skip-tls-verify get pods -A >/dev/null 2>&1 ; do
|
|
echo 'Waiting for kubeconfig to become available...' >&2
|
|
sleep 5
|
|
cluster-get-kubeconfig >/dev/null
|
|
done
|
|
}
|
|
export -f e2e-wait-for-kubeconfig
|
|
|
|
e2e-count-ready-nodes() {
|
|
kubectl get nodes -o json \
|
|
| jq '.items[].status.conditions[] | select(.type == "Ready" and .status == "True") | .type' \
|
|
| wc -l \
|
|
| tr -d '[:space:]'
|
|
}
|
|
export -f e2e-count-ready-nodes
|
|
|
|
e2e-wait-for-nodes() {
|
|
while [[ $(e2e-count-ready-nodes) -lt $(cluster-num-nodes) ]]; do
|
|
echo 'Waiting for nodes to be ready...' >&2
|
|
sleep 5
|
|
done
|
|
}
|
|
export -f e2e-wait-for-nodes
|
|
|
|
e2e-pod-ready() {
|
|
kubectl get pods -n kube-system -o json \
|
|
| jq ".items[].status.containerStatuses[] | select(.name == \"$1\") | .ready" 2>/dev/null
|
|
}
|
|
export -f e2e-pod-ready
|
|
|
|
e2e-wait-for-services() {
|
|
for svc in ${WAIT_FOR_SERVICES:="coredns local-path-provisioner"}; do
|
|
while [[ "$(e2e-pod-ready $svc)" != 'true' ]]; do
|
|
echo "Waiting for service '$svc' to be ready..." >&2
|
|
sleep 5
|
|
done
|
|
echo "Service '$svc' is ready"
|
|
done
|
|
}
|
|
export -f e2e-wait-for-services
|
|
|
|
# ---
|
|
|