@@ -11,6 +11,8 @@ DEFAULT_KIND_IMAGE="kindest/node:v1.30.0@sha256:047357ac0cfea04663786a612ba1eaba
1111
1212ISTIO_VERSION=${ISTIO_VERSION:- " 1.22.0" }
1313
14+ LOGFILE=" kmesh_daemon.log"
15+
1416export KMESH_WAYPOINT_IMAGE=${KMESH_WAYPOINT_IMAGE:- " ghcr.io/kmesh-net/waypoint:latest" }
1517
1618ROOT_DIR=$( git rev-parse --show-toplevel)
@@ -137,6 +139,77 @@ function setup_kmesh() {
137139 echo " Waiting for pods of Kmesh daemon to enter Running state..."
138140 sleep 1
139141 done
142+
143+ # Set log of each Kmesh pods.
144+ PODS=$( kubectl get pods -n kmesh-system -l app=kmesh -o jsonpath=' {.items[*].metadata.name}' )
145+
146+ for POD in $PODS ; do
147+ echo " turn on the debug mode of the log for pod $POD "
148+ # Set BPF debug log
149+ for i in {1..5}; do
150+ echo " Attempt $i of 5: kmeshctl log $POD --set bpf:debug"
151+ output=$( kmeshctl log $POD --set bpf:debug 2>&1 )
152+ if echo " $output " | grep -q " set BPF Log Level: 3" ; then
153+ echo " BPF debug log set successfully"
154+ break
155+ fi
156+ echo " Failed to set BPF debug log. Output: $output "
157+ [ $i -eq 5 ] && echo " Failed to set BPF debug log after 5 attempts" && exit 1
158+ sleep 2
159+ done
160+
161+ # Set default debug log
162+ for i in {1..5}; do
163+ echo " Attempt $i of 5: kmeshctl log $POD --set default:debug"
164+ output=$( kmeshctl log $POD --set default:debug 2>&1 )
165+ if echo " $output " | grep -q " OK" ; then
166+ echo " Default debug log set successfully"
167+ break
168+ fi
169+ echo " Failed to set default debug log. Output: $output "
170+ [ $i -eq 5 ] && echo " Failed to set default debug log after 5 attempts" && exit 1
171+ sleep 2
172+ done
173+ done
174+ }
175+
176+ function setup_kmesh_log() {
177+ # Set log of each Kmesh pods.
178+ PODS=$( kubectl get pods -n kmesh-system -l app=kmesh -o jsonpath=' {.items[*].metadata.name}' )
179+
180+ for POD in $PODS ; do
181+ echo " turn on the debug mode of the log for pod $POD "
182+ # Set BPF debug log
183+ for i in {1..5}; do
184+ echo " Attempt $i of 5: kmeshctl log $POD --set bpf:debug"
185+ output=$( kmeshctl log $POD --set bpf:debug 2>&1 )
186+ if echo " $output " | grep -q " set BPF Log Level: 3" ; then
187+ echo " BPF debug log set successfully"
188+ break
189+ fi
190+ echo " Failed to set BPF debug log. Output: $output "
191+ [ $i -eq 5 ] && echo " Failed to set BPF debug log after 5 attempts" && exit 1
192+ sleep 2
193+ done
194+
195+ # Set default debug log
196+ for i in {1..5}; do
197+ echo " Attempt $i of 5: kmeshctl log $POD --set default:debug"
198+ output=$( kmeshctl log $POD --set default:debug 2>&1 )
199+ if echo " $output " | grep -q " OK" ; then
200+ echo " Default debug log set successfully"
201+ break
202+ fi
203+ echo " Failed to set default debug log. Output: $output "
204+ [ $i -eq 5 ] && echo " Failed to set default debug log after 5 attempts" && exit 1
205+ sleep 2
206+ done
207+ done
208+ }
209+
210+ function install_kmeshctl() {
211+ # Install kmeshctl
212+ cp kmeshctl $TMPBIN
140213}
141214
142215export KIND_REGISTRY_NAME=" kind-registry"
@@ -209,6 +282,24 @@ function cleanup_docker_registry() {
209282 docker rm " ${KIND_REGISTRY_NAME} " || echo " Failed to remove or no such registry '${KIND_REGISTRY_NAME} '."
210283}
211284
285+ capture_pod_logs () {
286+ NAMESPACE=" kmesh-system"
287+ NODE_NAME=" kmesh-testing-worker"
288+
289+ while : ; do
290+ PODS=$( kubectl get pods -n $NAMESPACE --field-selector spec.nodeName=$NODE_NAME -o jsonpath=' {.items[*].metadata.name}' )
291+
292+ if [ -z " $PODS " ]; then
293+ echo " No pods found on node $NODE_NAME in namespace $NAMESPACE ."
294+ continue
295+ fi
296+
297+ echo " Logs for Pod: ${PODS[0]} "
298+
299+ kubectl logs -n $NAMESPACE -f ${PODS[0]} >> $LOGFILE 2>&1
300+ done
301+ }
302+
212303PARAMS=()
213304
214305while (( "$# ")) ; do
272363if [[ -z ${SKIP_BUILD:- } ]]; then
273364 setup_kind_registry
274365 build_and_push_images
366+ install_kmeshctl
275367fi
276368
277369kubectl config use-context " kind-$NAME "
@@ -283,9 +375,22 @@ if [[ -z ${SKIP_SETUP:-} ]]; then
283375 setup_kmesh
284376fi
285377
378+ setup_kmesh_log
379+
380+ capture_pod_logs &
381+
286382cmd=" go test -v -tags=integ $ROOT_DIR /test/e2e/... -istio.test.kube.loadbalancer=false ${PARAMS[*]} "
287383
384+ set +e
288385bash -c " $cmd "
386+ EXIT_CODE=$?
387+ set -e
388+
389+ if [ $EXIT_CODE -ne 0 ]; then
390+ cat $LOGFILE
391+ fi
392+
393+ rm $LOGFILE
289394
290395if [[ -n ${CLEANUP_KIND} ]]; then
291396 cleanup_kind_cluster
@@ -296,3 +401,5 @@ if [[ -n ${CLEANUP_REGISTRY} ]]; then
296401fi
297402
298403rm -rf " ${TMP} "
404+
405+ exit $EXIT_CODE
0 commit comments