From e8103ca0118f3fbaf85cea63402c681d540013c9 Mon Sep 17 00:00:00 2001 From: Medya Gh Date: Tue, 22 Jun 2021 17:49:53 -0400 Subject: [PATCH] auto puase arm64 --- Makefile | 4 ++-- deploy/kicbase/Dockerfile | 27 +++++++++++++++++---------- 2 files changed, 19 insertions(+), 12 deletions(-) diff --git a/Makefile b/Makefile index 2433c3cec2..9e89d64bbd 100644 --- a/Makefile +++ b/Makefile @@ -681,7 +681,7 @@ KICBASE_IMAGE_REGISTRIES ?= $(KICBASE_IMAGE_GCR) $(KICBASE_IMAGE_HUB) .PHONY: local-kicbase local-kicbase: deploy/kicbase/auto-pause ## Builds the kicbase image and tags it local/kicbase:latest and local/kicbase:$(KIC_VERSION)-$(COMMIT_SHORT) - docker build -f ./deploy/kicbase/Dockerfile -t local/kicbase:$(KIC_VERSION) --build-arg COMMIT_SHA=${VERSION}-$(COMMIT) --cache-from $(KICBASE_IMAGE_GCR) ./deploy/kicbase + docker build -f ./deploy/kicbase/Dockerfile -t local/kicbase:$(KIC_VERSION) --build-arg COMMIT_SHA=${VERSION}-$(COMMIT) --cache-from $(KICBASE_IMAGE_GCR) . docker tag local/kicbase:$(KIC_VERSION) local/kicbase:latest docker tag local/kicbase:$(KIC_VERSION) local/kicbase:$(KIC_VERSION)-$(COMMIT_SHORT) @@ -706,7 +706,7 @@ endif ifndef CIBUILD $(call user_confirm, 'Are you sure you want to push $(KICBASE_IMAGE_REGISTRIES) ?') endif - env $(X_BUILD_ENV) docker buildx build --builder $(X_DOCKER_BUILDER) --platform $(KICBASE_ARCH) $(addprefix -t ,$(KICBASE_IMAGE_REGISTRIES)) --push --build-arg COMMIT_SHA=${VERSION}-$(COMMIT) ./deploy/kicbase + env $(X_BUILD_ENV) docker buildx build --builder $(X_DOCKER_BUILDER) --platform $(KICBASE_ARCH) $(addprefix -t ,$(KICBASE_IMAGE_REGISTRIES)) --push --build-arg COMMIT_SHA=${VERSION}-$(COMMIT) . out/preload-tool: go build -ldflags="$(MINIKUBE_LDFLAGS)" -o $@ ./hack/preload-images/*.go diff --git a/deploy/kicbase/Dockerfile b/deploy/kicbase/Dockerfile index 3af88df40c..80f18be5e1 100644 --- a/deploy/kicbase/Dockerfile +++ b/deploy/kicbase/Dockerfile @@ -17,6 +17,14 @@ # For systemd + docker configuration used below, see the following references: # https://systemd.io/CONTAINER_INTERFACE/ + +# multi-tage docker build so we can build auto-pause for arm64 +FROM golang:1.16 +WORKDIR /src +# becaue auto-pause binary depends on minikube's code we need to pass the whole source code as the context +ADD . . +RUN cd ./cmd/auto-pause/ && go build + # start from ubuntu 20.04, this image is reasonably small as a starting point # for a kubernetes node image, it doesn't contain much we don't need FROM ubuntu:focal-20210401 @@ -24,12 +32,11 @@ FROM ubuntu:focal-20210401 ARG BUILDKIT_VERSION="v0.8.2" # copy in static files (configs, scripts) -COPY 10-network-security.conf /etc/sysctl.d/10-network-security.conf -COPY 11-tcp-mtu-probing.conf /etc/sysctl.d/11-tcp-mtu-probing.conf -COPY clean-install /usr/local/bin/clean-install -COPY entrypoint /usr/local/bin/entrypoint -# must first run `make deploy/kicbase/auto-pause` -COPY auto-pause /bin/auto-pause +COPY deploy/kicbase/10-network-security.conf /etc/sysctl.d/10-network-security.conf +COPY deploy/kicbase/11-tcp-mtu-probing.conf /etc/sysctl.d/11-tcp-mtu-probing.conf +COPY deploy/kicbase/clean-install /usr/local/bin/clean-install +COPY deploy/kicbase/entrypoint /usr/local/bin/entrypoint +COPY --from=0 /src/cmd/auto-pause /bin/auto-pause # Install dependencies, first from apt, then from release tarballs. # NOTE: we use one RUN to minimize layers. @@ -152,14 +159,14 @@ RUN sh -c "echo 'deb http://download.opensuse.org/repositories/devel:/kubic:/lib systemd-tmpfiles --create # automount service -COPY automount/minikube-automount /usr/sbin/minikube-automount -COPY automount/minikube-automount.service /usr/lib/systemd/system/minikube-automount.service +COPY deploy/kicbase/automount/minikube-automount /usr/sbin/minikube-automount +COPY deploy/kicbase/automount/minikube-automount.service /usr/lib/systemd/system/minikube-automount.service RUN ln -fs /usr/lib/systemd/system/minikube-automount.service \ /etc/systemd/system/multi-user.target.wants/minikube-automount.service # scheduled stop service -COPY scheduled-stop/minikube-scheduled-stop /var/lib/minikube/scheduled-stop/minikube-scheduled-stop -COPY scheduled-stop/minikube-scheduled-stop.service /usr/lib/systemd/system/minikube-scheduled-stop.service +COPY deploy/kicbase/scheduled-stop/minikube-scheduled-stop /var/lib/minikube/scheduled-stop/minikube-scheduled-stop +COPY deploy/kicbase/scheduled-stop/minikube-scheduled-stop.service /usr/lib/systemd/system/minikube-scheduled-stop.service RUN chmod +x /var/lib/minikube/scheduled-stop/minikube-scheduled-stop # disable non-docker runtimes by default