Code owners
Assign users and groups as approvers for specific file changes. Learn more.
02_wait_for_helmrealeases.sh 1.59 KiB
#!/usr/bin/env bash
set -e
## This is an array to instantiate the order of wait conditions
ORDERED_HELMRELEASES="gatekeeper istio-operator istio monitoring eck-operator ek fluent-bit twistlock cluster-auditor gitlab"
## This the actual deployed helmrelease objects in the cluster
DEPLOYED_HELMRELEASES=$(kubectl get hr --no-headers -n bigbang | awk '{ print $1}')
## Function to test an array contains an element
## Args:
## $1: array to search
## $2: element to search for
function array_contains() {
local array="$1[@]"
local seeking=$2
local in=1
for element in ${!array}; do
if [[ $element == "$seeking" ]]; then
in=0
break
fi
done
return $in
}
## Function to wait on helmrelease
## Args:
## $1: package name
function wait_on() {
echo "Waiting on package $1"
kubectl wait --for=condition=Ready --timeout 500s helmrelease -n bigbang $1;
}
for package in $ORDERED_HELMRELEASES;
do
if array_contains DEPLOYED_HELMRELEASES "$package";
then wait_on "$package"
else echo "Expected package: $package, but not found in release. Update the array in this script if this package is no longer needed"
fi
done
for package in $DEPLOYED_HELMRELEASES;
do
if array_contains ORDERED_HELMRELEASES "$package";
then echo ""
else
echo "Found package: $package, but not found in this script array. Update the array in this script if this package is always needed"
wait_on "$package"
fi
done
echo "Waiting on Secrets Kustomization"
kubectl wait --for=condition=Ready --timeout 30s kustomizations.kustomize.toolkit.fluxcd.io -n bigbang secrets