@@ -63,6 +63,14 @@ readonly windows_node_otherfiles="C:\\Windows\\MEMORY.dmp"
63
63
# file descriptors for large clusters.
64
64
readonly max_dump_processes=25
65
65
66
+ # Indicator variable whether we experienced a significant failure during
67
+ # logexporter creation or execution.
68
+ logexporter_failed=0
69
+
70
+ # Percentage of nodes that must be logexported successfully (otherwise the
71
+ # process will exit with a non-zero exit code).
72
+ readonly log_dump_expected_success_percentage=" ${LOG_DUMP_EXPECTED_SUCCESS_PERCENTAGE:- 0} "
73
+
66
74
# TODO: Get rid of all the sourcing of bash dependencies eventually.
67
75
function setup() {
68
76
KUBE_ROOT=$( dirname " ${BASH_SOURCE[0]} " ) /../..
@@ -546,6 +554,7 @@ function dump_nodes_with_logexporter() {
546
554
echo ' Failed to create logexporter daemonset.. falling back to logdump through SSH'
547
555
" ${KUBECTL} " delete namespace " ${logexporter_namespace} " || true
548
556
dump_nodes " ${NODE_NAMES[@]} "
557
+ logexporter_failed=1
549
558
return
550
559
fi
551
560
@@ -595,6 +604,7 @@ function dump_nodes_with_logexporter() {
595
604
echo ' Final attempt to list marker files failed.. falling back to logdump through SSH'
596
605
" ${KUBECTL} " delete namespace " ${logexporter_namespace} " || true
597
606
dump_nodes " ${NODE_NAMES[@]} "
607
+ logexporter_failed=1
598
608
return
599
609
fi
600
610
sleep 2
@@ -611,6 +621,11 @@ function dump_nodes_with_logexporter() {
611
621
done
612
622
fi
613
623
624
+ # If less than a certain ratio of the nodes got logexported, report an error.
625
+ if [[ $(( (${# NODE_NAMES[@]} - ${# failed_nodes[@]} ) * 100 )) -lt $(( ${# NODE_NAMES[@]} * log_dump_expected_success_percentage )) ]]; then
626
+ logexporter_failed=1
627
+ fi
628
+
614
629
# Delete the logexporter resources and dump logs for the failed nodes (if any) through SSH.
615
630
" ${KUBECTL} " get pods --namespace " ${logexporter_namespace} " || true
616
631
" ${KUBECTL} " delete namespace " ${logexporter_namespace} " || true
@@ -675,6 +690,9 @@ function main() {
675
690
fi
676
691
677
692
detect_node_failures
693
+ if [[ ${logexporter_failed} -ne 0 && ${log_dump_expected_success_percentage} -gt 0 ]]; then
694
+ return 1
695
+ fi
678
696
}
679
697
680
698
main
0 commit comments