diff --git a/README.md b/README.md index 0c2428b..663fb63 100644 --- a/README.md +++ b/README.md @@ -54,7 +54,6 @@ https://docs.mono.si/gateway-development-kit/getting-started Prerequisites * make * Docker -* git (cloning uboot repo because uboot does not provide direct downloads) ``` make release diff --git a/build.env b/build.env index d0e760a..16a7b19 100644 --- a/build.env +++ b/build.env @@ -3,13 +3,15 @@ DOCKER_IMAGE_ROOT=monok8s # Image tag TAG=dev -# The Linux kernel, from NXP -NXP_VERSION=lf-6.18.2-1.0.0 -FMLIB_VERSION=lf-6.18.2-1.0.0 -FMC_VERSION=lf-6.18.2-1.0.0 -DPDK_VERSION=lf-6.18.2-1.0.0 -VPP_VERSION=lf-6.18.2-1.0.0 +# NXP's Linux Factory +LINUX_FACTORY=6.18.2-1.0.0 +NXP_VERSION=lf-$(LINUX_FACTORY) +FMLIB_VERSION=lf-$(LINUX_FACTORY) +FMC_VERSION=lf-$(LINUX_FACTORY) +DPDK_VERSION=lf-$(LINUX_FACTORY) +VPP_VERSION=lf-$(LINUX_FACTORY) VPP_UPSTREAM_VERSION=23.10 +MONO_ASK_VERSION=mt-$(LINUX_FACTORY) CRIO_VERSION=cri-o.arm64.v1.35.2 KUBE_VERSION=v1.35.3 diff --git a/clitools/docker/download-packages.Dockerfile b/clitools/docker/download-packages.Dockerfile new file mode 100644 index 0000000..2838d18 --- /dev/null +++ b/clitools/docker/download-packages.Dockerfile @@ -0,0 +1,26 @@ +FROM alpine:3.23.0 AS base + +# We seperate the packages so this line can be cached upstream +RUN apk add --no-cache curl ca-certificates +RUN apk add --no-cache git + +# ---- uboot ---- +FROM base AS uboot +ARG UBOOT_VERSION + +WORKDIR /work + +RUN apk add --no-cache git tar gzip + +RUN git clone \ + --depth 1 \ + --branch "${UBOOT_VERSION}" \ + --filter=blob:none \ + https://github.com/u-boot/u-boot.git src + +RUN mkdir -p /out && \ + tar -C /work/src -zcf "/out/uboot-${UBOOT_VERSION}.tar.gz" . + +# ---- final exported artifact set ---- +FROM scratch +COPY --from=uboot /out/ / diff --git a/clitools/docker/uboot-tools.Dockerfile b/clitools/docker/uboot-tools.Dockerfile index 67c5b64..57f764f 100644 --- a/clitools/docker/uboot-tools.Dockerfile +++ b/clitools/docker/uboot-tools.Dockerfile @@ -1,4 +1,4 @@ -FROM alpine:3.22 AS build +FROM alpine:3.23 AS build RUN apk add --no-cache \ build-base \ diff --git a/clitools/makefile b/clitools/makefile index 054911f..427044e 100644 --- a/clitools/makefile +++ b/clitools/makefile @@ -27,6 +27,8 @@ LOCAL_REGISTRY_PORT := 5000 CTL_BUILD_BASE_IMAGE := localhost:5000/monok8s/ctl-build-base:$(VERSION) CTL_BINARY := ctl-linux-aarch64-$(VERSION) +DOWNLOAD_PACKAGES_STAMP := $(PACKAGES_DIR)/.download-packages.stamp + $(PACKAGES_DIR): mkdir -p $@ @@ -78,15 +80,14 @@ ensure-registry: fi; \ fi -$(UBOOT_TAR): | $(PACKAGES_DIR) $(OUT_DIR) - rm -rf "$(OUT_DIR)/u-boot-$(UBOOT_VERSION)" - git clone --depth 1 --branch "$(UBOOT_VERSION)" --filter=blob:none \ - https://github.com/u-boot/u-boot.git "$(OUT_DIR)/u-boot-$(UBOOT_VERSION)" - tar -C "$(OUT_DIR)/u-boot-$(UBOOT_VERSION)" -zcf "$@" . - rm -rf "$(OUT_DIR)/u-boot-$(UBOOT_VERSION)" - test -f "$@" +$(DOWNLOAD_PACKAGES_STAMP): docker/download-packages.Dockerfile makefile | $(PACKAGES_DIR) + docker build \ + -f docker/download-packages.Dockerfile \ + --build-arg UBOOT_VERSION=$(UBOOT_VERSION) \ + --output type=local,dest=./$(PACKAGES_DIR) . + @touch $@ -uboot-tools: $(UBOOT_TAR) +uboot-tools: $(DOWNLOAD_PACKAGES_STAMP) docker buildx build --platform linux/arm64 \ -f docker/uboot-tools.Dockerfile \ --build-arg UBOOT_VERSION=$(UBOOT_VERSION) \ @@ -152,6 +153,7 @@ clean: dockerclean: @echo "Removing tagged images..." - docker rmi \ + localhost/monok8s/ctl-build-base:$(VERSION) \ localhost/monok8s/control-agent:$(VERSION) \ localhost/monok8s/ctl-builder:$(VERSION) \ localhost/monok8s/crdgen:$(VERSION) \ @@ -161,6 +163,9 @@ dockerclean: - docker image prune -f - docker builder prune -f +pkgclean: + rm -rf $(PACKAGES_DIR) + all: build build-agent build-local .PHONY: \ diff --git a/makefile b/makefile index 569674d..fbe4707 100644 --- a/makefile +++ b/makefile @@ -316,6 +316,7 @@ dockerclean: - docker image prune -f pkgclean: + $(MAKE) -C clitools pkgclean rm -rf $(PACKAGES_DIR) .PHONY: release kernel initramfs itb build-base clitools clean distclean pkgclean \