From c8cb7a3c2d6f8f6bb3476d05338250f52ce94672 Mon Sep 17 00:00:00 2001 From: Medya Gh Date: Wed, 20 Oct 2021 15:19:20 -0700 Subject: [PATCH] delete older minikube version preload files on start tup --- cmd/minikube/cmd/delete.go | 3 ++- cmd/minikube/cmd/start.go | 1 + pkg/minikube/download/preload.go | 26 ++++++++++++++++++++++++++ 3 files changed, 29 insertions(+), 1 deletion(-) diff --git a/cmd/minikube/cmd/delete.go b/cmd/minikube/cmd/delete.go index 74764207dd..87ffd48ae0 100644 --- a/cmd/minikube/cmd/delete.go +++ b/cmd/minikube/cmd/delete.go @@ -40,6 +40,7 @@ import ( "k8s.io/minikube/pkg/minikube/constants" "k8s.io/minikube/pkg/minikube/cruntime" "k8s.io/minikube/pkg/minikube/delete" + "k8s.io/minikube/pkg/minikube/download" "k8s.io/minikube/pkg/minikube/driver" "k8s.io/minikube/pkg/minikube/exit" "k8s.io/minikube/pkg/minikube/kubeconfig" @@ -151,7 +152,7 @@ func runDelete(cmd *cobra.Command, args []string) { } // register.SetEventLogPath(localpath.EventLog(ClusterFlagValue())) register.Reg.SetStep(register.Deleting) - + download.CleanUpOlderPreloads() validProfiles, invalidProfiles, err := config.ListProfiles() if err != nil { klog.Warningf("'error loading profiles in minikube home %q: %v", localpath.MiniPath(), err) diff --git a/cmd/minikube/cmd/start.go b/cmd/minikube/cmd/start.go index 042b0611c1..4a6246f85c 100644 --- a/cmd/minikube/cmd/start.go +++ b/cmd/minikube/cmd/start.go @@ -142,6 +142,7 @@ func runStart(cmd *cobra.Command, args []string) { } defer pkgtrace.Cleanup() displayVersion(version.GetVersion()) + go download.CleanUpOlderPreloads() // No need to do the update check if no one is going to see it if !viper.GetBool(interactive) || !viper.GetBool(dryRun) { diff --git a/pkg/minikube/download/preload.go b/pkg/minikube/download/preload.go index 287e2b829e..cc46cb468f 100644 --- a/pkg/minikube/download/preload.go +++ b/pkg/minikube/download/preload.go @@ -21,9 +21,12 @@ import ( "crypto/md5" "encoding/hex" "fmt" + "io/ioutil" "net/http" "os" + "path" "path/filepath" + "strings" "cloud.google.com/go/storage" "google.golang.org/api/option" @@ -282,3 +285,26 @@ var ensureChecksumValid = func(k8sVersion, containerRuntime, targetPath string, return nil } + +// CleanUpOlderPreloads deletes preload files beloning to older minikube versions +// checks the current preload version and then if the saved tar file is belongs to older minikube it will delete it +// in case of failure only logs to the user +func CleanUpOlderPreloads() { + files, err := ioutil.ReadDir(targetDir()) + if err != nil { + klog.Warningf("Failed to list prelaod files: %v", err) + } + + for _, file := range files { + ver := strings.Split(file.Name(), "-")[3] + + if ver != PreloadVersion { + fn := path.Join(targetDir(), file.Name()) + klog.Infof("deleting older generation preload %s", fn) + err := os.Remove(fn) + if err != nil { + klog.Warningf("Failed to clean up older preload files, consider running `minikube delete --all --purge`") + } + } + } +}