From c25331f2519b0376b80524a5fdf0279a4626e5df Mon Sep 17 00:00:00 2001 From: Matt Liggett Date: Fri, 12 Feb 2016 11:54:03 -0800 Subject: [PATCH] Save the master logs to separate files rather than dumping to stdout. --- cluster/gce/util.sh | 27 ++++++++++++++++++--------- 1 file changed, 18 insertions(+), 9 deletions(-) diff --git a/cluster/gce/util.sh b/cluster/gce/util.sh index 853f16c9d22..b2eece1e487 100755 --- a/cluster/gce/util.sh +++ b/cluster/gce/util.sh @@ -745,16 +745,25 @@ function check-cluster() { if [[ ${elapsed} -gt ${KUBE_CLUSTER_INITIALIZATION_TIMEOUT} ]]; then echo -e "${color_red}Cluster failed to initialize within ${KUBE_CLUSTER_INITIALIZATION_TIMEOUT} seconds.${color_norm}" >&2 if [[ ${KUBE_TEST_DEBUG-} =~ ^[yY]$ ]]; then - local tmp_log="$(mktemp)" - local file - for file in /var/log/startupscript.log /var/log/kube-apiserver.log; do - echo "${MASTER_NAME}:${file} contents:" - if gcloud compute copy-files --project "${PROJECT}" \ - --zone "${ZONE}" "${MASTER_NAME}:${file}" "${tmp_log}"; then - cat "${tmp_log}" - fi + local savedir="${E2E_REPORT_DIR-}" + if [[ -z "${savedir}" ]]; then + savedir="$(mktemp -t -d k8s-e2e.XXX)" + fi + echo "Preserving master logs in ${savedir}" + local logdir=/var/log + local basename + for basename in startupscript kube-apiserver; do + # TODO(mml): Perhaps revisit how we name logs for preservation and + # centralize an implementation. Options include putting basename + # before hostname and including a timestamp. + local src="${logdir}/${basename}.log" + local dst="${savedir}/${MASTER_NAME}-${basename}.log" + echo "Copying ${MASTER_NAME}:${src}" + gcloud compute copy-files \ + --project "${PROJECT}" --zone "${ZONE}" \ + "${MASTER_NAME}:${src}" "${dst}" \ + || true done - rm -f "${tmp_log}" fi exit 2 fi