From 91aa007abb686810460eb60dda1ddbdd04e27fad Mon Sep 17 00:00:00 2001 From: Ettore Di Giacinto Date: Tue, 28 Feb 2023 17:58:17 +0100 Subject: [PATCH] seedling: Create framework images for each flavor (#973) * :seedling: Create framework images for each flavor Signed-off-by: mudler * :seedling: Add base cloud config files from packages Signed-off-by: mudler * :penguin: No need to import base cloud config anymore from repositories Signed-off-by: mudler * :robot: Build latest framework images Signed-off-by: mudler * :robot: Simplify workflow flavors Signed-off-by: mudler * :robot: Make linter happy Signed-off-by: mudler * :bug: correctly parse the flavor Signed-off-by: mudler * :bug: Fixup copying overlay files in the correct location Signed-off-by: mudler * :robot: Set http registry in the self-hosted runner Signed-off-by: mudler --------- Signed-off-by: mudler --- Earthfile | 57 +++++++++++++++++++++++++++++++++---------------------- 1 file changed, 34 insertions(+), 23 deletions(-) diff --git a/Earthfile b/Earthfile index 8ae6271..2cc4cbd 100644 --- a/Earthfile +++ b/Earthfile @@ -31,6 +31,9 @@ ARG RENOVATE_VERSION=34 # renovate: datasource=docker depName=koalaman/shellcheck-alpine versioning=docker ARG SHELLCHECK_VERSION=v0.9.0 +ARG IMAGE_REPOSITORY_ORG=quay.io/kairos + + all: BUILD +docker BUILD +iso @@ -99,8 +102,7 @@ BUILD_GOLANG: ARG CGO_ENABLED ARG BIN ARG SRC - COPY +version/VERSION ./ - ARG VERSION=$(cat VERSION) + ENV CGO_ENABLED=${CGO_ENABLED} ARG LDFLAGS="-s -w -X 'github.com/kairos-io/kairos/internal/common.VERSION=$VERSION'" RUN echo "Building ${BIN} from ${SRC} using ${VERSION}" @@ -207,9 +209,8 @@ framework: ARG REPOSITORIES_FILE ARG COSIGN_EXPERIMENTAL ARG COSIGN_REPOSITORY - ARG WITH_KERNEL - COPY +version/VERSION ./ - ARG VERSION=$(cat VERSION) + ARG FLAVOR + ARG VERSION ARG LDFLAGS="-s -w -X 'github.com/kairos-io/kairos/internal/common.VERSION=$VERSION'" FROM golang:alpine @@ -234,18 +235,42 @@ framework: COPY +luet/luet /framework/usr/bin/luet RUN luet cleanup --system-target /framework + + # Copy overlay files COPY overlay/files /framework + # Copy flavor-specific overlay files + IF [ "$FLAVOR" = "alpine-opensuse-leap" ] || [ "$FLAVOR" = "alpine-ubuntu" ] + COPY overlay/files-alpine/ /framework + END + + IF [ "$FLAVOR" = "alpine-arm-rpi" ] + COPY overlay/files-alpine/ /framework + COPY overlay/files-opensuse-arm-rpi/ /framework + ELSE IF [ "$FLAVOR" = "opensuse-leap-arm-rpi" ] || [ "$FLAVOR" = "opensuse-tumbleweed-arm-rpi" ] + COPY overlay/files-opensuse-arm-rpi/ /framework + ELSE IF [ "$FLAVOR" = "fedora" ] || [ "$FLAVOR" = "rockylinux" ] + COPY overlay/files-fedora/ /framework + ELSE IF [ "$FLAVOR" = "debian" ] || [ "$FLAVOR" = "ubuntu" ] || [ "$FLAVOR" = "ubuntu-20-lts" ] || [ "$FLAVOR" = "ubuntu-22-lts" ] + COPY overlay/files-ubuntu/ /framework + END + RUN rm -rf /framework/var/luet RUN rm -rf /framework/var/cache SAVE ARTIFACT --keep-own /framework/ framework +build-framework-image: + COPY +version/VERSION ./ + ARG VERSION=$(cat VERSION) + ARG FLAVOR + BUILD +framework-image --VERSION=$VERSION --FLAVOR=$FLAVOR + framework-image: FROM scratch + ARG VERSION ARG IMG - ARG WITH_KERNEL ARG FLAVOR - COPY (+framework/framework --FLAVOR=$FLAVOR --WITH_KERNEL=$WITH_KERNEL) / - SAVE IMAGE $IMG + COPY (+framework/framework --VERSION=$VERSION --FLAVOR=$FLAVOR) / + SAVE IMAGE --push $IMAGE_REPOSITORY_ORG/framework:${VERSION}_${FLAVOR} docker: ARG FLAVOR @@ -274,26 +299,12 @@ docker: ARG OS_LABEL=latest # Includes overlay/files - COPY +framework/framework / + COPY (+framework/framework --FLAVOR=$FLAVOR --VERSION=$OS_VERSION) / DO +OSRELEASE --HOME_URL=https://github.com/kairos-io/kairos --BUG_REPORT_URL=https://github.com/kairos-io/kairos/issues --GITHUB_REPO=kairos-io/kairos --VARIANT=${VARIANT} --FLAVOR=${FLAVOR} --OS_ID=${OS_ID} --OS_LABEL=${OS_LABEL} --OS_NAME=${OS_NAME} --OS_REPO=${OS_REPO} --OS_VERSION=${OS_VERSION} RUN rm -rf /etc/machine-id && touch /etc/machine-id && chmod 444 /etc/machine-id - # Copy flavor-specific overlay files - IF [[ "$FLAVOR" =~ "alpine" ]] - COPY overlay/files-alpine/ / - END - - IF [ "$FLAVOR" = "alpine-arm-rpi" ] - COPY overlay/files-opensuse-arm-rpi/ / - ELSE IF [ "$FLAVOR" = "opensuse-leap-arm-rpi" ] || [ "$FLAVOR" = "opensuse-tumbleweed-arm-rpi" ] - COPY overlay/files-opensuse-arm-rpi/ / - ELSE IF [ "$FLAVOR" = "fedora" ] || [ "$FLAVOR" = "rockylinux" ] - COPY overlay/files-fedora/ / - ELSE IF [ "$FLAVOR" = "debian" ] || [ "$FLAVOR" = "ubuntu" ] || [ "$FLAVOR" = "ubuntu-20-lts" ] || [ "$FLAVOR" = "ubuntu-22-lts" ] - COPY overlay/files-ubuntu/ / - END # Enable services IF [ -f /sbin/openrc ]