+__kube_delete_all_resources() {
+ namespace=$1
+ labelname=$2
+ labelid=$3
+ resources="deployments replicaset statefulset services pods configmaps pvc"
+ deleted_resourcetypes=""
+ for restype in $resources; do
+ result=$(kubectl get $restype -n $namespace -o jsonpath='{.items[?(@.metadata.labels.'$labelname'=="'$labelid'")].metadata.name}')
+ if [ $? -eq 0 ] && [ ! -z "$result" ]; then
+ deleted_resourcetypes=$deleted_resourcetypes" "$restype
+ for resid in $result; do
+ if [ $restype == "replicaset" ] || [ $restype == "statefulset" ]; then
+ count=1
+ while [ $count -ne 0 ]; do
+ count=$(kubectl get $restype $resid -n $namespace -o jsonpath='{.status.replicas}' 2> /dev/null)
+ echo -ne " Scaling $restype $resid from namespace $namespace with label $labelname=$labelid to 0,count=$count"$SAMELINE
+ if [ $? -eq 0 ] && [ ! -z "$count" ]; then
+ sleep 0.5
+ else
+ count=0
+ fi
+ done
+ echo -e " Scaled $restype $resid from namespace $namespace with label $labelname=$labelid to 0,count=$count $GREEN OK $EGREEN"
+ fi
+ echo -ne " Deleting $restype $resid from namespace $namespace with label $labelname=$labelid "$SAMELINE
+ kubectl delete $restype $resid -n $namespace 1> /dev/null 2> ./tmp/kubeerr
+ if [ $? -eq 0 ]; then
+ echo -e " Deleted $restype $resid from namespace $namespace with label $labelname=$labelid $GREEN OK $EGREEN"
+ else
+ echo -e " Deleted $restype $resid from namespace $namespace with label $labelname=$labelid $GREEN Does not exist - OK $EGREEN"
+ fi
+ #fi
+ done
+ fi
+ done
+ if [ ! -z "$deleted_resourcetypes" ]; then
+ for restype in $deleted_resources; do
+ echo -ne " Waiting for $restype in namespace $namespace with label $labelname=$labelid to be deleted..."$SAMELINE
+ T_START=$SECONDS
+ result="dummy"
+ while [ ! -z "$result" ]; do
+ sleep 0.5
+ result=$(kubectl get $restype -n $namespace -o jsonpath='{.items[?(@.metadata.labels.'$labelname'=="'$labelid'")].metadata.name}')
+ echo -ne " Waiting for $restype in namespace $namespace with label $labelname=$labelid to be deleted...$(($SECONDS-$T_START)) seconds "$SAMELINE
+ if [ -z "$result" ]; then
+ echo -e " Waiting for $restype in namespace $namespace with label $labelname=$labelid to be deleted...$(($SECONDS-$T_START)) seconds $GREEN OK $EGREEN"
+ elif [ $(($SECONDS-$T_START)) -gt 300 ]; then
+ echo -e " Waiting for $restype in namespace $namespace with label $labelname=$labelid to be deleted...$(($SECONDS-$T_START)) seconds $RED Failed $ERED"
+ result=""
+ fi
+ done
+ done
+ fi