From 7f0f3dcbdd9f18ab36e4d955ee17ae3b215996af Mon Sep 17 00:00:00 2001 From: Priya Wadhwa Date: Mon, 10 Feb 2020 17:55:04 -0800 Subject: [PATCH] Addressed review comments, still need to copy over /var/lib/minikube/binaries --- Makefile | 13 +++++----- hack/preload-images/preload_images.go | 35 +++++++++------------------ 2 files changed, 18 insertions(+), 30 deletions(-) diff --git a/Makefile b/Makefile index 4832e7773..4ac3dc48b 100755 --- a/Makefile +++ b/Makefile @@ -19,13 +19,14 @@ VERSION_BUILD ?= 1 RAW_VERSION=$(VERSION_MAJOR).$(VERSION_MINOR).${VERSION_BUILD} VERSION ?= v$(RAW_VERSION) -KUBERNETES_VERSION ?= $(shell cat pkg/minikube/constants/constants.go | grep "DefaultKubernetesVersion =" | cut -d ' ' -f4 | sed 's/"//g') +KUBERNETES_VERSION ?= $(shell egrep "^var 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).0 # Dashes are valid in semver, but not Linux packaging. Use ~ to delimit alpha/beta DEB_VERSION ?= $(subst -,~,$(RAW_VERSION)) RPM_VERSION ?= $(DEB_VERSION) +KIC_VERSION ?= 0.0.5 # used by hack/jenkins/release_build_and_upload.sh and KVM_BUILD_IMAGE, see also BUILD_IMAGE below GO_VERSION ?= 1.13.4 @@ -503,18 +504,18 @@ storage-provisioner-image: out/storage-provisioner-$(GOARCH) ## Build storage-pr .PHONY: kic-base-image kic-base-image: ## builds the base image used for kic. - docker rmi -f $(REGISTRY)/kicbase:v0.0.5-snapshot || true - docker build -f ./hack/images/kicbase.Dockerfile -t $(REGISTRY)/kicbase:v0.0.5-snapshot --build-arg COMMIT_SHA=${VERSION}-$(COMMIT) --target base . + docker rmi -f $(REGISTRY)/kicbase:v$(KIC_VERSION)-snapshot || true + 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:v0.0.5-k8s-${KUBERNETES_VERSION} || true - docker build -f ./hack/images/kicbase.Dockerfile -t $(REGISTRY)/kicbase:v0.0.5-k8s-${KUBERNETES_VERSION} --build-arg COMMIT_SHA=${VERSION}-$(COMMIT) --build-arg KUBERNETES_VERSION=${KUBERNETES_VERSION} . + 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: generate-preloaded-images-tar generate-preloaded-images-tar: out/minikube - KUBERNETES_VERSION=${KUBERNETES_VERSION} go run ./hack/preload-images/preload_images.go + go run ./hack/preload-images/preload_images.go -kubernetes-version ${KUBERNETES_VERSION} .PHONY: push-storage-provisioner-image diff --git a/hack/preload-images/preload_images.go b/hack/preload-images/preload_images.go index 41be2f56f..0309bd281 100644 --- a/hack/preload-images/preload_images.go +++ b/hack/preload-images/preload_images.go @@ -17,9 +17,8 @@ limitations under the License. package main import ( - "bytes" + "flag" "fmt" - "io/ioutil" "os" "os/exec" "path/filepath" @@ -39,12 +38,8 @@ var ( ) func init() { - if kv := os.Getenv("KUBERNETES_VERSION"); kv != "" { - kubernetesVersion = kv - } else { - fmt.Println("Please pass in kubernetes version via the KUBERNETES_VERSION environment variable") - os.Exit(1) - } + flag.StringVar(&kubernetesVersion, "kubernetes-version", "", "desired kubernetes version, for example `v1.17.2`") + flag.Parse() tarballFilename = fmt.Sprintf("preloaded-images-k8s-%s.tar", kubernetesVersion) } @@ -71,7 +66,7 @@ func executePreloadImages() error { } func startMinikube() error { - cmd := exec.Command(minikubePath, "start", "-p", profile, "--memory", "10000", "--kubernetes-version", kubernetesVersion) + cmd := exec.Command(minikubePath, "start", "-p", profile, "--memory", "4000", "--kubernetes-version", kubernetesVersion, "--wait=false") cmd.Stdout = os.Stdout return cmd.Run() } @@ -83,19 +78,19 @@ func createImageTarball() error { } func copyTarballToHost() error { - sshKey, err := runCmdCaptureStdout([]string{minikubePath, "ssh-key", "-p", profile}) + sshKey, err := runCmd([]string{minikubePath, "ssh-key", "-p", profile}) if err != nil { return errors.Wrap(err, "getting ssh-key") } - ip, err := runCmdCaptureStdout([]string{minikubePath, "ip", "-p", profile}) + ip, err := runCmd([]string{minikubePath, "ip", "-p", profile}) if err != nil { return errors.Wrap(err, "getting ip") } dest := filepath.Join("out/", tarballFilename) - args := fmt.Sprintf("scp -o StrictHostKeyChecking=no -i %s docker@%s:/home/docker/%s %s", sshKey, ip, tarballFilename, dest) - _, err = runCmdCaptureStdout(strings.Split(args, " ")) + args := []string{"scp", "-o", "StrictHostKeyChecking=no", "-i", string(sshKey), fmt.Sprintf("docker@%s:/home/docker/%s", ip, tarballFilename), dest} + _, err = runCmd(args) return err } @@ -105,16 +100,8 @@ func deleteMinikube() error { return cmd.Run() } -func runCmdCaptureStdout(command []string) (string, error) { +func runCmd(command []string) (string, error) { cmd := exec.Command(command[0], command[1:]...) - buf := bytes.NewBuffer([]byte{}) - cmd.Stdout = buf - if err := cmd.Run(); err != nil { - return "", err - } - stdout, err := ioutil.ReadAll(buf) - if err != nil { - return "", err - } - return strings.Trim(string(stdout), "\n "), nil + output, err := cmd.Output() + return strings.Trim(string(output), "\n "), err } -- GitLab