From 06f61d848281ade5e6c5d703f38eeaca3d2d3d88 Mon Sep 17 00:00:00 2001 From: gauron99 Date: Tue, 27 Oct 2026 18:54:21 +0100 Subject: [PATCH 1/2] Match digits in the node registration retry pattern The pattern came from the Go code of kntest, where `\d` sat in a raw string. When #230 moved the kubetest2 call into bash, it became `\\d` inside single quotes, which reaches the Go regexp as a literal backslash. The pattern never matches "only 2 nodes out of 3 have registered", so kubetest2 never retries that error in the next region. --- infra-library.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/infra-library.sh b/infra-library.sh index 80efe483..6205ed2d 100644 --- a/infra-library.sh +++ b/infra-library.sh @@ -167,7 +167,7 @@ function create_gke_test_cluster() { --boskos-acquire-timeout-seconds=1200 \ --region="${E2E_CLUSTER_REGION:-us-east1},us-central1,us-west1" \ --gcloud-extra-flags="${_extra_gcloud_flags[*]}" \ - --retryable-error-patterns='.*does not have enough resources available to fulfill.*,.*only \\d+ nodes out of \\d+ have registered; this is likely due to Nodes failing to start correctly.*,.*All cluster resources were brought up.+ but: component .+ from endpoint .+ is unhealthy.*' \ + --retryable-error-patterns='.*does not have enough resources available to fulfill.*,.*only \d+ nodes out of \d+ have registered; this is likely due to Nodes failing to start correctly.*,.*All cluster resources were brought up.+ but: component .+ from endpoint .+ is unhealthy.*' \ --test=exec \ -- \ "${_test_command[@]}" From b726adfe4b1d66126a0cbe16af1925d28c2f93b2 Mon Sep 17 00:00:00 2001 From: gauron99 Date: Tue, 27 Oct 2026 18:55:02 +0100 Subject: [PATCH 2/2] Retry GKE cluster creation on internal errors GKE can fail a cluster create with a server-side error after it ran for a while: canonicalCode: CanonicalCodeValueValuesEnum(INTERNAL, 14) message: 'Failed to create cluster' None of the retry patterns match it, so the job fails before any test runs. On 2026-10-27 this failed two jobs of knative-extensions/eventing-kafka-broker#4830 in us-east1 after 26 minutes, while seven other jobs started at the same time got clusters. Match the INTERNAL code, so kubetest2 deletes the failed cluster and tries the next region. The pattern has no comma, because kubetest2 splits the flag on commas. --- infra-library.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/infra-library.sh b/infra-library.sh index 6205ed2d..142dd2cd 100644 --- a/infra-library.sh +++ b/infra-library.sh @@ -167,7 +167,7 @@ function create_gke_test_cluster() { --boskos-acquire-timeout-seconds=1200 \ --region="${E2E_CLUSTER_REGION:-us-east1},us-central1,us-west1" \ --gcloud-extra-flags="${_extra_gcloud_flags[*]}" \ - --retryable-error-patterns='.*does not have enough resources available to fulfill.*,.*only \d+ nodes out of \d+ have registered; this is likely due to Nodes failing to start correctly.*,.*All cluster resources were brought up.+ but: component .+ from endpoint .+ is unhealthy.*' \ + --retryable-error-patterns='.*does not have enough resources available to fulfill.*,.*only \d+ nodes out of \d+ have registered; this is likely due to Nodes failing to start correctly.*,.*All cluster resources were brought up.+ but: component .+ from endpoint .+ is unhealthy.*,.*CanonicalCodeValueValuesEnum\(INTERNAL.*' \ --test=exec \ -- \ "${_test_command[@]}"