diff --git a/Makefile b/Makefile index b3a87c310f..ddc677fcdb 100644 --- a/Makefile +++ b/Makefile @@ -1002,7 +1002,6 @@ endif update-kubeadm-constants: (cd hack/update/kubeadm_constants && \ go run update_kubeadm_constants.go) - gofmt -w pkg/minikube/constants/constants_kubeadm_images.go .PHONY: stress stress: ## run the stress tests diff --git a/hack/update/github.go b/hack/update/github.go index 97b55258d7..50392f4c64 100644 --- a/hack/update/github.go +++ b/hack/update/github.go @@ -210,7 +210,7 @@ func ghUpdate(ctx context.Context, owner, repo string, token string, schema map[ // GHReleases returns greatest current stable release and greatest latest rc or beta pre-release from GitHub owner/repo repository, and any error occurred. // If latest pre-release version is lower than the current stable release, then it will return current stable release for both. -func GHReleases(ctx context.Context, owner, repo string) (stable, latest string, err error) { +func GHReleases(ctx context.Context, owner, repo string) (stable, latest, edge string, err error) { ghc := ghClient(ctx, ghToken) // walk through the paginated list of up to ghSearchLimit newest releases @@ -218,7 +218,7 @@ func GHReleases(ctx context.Context, owner, repo string) (stable, latest string, for (opts.Page+1)*ghListPerPage <= ghSearchLimit { rls, resp, err := ghc.Repositories.ListTags(ctx, owner, repo, opts) if err != nil { - return "", "", err + return "", "", "", err } for _, rl := range rls { ver := *rl.Name @@ -235,7 +235,12 @@ func GHReleases(ctx context.Context, owner, repo string) (stable, latest string, if semver.Compare(ver, latest) == 1 { latest = ver } + } else if strings.Contains(prerls, "-alpha") { + if semver.Compare(ver, edge) == 1 { + edge = ver + } } + // make sure that latest >= stable if semver.Compare(latest, stable) == -1 { latest = stable @@ -246,7 +251,7 @@ func GHReleases(ctx context.Context, owner, repo string) (stable, latest string, } opts.Page = resp.NextPage } - return stable, latest, nil + return stable, latest, edge, nil } // ghClient returns GitHub Client with a given context and optional token for authenticated requests. diff --git a/hack/update/golint_version/update_golint_version.go b/hack/update/golint_version/update_golint_version.go index db9261bc94..3b09135e8b 100644 --- a/hack/update/golint_version/update_golint_version.go +++ b/hack/update/golint_version/update_golint_version.go @@ -80,7 +80,7 @@ func main() { // golintVersions returns stable version in semver format. func golintVersion(ctx context.Context, owner, repo string) (stable string, err error) { // get Kubernetes versions from GitHub Releases - stable, _, err = update.GHReleases(ctx, owner, repo) + stable, _, _, err = update.GHReleases(ctx, owner, repo) if err != nil || !semver.IsValid(stable) { return "", err } diff --git a/hack/update/gopogh_version/update_gopogh_version.go b/hack/update/gopogh_version/update_gopogh_version.go index 6bce9d08c5..aca9092abe 100644 --- a/hack/update/gopogh_version/update_gopogh_version.go +++ b/hack/update/gopogh_version/update_gopogh_version.go @@ -100,7 +100,7 @@ func main() { // gopoghVersion returns gopogh stable version in semver format. func gopoghVersion(ctx context.Context, owner, repo string) (stable string, err error) { // get Kubernetes versions from GitHub Releases - stable, _, err = update.GHReleases(ctx, owner, repo) + stable, _, _, err = update.GHReleases(ctx, owner, repo) if err != nil || !semver.IsValid(stable) { return "", err } diff --git a/hack/update/kubeadm_constants/update_kubeadm_constants.go b/hack/update/kubeadm_constants/update_kubeadm_constants.go index 7399904d19..ae182c5749 100644 --- a/hack/update/kubeadm_constants/update_kubeadm_constants.go +++ b/hack/update/kubeadm_constants/update_kubeadm_constants.go @@ -65,13 +65,12 @@ func main() { // set a context with defined timeout ctx, cancel := context.WithTimeout(context.Background(), cxTimeout) defer cancel() - if inputVersion == "latest" { - stableImageVersion, latestImageVersion, err := getK8sVersions(ctx, "kubernetes", "kubernetes") + stableImageVersion, latestImageVersion, edgeImageVersion, err := getK8sVersions(ctx, "kubernetes", "kubernetes") if err != nil { klog.Fatal(err) } - imageVersions = append(imageVersions, stableImageVersion, latestImageVersion) + imageVersions = append(imageVersions, stableImageVersion, latestImageVersion, edgeImageVersion) } else if semver.IsValid(inputVersion) { imageVersions = append(imageVersions, inputVersion) } else { @@ -193,16 +192,16 @@ func executeCommand(command string, args ...string) (string, error) { } // getK8sVersion returns Kubernetes versions. -func getK8sVersions(ctx context.Context, owner, repo string) (stable, latest string, err error) { +func getK8sVersions(ctx context.Context, owner, repo string) (stable, latest, edge string, err error) { // get Kubernetes versions from GitHub Releases - stable, latest, err = update.GHReleases(ctx, owner, repo) + stable, latest, edge, err = update.GHReleases(ctx, owner, repo) if err != nil { - return "", "", err + return "", "", "", err } - if !semver.IsValid(stable) || !semver.IsValid(latest) { - return "", "", fmt.Errorf("invalid release obtained stable : %s, latest : %s", stable, latest) + if !semver.IsValid(stable) || !semver.IsValid(latest) || !semver.IsValid(edge) { + return "", "", "", fmt.Errorf("invalid release obtained stable : %s, latest : %s, edge: %s", stable, latest, edge) } - return stable, latest, nil + return stable, latest, edge, nil } diff --git a/hack/update/kubernetes_version/update_kubernetes_version.go b/hack/update/kubernetes_version/update_kubernetes_version.go index 692e4f4231..e85e0c0e74 100644 --- a/hack/update/kubernetes_version/update_kubernetes_version.go +++ b/hack/update/kubernetes_version/update_kubernetes_version.go @@ -145,7 +145,7 @@ func main() { // k8sVersion returns Kubernetes versions. func k8sVersions(ctx context.Context, owner, repo string) (stable, latest, latestMM, latestP0 string, err error) { // get Kubernetes versions from GitHub Releases - stable, latest, err = update.GHReleases(ctx, owner, repo) + stable, latest, _, err = update.GHReleases(ctx, owner, repo) if err != nil || !semver.IsValid(stable) || !semver.IsValid(latest) { return "", "", "", "", err }