CI: Fix kubectl auto update not getting newest version

pull/17974/head
Steven Powell 2024-01-16 10:17:53 -08:00
parent 09fba9c71f
commit d3d8937ab6
1 changed files with 7 additions and 8 deletions

View File

@ -18,6 +18,7 @@ package main
import ( import (
"fmt" "fmt"
"strings"
"golang.org/x/mod/semver" "golang.org/x/mod/semver"
"k8s.io/klog/v2" "k8s.io/klog/v2"
@ -42,10 +43,7 @@ func main() {
if err != nil { if err != nil {
klog.Fatal(err) klog.Fatal(err)
} }
tag, err := latestStableSemverTag(tags) tag := latestStableSemverTag(tags)
if err != nil {
klog.Fatal(err)
}
sha, err := update.GetImageSHA(fmt.Sprintf("docker.io/bitnami/kubectl:%s", tag)) sha, err := update.GetImageSHA(fmt.Sprintf("docker.io/bitnami/kubectl:%s", tag))
if err != nil { if err != nil {
klog.Fatalf("failed to get image SHA: %v", err) klog.Fatalf("failed to get image SHA: %v", err)
@ -56,12 +54,13 @@ func main() {
update.Apply(schema, data) update.Apply(schema, data)
} }
func latestStableSemverTag(tags []string) (string, error) { func latestStableSemverTag(tags []string) string {
latest := "v0.0.0"
for _, tag := range tags { for _, tag := range tags {
vTag := fmt.Sprintf("v%s", tag) vTag := fmt.Sprintf("v%s", tag)
if semver.IsValid(vTag) && semver.Prerelease(vTag) == "" { if semver.IsValid(vTag) && semver.Prerelease(vTag) == "" && semver.Compare(vTag, latest) == 1 {
return tag, nil latest = vTag
} }
} }
return "", fmt.Errorf("no stable semver tag found") return strings.TrimPrefix(latest, "v")
} }