Removed curl dependency on make
This commit is contained in:
@@ -54,7 +54,6 @@ https://docs.mono.si/gateway-development-kit/getting-started
|
||||
Prerequisites
|
||||
* make
|
||||
* Docker
|
||||
* curl (downloading dependency packages, kubelet, crio, etc)
|
||||
* git (cloning uboot repo because uboot does not provide direct downloads)
|
||||
|
||||
```
|
||||
|
||||
109
docker/download-packages.Dockerfile
Normal file
109
docker/download-packages.Dockerfile
Normal file
@@ -0,0 +1,109 @@
|
||||
FROM alpine:3.23.0 AS base
|
||||
RUN apk add --no-cache curl ca-certificates
|
||||
|
||||
# ---- kubelet ----
|
||||
FROM base AS kubelet
|
||||
ARG KUBE_VERSION
|
||||
ARG ARCH
|
||||
WORKDIR /out/kubernetes
|
||||
RUN curl -fL --retry 3 -o "kubelet-${KUBE_VERSION}" \
|
||||
"https://dl.k8s.io/${KUBE_VERSION}/bin/linux/${ARCH}/kubelet" && \
|
||||
chmod +x "kubelet-${KUBE_VERSION}"
|
||||
|
||||
# ---- kubeadm ----
|
||||
FROM base AS kubeadm
|
||||
ARG KUBE_VERSION
|
||||
ARG ARCH
|
||||
WORKDIR /out/kubernetes
|
||||
RUN curl -fL --retry 3 -o "kubeadm-${KUBE_VERSION}" \
|
||||
"https://dl.k8s.io/${KUBE_VERSION}/bin/linux/${ARCH}/kubeadm" && \
|
||||
chmod +x "kubeadm-${KUBE_VERSION}"
|
||||
|
||||
# ---- kubectl ----
|
||||
FROM base AS kubectl
|
||||
ARG KUBE_VERSION
|
||||
ARG ARCH
|
||||
WORKDIR /out/kubernetes
|
||||
RUN curl -fL --retry 3 -o "kubectl-${KUBE_VERSION}" \
|
||||
"https://dl.k8s.io/${KUBE_VERSION}/bin/linux/${ARCH}/kubectl" && \
|
||||
chmod +x "kubectl-${KUBE_VERSION}"
|
||||
|
||||
# ---- busybox ----
|
||||
FROM base AS busybox
|
||||
ARG BUSYBOX_VERSION
|
||||
WORKDIR /out
|
||||
RUN curl -fL --retry 3 -o "busybox-${BUSYBOX_VERSION}.tar.gz" \
|
||||
"https://github.com/mirror/busybox/archive/refs/tags/${BUSYBOX_VERSION}.tar.gz"
|
||||
|
||||
# ---- e2fsprogs ----
|
||||
FROM base AS e2fsprogs
|
||||
ARG E2FSPROGS_VERSION
|
||||
WORKDIR /out
|
||||
RUN curl -fL --retry 3 -o "e2fsprogs-v${E2FSPROGS_VERSION}.tar.gz" \
|
||||
"https://github.com/tytso/e2fsprogs/archive/refs/tags/v${E2FSPROGS_VERSION}.tar.gz"
|
||||
|
||||
# ---- dpdk ----
|
||||
FROM base AS dpdk
|
||||
ARG DPDK_VERSION
|
||||
WORKDIR /out/nxp/dpdk
|
||||
RUN curl -fL --retry 3 -o "${DPDK_VERSION}.tar.gz" \
|
||||
"https://github.com/nxp-qoriq/dpdk/archive/refs/tags/${DPDK_VERSION}.tar.gz"
|
||||
|
||||
# ---- fmlib ----
|
||||
FROM base AS fmlib
|
||||
ARG FMLIB_VERSION
|
||||
WORKDIR /out/nxp/fmlib
|
||||
RUN curl -fL --retry 3 -o "${FMLIB_VERSION}.tar.gz" \
|
||||
"https://github.com/nxp-qoriq/fmlib/archive/refs/tags/${FMLIB_VERSION}.tar.gz"
|
||||
|
||||
# ---- fmc ----
|
||||
FROM base AS fmc
|
||||
ARG FMC_VERSION
|
||||
WORKDIR /out/nxp/fmc
|
||||
RUN curl -fL --retry 3 -o "${FMC_VERSION}.tar.gz" \
|
||||
"https://github.com/nxp-qoriq/fmc/archive/refs/tags/${FMC_VERSION}.tar.gz"
|
||||
|
||||
# ---- vpp ----
|
||||
FROM base AS vpp
|
||||
ARG VPP_VERSION
|
||||
WORKDIR /out/nxp/vpp
|
||||
RUN curl -fL --retry 3 -o "${VPP_VERSION}.tar.gz" \
|
||||
"https://github.com/nxp-qoriq/vpp/archive/refs/tags/${VPP_VERSION}.tar.gz"
|
||||
|
||||
# ---- alpine rootfs ----
|
||||
FROM base AS alpine_rootfs
|
||||
ARG ALPINE_SERIES
|
||||
ARG ALPINE_ARCH
|
||||
ARG ALPINE_VER
|
||||
WORKDIR /out
|
||||
RUN curl -fL --retry 3 -o "alpine-minirootfs-${ALPINE_VER}-${ALPINE_ARCH}.tar.gz" \
|
||||
"https://dl-cdn.alpinelinux.org/alpine/v${ALPINE_SERIES}/releases/${ALPINE_ARCH}/alpine-minirootfs-${ALPINE_VER}-${ALPINE_ARCH}.tar.gz"
|
||||
|
||||
# ---- nxp linux ----
|
||||
FROM base AS nxp_linux
|
||||
ARG NXP_VERSION
|
||||
WORKDIR /out/nxp/kernel
|
||||
RUN curl -fL --retry 3 -o "${NXP_VERSION}.tar.gz" \
|
||||
"https://github.com/nxp-qoriq/linux/archive/refs/tags/${NXP_VERSION}.tar.gz"
|
||||
|
||||
# ---- crio ----
|
||||
FROM base AS crio
|
||||
ARG CRIO_VERSION
|
||||
WORKDIR /out
|
||||
RUN curl -fL --retry 3 -o "${CRIO_VERSION}.tar.gz" \
|
||||
"https://storage.googleapis.com/cri-o/artifacts/${CRIO_VERSION}.tar.gz"
|
||||
|
||||
# ---- final exported artifact set ----
|
||||
FROM scratch
|
||||
COPY --from=kubelet /out/ /
|
||||
COPY --from=kubeadm /out/ /
|
||||
COPY --from=kubectl /out/ /
|
||||
COPY --from=busybox /out/ /
|
||||
COPY --from=e2fsprogs /out/ /
|
||||
COPY --from=dpdk /out/ /
|
||||
COPY --from=fmlib /out/ /
|
||||
COPY --from=fmc /out/ /
|
||||
COPY --from=vpp /out/ /
|
||||
COPY --from=alpine_rootfs /out/ /
|
||||
COPY --from=nxp_linux /out/ /
|
||||
COPY --from=crio /out/ /
|
||||
@@ -14,7 +14,7 @@ RUN test -n "${NXP_VERSION}" || (echo "Please specify NXP_VERSION" >&2; exit 1);
|
||||
test -n "${CROSS_COMPILE}" || (echo "Please specify CROSS_COMPILE" >&2; exit 1); \
|
||||
test -n "${DEVICE_TREE_TARGET}" || (echo "Please specify DEVICE_TREE_TARGET" >&2; exit 1)
|
||||
|
||||
COPY packages/${NXP_VERSION}.tar.gz ./
|
||||
COPY packages/nxp/kernel/${NXP_VERSION}.tar.gz ./
|
||||
RUN tar -xf ${NXP_VERSION}.tar.gz \
|
||||
&& mv "linux-${NXP_VERSION}" nxplinux \
|
||||
&& rm -f ${NXP_VERSION}.tar.gz
|
||||
|
||||
@@ -39,7 +39,7 @@ spec:
|
||||
- v1.34.0
|
||||
```
|
||||
|
||||
catalog also accepts URL or ※ConfigMap
|
||||
catalog also accepts URL or ConfigMap※
|
||||
```yaml
|
||||
catalog:
|
||||
URL: https://example.com/images.yaml
|
||||
@@ -48,8 +48,8 @@ catalog:
|
||||
ConfigMap: images-cm
|
||||
```
|
||||
|
||||
※ ConfigMap requires additional RBAC permission which is not enabled by default. You can edit
|
||||
the control-agent's ClusterRole and add `cnofigmaps: get` to allow this.
|
||||
※ ConfigMap requires additional RBAC permissions which is not enabled by default. You can edit
|
||||
the control-agent's ClusterRole and add `configmaps: get` to allow this.
|
||||
|
||||
Contents should look like this
|
||||
```yaml
|
||||
|
||||
92
makefile
92
makefile
@@ -9,11 +9,11 @@ OUT_DIR := out
|
||||
E2FSPROGS_TAR := $(PACKAGES_DIR)/e2fsprogs-$(E2FSPROGS_VERSION).tar.gz
|
||||
BUSYBOX_TAR := $(PACKAGES_DIR)/busybox-$(BUSYBOX_VERSION).tar.gz
|
||||
ALPINE_TAR := $(PACKAGES_DIR)/alpine-minirootfs-$(ALPINE_VER)-$(ALPINE_ARCH).tar.gz
|
||||
NXP_TAR := $(PACKAGES_DIR)/$(NXP_VERSION).tar.gz
|
||||
FMLIB_TAR := $(PACKAGES_DIR)/fmlib/$(FMLIB_VERSION).tar.gz
|
||||
FMC_TAR := $(PACKAGES_DIR)/fmc/$(FMC_VERSION).tar.gz
|
||||
VPP_TAR := $(PACKAGES_DIR)/vpp/$(VPP_VERSION).tar.gz
|
||||
DPDK_TAR := $(PACKAGES_DIR)/dpdk/$(DPDK_VERSION).tar.gz
|
||||
NXP_TAR := $(PACKAGES_DIR)/nxp/kernel/$(NXP_VERSION).tar.gz
|
||||
FMLIB_TAR := $(PACKAGES_DIR)/nxp/fmlib/$(FMLIB_VERSION).tar.gz
|
||||
FMC_TAR := $(PACKAGES_DIR)/nxp/fmc/$(FMC_VERSION).tar.gz
|
||||
VPP_TAR := $(PACKAGES_DIR)/nxp/vpp/$(VPP_VERSION).tar.gz
|
||||
DPDK_TAR := $(PACKAGES_DIR)/nxp/dpdk/$(DPDK_VERSION).tar.gz
|
||||
CRIO_TAR := $(PACKAGES_DIR)/$(CRIO_VERSION).tar.gz
|
||||
|
||||
# Kubernetes components
|
||||
@@ -21,6 +21,8 @@ KUBELET_BIN := $(PACKAGES_DIR)/kubernetes/kubelet-$(KUBE_VERSION)
|
||||
KUBEADM_BIN := $(PACKAGES_DIR)/kubernetes/kubeadm-$(KUBE_VERSION)
|
||||
KUBECTL_BIN := $(PACKAGES_DIR)/kubernetes/kubectl-$(KUBE_VERSION)
|
||||
|
||||
CLITOOLS_BIN := bin/ctl-linux-$(ARCH)-$(TAG)
|
||||
|
||||
CONFIGS_DIR := configs
|
||||
SCRIPTS_DIR := scripts
|
||||
CLUSTER_ENV_DEFAULT := $(CONFIGS_DIR)/cluster.env.default
|
||||
@@ -33,11 +35,10 @@ INITRAMFS := $(OUT_DIR)/initramfs.cpio.gz
|
||||
CATALOG := $(OUT_DIR)/catalog-$(KUBE_VERSION)-$(TAG).txt
|
||||
RELEASE_IMAGE := $(OUT_DIR)/monok8s-$(KUBE_VERSION)-$(TAG).img.gz
|
||||
PART_IMAGE := $(OUT_DIR)/monok8s-$(KUBE_VERSION)-$(TAG).ext4.zst
|
||||
|
||||
KERNEL_IMAGE := $(OUT_DIR)/Image.gz
|
||||
|
||||
BUILD_BASE_STAMP := $(OUT_DIR)/.build-base-$(TAG).stamp
|
||||
CLITOOLS_BIN := bin/ctl-linux-$(ARCH)-$(TAG)
|
||||
BUILD_BASE_STAMP := $(OUT_DIR)/.build-base-$(TAG).stamp
|
||||
DOWNLOAD_PACKAGES_STAMP := $(PACKAGES_DIR)/.download-packages.stamp
|
||||
|
||||
ALPINE_SERIES := $(word 1,$(subst ., ,$(ALPINE_VER))).$(word 2,$(subst ., ,$(ALPINE_VER)))
|
||||
|
||||
@@ -62,7 +63,6 @@ BUILD_BASE_DEPS := \
|
||||
|
||||
KERNEL_DEPS := \
|
||||
$(BUILD_BASE_STAMP) \
|
||||
$(NXP_TAR) \
|
||||
docker/kernel-build.Dockerfile \
|
||||
kernel-extra.config \
|
||||
$(KERNEL_SRCS) \
|
||||
@@ -71,8 +71,6 @@ KERNEL_DEPS := \
|
||||
|
||||
INITRAMFS_DEPS := \
|
||||
$(KERNEL_IMAGE) \
|
||||
$(BUSYBOX_TAR) \
|
||||
$(E2FSPROGS_TAR) \
|
||||
docker/initramfs.Dockerfile \
|
||||
$(INITRAMFS_SRCS) \
|
||||
$(BUILD_INFO_FILE) \
|
||||
@@ -93,12 +91,7 @@ RELEASE_DEPS := \
|
||||
$(BUILD_BASE_STAMP) \
|
||||
$(BUILD_INFO_FILE) \
|
||||
$(BOARD_ITB) \
|
||||
$(ALPINE_TAR) \
|
||||
$(CLITOOLS_BIN) \
|
||||
$(CRIO_TAR) \
|
||||
$(KUBELET_BIN) \
|
||||
$(KUBEADM_BIN) \
|
||||
$(KUBECTL_BIN) \
|
||||
docker/alpine.Dockerfile \
|
||||
$(ALPINE_SRCS) \
|
||||
build.env \
|
||||
@@ -109,50 +102,36 @@ RELEASE_DEPS := \
|
||||
$(PACKAGES_DIR):
|
||||
mkdir -p $@ \
|
||||
$@/kubernetes \
|
||||
$@/vpp
|
||||
$@/nxp/vpp \
|
||||
$@/nxp/fmc \
|
||||
$@/nxp/fmlib \
|
||||
$@/nxp/kernel \
|
||||
$@/nxp/dpdk
|
||||
|
||||
$(OUT_DIR):
|
||||
mkdir -p $@
|
||||
|
||||
# ---- Package downloads -------------------------------------------------------
|
||||
$(KUBELET_BIN): | $(PACKAGES_DIR)
|
||||
curl -L -o $@ "https://dl.k8s.io/$(KUBE_VERSION)/bin/linux/$(ARCH)/kubelet"
|
||||
|
||||
$(KUBEADM_BIN): | $(PACKAGES_DIR)
|
||||
curl -L -o $@ "https://dl.k8s.io/$(KUBE_VERSION)/bin/linux/$(ARCH)/kubeadm"
|
||||
|
||||
$(KUBECTL_BIN): | $(PACKAGES_DIR)
|
||||
curl -L -o $@ "https://dl.k8s.io/$(KUBE_VERSION)/bin/linux/$(ARCH)/kubectl"
|
||||
|
||||
$(BUSYBOX_TAR): | $(PACKAGES_DIR)
|
||||
curl -L -o $@ "https://github.com/mirror/busybox/archive/refs/tags/$(BUSYBOX_VERSION).tar.gz"
|
||||
|
||||
$(E2FSPROGS_TAR): | $(PACKAGES_DIR)
|
||||
curl -L -o $@ "https://github.com/tytso/e2fsprogs/archive/refs/tags/v$(E2FSPROGS_VERSION).tar.gz"
|
||||
|
||||
$(DPDK_TAR): | $(PACKAGES_DIR)
|
||||
curl -L -o $@ "https://github.com/nxp-qoriq/dpdk/archive/refs/tags/$(DPDK_VERSION).tar.gz"
|
||||
|
||||
$(FMLIB_TAR): | $(PACKAGES_DIR)
|
||||
curl -L -o $@ "https://github.com/nxp-qoriq/fmlib/archive/refs/tags/$(FMLIB_VERSION).tar.gz"
|
||||
|
||||
$(FMC_TAR): | $(PACKAGES_DIR)
|
||||
curl -L -o $@ "https://github.com/nxp-qoriq/fmc/archive/refs/tags/$(FMC_VERSION).tar.gz"
|
||||
|
||||
$(VPP_TAR): | $(PACKAGES_DIR)
|
||||
curl -L -o $@ "https://github.com/nxp-qoriq/vpp/archive/refs/tags/$(VPP_VERSION).tar.gz"
|
||||
|
||||
$(ALPINE_TAR): | $(PACKAGES_DIR)
|
||||
curl -L -o $@ "https://dl-cdn.alpinelinux.org/alpine/v$(ALPINE_SERIES)/releases/$(ALPINE_ARCH)/alpine-minirootfs-$(ALPINE_VER)-$(ALPINE_ARCH).tar.gz"
|
||||
|
||||
$(NXP_TAR): | $(PACKAGES_DIR)
|
||||
curl -L -o $@ "https://github.com/nxp-qoriq/linux/archive/refs/tags/$(NXP_VERSION).tar.gz"
|
||||
|
||||
$(CRIO_TAR): | $(PACKAGES_DIR)
|
||||
curl -L -o $@ "https://storage.googleapis.com/cri-o/artifacts/$(CRIO_VERSION).tar.gz"
|
||||
$(DOWNLOAD_PACKAGES_STAMP): docker/download-packages.Dockerfile build.env makefile | $(PACKAGES_DIR)
|
||||
docker build \
|
||||
-f docker/download-packages.Dockerfile \
|
||||
--build-arg KUBE_VERSION=$(KUBE_VERSION) \
|
||||
--build-arg ARCH=$(ARCH) \
|
||||
--build-arg BUSYBOX_VERSION=$(BUSYBOX_VERSION) \
|
||||
--build-arg E2FSPROGS_VERSION=$(E2FSPROGS_VERSION) \
|
||||
--build-arg DPDK_VERSION=$(DPDK_VERSION) \
|
||||
--build-arg FMLIB_VERSION=$(FMLIB_VERSION) \
|
||||
--build-arg FMC_VERSION=$(FMC_VERSION) \
|
||||
--build-arg VPP_VERSION=$(VPP_VERSION) \
|
||||
--build-arg ALPINE_SERIES=$(ALPINE_SERIES) \
|
||||
--build-arg ALPINE_ARCH=$(ALPINE_ARCH) \
|
||||
--build-arg ALPINE_VER=$(ALPINE_VER) \
|
||||
--build-arg NXP_VERSION=$(NXP_VERSION) \
|
||||
--build-arg CRIO_VERSION=$(CRIO_VERSION) \
|
||||
--output type=local,dest=./$(PACKAGES_DIR) .
|
||||
@touch $@
|
||||
|
||||
# ---- Build stages ------------------------------------------------------------
|
||||
|
||||
$(BUILD_INFO_FILE):
|
||||
@mkdir -p $(dir $@)
|
||||
@printf '%s\n' \
|
||||
@@ -172,7 +151,7 @@ $(BUILD_BASE_STAMP): $(BUILD_BASE_DEPS) | $(OUT_DIR)
|
||||
docker tag monok8s/build-base:$(TAG) monok8s/build-base:$$iid; \
|
||||
touch $@
|
||||
|
||||
$(KERNEL_IMAGE): $(KERNEL_DEPS) | $(OUT_DIR)
|
||||
$(KERNEL_IMAGE): $(KERNEL_DEPS) $(DOWNLOAD_PACKAGES_STAMP) | $(OUT_DIR)
|
||||
docker build \
|
||||
-f docker/kernel-build.Dockerfile \
|
||||
--build-arg DOCKER_IMAGE_ROOT=$(DOCKER_IMAGE_ROOT) \
|
||||
@@ -184,7 +163,7 @@ $(KERNEL_IMAGE): $(KERNEL_DEPS) | $(OUT_DIR)
|
||||
--output type=local,dest=./$(OUT_DIR) .
|
||||
test -f $@
|
||||
|
||||
$(INITRAMFS): $(INITRAMFS_DEPS) | $(OUT_DIR)
|
||||
$(INITRAMFS): $(INITRAMFS_DEPS) $(DOWNLOAD_PACKAGES_STAMP) | $(OUT_DIR)
|
||||
docker build \
|
||||
-f docker/initramfs.Dockerfile \
|
||||
--build-arg DOCKER_IMAGE_ROOT=$(DOCKER_IMAGE_ROOT) \
|
||||
@@ -239,7 +218,7 @@ $(BOARD_ITB): $(ITB_DEPS) | $(OUT_DIR)
|
||||
--output type=local,dest=./$(OUT_DIR) .
|
||||
test -f $@
|
||||
|
||||
$(RELEASE_IMAGE): $(RELEASE_DEPS) | $(OUT_DIR)
|
||||
$(RELEASE_IMAGE): $(RELEASE_DEPS) $(DOWNLOAD_PACKAGES_STAMP) | $(OUT_DIR)
|
||||
@build_base_tag=$$(docker image inspect $(DOCKER_IMAGE_ROOT)/build-base:$(TAG) | jq -r '.[0].Id' | cut -d':' -f2 | cut -c -8); \
|
||||
docker build \
|
||||
-f docker/alpine.Dockerfile \
|
||||
@@ -305,6 +284,7 @@ build-base: $(BUILD_BASE_STAMP)
|
||||
clitools: $(CLITOOLS_BIN)
|
||||
|
||||
clean:
|
||||
make -C clean clitools
|
||||
rm -f \
|
||||
$(BUILD_BASE_STAMP) \
|
||||
$(KERNEL_IMAGE) \
|
||||
|
||||
Reference in New Issue
Block a user