From f91a11192ed1b319ab476434110cc6734107e332 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Anders=20F=20Bj=C3=B6rklund?= Date: Sat, 14 Aug 2021 20:29:15 +0200 Subject: [PATCH 1/2] Upgrade Buildroot to 2021.02 LTS with Linux 4.19 Upgrade kernel minor version to distribution default Add patch to allow building go inside minikube mod Add sysctl override to revert systemd 245+ rp_filter BR2_PACKAGE_LUAJIT Make sure to build lua required for sysdig BR2_PACKAGE_LZ4_PROGS Make sure to build lz4 required for preload BR2_PACKAGE_UTIL_LINUX_BINARIES Make sure to build lsblk required for automount --- Makefile | 6 +- ...dist-generate-stub-go.mod-in-workdir.patch | 78 +++++++++++++++++++ .../etc/sysctl.d/90-cilium-rp_filter.conf | 2 + .../minikube-iso/configs/minikube_defconfig | 8 +- 4 files changed, 88 insertions(+), 6 deletions(-) create mode 100644 deploy/iso/minikube-iso/board/coreos/minikube/patches/go/1.15.15/dist-generate-stub-go.mod-in-workdir.patch create mode 100644 deploy/iso/minikube-iso/board/coreos/minikube/rootfs-overlay/etc/sysctl.d/90-cilium-rp_filter.conf diff --git a/Makefile b/Makefile index b7f4317bd73b..818ffdd63bea 100644 --- a/Makefile +++ b/Makefile @@ -40,7 +40,7 @@ KVM_GO_VERSION ?= $(GO_VERSION:.0=) INSTALL_SIZE ?= $(shell du out/minikube-windows-amd64.exe | cut -f1) -BUILDROOT_BRANCH ?= 2020.02.12 +BUILDROOT_BRANCH ?= 2021.02.4 REGISTRY ?= gcr.io/k8s-minikube # Get git commit id @@ -66,7 +66,7 @@ MINIKUBE_BUCKET ?= minikube/releases MINIKUBE_UPLOAD_LOCATION := gs://${MINIKUBE_BUCKET} MINIKUBE_RELEASES_URL=https://github.com/kubernetes/minikube/releases/download -KERNEL_VERSION ?= 4.19.182 +KERNEL_VERSION ?= 4.19.202 # latest from https://github.com/golangci/golangci-lint/releases # update this only by running `make update-golint-version` GOLINT_VERSION ?= v1.41.1 @@ -282,8 +282,6 @@ minikube_iso: deploy/iso/minikube-iso/board/coreos/minikube/rootfs-overlay/usr/b git clone --depth=1 --branch=$(BUILDROOT_BRANCH) https://github.com/buildroot/buildroot $(BUILD_DIR)/buildroot; \ fi; $(MAKE) BR2_EXTERNAL=../../deploy/iso/minikube-iso minikube_defconfig -C $(BUILD_DIR)/buildroot - mkdir -p $(BUILD_DIR)/buildroot/output/build - echo "module buildroot.org/go" > $(BUILD_DIR)/buildroot/output/build/go.mod $(MAKE) -C $(BUILD_DIR)/buildroot host-python $(MAKE) -C $(BUILD_DIR)/buildroot mv $(BUILD_DIR)/buildroot/output/images/rootfs.iso9660 $(BUILD_DIR)/minikube.iso diff --git a/deploy/iso/minikube-iso/board/coreos/minikube/patches/go/1.15.15/dist-generate-stub-go.mod-in-workdir.patch b/deploy/iso/minikube-iso/board/coreos/minikube/patches/go/1.15.15/dist-generate-stub-go.mod-in-workdir.patch new file mode 100644 index 000000000000..1cdd0b593658 --- /dev/null +++ b/deploy/iso/minikube-iso/board/coreos/minikube/patches/go/1.15.15/dist-generate-stub-go.mod-in-workdir.patch @@ -0,0 +1,78 @@ +From 2b512af2ddaae01926fdcc9056b71017cac2a8d2 Mon Sep 17 00:00:00 2001 +From: Tamir Duberstein +Date: Thu, 25 Feb 2021 16:44:46 -0500 +Subject: [PATCH] dist: generate stub go.mod in workdir + +(cherry picked from commit c6374f516206c02b905d0d76ee1a66dab6fcd212) +--- + src/cmd/dist/build.go | 26 ++++++-------------------- + 1 file changed, 6 insertions(+), 20 deletions(-) + +diff --git a/src/cmd/dist/build.go b/src/cmd/dist/build.go +index 9e2b4f33b8..e5a7f9e9c4 100644 +--- a/src/cmd/dist/build.go ++++ b/src/cmd/dist/build.go +@@ -110,9 +110,6 @@ func xinit() { + fatalf("$GOROOT must be set") + } + goroot = filepath.Clean(b) +- if modRoot := findModuleRoot(goroot); modRoot != "" { +- fatalf("found go.mod file in %s: $GOROOT must not be inside a module", modRoot) +- } + + b = os.Getenv("GOROOT_FINAL") + if b == "" { +@@ -244,6 +241,9 @@ func xinit() { + os.Setenv("LANGUAGE", "en_US.UTF8") + + workdir = xworkdir() ++ if err := ioutil.WriteFile(pathf("%s/go.mod", workdir), []byte("module bootstrap"), 0666); err != nil { ++ fatalf("cannot write stub go.mod: %s", err) ++ } + xatexit(rmworkdir) + + tooldir = pathf("%s/pkg/tool/%s_%s", goroot, gohostos, gohostarch) +@@ -1484,11 +1484,11 @@ func goCmd(goBinary string, cmd string, args ...string) { + goCmd = append(goCmd, "-p=1") + } + +- run(goroot, ShowOutput|CheckExit, append(goCmd, args...)...) ++ run(workdir, ShowOutput|CheckExit, append(goCmd, args...)...) + } + + func checkNotStale(goBinary string, targets ...string) { +- out := run(goroot, CheckExit, ++ out := run(workdir, CheckExit, + append([]string{ + goBinary, + "list", "-gcflags=all=" + gogcflags, "-ldflags=all=" + goldflags, +@@ -1498,7 +1498,7 @@ func checkNotStale(goBinary string, targets ...string) { + os.Setenv("GODEBUG", "gocachehash=1") + for _, target := range []string{"runtime/internal/sys", "cmd/dist", "cmd/link"} { + if strings.Contains(out, "STALE "+target) { +- run(goroot, ShowOutput|CheckExit, goBinary, "list", "-f={{.ImportPath}} {{.Stale}}", target) ++ run(workdir, ShowOutput|CheckExit, goBinary, "list", "-f={{.ImportPath}} {{.Stale}}", target) + break + } + } +@@ -1590,20 +1590,6 @@ func checkCC() { + } + } + +-func findModuleRoot(dir string) (root string) { +- for { +- if fi, err := os.Stat(filepath.Join(dir, "go.mod")); err == nil && !fi.IsDir() { +- return dir +- } +- d := filepath.Dir(dir) +- if d == dir { +- break +- } +- dir = d +- } +- return "" +-} +- + func defaulttarg() string { + // xgetwd might return a path with symlinks fully resolved, and if + // there happens to be symlinks in goroot, then the hasprefix test diff --git a/deploy/iso/minikube-iso/board/coreos/minikube/rootfs-overlay/etc/sysctl.d/90-cilium-rp_filter.conf b/deploy/iso/minikube-iso/board/coreos/minikube/rootfs-overlay/etc/sysctl.d/90-cilium-rp_filter.conf new file mode 100644 index 000000000000..aa285916a512 --- /dev/null +++ b/deploy/iso/minikube-iso/board/coreos/minikube/rootfs-overlay/etc/sysctl.d/90-cilium-rp_filter.conf @@ -0,0 +1,2 @@ +net.ipv4.conf.lxc*.rp_filter = 0 +net.ipv4.conf.cilium_*.rp_filter = 0 diff --git a/deploy/iso/minikube-iso/configs/minikube_defconfig b/deploy/iso/minikube-iso/configs/minikube_defconfig index dcae296ff5f9..9cd682c7236d 100644 --- a/deploy/iso/minikube-iso/configs/minikube_defconfig +++ b/deploy/iso/minikube-iso/configs/minikube_defconfig @@ -18,13 +18,12 @@ BR2_ROOTFS_USERS_TABLES="$(BR2_EXTERNAL_MINIKUBE_PATH)/board/coreos/minikube/use BR2_ROOTFS_OVERLAY="$(BR2_EXTERNAL_MINIKUBE_PATH)/board/coreos/minikube/rootfs-overlay" BR2_LINUX_KERNEL=y BR2_LINUX_KERNEL_CUSTOM_VERSION=y -BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="4.19.182" +BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="4.19.202" BR2_LINUX_KERNEL_USE_CUSTOM_CONFIG=y BR2_LINUX_KERNEL_CUSTOM_CONFIG_FILE="$(BR2_EXTERNAL_MINIKUBE_PATH)/board/coreos/minikube/linux_defconfig" BR2_LINUX_KERNEL_LZ4=y BR2_LINUX_KERNEL_NEEDS_HOST_LIBELF=y BR2_PACKAGE_GZIP=y -BR2_PACKAGE_LZ4=y BR2_PACKAGE_XZ=y BR2_PACKAGE_STRACE=y BR2_PACKAGE_SYSDIG=y @@ -37,6 +36,9 @@ BR2_PACKAGE_SSHFS=y BR2_PACKAGE_XFSPROGS=y BR2_PACKAGE_PARTED=y BR2_PACKAGE_SYSSTAT=y +BR2_PACKAGE_LUAJIT=y +BR2_PACKAGE_LZ4=y +BR2_PACKAGE_LZ4_PROGS=y BR2_PACKAGE_CA_CERTIFICATES=y BR2_PACKAGE_LIBOPENSSL_BIN=y BR2_PACKAGE_LIBCURL_CURL=y @@ -58,7 +60,9 @@ BR2_PACKAGE_PSMISC=y BR2_PACKAGE_SYSTEMD_LOGIND=y BR2_PACKAGE_SYSTEMD_MACHINED=y BR2_PACKAGE_TAR=y +BR2_PACKAGE_UTIL_LINUX_BINARIES=y BR2_PACKAGE_UTIL_LINUX_LOSETUP=y +BR2_PACKAGE_UTIL_LINUX_NOLOGIN=y BR2_PACKAGE_UTIL_LINUX_NSENTER=y BR2_PACKAGE_UTIL_LINUX_SCHEDUTILS=y BR2_TARGET_ROOTFS_CPIO_GZIP=y From d7484e41ee9f347cdc1a1774c65e034ab9734c71 Mon Sep 17 00:00:00 2001 From: minikube-bot Date: Sat, 14 Aug 2021 22:13:14 +0000 Subject: [PATCH 2/2] Updating ISO to v1.22.0-1628974786-12268 --- Makefile | 2 +- pkg/minikube/download/iso.go | 2 +- site/content/en/docs/commands/start.md | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/Makefile b/Makefile index 818ffdd63bea..da260e660764 100644 --- a/Makefile +++ b/Makefile @@ -23,7 +23,7 @@ KUBERNETES_VERSION ?= $(shell egrep "DefaultKubernetesVersion =" pkg/minikube/co KIC_VERSION ?= $(shell egrep "Version =" pkg/drivers/kic/types.go | cut -d \" -f2) # Default to .0 for higher cache hit rates, as build increments typically don't require new ISO versions -ISO_VERSION ?= v1.22.0-1628622362-12032 +ISO_VERSION ?= v1.22.0-1628974786-12268 # Dashes are valid in semver, but not Linux packaging. Use ~ to delimit alpha/beta DEB_VERSION ?= $(subst -,~,$(RAW_VERSION)) DEB_REVISION ?= 0 diff --git a/pkg/minikube/download/iso.go b/pkg/minikube/download/iso.go index 79f618cc0917..ca6f42fc4c13 100644 --- a/pkg/minikube/download/iso.go +++ b/pkg/minikube/download/iso.go @@ -40,7 +40,7 @@ const fileScheme = "file" // DefaultISOURLs returns a list of ISO URL's to consult by default, in priority order func DefaultISOURLs() []string { v := version.GetISOVersion() - isoBucket := "minikube-builds/iso/12032" + isoBucket := "minikube-builds/iso/12268" return []string{ fmt.Sprintf("https://storage.googleapis.com/%s/minikube-%s.iso", isoBucket, v), fmt.Sprintf("https://github.com/kubernetes/minikube/releases/download/%s/minikube-%s.iso", v, v), diff --git a/site/content/en/docs/commands/start.md b/site/content/en/docs/commands/start.md index cc960f788886..a57cd14c0752 100644 --- a/site/content/en/docs/commands/start.md +++ b/site/content/en/docs/commands/start.md @@ -65,7 +65,7 @@ minikube start [flags] --insecure-registry strings Insecure Docker registries to pass to the Docker daemon. The default service CIDR range will automatically be added. --install-addons If set, install addons. Defaults to true. (default true) --interactive Allow user prompts for more information (default true) - --iso-url strings Locations to fetch the minikube ISO from. (default [https://storage.googleapis.com/minikube-builds/iso/12032/minikube-v1.22.0-1628622362-12032.iso,https://github.com/kubernetes/minikube/releases/download/v1.22.0-1628622362-12032/minikube-v1.22.0-1628622362-12032.iso,https://kubernetes.oss-cn-hangzhou.aliyuncs.com/minikube/iso/minikube-v1.22.0-1628622362-12032.iso]) + --iso-url strings Locations to fetch the minikube ISO from. (default [https://storage.googleapis.com/minikube-builds/iso/12268/minikube-v1.22.0-1628974786-12268.iso,https://github.com/kubernetes/minikube/releases/download/v1.22.0-1628974786-12268/minikube-v1.22.0-1628974786-12268.iso,https://kubernetes.oss-cn-hangzhou.aliyuncs.com/minikube/iso/minikube-v1.22.0-1628974786-12268.iso]) --keep-context This will keep the existing kubectl context and will create a minikube context. --kubernetes-version string The Kubernetes version that the minikube VM will use (ex: v1.2.3, 'stable' for v1.21.3, 'latest' for v1.22.0-rc.0). Defaults to 'stable'. --kvm-gpu Enable experimental NVIDIA GPU support in minikube