@@ -342,7 +342,23 @@ presubmits:
342
342
minor=$(echo "$revision" | sed -e 's/^v[0-9]*\.\([0-9]*\).*/\1/')
343
343
previous_minor=$((minor - 1))
344
344
# Test with the stable release to avoid breaking presubmits because of unrelated issues in a release candidate.
345
- previous=$(curl --silent -L "https://dl.k8s.io/release/stable-$major.$previous_minor.txt" )
345
+ # Ask curl to append the HTTP status code after the response body (-w ' %{http_code}').
346
+ # Then parse the output using Bash parameter expansion:
347
+ # ${response% *} → everything before the last space (the body)
348
+ # ${response##* } → everything after the last space (the HTTP code)
349
+ response=$(curl --silent -w ' %{http_code}' -L "https://dl.k8s.io/release/stable-$major.$previous_minor.txt" )
350
+ previous="${response% *}"
351
+ status="${response##* }"
352
+ if [ "$status" == 404 ] ; then
353
+ # if stable doesn't exist - use latest
354
+ response=$(curl --silent -w ' %{http_code}' -L "https://dl.k8s.io/release/latest-$major.$previous_minor.txt" )
355
+ previous="${response% *}"
356
+ status="${response##* }"
357
+ fi
358
+ if [ "$status" -ne 200 ] ; then
359
+ echo "error: unable to get release $major.$previous_minor info, HTTP status: $status, response: $previous"
360
+ exit 1
361
+ fi
346
362
curl --silent -L "https://dl.k8s.io/release/$previous/kubernetes-server-linux-amd64.tar.gz" | tar zxOf - kubernetes/server/bin/kubelet >/tmp/kubelet
347
363
chmod a+rx /tmp/kubelet
348
364
/tmp/kubelet --version
@@ -457,7 +473,23 @@ presubmits:
457
473
minor=$(echo "$revision" | sed -e 's/^v[0-9]*\.\([0-9]*\).*/\1/')
458
474
previous_minor=$((minor - 2))
459
475
# Test with the stable release to avoid breaking presubmits because of unrelated issues in a release candidate.
460
- previous=$(curl --silent -L "https://dl.k8s.io/release/stable-$major.$previous_minor.txt" )
476
+ # Ask curl to append the HTTP status code after the response body (-w ' %{http_code}').
477
+ # Then parse the output using Bash parameter expansion:
478
+ # ${response% *} → everything before the last space (the body)
479
+ # ${response##* } → everything after the last space (the HTTP code)
480
+ response=$(curl --silent -w ' %{http_code}' -L "https://dl.k8s.io/release/stable-$major.$previous_minor.txt" )
481
+ previous="${response% *}"
482
+ status="${response##* }"
483
+ if [ "$status" == 404 ] ; then
484
+ # if stable doesn't exist - use latest
485
+ response=$(curl --silent -w ' %{http_code}' -L "https://dl.k8s.io/release/latest-$major.$previous_minor.txt" )
486
+ previous="${response% *}"
487
+ status="${response##* }"
488
+ fi
489
+ if [ "$status" -ne 200 ] ; then
490
+ echo "error: unable to get release $major.$previous_minor info, HTTP status: $status, response: $previous"
491
+ exit 1
492
+ fi
461
493
curl --silent -L "https://dl.k8s.io/release/$previous/kubernetes-server-linux-amd64.tar.gz" | tar zxOf - kubernetes/server/bin/kubelet >/tmp/kubelet
462
494
chmod a+rx /tmp/kubelet
463
495
/tmp/kubelet --version
0 commit comments