2021-04-27 19:27:50 +08:00
#!/bin/bash
2021-03-11 18:34:26 +08:00
# Copyright (C) 2019-2020 Zilliz. All rights reserved.
#
# Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance
# with the License. You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software distributed under the License
# is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
# or implied. See the License for the specific language governing permissions and limitations under the License.
2021-02-25 17:35:36 +08:00
2021-11-11 13:17:20 +08:00
# Exit immediately for non zero status
2021-04-27 19:27:50 +08:00
set -e
2021-11-12 13:37:22 +08:00
# Print commands
2022-01-18 17:47:36 +08:00
# set -x
2021-11-16 21:30:23 +08:00
while ( ( " $# " ) ) ; do
case " $1 " in
--release-name)
RELEASE_NAME = $2
shift 2
; ;
2022-09-02 18:01:00 +08:00
2021-11-16 21:30:23 +08:00
-h| --help)
{ set +x; } 2>/dev/null
HELP = "
Usage:
$0 [ flags] [ Arguments]
--release-name Milvus helm release name
-h or --help Print help information
Use \" $0 --help\" for more information about a given command.
"
echo -e " ${ HELP } " ; exit 0
; ;
-*)
echo " Error: Unsupported flag $1 " >& 2
exit 1
; ;
*) # preserve positional arguments
PARAMS += ( " $1 " )
shift
; ;
esac
done
2021-04-27 19:27:50 +08:00
MILVUS_HELM_RELEASE_NAME = " ${ MILVUS_HELM_RELEASE_NAME :- milvus -testing } "
MILVUS_HELM_NAMESPACE = " ${ MILVUS_HELM_NAMESPACE :- default } "
2021-02-25 17:35:36 +08:00
2021-11-16 21:30:23 +08:00
if [ [ -n " ${ RELEASE_NAME :- } " ] ] ; then
MILVUS_HELM_RELEASE_NAME = " ${ RELEASE_NAME } "
2021-12-27 09:18:20 +08:00
# List pod list before uninstall
2021-12-31 08:45:21 +08:00
kubectl get pods -n ${ MILVUS_HELM_NAMESPACE } -o wide | grep " ${ MILVUS_HELM_RELEASE_NAME } - "
2022-01-18 17:47:36 +08:00
# Show restart pods last terminated reason
restart_pods = $( kubectl get pods -n ${ MILVUS_HELM_NAMESPACE } | grep " ${ MILVUS_HELM_RELEASE_NAME } - " | grep 'ago)' | awk '{print $1}' )
for restart_pod in ${ restart_pods }
do
2022-09-02 18:01:00 +08:00
reason = $( kubectl get pod ${ restart_pod } -n ${ MILVUS_HELM_NAMESPACE } -o json | jq .status.containerStatuses[ 0] .lastState.terminated.reason )
restart_count = $( kubectl get pod ${ restart_pod } -n${ MILVUS_HELM_NAMESPACE } -o json | jq .status.containerStatuses[ 0] .restartCount )
2022-01-18 17:47:36 +08:00
echo " ${ restart_pod } restarts ${ restart_count } , last terminateed reason is ${ reason } "
done
2022-09-02 18:01:00 +08:00
echo "----------------Pod Events --------------------------------------------"
for pod in $( kubectl get pods -n ${ MILVUS_HELM_NAMESPACE } -o wide | grep " ${ MILVUS_HELM_RELEASE_NAME } - " | awk '{print $1}' )
do
echo " -------------------------------- ${ pod } ----------------------------- "
kubectl describe pod ${ pod } -n ${ MILVUS_HELM_NAMESPACE }
done
2021-11-16 21:30:23 +08:00
fi
2021-11-15 19:01:38 +08:00
# Uninstall Milvus Helm Release
2021-12-29 11:50:24 +08:00
# Do not exit with error when release not found so that the script can also be used to clean up related pvc even helm release has been uninstalled already
2021-12-28 19:04:33 +08:00
helm uninstall -n " ${ MILVUS_HELM_NAMESPACE } " " ${ MILVUS_HELM_RELEASE_NAME } " || true
2021-02-25 17:35:36 +08:00
2021-09-30 21:58:15 +08:00
MILVUS_LABELS1 = " app.kubernetes.io/instance= ${ MILVUS_HELM_RELEASE_NAME } "
MILVUS_LABELS2 = " release= ${ MILVUS_HELM_RELEASE_NAME } "
2021-11-08 20:26:01 +08:00
# Clean up pvc
2021-12-07 10:19:44 +08:00
kubectl delete pvc --wait -n " ${ MILVUS_HELM_NAMESPACE } " $( kubectl get pvc -n " ${ MILVUS_HELM_NAMESPACE } " -l " ${ MILVUS_LABELS1 } " -o jsonpath = '{range.items[*]}{.metadata.name} ' ) || true
2022-07-26 20:20:30 +08:00
kubectl delete pvc --wait -n " ${ MILVUS_HELM_NAMESPACE } " $( kubectl get pvc -n " ${ MILVUS_HELM_NAMESPACE } " -l " ${ MILVUS_LABELS2 } " -o jsonpath = '{range.items[*]}{.metadata.name} ' ) || true