X-Git-Url: https://gerrit.o-ran-sc.org/r/gitweb?a=blobdiff_plain;f=test%2Fcommon%2Fclean_kube.sh;h=c3e774396c33fb3fc36f57ab03fc91295cb1f3b8;hb=8fbc63697f2edaaf2c9db40f54b318e7211361e2;hp=281f8ce004d3a7459b401c1aff1c8f2716ae2a70;hpb=e60d04ec982c4ccb833226624ff5c3e3f311097a;p=nonrtric.git diff --git a/test/common/clean_kube.sh b/test/common/clean_kube.sh index 281f8ce0..c3e77439 100755 --- a/test/common/clean_kube.sh +++ b/test/common/clean_kube.sh @@ -28,20 +28,22 @@ YELLOW="\033[33m\033[1m" EYELLOW="\033[0m" SAMELINE="\033[0K\r" +KUBECONF="" + __kube_scale_all_resources() { echo " Scaling down in namespace $1 ..." namespace=$1 resources="deployment replicaset statefulset" for restype in $resources; do - result=$(kubectl get $restype -n $namespace -o jsonpath='{.items[?(@.metadata.labels.autotest)].metadata.name}') + result=$(kubectl $KUBECONF get $restype -n $namespace -o jsonpath='{.items[?(@.metadata.labels.autotest)].metadata.name}') if [ $? -eq 0 ] && [ ! -z "$result" ]; then for resid in $result; do - count=$(kubectl get $restype $resid -n $namespace -o jsonpath='{.status.replicas}' 2> /dev/null) + count=$(kubectl $KUBECONF get $restype $resid -n $namespace -o jsonpath='{.status.replicas}' 2> /dev/null) if [ $? -eq 0 ] && [ ! -z "$count" ]; then if [ $count -ne 0 ]; then echo " Scaling $restype $resid in namespace $namespace with label autotest to 0, current count=$count." - kubectl scale $restype $resid -n $namespace --replicas=0 1> /dev/null 2> /dev/null + kubectl $KUBECONF scale $restype $resid -n $namespace --replicas=0 1> /dev/null 2> /dev/null fi fi done @@ -54,14 +56,14 @@ __kube_wait_for_zero_count() { namespace=$1 resources="deployment replicaset statefulset" for restype in $resources; do - result=$(kubectl get $restype -n $namespace -o jsonpath='{.items[?(@.metadata.labels.autotest)].metadata.name}') + result=$(kubectl $KUBECONF get $restype -n $namespace -o jsonpath='{.items[?(@.metadata.labels.autotest)].metadata.name}') if [ $? -eq 0 ] && [ ! -z "$result" ]; then for resid in $result; do T_START=$SECONDS count=1 scaled=0 while [ $count -gt 0 ]; do - count=$(kubectl get $restype $resid -n $namespace -o jsonpath='{.status.replicas}' 2> /dev/null) + count=$(kubectl $KUBECONF get $restype $resid -n $namespace -o jsonpath='{.status.replicas}' 2> /dev/null) if [ $? -eq 0 ] && [ ! -z "$count" ]; then if [ $count -ne 0 ]; then echo -ne " Scaling $restype $resid in namespace $namespace with label autotest to 0, current count=$count....$(($SECONDS-$T_START)) seconds"$SAMELINE @@ -84,13 +86,13 @@ __kube_wait_for_zero_count() { __kube_delete_all_resources() { echo " Delete all in namespace $1 ..." namespace=$1 - resources="deployments replicaset statefulset services pods configmaps pvc serviceaccounts" + resources="deployments replicaset statefulset services pods configmaps pvc serviceaccounts secrets authorizationpolicies requestauthentications" for restype in $resources; do - result=$(kubectl get $restype -n $namespace -o jsonpath='{.items[?(@.metadata.labels.autotest)].metadata.name}') + result=$(kubectl $KUBECONF get $restype -n $namespace -o jsonpath='{.items[?(@.metadata.labels.autotest)].metadata.name}' 2> /dev/null) if [ $? -eq 0 ] && [ ! -z "$result" ]; then for resid in $result; do echo " Deleting $restype $resid in namespace $namespace with label autotest " - kubectl delete --grace-period=1 $restype $resid -n $namespace 1> /dev/null 2> /dev/null + kubectl $KUBECONF delete --grace-period=1 $restype $resid -n $namespace 1> /dev/null 2> /dev/null done fi done @@ -100,11 +102,11 @@ __kube_delete_all_pv() { echo " Delete all non-namespaced resources ..." resources="pv clusterrolebindings" for restype in $resources; do - result=$(kubectl get $restype -o jsonpath='{.items[?(@.metadata.labels.autotest)].metadata.name}') + result=$(kubectl $KUBECONF get $restype -o jsonpath='{.items[?(@.metadata.labels.autotest)].metadata.name}') if [ $? -eq 0 ] && [ ! -z "$result" ]; then for resid in $result; do echo " Deleting $restype $resid with label autotest " - kubectl delete --grace-period=1 $restype $resid 1> /dev/null 2> /dev/null + kubectl $KUBECONF delete --grace-period=1 $restype $resid 1> /dev/null 2> /dev/null done fi done @@ -113,19 +115,19 @@ __kube_delete_all_pv() { __kube_wait_for_delete() { echo " Wait for delete in namespace $1 ..." namespace=$1 - resources="deployments replicaset statefulset services pods configmaps pvc " + resources="deployments replicaset statefulset services pods configmaps pvc secrets" for restype in $resources; do - result=$(kubectl get $restype -n $namespace -o jsonpath='{.items[?(@.metadata.labels.autotest)].metadata.name}') + result=$(kubectl $KUBECONF get $restype -n $namespace -o jsonpath='{.items[?(@.metadata.labels.autotest)].metadata.name}') if [ $? -eq 0 ] && [ ! -z "$result" ]; then for resid in $result; do echo " Deleting $restype $resid in namespace $namespace with label autotest " - kubectl delete --grace-period=1 $restype $resid -n $namespace #1> /dev/null 2> /dev/null + kubectl $KUBECONF delete --grace-period=1 $restype $resid -n $namespace #1> /dev/null 2> /dev/null echo -ne " Waiting for $restype $resid in namespace $namespace with label autotest 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.autotest)].metadata.name}') + result=$(kubectl $KUBECONF get $restype -n $namespace -o jsonpath='{.items[?(@.metadata.labels.autotest)].metadata.name}') echo -ne " Waiting for $restype $resid in namespace $namespace with label autotest to be deleted...$(($SECONDS-$T_START)) seconds "$SAMELINE if [ -z "$result" ]; then echo -e " Waiting for $restype $resid in namespace $namespace with label autotest to be deleted...$(($SECONDS-$T_START)) seconds $GREEN OK $EGREEN" @@ -143,17 +145,17 @@ __kube_wait_for_delete_pv() { echo " Wait for delete pv ..." resources="pv " for restype in $resources; do - result=$(kubectl get $restype -o jsonpath='{.items[?(@.metadata.labels.autotest)].metadata.name}') + result=$(kubectl $KUBECONF get $restype -o jsonpath='{.items[?(@.metadata.labels.autotest)].metadata.name}') if [ $? -eq 0 ] && [ ! -z "$result" ]; then for resid in $result; do echo " Deleting $restype $resid with label autotest " - kubectl delete --grace-period=1 $restype $resid -n $namespace #1> /dev/null 2> /dev/null + kubectl $KUBECONF delete --grace-period=1 $restype $resid -n $namespace #1> /dev/null 2> /dev/null echo -ne " Waiting for $restype $resid with label autotest 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.autotest)].metadata.name}') + result=$(kubectl $KUBECONF get $restype -n $namespace -o jsonpath='{.items[?(@.metadata.labels.autotest)].metadata.name}') echo -ne " Waiting for $restype $resid with label autotest to be deleted...$(($SECONDS-$T_START)) seconds "$SAMELINE if [ -z "$result" ]; then echo -e " Waiting for $restype $resid with label autotest to be deleted...$(($SECONDS-$T_START)) seconds $GREEN OK $EGREEN" @@ -170,8 +172,41 @@ __kube_wait_for_delete_pv() { echo "Will remove all kube resources marked with label 'autotest'" +print_usage() { + echo "Usage: clean_kube.sh [--kubeconfig ] | [--kubecontext ]" +} + +if [ $# -eq 0 ]; then +: +elif [ $# -eq 1 ]; then + print_usage + exit +elif [ $# -eq 2 ]; then + if [ $1 == "--kubeconfig" ]; then + if [ ! -f $2 ]; then + echo "File $2 for --kubeconfig is not found" + print_usage + exit + fi + KUBECONF="--kubeconfig $2" + elif [ $1 == "--kubecontext" ]; then + if [ -z $2 ]; then + echo "No context found for --kubecontext" + print_usage + exit + fi + KUBECONF="--context $2" + else + print_usage + exit + fi +else + print_usage + exit +fi + # List all namespace and scale/delete per namespace -nss=$(kubectl get ns -o jsonpath='{.items[*].metadata.name}') +nss=$(kubectl $KUBECONF get ns -o jsonpath='{.items[*].metadata.name}') if [ ! -z "$nss" ]; then for ns in $nss; do __kube_scale_all_resources $ns