46 lines
1.2 KiB
Bash
46 lines
1.2 KiB
Bash
![]() |
# name_prefix returns the prefix of the resources within Kubernetes.
|
||
|
name_prefix() {
|
||
|
printf "consul"
|
||
|
}
|
||
|
|
||
|
# helm_install installs the Consul chart.
|
||
|
helm_install() {
|
||
|
helm install --name consul --wait ${BATS_TEST_DIRNAME}/..
|
||
|
}
|
||
|
|
||
|
# helm_delete deletes the Consul chart and all resources.
|
||
|
helm_delete() {
|
||
|
helm delete --purge consul
|
||
|
kubectl delete --all pvc
|
||
|
}
|
||
|
|
||
|
# wait for a pod to be ready
|
||
|
wait_for_ready() {
|
||
|
POD_NAME=$1
|
||
|
|
||
|
check() {
|
||
|
# This requests the pod and checks whether the status is running
|
||
|
# and the ready state is true. If so, it outputs the name. Otherwise
|
||
|
# it outputs empty. Therefore, to check for success, check for nonzero
|
||
|
# string length.
|
||
|
kubectl get pods $1 -o json | \
|
||
|
jq -r 'select(
|
||
|
.status.phase == "Running" and
|
||
|
([ .status.conditions[] | select(.type == "Ready" and .status == "True") ] | length) == 1
|
||
|
) | .metadata.namespace + "/" + .metadata.name'
|
||
|
}
|
||
|
|
||
|
for i in $(seq 30); do
|
||
|
if [ -n "$(check ${POD_NAME})" ]; then
|
||
|
echo "${POD_NAME} is ready."
|
||
|
return
|
||
|
fi
|
||
|
|
||
|
echo "Waiting for ${POD_NAME} to be ready..."
|
||
|
sleep 2
|
||
|
done
|
||
|
|
||
|
echo "${POD_NAME} never became ready."
|
||
|
exit 1
|
||
|
}
|