diff --git a/go.mod b/go.mod index 891ac7992..eb497c499 100644 --- a/go.mod +++ b/go.mod @@ -25,7 +25,7 @@ require ( knative.dev/hack v0.0.0-20251021013703-4fae78067103 knative.dev/pkg v0.0.0-20251021084441-487f9df8d315 knative.dev/reconciler-test v0.0.0-20251021102741-1688eb0253ee - knative.dev/serving v0.46.1-0.20251021202624-95dd834759da + knative.dev/serving v0.46.1-0.20251022114844-083ce783f9ca sigs.k8s.io/yaml v1.6.0 ) diff --git a/go.sum b/go.sum index 6bba3a67f..5ae54540c 100644 --- a/go.sum +++ b/go.sum @@ -1714,8 +1714,8 @@ knative.dev/pkg v0.0.0-20251021084441-487f9df8d315 h1:VTDdzb0kT5e/AuTu8AYjN+p3xB knative.dev/pkg v0.0.0-20251021084441-487f9df8d315/go.mod h1:8L1vgh3WoZ4OH9gspPSt3QFcMJsrOUBwOs0FuM5Jne8= knative.dev/reconciler-test v0.0.0-20251021102741-1688eb0253ee h1:4DoVKbGJ6Qc0TRZSl5P8eAqH+hxQdAX6MrHCaSHsIQ0= knative.dev/reconciler-test v0.0.0-20251021102741-1688eb0253ee/go.mod h1:rRRFIBC58k412rLRYhzOZrxbCU99xUSK9nO82iHuB/Q= -knative.dev/serving v0.46.1-0.20251021202624-95dd834759da h1:3eaY9BRYnY4HbUf9HN0aysiqqvoK7dNHoH2wF/ai3gI= -knative.dev/serving v0.46.1-0.20251021202624-95dd834759da/go.mod h1:viZqMepeW6UNc/KQvD3iC/lv7fNXjhgqMPMq/9yqyGI= +knative.dev/serving v0.46.1-0.20251022114844-083ce783f9ca h1:NkVfn9e0RK8v7MKYNpVeVCjryU+Hk2FO3IlWXtZdvJU= +knative.dev/serving v0.46.1-0.20251022114844-083ce783f9ca/go.mod h1:viZqMepeW6UNc/KQvD3iC/lv7fNXjhgqMPMq/9yqyGI= nhooyr.io/websocket v1.8.6/go.mod h1:B70DZP8IakI65RVQ51MsWP/8jndNma26DVA/nFSCgW0= pgregory.net/rapid v1.1.0 h1:CMa0sjHSru3puNx+J0MIAuiiEV4N0qj8/cMWGBBCsjw= pgregory.net/rapid v1.1.0/go.mod h1:PY5XlDGj0+V1FCq0o192FdRhpKHGTRIWBgqjDBTrq04= diff --git a/vendor/knative.dev/serving/test/e2e-common.sh b/vendor/knative.dev/serving/test/e2e-common.sh index 369a663fe..c311e15b8 100644 --- a/vendor/knative.dev/serving/test/e2e-common.sh +++ b/vendor/knative.dev/serving/test/e2e-common.sh @@ -49,6 +49,7 @@ export YTT_FILES=() export TMP_DIR="${TMP_DIR:-$(mktemp -d -t ci-$(date +%Y-%m-%d-%H-%M-%S)-XXXXXXXXXX)}" readonly E2E_YAML_DIR=${E2E_YAML_DIR:-"${TMP_DIR}/e2e-yaml"} +readonly STERN_PID_FILE=${TMP_DIR}/stern.pid # This the namespace used to install Knative Serving. Use generated UUID as namespace. export SYSTEM_NAMESPACE="${SYSTEM_NAMESPACE:-$(uuidgen | tr 'A-Z' 'a-z')}" @@ -422,21 +423,59 @@ function knative_teardown() { # Create test resources and images function test_setup() { + echo ">> Uploading test images..." + ${REPO_ROOT_DIR}/test/upload-test-images.sh || return 1 + echo ">> Setting up logging..." - # Install kail if needed. - if ! which kail > /dev/null; then - go install github.com/boz/kail/cmd/kail@v0.17.4 + # Install stern if needed. + if ! which stern > /dev/null; then + go install github.com/stern/stern@v1.33.0 fi + mkdir -p $(log_dir) + # Capture all logs. - kail > "${ARTIFACTS}/k8s.log-$(basename "${E2E_SCRIPT}").txt" & - local kail_pid=$! - # Clean up kail so it doesn't interfere with job shutting down - add_trap "kill $kail_pid || true" EXIT + # We use stdbuf so that when we pipe logs to awk it flushes to the file + stdbuf -oL stern . --all-namespaces --timestamps --max-log-requests 2000 2> "$(log_dir)/stern.stderr.log" | \ + stdbuf -oL awk -v logdir="$(log_dir)" ' + { + ns=$1; + pod=$2; - echo ">> Uploading test images..." - ${REPO_ROOT_DIR}/test/upload-test-images.sh || return 1 + gsub("/", "_", ns); + gsub("/", "_", pod); + + dir = logdir "/" ns + + if (!(dir in seen_dirs)) { + if (system("[ -d \"" dir "\" ] || mkdir -p \"" dir "\"") != 0) { + print "Failed to create dir:", dir > "/dev/stderr" + } + seen_dirs[dir] = 1 + } + + print $0 >> (logdir "/" ns "/" pod ".log"); + fflush(logdir "/" ns "/" pod ".log"); + }' & + + echo $! > ${STERN_PID_FILE} + + # Clean up stern so it doesn't interfere with job shutting down + add_trap "stop_logging" EXIT SIGTERM +} + +function stop_logging() { + kill $(cat ${STERN_PID_FILE}) + + pushd "$(dirname $(log_dir))" + tar -czf "$(basename $(log_dir)).tar.gz" "$(basename $(log_dir))" + rm -rf "$(basename $(log_dir))" + popd +} + +function log_dir() { + echo "${ARTIFACTS}/log-$(basename "${E2E_SCRIPT}" .sh)" } # Dump more information when test fails. @@ -635,3 +674,7 @@ function run_ytt() { function run_kapp() { go_run github.com/vmware-tanzu/carvel-kapp/cmd/kapp@v0.60.0 "$@" } + +function on_success() { + rm "${ARTIFACTS}"/log-* +} diff --git a/vendor/knative.dev/serving/test/e2e-external-domain-tls-tests.sh b/vendor/knative.dev/serving/test/e2e-external-domain-tls-tests.sh index b83c8b71b..bd03a3923 100644 --- a/vendor/knative.dev/serving/test/e2e-external-domain-tls-tests.sh +++ b/vendor/knative.dev/serving/test/e2e-external-domain-tls-tests.sh @@ -211,7 +211,4 @@ fi subheader "Cleanup external domain tls" cleanup_external_domain_tls_common -# Remove the kail log file if the test flow passes. -# This is for preventing too many large log files to be uploaded to GCS in CI. -rm "${ARTIFACTS}/k8s.log-$(basename "${E2E_SCRIPT}").txt" success diff --git a/vendor/knative.dev/serving/test/e2e-tests.sh b/vendor/knative.dev/serving/test/e2e-tests.sh index 2adfe2f86..974e40d63 100644 --- a/vendor/knative.dev/serving/test/e2e-tests.sh +++ b/vendor/knative.dev/serving/test/e2e-tests.sh @@ -170,8 +170,4 @@ fi (( failed )) && fail_test -# Remove the kail log file if the test flow passes. -# This is for preventing too many large log files to be uploaded to GCS in CI. -rm "${ARTIFACTS}/k8s.log-$(basename "${E2E_SCRIPT}").txt" - success diff --git a/vendor/knative.dev/serving/test/e2e-upgrade-tests.sh b/vendor/knative.dev/serving/test/e2e-upgrade-tests.sh index 505c2f9ae..1f853eada 100644 --- a/vendor/knative.dev/serving/test/e2e-upgrade-tests.sh +++ b/vendor/knative.dev/serving/test/e2e-upgrade-tests.sh @@ -54,7 +54,4 @@ go_test_e2e -tags=upgrade -timeout=${TIMEOUT} \ --disable-logstream \ --resolvabledomain=$(use_resolvable_domain) || fail_test -# Remove the kail log file if the test flow passes. -# This is for preventing too many large log files to be uploaded to GCS in CI. -rm "${ARTIFACTS}/k8s.log-$(basename "${E2E_SCRIPT}").txt" success diff --git a/vendor/knative.dev/serving/test/presubmit-tests.sh b/vendor/knative.dev/serving/test/presubmit-tests.sh index e47a58cce..dd76d167f 100644 --- a/vendor/knative.dev/serving/test/presubmit-tests.sh +++ b/vendor/knative.dev/serving/test/presubmit-tests.sh @@ -21,9 +21,6 @@ # Use the flags --build-tests, --unit-tests and --integration-tests # to run a specific set of tests. -export GO111MODULE=on -export GOFLAGS=-mod=vendor - source $(dirname $0)/../vendor/knative.dev/hack/presubmit-tests.sh # We use the default build, unit and integration test runners. diff --git a/vendor/modules.txt b/vendor/modules.txt index 595fa5f27..2715c0621 100644 --- a/vendor/modules.txt +++ b/vendor/modules.txt @@ -1718,7 +1718,7 @@ knative.dev/reconciler-test/pkg/resources/service knative.dev/reconciler-test/pkg/resources/serviceaccount knative.dev/reconciler-test/pkg/state knative.dev/reconciler-test/resources/certificate -# knative.dev/serving v0.46.1-0.20251021202624-95dd834759da +# knative.dev/serving v0.46.1-0.20251022114844-083ce783f9ca ## explicit; go 1.24.0 knative.dev/serving/pkg/apis/autoscaling knative.dev/serving/pkg/apis/autoscaling/v1alpha1