From efbe113a94fb37d880aaee006ee729c7b6ac4896 Mon Sep 17 00:00:00 2001 From: Priya Wadhwa Date: Thu, 26 Mar 2020 10:13:26 -0700 Subject: [PATCH 1/5] Add more logging to preload --- hack/preload-images/upload.go | 4 ++-- pkg/minikube/download/preload.go | 2 ++ 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/hack/preload-images/upload.go b/hack/preload-images/upload.go index a2181294e6..b903f3cc11 100644 --- a/hack/preload-images/upload.go +++ b/hack/preload-images/upload.go @@ -30,13 +30,13 @@ func uploadTarball(tarballFilename string) error { hostPath := path.Join("out/", tarballFilename) gcsDest := fmt.Sprintf("gs://%s", download.PreloadBucket) cmd := exec.Command("gsutil", "cp", hostPath, gcsDest) - if output, err := cmd.Output(); err != nil { + if output, err := cmd.CombinedOutput(); err != nil { return errors.Wrapf(err, "uploading %s to GCS bucket: %v\n%s", hostPath, err, string(output)) } // Make tarball public to all users gcsPath := fmt.Sprintf("%s/%s", gcsDest, tarballFilename) cmd = exec.Command("gsutil", "acl", "ch", "-u", "AllUsers:R", gcsPath) - if output, err := cmd.Output(); err != nil { + if output, err := cmd.CombinedOutput(); err != nil { return errors.Wrapf(err, "uploading %s to GCS bucket: %v\n%s", hostPath, err, string(output)) } return nil diff --git a/pkg/minikube/download/preload.go b/pkg/minikube/download/preload.go index 44b2f81749..dc834fb7f0 100644 --- a/pkg/minikube/download/preload.go +++ b/pkg/minikube/download/preload.go @@ -77,6 +77,7 @@ func remoteTarballURL(k8sVersion string) string { // PreloadExists returns true if there is a preloaded tarball that can be used func PreloadExists(k8sVersion, containerRuntime string) bool { + glog.Infof("Checking if preload exists for k8s version %s and runtime %s", k8sVersion, containerRuntime) if !viper.GetBool("preload") { return false } @@ -85,6 +86,7 @@ func PreloadExists(k8sVersion, containerRuntime string) bool { // and https://github.com/kubernetes/minikube/issues/6934 // to track status of adding containerd & crio if containerRuntime != "docker" { + glog.Info("Container runtime isn't docker, skipping preload") return false } From 27685523611e514429d2c26f1c5d93871e1a700b Mon Sep 17 00:00:00 2001 From: Priya Wadhwa Date: Thu, 26 Mar 2020 10:23:30 -0700 Subject: [PATCH 2/5] Use download.TarballExists to make sure tarball is publicly accessible in script generator --- hack/preload-images/preload_images.go | 9 +-------- hack/preload-images/upload.go | 7 +++++++ 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/hack/preload-images/preload_images.go b/hack/preload-images/preload_images.go index 60b6bc9e2a..948918d8f9 100644 --- a/hack/preload-images/preload_images.go +++ b/hack/preload-images/preload_images.go @@ -62,7 +62,7 @@ func main() { for _, kv := range k8sVersions { for _, cr := range containerRuntimes { tf := download.TarballName(kv) - if tarballExists(tf) { + if download.PreloadExists(kv, cr) { fmt.Printf("A preloaded tarball for k8s version %s already exists, skipping generation.\n", kv) continue } @@ -77,13 +77,6 @@ func main() { } } -func tarballExists(tarballFilename string) bool { - fmt.Println("Checking if tarball already exists...") - gcsPath := fmt.Sprintf("gs://%s/%s", download.PreloadBucket, tarballFilename) - cmd := exec.Command("gsutil", "stat", gcsPath) - return cmd.Run() == nil -} - func verifyDockerStorage() error { cmd := exec.Command("docker", "info", "-f", "{{.Info.Driver}}") var stderr bytes.Buffer diff --git a/hack/preload-images/upload.go b/hack/preload-images/upload.go index b903f3cc11..f6235a38f4 100644 --- a/hack/preload-images/upload.go +++ b/hack/preload-images/upload.go @@ -37,6 +37,13 @@ func uploadTarball(tarballFilename string) error { gcsPath := fmt.Sprintf("%s/%s", gcsDest, tarballFilename) cmd = exec.Command("gsutil", "acl", "ch", "-u", "AllUsers:R", gcsPath) if output, err := cmd.CombinedOutput(); err != nil { + fmt.Printf(`Failed to update ACLs on this tarball in GCS. Please run + +gsutil acl ch -u AllUsers:R %s + +manually to make this link public, or rerun this script to rebuild and reupload the tarball. + + `, gcsPath) return errors.Wrapf(err, "uploading %s to GCS bucket: %v\n%s", hostPath, err, string(output)) } return nil From 2a1ee510837ae5d870275dfa89c8acc4ded28ac2 Mon Sep 17 00:00:00 2001 From: Priya Wadhwa Date: Thu, 26 Mar 2020 10:31:46 -0700 Subject: [PATCH 3/5] add logging --- hack/preload-images/upload.go | 2 ++ 1 file changed, 2 insertions(+) diff --git a/hack/preload-images/upload.go b/hack/preload-images/upload.go index f6235a38f4..1a6c02af75 100644 --- a/hack/preload-images/upload.go +++ b/hack/preload-images/upload.go @@ -30,12 +30,14 @@ func uploadTarball(tarballFilename string) error { hostPath := path.Join("out/", tarballFilename) gcsDest := fmt.Sprintf("gs://%s", download.PreloadBucket) cmd := exec.Command("gsutil", "cp", hostPath, gcsDest) + fmt.Printf("Running: %v", cmd.Args) if output, err := cmd.CombinedOutput(); err != nil { return errors.Wrapf(err, "uploading %s to GCS bucket: %v\n%s", hostPath, err, string(output)) } // Make tarball public to all users gcsPath := fmt.Sprintf("%s/%s", gcsDest, tarballFilename) cmd = exec.Command("gsutil", "acl", "ch", "-u", "AllUsers:R", gcsPath) + fmt.Printf("Running: %v", cmd.Args) if output, err := cmd.CombinedOutput(); err != nil { fmt.Printf(`Failed to update ACLs on this tarball in GCS. Please run From c9c324242ce6f768cd5ac924c628ec68ca634dd8 Mon Sep 17 00:00:00 2001 From: Priya Wadhwa Date: Thu, 26 Mar 2020 10:37:29 -0700 Subject: [PATCH 4/5] add newlines --- hack/preload-images/upload.go | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/hack/preload-images/upload.go b/hack/preload-images/upload.go index 1a6c02af75..89bbd8004b 100644 --- a/hack/preload-images/upload.go +++ b/hack/preload-images/upload.go @@ -30,14 +30,14 @@ func uploadTarball(tarballFilename string) error { hostPath := path.Join("out/", tarballFilename) gcsDest := fmt.Sprintf("gs://%s", download.PreloadBucket) cmd := exec.Command("gsutil", "cp", hostPath, gcsDest) - fmt.Printf("Running: %v", cmd.Args) + fmt.Printf("Running: %v\n", cmd.Args) if output, err := cmd.CombinedOutput(); err != nil { return errors.Wrapf(err, "uploading %s to GCS bucket: %v\n%s", hostPath, err, string(output)) } // Make tarball public to all users gcsPath := fmt.Sprintf("%s/%s", gcsDest, tarballFilename) cmd = exec.Command("gsutil", "acl", "ch", "-u", "AllUsers:R", gcsPath) - fmt.Printf("Running: %v", cmd.Args) + fmt.Printf("Running: %v\n", cmd.Args) if output, err := cmd.CombinedOutput(); err != nil { fmt.Printf(`Failed to update ACLs on this tarball in GCS. Please run From e293b384311b7653922031b5951364150e583033 Mon Sep 17 00:00:00 2001 From: Priya Wadhwa Date: Thu, 26 Mar 2020 10:42:45 -0700 Subject: [PATCH 5/5] Set --preload flag to true so that download.PreloadExists doesn't immeditely return false --- hack/preload-images/preload_images.go | 2 ++ 1 file changed, 2 insertions(+) diff --git a/hack/preload-images/preload_images.go b/hack/preload-images/preload_images.go index 948918d8f9..928cd44821 100644 --- a/hack/preload-images/preload_images.go +++ b/hack/preload-images/preload_images.go @@ -23,6 +23,7 @@ import ( "os/exec" "strings" + "github.com/spf13/viper" "k8s.io/minikube/pkg/minikube/download" "k8s.io/minikube/pkg/minikube/exit" ) @@ -45,6 +46,7 @@ func init() { if k8sVersion != "" { k8sVersions = append(k8sVersions, k8sVersion) } + viper.Set("preload", "true") } func main() {