mirror of
https://github.com/kairos-io/kairos-agent.git
synced 2025-10-20 18:41:34 +00:00
seedling: Create framework images for each flavor (#973)
* 🌱 Create framework images for each flavor Signed-off-by: mudler <mudler@c3os.io> * 🌱 Add base cloud config files from packages Signed-off-by: mudler <mudler@c3os.io> * 🐧 No need to import base cloud config anymore from repositories Signed-off-by: mudler <mudler@c3os.io> * 🤖 Build latest framework images Signed-off-by: mudler <mudler@c3os.io> * 🤖 Simplify workflow flavors Signed-off-by: mudler <mudler@c3os.io> * 🤖 Make linter happy Signed-off-by: mudler <mudler@c3os.io> * 🐛 correctly parse the flavor Signed-off-by: mudler <mudler@c3os.io> * 🐛 Fixup copying overlay files in the correct location Signed-off-by: mudler <mudler@c3os.io> * 🤖 Set http registry in the self-hosted runner Signed-off-by: mudler <mudler@c3os.io> --------- Signed-off-by: mudler <mudler@c3os.io>
This commit is contained in:
committed by
Itxaka
parent
74ddd9db88
commit
91aa007abb
57
Earthfile
57
Earthfile
@@ -31,6 +31,9 @@ ARG RENOVATE_VERSION=34
|
|||||||
# renovate: datasource=docker depName=koalaman/shellcheck-alpine versioning=docker
|
# renovate: datasource=docker depName=koalaman/shellcheck-alpine versioning=docker
|
||||||
ARG SHELLCHECK_VERSION=v0.9.0
|
ARG SHELLCHECK_VERSION=v0.9.0
|
||||||
|
|
||||||
|
ARG IMAGE_REPOSITORY_ORG=quay.io/kairos
|
||||||
|
|
||||||
|
|
||||||
all:
|
all:
|
||||||
BUILD +docker
|
BUILD +docker
|
||||||
BUILD +iso
|
BUILD +iso
|
||||||
@@ -99,8 +102,7 @@ BUILD_GOLANG:
|
|||||||
ARG CGO_ENABLED
|
ARG CGO_ENABLED
|
||||||
ARG BIN
|
ARG BIN
|
||||||
ARG SRC
|
ARG SRC
|
||||||
COPY +version/VERSION ./
|
|
||||||
ARG VERSION=$(cat VERSION)
|
|
||||||
ENV CGO_ENABLED=${CGO_ENABLED}
|
ENV CGO_ENABLED=${CGO_ENABLED}
|
||||||
ARG LDFLAGS="-s -w -X 'github.com/kairos-io/kairos/internal/common.VERSION=$VERSION'"
|
ARG LDFLAGS="-s -w -X 'github.com/kairos-io/kairos/internal/common.VERSION=$VERSION'"
|
||||||
RUN echo "Building ${BIN} from ${SRC} using ${VERSION}"
|
RUN echo "Building ${BIN} from ${SRC} using ${VERSION}"
|
||||||
@@ -207,9 +209,8 @@ framework:
|
|||||||
ARG REPOSITORIES_FILE
|
ARG REPOSITORIES_FILE
|
||||||
ARG COSIGN_EXPERIMENTAL
|
ARG COSIGN_EXPERIMENTAL
|
||||||
ARG COSIGN_REPOSITORY
|
ARG COSIGN_REPOSITORY
|
||||||
ARG WITH_KERNEL
|
ARG FLAVOR
|
||||||
COPY +version/VERSION ./
|
ARG VERSION
|
||||||
ARG VERSION=$(cat VERSION)
|
|
||||||
ARG LDFLAGS="-s -w -X 'github.com/kairos-io/kairos/internal/common.VERSION=$VERSION'"
|
ARG LDFLAGS="-s -w -X 'github.com/kairos-io/kairos/internal/common.VERSION=$VERSION'"
|
||||||
|
|
||||||
FROM golang:alpine
|
FROM golang:alpine
|
||||||
@@ -234,18 +235,42 @@ framework:
|
|||||||
COPY +luet/luet /framework/usr/bin/luet
|
COPY +luet/luet /framework/usr/bin/luet
|
||||||
|
|
||||||
RUN luet cleanup --system-target /framework
|
RUN luet cleanup --system-target /framework
|
||||||
|
|
||||||
|
# Copy overlay files
|
||||||
COPY overlay/files /framework
|
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/luet
|
||||||
RUN rm -rf /framework/var/cache
|
RUN rm -rf /framework/var/cache
|
||||||
SAVE ARTIFACT --keep-own /framework/ framework
|
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:
|
framework-image:
|
||||||
FROM scratch
|
FROM scratch
|
||||||
|
ARG VERSION
|
||||||
ARG IMG
|
ARG IMG
|
||||||
ARG WITH_KERNEL
|
|
||||||
ARG FLAVOR
|
ARG FLAVOR
|
||||||
COPY (+framework/framework --FLAVOR=$FLAVOR --WITH_KERNEL=$WITH_KERNEL) /
|
COPY (+framework/framework --VERSION=$VERSION --FLAVOR=$FLAVOR) /
|
||||||
SAVE IMAGE $IMG
|
SAVE IMAGE --push $IMAGE_REPOSITORY_ORG/framework:${VERSION}_${FLAVOR}
|
||||||
|
|
||||||
docker:
|
docker:
|
||||||
ARG FLAVOR
|
ARG FLAVOR
|
||||||
@@ -274,26 +299,12 @@ docker:
|
|||||||
ARG OS_LABEL=latest
|
ARG OS_LABEL=latest
|
||||||
|
|
||||||
# Includes overlay/files
|
# 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}
|
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
|
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
|
# Enable services
|
||||||
IF [ -f /sbin/openrc ]
|
IF [ -f /sbin/openrc ]
|
||||||
|
Reference in New Issue
Block a user