From 97ea1b0b858e42bae59ca1db980ac8a81f48a6be Mon Sep 17 00:00:00 2001 From: Priya Wadhwa Date: Thu, 20 Feb 2020 11:55:47 -0800 Subject: [PATCH] Remove preloaded base image and add makefile rule to upload prelaoded tar to gcs --- Makefile | 9 +++---- hack/images/kicbase.Dockerfile | 10 -------- hack/preload-images/preload_images.go | 35 +++++++++------------------ 3 files changed, 16 insertions(+), 38 deletions(-) diff --git a/Makefile b/Makefile index 9ecabac82e..3b170cbd24 100755 --- a/Makefile +++ b/Makefile @@ -19,7 +19,7 @@ VERSION_BUILD ?= 3 RAW_VERSION=$(VERSION_MAJOR).$(VERSION_MINOR).${VERSION_BUILD} VERSION ?= v$(RAW_VERSION) -KUBERNETES_VERSION ?= $(shell egrep "^var DefaultKubernetesVersion" pkg/minikube/constants/constants.go | cut -d \" -f2) +KUBERNETES_VERSION ?= $(shell egrep "DefaultKubernetesVersion =" pkg/minikube/constants/constants.go | cut -d \" -f2) # Default to .0 for higher cache hit rates, as build increments typically don't require new ISO versions ISO_VERSION ?= v$(VERSION_MAJOR).$(VERSION_MINOR).3 @@ -512,10 +512,9 @@ kic-base-image: ## builds the base image used for kic. docker build -f ./hack/images/kicbase.Dockerfile -t $(REGISTRY)/kicbase:v$(KIC_VERSION)-snapshot --build-arg COMMIT_SHA=${VERSION}-$(COMMIT) --target base . -.PHONY: kic-preloaded-base-image -kic-preloaded-base-image: generate-preloaded-images-tar ## builds the base image used for kic. - docker rmi -f $(REGISTRY)/kicbase:v$(KIC_VERSION)-k8s-${KUBERNETES_VERSION} || true - docker build -f ./hack/images/kicbase.Dockerfile -t $(REGISTRY)/kicbase:v$(KIC_VERSION)-k8s-${KUBERNETES_VERSION} --build-arg COMMIT_SHA=${VERSION}-$(COMMIT) --build-arg KUBERNETES_VERSION=${KUBERNETES_VERSION} . +.PHONY: upload-preloaded-images-tar +upload-preloaded-images-tar: generate-preloaded-images-tar # Upload the preloaded images tar to the GCS bucket. Specify a specific kubernetes version to build via `KUBERNETES_VERSION=vx.y.z make upload-preloaded-images-tar`. + gsutil cp out/preloaded-images-k8s-${KUBERNETES_VERSION}.tar gs://minikube-docker-volume-tarballs .PHONY: generate-preloaded-images-tar generate-preloaded-images-tar: out/minikube diff --git a/hack/images/kicbase.Dockerfile b/hack/images/kicbase.Dockerfile index 58fe4bb55b..940b6602d4 100644 --- a/hack/images/kicbase.Dockerfile +++ b/hack/images/kicbase.Dockerfile @@ -43,13 +43,3 @@ RUN rm -rf \ /usr/share/man/* \ /usr/share/local/* \ RUN echo "kic! Build: ${COMMIT_SHA} Time :$(date)" > "/kic.txt" - - -FROM busybox -ARG KUBERNETES_VERSION -COPY out/preloaded-images-k8s-$KUBERNETES_VERSION.tar /preloaded-images.tar -RUN tar xvf /preloaded-images.tar -C / - -FROM base -COPY --from=1 /var/lib/docker /var/lib/docker -COPY --from=1 /var/lib/minikube/binaries /var/lib/minikube/binaries diff --git a/hack/preload-images/preload_images.go b/hack/preload-images/preload_images.go index 82fdba5b41..0acbf76a3a 100644 --- a/hack/preload-images/preload_images.go +++ b/hack/preload-images/preload_images.go @@ -22,7 +22,6 @@ import ( "os" "os/exec" "path/filepath" - "strings" "github.com/pkg/errors" ) @@ -66,32 +65,28 @@ func executePreloadImages() error { } func startMinikube() error { - cmd := exec.Command(minikubePath, "start", "-p", profile, "--memory", "4000", "--kubernetes-version", kubernetesVersion, "--wait=false") + cmd := exec.Command(minikubePath, "start", "-p", profile, "--memory", "4000", "--kubernetes-version", kubernetesVersion, "--wait=false", "--vm-driver=docker") cmd.Stdout = os.Stdout return cmd.Run() } func createImageTarball() error { - cmd := exec.Command(minikubePath, "ssh", "-p", profile, "--", "sudo", "tar", "cvf", tarballFilename, "/var/lib/docker", "/var/lib/minikube/binaries") + cmd := exec.Command(minikubePath, "ssh", "-p", profile, "--", "cd", "/var", "&&", "sudo", "tar", "cvf", tarballFilename, "./lib/docker", "./lib/minikube/binaries") cmd.Stdout = os.Stdout - return cmd.Run() + if err := cmd.Run(); err != nil { + return errors.Wrap(err, "creating image tarball") + } + return nil } func copyTarballToHost() error { - sshKey, err := runCmd([]string{minikubePath, "ssh-key", "-p", profile}) - if err != nil { - return errors.Wrap(err, "getting ssh-key") - } - - ip, err := runCmd([]string{minikubePath, "ip", "-p", profile}) - if err != nil { - return errors.Wrap(err, "getting ip") - } - dest := filepath.Join("out/", tarballFilename) - args := []string{"scp", "-o", "StrictHostKeyChecking=no", "-i", sshKey, fmt.Sprintf("docker@%s:/home/docker/%s", ip, tarballFilename), dest} - _, err = runCmd(args) - return err + cmd := exec.Command("docker", "cp", fmt.Sprintf("%s:/var/%s", profile, tarballFilename), dest) + cmd.Stdout = os.Stdout + if err := cmd.Run(); err != nil { + return errors.Wrap(err, "copying tarball to host") + } + return nil } func deleteMinikube() error { @@ -99,9 +94,3 @@ func deleteMinikube() error { cmd.Stdout = os.Stdout return cmd.Run() } - -func runCmd(command []string) (string, error) { - cmd := exec.Command(command[0], command[1:]...) - output, err := cmd.Output() - return strings.Trim(string(output), "\n "), err -}