github.phpd.cn/cilium/cilium@v1.6.12/tests/k8s/helpers.bash (about)

     1  #!/usr/bin/env bash
     2  
     3  dir=$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )
     4  source "${dir}/../helpers.bash"
     5  # dir might have been overwritten by helpers.bash
     6  dir=$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )
     7  
     8  function abort {
     9  	set +x
    10  
    11  	echo "------------------------------------------------------------------------"
    12  	echo "                          K8s Test Failed"
    13  	echo "$*"
    14  	echo ""
    15  	echo "------------------------------------------------------------------------"
    16  
    17  	cilium_id=$(docker ps -aql --filter=name=cilium-agent)
    18  	echo "------------------------------------------------------------------------"
    19  	echo "                            Cilium logs (last 200 lines)"
    20  	docker logs ${cilium_id} --tail 200
    21  	echo ""
    22  	echo "------------------------------------------------------------------------"
    23  
    24      echo "------------------------------------------------------------------------"
    25      echo "                            L7 Proxy logs (last 200 lines)"
    26      tail -n 200 /var/lib/cilium/proxy.log
    27  	echo ""
    28  	echo "------------------------------------------------------------------------"
    29  
    30  	exit 1
    31  }
    32  
    33  function gather_k8s_logs {
    34    local LOCAL_NODE_NUM=$1
    35    local LOGS_DIR=$2
    36    log "gathering K8s logs from node k8s-$LOCAL_NODE_NUM and storing them in directory $LOGS_DIR"
    37    mkdir -p ${LOGS_DIR}
    38    local CILIUM_PODS=$(kubectl get pods -n ${NAMESPACE} -l k8s-app=cilium | tail -n +2 | awk '{print $1}')
    39    for pod in $CILIUM_PODS; do 
    40      local NODE_NAME=$(kubectl get pod -n ${NAMESPACE} $pod  -o wide | tail -n +2 | awk '{print $7}')
    41      kubectl logs -n ${NAMESPACE} ${pod} > ${LOGS_DIR}/${pod}-${NODE_NAME}-logs || true
    42      kubectl logs -n ${NAMESPACE} ${pod} --previous > ${LOGS_DIR}/${pod}-${NODE_NAME}-logs-previous || true
    43    done
    44    kubectl logs -n kube-system kube-apiserver-k8s-1 > ${LOGS_DIR}/kube-apiserver-k8s-1-logs || true
    45    kubectl logs -n kube-system kube-controller-manager-k8s-1 > ${LOGS_DIR}/kube-controller-manager-k8s-1-logs || true
    46    journalctl -au kubelet > ${LOGS_DIR}/kubelet-k8s-${LOCAL_NODE_NUM}-logs || true
    47    log "finished gathering K8s logs from node k8s-$LOCAL_NODE_NUM and storing them in directory $LOGS_DIR"
    48  }