Newer
Older
#!/usr/bin/env bash
debug() {
>&2 echo "DEBUG: $@"
}
error() {
>&2 echo "ERROR: $@"
exit 1
}
install_charts() {
# use the production rabbitmq config
./helpers/deploy_rabbitmq.sh "ci_tests"
pushd geosphere-grb/chart
helm upgrade -v 2 --install --namespace $ns -f ../../ci_tests/values-grb-g16.yaml ${GRB_RELEASE_NAME} cspp-geo-grb/
popd
grb_pvc=$(get_pvc_name ${GRB_RELEASE_NAME})
sed -i "s/cspp-geo-grb/${GRB_RELEASE_NAME}/g" "ci_tests/values-geo2grid-g16-radm1.yaml"
./helpers/deploy_geo2grid.sh "ci_tests" "${RELEASE_PREFIX}" "-g16-radm1"
}
get_pod_name() {
release_name="$1"
kubectl -n $ns get pods --selector=app.kubernetes.io/instance=${release_name} -o name
}
get_pvc_name() {
release_name="$1"
kubectl -n $ns get pvc --selector=app.kubernetes.io/instance=${release_name} -o name
}
debug "Waiting for ${pod_name} pod to be ready..."
kubectl -n $ns wait --for=condition=Ready ${pod_name} --timeout=120s
run_grb_checks() {
count=0
while true; do
num_files=$(kubectl exec -n $ns ${GRB_POD_NAME} -c cspp-geo-grb-notifier -- ls -1 /dst | wc -l || echo 0)
let count=count+1
if [[ $num_files -gt 16 ]]; then
debug "Got at least 16 files"
break
fi
if [[ $count -gt 10 ]]; then
error "Took too long for GRB to produce files ($num_files so far)"
fi
sleep 10
done
}
run_geo2grid_checks() {
count=0
while true; do
num_files=$(kubectl exec -n $ns ${GEO2GRID_POD_NAME} -- ls -1 /dst/geotiffs/g16/abi/radm1/ | wc -l || echo 0)
let count=count+1
if [[ $num_files -gt 16 ]]; then
debug "Got at least 16 files"
break
fi
if [[ $count -gt 10 ]]; then
error "Took too long for Geo2Grid to produce files"
fi
sleep 10
done
}
set -e
ns=$(./helpers/get_namespace.sh)
source ci_tests/get_release_names.sh
# give kubernetes a bit to create the pod
debug "Getting GRB pod name"
GRB_POD_NAME=$(get_pod_name "${GRB_RELEASE_NAME}")
debug "GRB pod name: ${GRB_POD_NAME}"
GEO2GRID_POD_NAME=$(get_pod_name "${GEO2GRID_RELEASE_NAME}")
debug "Geo2Grid pod name: ${GEO2GRID_POD_NAME}"
wait_for_pod ${GRB_POD_NAME} || error "GRB pod was never ready"
run_grb_checks || error "GRB checks failed"
wait_for_pod ${GEO2GRID_POD_NAME} || error "Geo2Grid pod was never ready"
run_geo2grid_checks || error "Geo2Grid checks failed"