respond to code review
This commit is contained in:
parent
d707bba2fb
commit
2cd6e9d989
|
|
@ -1,38 +1,44 @@
|
|||
#!/bin/bash
|
||||
|
||||
# unofficial bash strict mode w/o the -e option
|
||||
# -e breaks "eval $cmd" in the retry function
|
||||
set -uo pipefail
|
||||
IFS=$'\n\t'
|
||||
|
||||
# timeouts after 3 minutes
|
||||
function retry(){
|
||||
function retry(){ # timeouts after 1 minutes
|
||||
cmd="$1"
|
||||
retryMsg="$2"
|
||||
for i in {1..90}; do
|
||||
for i in {1..20}; do
|
||||
eval "$cmd"
|
||||
if [ $? -eq 0 ]; then
|
||||
return 0
|
||||
fi
|
||||
echo "$retryMsg"
|
||||
sleep 2
|
||||
sleep 3
|
||||
done
|
||||
|
||||
return 1
|
||||
}
|
||||
|
||||
|
||||
echo "==== CLEAN UP PREVIOUS RUN ==== "
|
||||
|
||||
status=$(minikube status --format "{{.MinikubeStatus}}")
|
||||
if [ "$status" = "Running" ]; then
|
||||
if [ "$status" = "Running" ] || [ "$status" = "Stopped" ]; then
|
||||
echo "Delete the existing local cluster so that we can cleanly apply resources from scratch..."
|
||||
minikube delete
|
||||
fi
|
||||
|
||||
# the kubectl process does the port-forwarding between operator and local ports
|
||||
# we restart the process to be able to bind to the same port again (see end of script)
|
||||
echo "Kill kubectl process to re-init port-forwarding for minikube"
|
||||
kubepid=$(pidof "kubectl")
|
||||
if [ $? -eq 0 ]; then
|
||||
kill "$kubepid"
|
||||
# we restart the process to bind to the same port again (see end of script)
|
||||
if [ -e /tmp/kubectl-port-forward.pid ]; then
|
||||
|
||||
pid=$(cat /tmp/kubectl-port-forward.pid)
|
||||
# the process will die if a minikube is stopped manually between two invocations of the script
|
||||
if ps --pid "$pid" > /dev/null; then
|
||||
echo "Kill the kubectl process responsible for port forwarding for minikube so that we can re-use the same ports for forwarding later..."
|
||||
kill "$pid"
|
||||
fi
|
||||
rm /tmp/kubectl-port-forward.pid
|
||||
fi
|
||||
|
||||
|
||||
|
|
@ -51,8 +57,8 @@ do
|
|||
retry "kubectl create -f manifests/\"$file\"" "attempt to create $file resource"
|
||||
done
|
||||
|
||||
msg="Wait for the postgresql custom resource definition to register."
|
||||
cmd="kubectl get crd | grep 'postgresqls.acid.zalan.do' &> /dev/null"
|
||||
msg="Wait for the postgresql custom resource definition to register..."
|
||||
cmd="kubectl get crd | grep --quiet 'postgresqls.acid.zalan.do'"
|
||||
retry "$cmd" "$msg "
|
||||
|
||||
kubectl create -f manifests/complete-postgres-manifest.yaml
|
||||
|
|
@ -62,22 +68,18 @@ operatorPort="8080"
|
|||
echo "==== FORWARD OPERATOR PORT $operatorPort TO LOCAL PORT $localPort ===="
|
||||
operatorPod=$(kubectl get pod -l name=postgres-operator -o jsonpath={.items..metadata.name})
|
||||
# runs in the background to keep current terminal responsive
|
||||
# 1> redirects stdout to remove the info message about forwarded ports; the message sometimes garbles the cli prompt
|
||||
kubectl port-forward "$operatorPod" "$localPort":"$operatorPort" 1> /dev/null &
|
||||
|
||||
# stdout redirect removes the info message about forwarded ports; the message sometimes garbles the cli prompt
|
||||
kubectl port-forward "$operatorPod" "$localPort":"$operatorPort" &> /dev/null &
|
||||
pgrep --newest "kubectl" > /tmp/kubectl-port-forward.pid
|
||||
|
||||
echo "==== RUN HEALTH CHECK ==== "
|
||||
checkCmd="curl -L http://127.0.0.1:$localPort/clusters &> /dev/null"
|
||||
checkCmd="curl --location --silent http://127.0.0.1:$localPort/clusters &> /dev/null"
|
||||
echo "Command for checking: $checkCmd"
|
||||
checkMsg="Wait for port forwarding to take effect"
|
||||
retry "$checkCmd" "$checkMsg"
|
||||
|
||||
if [ $? -eq 0 ]; then
|
||||
if retry "$checkCmd" "$checkMsg" ; then
|
||||
echo "==== SUCCESS: OPERATOR IS RUNNING ==== "
|
||||
else
|
||||
echo "Operator did not start or port forwarding did not work"
|
||||
echo "==== FAILURE: OPERATOR DID NOT START OR PORT FORWARDING DID NOT WORK"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
|
||||
|
||||
|
||||
|
|
|
|||
Loading…
Reference in New Issue