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
 	}