2022-08-12 15:55:47 +02:00
|
|
|
VERSION 0.6
|
|
|
|
|
2022-09-16 15:42:45 +00:00
|
|
|
IMPORT github.com/kairos-io/kairos
|
2022-08-12 15:55:47 +02:00
|
|
|
|
|
|
|
FROM alpine
|
2022-09-16 15:42:45 +00:00
|
|
|
ARG VARIANT=kairos # core, lite, framework
|
2022-08-12 15:55:47 +02:00
|
|
|
ARG FLAVOR=opensuse
|
|
|
|
|
2022-08-18 10:37:07 +00:00
|
|
|
## Versioning
|
|
|
|
ARG K3S_VERSION
|
|
|
|
RUN apk add git
|
|
|
|
COPY . ./
|
|
|
|
RUN echo $(git describe --exact-match --tags || echo "v0.0.0-$(git log --oneline -n 1 | cut -d" " -f1)") > VERSION
|
|
|
|
ARG CORE_VERSION=$(cat CORE_VERSION || echo "latest")
|
|
|
|
ARG VERSION=$(cat VERSION)
|
|
|
|
RUN echo "version ${VERSION}"
|
2022-08-18 13:55:23 +00:00
|
|
|
ARG K3S_VERSION_TAG=$(echo $K3S_VERSION | sed s/+/-/)
|
|
|
|
ARG TAG=${VERSION}-k3s${K3S_VERSION_TAG}
|
2022-09-16 15:42:45 +00:00
|
|
|
ARG IMAGE=quay.io/kairos/${VARIANT}-${FLAVOR}:$TAG
|
|
|
|
ARG BASE_IMAGE=quay.io/kairos/core-${FLAVOR}:${CORE_VERSION}
|
2022-08-18 10:37:07 +00:00
|
|
|
ARG ISO_NAME=${VARIANT}-${FLAVOR}-${VERSION}-k3s${K3S_VERSION}
|
2022-11-08 00:03:17 +00:00
|
|
|
ARG OSBUILDER_IMAGE=quay.io/kairos/osbuilder-tools:v0.3.3
|
2022-08-18 10:37:07 +00:00
|
|
|
|
|
|
|
## External deps pinned versions
|
|
|
|
ARG LUET_VERSION=0.32.4
|
2022-08-12 15:55:47 +02:00
|
|
|
ARG GOLINT_VERSION=1.47.3
|
|
|
|
ARG GO_VERSION=1.18
|
|
|
|
|
2022-09-16 15:42:45 +00:00
|
|
|
ARG OS_ID=kairos
|
2022-08-18 10:37:07 +00:00
|
|
|
ARG CGO_ENABLED=0
|
|
|
|
|
2022-08-18 13:55:23 +00:00
|
|
|
RELEASEVERSION:
|
|
|
|
COMMAND
|
|
|
|
RUN echo "$IMAGE" > IMAGE
|
|
|
|
RUN echo "$VERSION" > VERSION
|
|
|
|
SAVE ARTIFACT VERSION AS LOCAL build/VERSION
|
|
|
|
SAVE ARTIFACT IMAGE AS LOCAL build/IMAGE
|
|
|
|
|
2022-08-12 15:55:47 +02:00
|
|
|
all:
|
|
|
|
BUILD +docker
|
|
|
|
BUILD +iso
|
|
|
|
BUILD +netboot
|
|
|
|
BUILD +ipxe-iso
|
2022-08-18 13:55:23 +00:00
|
|
|
DO +RELEASEVERSION
|
2022-08-12 15:55:47 +02:00
|
|
|
|
|
|
|
all-arm:
|
|
|
|
BUILD --platform=linux/arm64 +docker
|
|
|
|
BUILD +arm-image
|
2022-08-18 13:55:23 +00:00
|
|
|
DO +RELEASEVERSION
|
2022-08-12 15:55:47 +02:00
|
|
|
|
|
|
|
go-deps:
|
|
|
|
ARG GO_VERSION
|
|
|
|
FROM golang:$GO_VERSION
|
|
|
|
WORKDIR /build
|
|
|
|
COPY go.mod go.sum ./
|
|
|
|
RUN go mod download
|
|
|
|
RUN apt-get update && apt-get install -y upx
|
|
|
|
SAVE ARTIFACT go.mod AS LOCAL go.mod
|
|
|
|
SAVE ARTIFACT go.sum AS LOCAL go.sum
|
|
|
|
|
|
|
|
test:
|
|
|
|
FROM +go-deps
|
|
|
|
WORKDIR /build
|
2022-11-26 15:05:00 +01:00
|
|
|
RUN go install -mod=mod github.com/onsi/ginkgo/v2/ginkgo
|
2022-10-12 08:03:56 +00:00
|
|
|
COPY (kairos+luet/luet) /usr/bin/luet
|
2022-08-12 15:55:47 +02:00
|
|
|
COPY . .
|
|
|
|
RUN ginkgo run --fail-fast --slow-spec-threshold 30s --covermode=atomic --coverprofile=coverage.out -p -r ./internal
|
|
|
|
SAVE ARTIFACT coverage.out AS LOCAL coverage.out
|
|
|
|
|
|
|
|
BUILD_GOLANG:
|
|
|
|
COMMAND
|
|
|
|
WORKDIR /build
|
|
|
|
COPY . ./
|
|
|
|
ARG CGO_ENABLED
|
|
|
|
ARG BIN
|
|
|
|
ARG SRC
|
|
|
|
ENV CGO_ENABLED=${CGO_ENABLED}
|
|
|
|
|
|
|
|
RUN go build -ldflags "-s -w" -o ${BIN} ${SRC} && upx ${BIN}
|
|
|
|
SAVE ARTIFACT ${BIN} ${BIN} AS LOCAL build/${BIN}
|
|
|
|
|
2022-09-16 15:42:45 +00:00
|
|
|
build-kairos-agent-provider:
|
2022-08-12 15:55:47 +02:00
|
|
|
FROM +go-deps
|
2022-09-16 15:42:45 +00:00
|
|
|
DO +BUILD_GOLANG --BIN=agent-provider-kairos --SRC=./ --CGO_ENABLED=$CGO_ENABLED
|
2022-08-12 15:55:47 +02:00
|
|
|
|
|
|
|
build:
|
2022-09-16 15:42:45 +00:00
|
|
|
BUILD +build-kairos-agent-provider
|
2022-08-12 15:55:47 +02:00
|
|
|
|
|
|
|
dist:
|
|
|
|
ARG GO_VERSION
|
|
|
|
FROM golang:$GO_VERSION
|
|
|
|
RUN echo 'deb [trusted=yes] https://repo.goreleaser.com/apt/ /' | tee /etc/apt/sources.list.d/goreleaser.list
|
|
|
|
RUN apt update
|
|
|
|
RUN apt install -y goreleaser
|
|
|
|
WORKDIR /build
|
|
|
|
COPY . .
|
|
|
|
RUN goreleaser build --rm-dist --skip-validate --snapshot
|
|
|
|
SAVE ARTIFACT /build/dist/* AS LOCAL dist/
|
|
|
|
|
|
|
|
lint:
|
|
|
|
ARG GO_VERSION
|
|
|
|
FROM golang:$GO_VERSION
|
|
|
|
ARG GOLINT_VERSION
|
|
|
|
RUN wget -O- -nv https://raw.githubusercontent.com/golangci/golangci-lint/master/install.sh | sh -s v$GOLINT_VERSION
|
|
|
|
WORKDIR /build
|
|
|
|
COPY . .
|
2022-08-20 20:34:08 +00:00
|
|
|
RUN golangci-lint run --timeout 120s
|
2022-08-12 15:55:47 +02:00
|
|
|
|
|
|
|
docker:
|
|
|
|
ARG FLAVOR
|
|
|
|
ARG VARIANT
|
|
|
|
|
|
|
|
FROM $BASE_IMAGE
|
|
|
|
|
|
|
|
IF [ "$K3S_VERSION" = "latest" ]
|
|
|
|
ELSE
|
|
|
|
ENV INSTALL_K3S_VERSION=${K3S_VERSION}
|
|
|
|
END
|
2022-09-09 08:27:49 +00:00
|
|
|
|
|
|
|
COPY repository.yaml /etc/luet/luet.yaml
|
2022-08-12 15:55:47 +02:00
|
|
|
|
|
|
|
ENV INSTALL_K3S_BIN_DIR="/usr/bin"
|
|
|
|
RUN curl -sfL https://get.k3s.io > installer.sh \
|
2022-10-28 17:17:36 +00:00
|
|
|
&& INSTALL_K3S_SKIP_START="true" INSTALL_K3S_SKIP_ENABLE="true" INSTALL_K3S_SKIP_SELINUX_RPM="true" bash installer.sh \
|
|
|
|
&& INSTALL_K3S_SKIP_START="true" INSTALL_K3S_SKIP_ENABLE="true" INSTALL_K3S_SKIP_SELINUX_RPM="true" bash installer.sh agent \
|
2022-08-12 15:55:47 +02:00
|
|
|
&& rm -rf installer.sh
|
2022-12-01 18:14:05 +01:00
|
|
|
RUN luet install -y utils/edgevpn utils/k9s utils/nerdctl container/kubectl utils/kube-vip && luet cleanup
|
2022-08-14 09:48:39 +00:00
|
|
|
# Drop env files from k3s as we will generate them
|
|
|
|
IF [ -e "/etc/rancher/k3s/k3s.env" ]
|
|
|
|
RUN rm -rf /etc/rancher/k3s/k3s.env /etc/rancher/k3s/k3s-agent.env && touch /etc/rancher/k3s/.keep
|
|
|
|
END
|
|
|
|
|
2022-09-16 15:42:45 +00:00
|
|
|
COPY +build-kairos-agent-provider/agent-provider-kairos /system/providers/agent-provider-kairos
|
|
|
|
RUN ln -s /system/providers/agent-provider-kairos /usr/bin/kairos
|
2022-08-12 15:55:47 +02:00
|
|
|
|
2022-09-19 09:59:28 +00:00
|
|
|
ARG KAIROS_VERSION
|
|
|
|
IF [ "$KAIROS_VERSION" = "" ]
|
2022-08-18 10:37:07 +00:00
|
|
|
ARG OS_VERSION=${VERSION}
|
2022-08-12 15:55:47 +02:00
|
|
|
ELSE
|
2022-09-19 09:59:28 +00:00
|
|
|
ARG OS_VERSION=${KAIROS_VERSION}
|
2022-08-12 15:55:47 +02:00
|
|
|
END
|
|
|
|
|
|
|
|
ARG OS_ID
|
|
|
|
ARG OS_NAME=${OS_ID}-${FLAVOR}
|
2022-09-16 15:42:45 +00:00
|
|
|
ARG OS_REPO=quay.io/kairos/${VARIANT}-${FLAVOR}
|
2022-08-18 10:37:07 +00:00
|
|
|
ARG OS_LABEL=latest
|
2022-08-12 15:55:47 +02:00
|
|
|
|
2022-09-16 15:42:45 +00:00
|
|
|
DO kairos+OSRELEASE --BUG_REPORT_URL="https://github.com/kairos-io/kairos/issues/new/choose" --HOME_URL="https://github.com/kairos-io/provider-kairos" --OS_ID=${OS_ID} --OS_LABEL=${OS_LABEL} --OS_NAME=${OS_NAME} --OS_REPO=${OS_REPO} --OS_VERSION=${OS_VERSION}-k3s${K3S_VERSION} --GITHUB_REPO="kairos-io/provider-kairos"
|
2022-08-12 15:55:47 +02:00
|
|
|
|
|
|
|
SAVE IMAGE $IMAGE
|
|
|
|
|
|
|
|
docker-rootfs:
|
|
|
|
FROM +docker
|
|
|
|
SAVE ARTIFACT /. rootfs
|
|
|
|
|
2022-09-16 15:42:45 +00:00
|
|
|
kairos:
|
2022-09-19 09:59:28 +00:00
|
|
|
ARG KAIROS_VERSION=master
|
2022-08-13 08:59:01 +00:00
|
|
|
FROM alpine
|
|
|
|
RUN apk add git
|
2022-09-16 15:42:45 +00:00
|
|
|
WORKDIR /kairos
|
2022-09-19 09:59:28 +00:00
|
|
|
RUN git clone https://github.com/kairos-io/kairos /kairos && cd /kairos && git checkout "$KAIROS_VERSION"
|
2022-09-16 15:42:45 +00:00
|
|
|
SAVE ARTIFACT /kairos/
|
2022-08-13 08:59:01 +00:00
|
|
|
|
2022-09-16 15:42:45 +00:00
|
|
|
get-kairos-scripts:
|
2022-08-13 14:16:08 +00:00
|
|
|
FROM alpine
|
|
|
|
WORKDIR /build
|
2022-09-16 15:42:45 +00:00
|
|
|
COPY +kairos/kairos/ ./
|
2022-08-13 14:16:08 +00:00
|
|
|
SAVE ARTIFACT /build/scripts AS LOCAL scripts
|
|
|
|
|
2022-08-12 15:55:47 +02:00
|
|
|
iso:
|
2022-09-23 08:46:07 +00:00
|
|
|
ARG OSBUILDER_IMAGE
|
|
|
|
ARG ISO_NAME=${OS_ID}
|
2022-08-12 15:55:47 +02:00
|
|
|
ARG IMG=docker:$IMAGE
|
|
|
|
ARG overlay=overlay/files-iso
|
2022-09-23 08:46:07 +00:00
|
|
|
FROM $OSBUILDER_IMAGE
|
2022-08-12 15:55:47 +02:00
|
|
|
RUN zypper in -y jq docker
|
|
|
|
WORKDIR /build
|
|
|
|
COPY . ./
|
2022-08-13 08:59:01 +00:00
|
|
|
RUN mkdir -p overlay/files-iso
|
2022-09-16 15:42:45 +00:00
|
|
|
COPY +kairos/kairos/overlay/files-iso/ ./overlay/files-iso/
|
2022-08-12 15:55:47 +02:00
|
|
|
WITH DOCKER --allow-privileged --load $IMAGE=(+docker)
|
2022-09-23 08:46:07 +00:00
|
|
|
RUN /entrypoint.sh --name $ISO_NAME --debug build-iso --date=false --local --overlay-iso /build/${overlay} $IMAGE --output /build/
|
2022-08-12 15:55:47 +02:00
|
|
|
END
|
|
|
|
# See: https://github.com/rancher/elemental-cli/issues/228
|
|
|
|
RUN sha256sum $ISO_NAME.iso > $ISO_NAME.iso.sha256
|
2022-09-16 15:42:45 +00:00
|
|
|
SAVE ARTIFACT /build/$ISO_NAME.iso kairos.iso AS LOCAL build/$ISO_NAME.iso
|
|
|
|
SAVE ARTIFACT /build/$ISO_NAME.iso.sha256 kairos.iso.sha256 AS LOCAL build/$ISO_NAME.iso.sha256
|
2022-08-12 15:55:47 +02:00
|
|
|
|
|
|
|
netboot:
|
|
|
|
FROM opensuse/leap
|
|
|
|
ARG VERSION
|
2022-08-18 10:37:07 +00:00
|
|
|
ARG ISO_NAME
|
2022-08-12 15:55:47 +02:00
|
|
|
WORKDIR /build
|
2022-09-16 15:42:45 +00:00
|
|
|
COPY +iso/kairos.iso kairos.iso
|
2022-08-12 15:55:47 +02:00
|
|
|
COPY . .
|
|
|
|
RUN zypper in -y cdrtools
|
2022-08-13 08:59:01 +00:00
|
|
|
|
2022-09-16 15:42:45 +00:00
|
|
|
COPY +kairos/kairos/scripts/netboot.sh ./
|
|
|
|
RUN sh netboot.sh kairos.iso $ISO_NAME $VERSION
|
2022-08-13 08:59:01 +00:00
|
|
|
|
2022-08-12 15:55:47 +02:00
|
|
|
SAVE ARTIFACT /build/$ISO_NAME.squashfs squashfs AS LOCAL build/$ISO_NAME.squashfs
|
|
|
|
SAVE ARTIFACT /build/$ISO_NAME-kernel kernel AS LOCAL build/$ISO_NAME-kernel
|
|
|
|
SAVE ARTIFACT /build/$ISO_NAME-initrd initrd AS LOCAL build/$ISO_NAME-initrd
|
|
|
|
SAVE ARTIFACT /build/$ISO_NAME.ipxe ipxe AS LOCAL build/$ISO_NAME.ipxe
|
|
|
|
|
|
|
|
arm-image:
|
2022-10-22 19:09:41 +00:00
|
|
|
ARG OSBUILDER_IMAGE
|
|
|
|
FROM $OSBUILDER_IMAGE
|
2022-08-12 15:55:47 +02:00
|
|
|
ARG MODEL=rpi64
|
2022-08-18 13:55:23 +00:00
|
|
|
ARG IMAGE_NAME=${VARIANT}-${FLAVOR}-${VERSION}-k3s${K3S_VERSION}.img
|
2022-08-12 15:55:47 +02:00
|
|
|
WORKDIR /build
|
|
|
|
ENV STATE_SIZE="6200"
|
|
|
|
ENV RECOVERY_SIZE="4200"
|
|
|
|
ENV SIZE="15200"
|
|
|
|
ENV DEFAULT_ACTIVE_SIZE="2000"
|
|
|
|
COPY --platform=linux/arm64 +docker-rootfs/rootfs /build/image
|
|
|
|
# With docker is required for loop devices
|
|
|
|
WITH DOCKER --allow-privileged
|
2022-10-22 19:09:41 +00:00
|
|
|
RUN /build-arm-image.sh --model $MODEL --directory "/build/image" /build/$IMAGE_NAME
|
2022-08-12 15:55:47 +02:00
|
|
|
END
|
2022-10-22 19:09:41 +00:00
|
|
|
RUN xz -v /build/$IMAGE_NAME
|
|
|
|
SAVE ARTIFACT /build/$IMAGE_NAME.xz img AS LOCAL build/$IMAGE_NAME.xz
|
|
|
|
SAVE ARTIFACT /build/$IMAGE_NAME.sha256 img-sha256 AS LOCAL build/$IMAGE_NAME.sha256
|
2022-08-12 15:55:47 +02:00
|
|
|
|
|
|
|
ipxe-iso:
|
|
|
|
FROM ubuntu
|
|
|
|
ARG ipxe_script
|
|
|
|
RUN apt update
|
|
|
|
RUN apt install -y -o Acquire::Retries=50 \
|
|
|
|
mtools syslinux isolinux gcc-arm-none-eabi git make gcc liblzma-dev mkisofs xorriso
|
|
|
|
# jq docker
|
|
|
|
WORKDIR /build
|
|
|
|
ARG ISO_NAME=${OS_ID}
|
|
|
|
RUN git clone https://github.com/ipxe/ipxe
|
|
|
|
IF [ "$ipxe_script" = "" ]
|
|
|
|
COPY +netboot/ipxe /build/ipxe/script.ipxe
|
|
|
|
ELSE
|
|
|
|
COPY $ipxe_script /build/ipxe/script.ipxe
|
|
|
|
END
|
|
|
|
RUN cd ipxe/src && make EMBED=/build/ipxe/script.ipxe
|
|
|
|
SAVE ARTIFACT /build/ipxe/src/bin/ipxe.iso iso AS LOCAL build/${ISO_NAME}-ipxe.iso.ipxe
|
|
|
|
SAVE ARTIFACT /build/ipxe/src/bin/ipxe.usb usb AS LOCAL build/${ISO_NAME}-ipxe-usb.img.ipxe
|
|
|
|
|
|
|
|
|
|
|
|
## Security targets
|
|
|
|
trivy:
|
|
|
|
FROM aquasec/trivy
|
|
|
|
SAVE ARTIFACT /usr/local/bin/trivy /trivy
|
|
|
|
|
|
|
|
trivy-scan:
|
|
|
|
ARG SEVERITY=CRITICAL
|
|
|
|
FROM +docker
|
|
|
|
COPY +trivy/trivy /trivy
|
|
|
|
RUN /trivy filesystem --severity $SEVERITY --exit-code 1 --no-progress /
|
|
|
|
|
|
|
|
linux-bench:
|
|
|
|
ARG GO_VERSION
|
|
|
|
FROM golang:$GO_VERSION
|
|
|
|
GIT CLONE https://github.com/aquasecurity/linux-bench /linux-bench-src
|
|
|
|
RUN cd /linux-bench-src && CGO_ENABLED=0 go build -o linux-bench . && mv linux-bench /
|
|
|
|
SAVE ARTIFACT /linux-bench /linux-bench
|
|
|
|
|
|
|
|
# The target below should run on a live host instead.
|
|
|
|
# However, some checks are relevant as well at container level.
|
|
|
|
# It is good enough for a quick assessment.
|
|
|
|
linux-bench-scan:
|
|
|
|
FROM +docker
|
|
|
|
GIT CLONE https://github.com/aquasecurity/linux-bench /build/linux-bench
|
|
|
|
WORKDIR /build/linux-bench
|
|
|
|
COPY +linux-bench/linux-bench /build/linux-bench/linux-bench
|
|
|
|
RUN /build/linux-bench/linux-bench
|
|
|
|
|
|
|
|
# Generic targets
|
|
|
|
# usage e.g. ./earthly.sh +datasource-iso --CLOUD_CONFIG=tests/assets/qrcode.yaml
|
|
|
|
datasource-iso:
|
|
|
|
ARG ELEMENTAL_IMAGE
|
|
|
|
ARG CLOUD_CONFIG
|
|
|
|
FROM $ELEMENTAL_IMAGE
|
|
|
|
RUN zypper in -y mkisofs
|
|
|
|
WORKDIR /build
|
|
|
|
RUN touch meta-data
|
|
|
|
COPY ./${CLOUD_CONFIG} user-data
|
|
|
|
RUN cat user-data
|
|
|
|
RUN mkisofs -output ci.iso -volid cidata -joliet -rock user-data meta-data
|
|
|
|
SAVE ARTIFACT /build/ci.iso iso.iso AS LOCAL build/datasource.iso
|
|
|
|
|
|
|
|
# usage e.g. ./earthly.sh +run-qemu-tests --FLAVOR=alpine --FROM_ARTIFACTS=true
|
|
|
|
run-qemu-tests:
|
|
|
|
FROM opensuse/leap
|
|
|
|
WORKDIR /test
|
|
|
|
RUN zypper in -y qemu-x86 qemu-arm qemu-tools go
|
|
|
|
ARG FLAVOR
|
|
|
|
ARG TEST_SUITE=autoinstall-test
|
|
|
|
ARG FROM_ARTIFACTS
|
|
|
|
ENV FLAVOR=$FLAVOR
|
|
|
|
ENV SSH_PORT=60022
|
|
|
|
ENV CREATE_VM=true
|
|
|
|
ARG CLOUD_CONFIG="/tests/tests/assets/autoinstall.yaml"
|
|
|
|
ENV USE_QEMU=true
|
|
|
|
|
|
|
|
ENV GOPATH="/go"
|
|
|
|
|
|
|
|
ENV CLOUD_CONFIG=$CLOUD_CONFIG
|
|
|
|
|
|
|
|
IF [ "$FROM_ARTIFACTS" = "true" ]
|
|
|
|
COPY . .
|
2022-09-16 15:42:45 +00:00
|
|
|
ENV ISO=/test/build/kairos.iso
|
2022-08-12 15:55:47 +02:00
|
|
|
ENV DATASOURCE=/test/build/datasource.iso
|
|
|
|
ELSE
|
|
|
|
COPY ./tests .
|
2022-09-16 15:42:45 +00:00
|
|
|
COPY +iso/kairos.iso kairos.iso
|
2022-08-12 15:55:47 +02:00
|
|
|
COPY ( +datasource-iso/iso.iso --CLOUD_CONFIG=$CLOUD_CONFIG) datasource.iso
|
2022-09-16 15:42:45 +00:00
|
|
|
ENV ISO=/test/kairos.iso
|
2022-08-12 15:55:47 +02:00
|
|
|
ENV DATASOURCE=/test/datasource.iso
|
|
|
|
END
|
|
|
|
|
2022-10-12 08:03:56 +00:00
|
|
|
|
2022-11-26 15:05:00 +01:00
|
|
|
RUN go install -mod=mod github.com/onsi/ginkgo/v2/ginkgo
|
2022-08-12 15:55:47 +02:00
|
|
|
ENV CLOUD_INIT=$CLOUD_CONFIG
|
|
|
|
|
2022-08-13 14:16:08 +00:00
|
|
|
RUN PATH=$PATH:$GOPATH/bin ginkgo --label-filter "$TEST_SUITE" --fail-fast -r ./tests/
|
|
|
|
|
|
|
|
test-create-config:
|
|
|
|
FROM alpine
|
2022-08-13 15:22:42 +00:00
|
|
|
ARG WITH_DNS
|
2022-09-16 15:42:45 +00:00
|
|
|
COPY +build-kairos-agent-provider/agent-provider-kairos agent-provider-kairos
|
2022-08-13 15:22:42 +00:00
|
|
|
COPY . .
|
2022-09-16 15:42:45 +00:00
|
|
|
RUN ./agent-provider-kairos create-config > config.yaml
|
2022-08-13 15:22:42 +00:00
|
|
|
RUN cat tests/assets/config.yaml >> config.yaml
|
|
|
|
IF [ "$WITH_DNS" == "true" ]
|
|
|
|
RUN apk add yq
|
2022-12-09 16:00:28 +01:00
|
|
|
RUN yq -i '.p2p.dns = true' 'config.yaml'
|
2022-08-13 15:22:42 +00:00
|
|
|
END
|
2022-08-13 14:16:08 +00:00
|
|
|
SAVE ARTIFACT config.yaml AS LOCAL config.yaml
|
2022-12-12 12:24:21 +01:00
|
|
|
|
|
|
|
edgevpn:
|
|
|
|
ARG EDGEVPN_VERSION=latest
|
|
|
|
FROM quay.io/mudler/edgevpn:$EDGEVPN_VERSION
|
|
|
|
SAVE ARTIFACT /usr/bin/edgevpn /edgevpn
|
|
|
|
|
|
|
|
# usage e.g.
|
|
|
|
# ./earthly.sh +run-proxmox-tests --PROXMOX_USER=root@pam --PROXMOX_PASS=xxx --PROXMOX_ENDPOINT=https://192.168.1.72:8006/api2/json --PROXMOX_ISO=/test/build/kairos-opensuse-v0.0.0-79fd363-k3s.iso --PROXMOX_NODE=proxmox
|
|
|
|
run-proxmox-tests:
|
|
|
|
FROM golang:alpine
|
|
|
|
WORKDIR /test
|
|
|
|
RUN apk add xorriso
|
|
|
|
ARG FLAVOR
|
|
|
|
ARG TEST_SUITE=proxmox-ha-test
|
|
|
|
ARG FROM_ARTIFACTS
|
|
|
|
ARG PROXMOX_USER
|
|
|
|
ARG PROXMOX_PASS
|
|
|
|
ARG PROXMOX_ENDPOINT
|
|
|
|
ARG PROXMOX_STORAGE=local
|
|
|
|
ARG PROXMOX_ISO
|
|
|
|
ARG PROXMOX_NODE
|
|
|
|
ENV GOPATH="/go"
|
|
|
|
|
|
|
|
RUN go install -mod=mod github.com/onsi/ginkgo/v2/ginkgo
|
|
|
|
|
|
|
|
COPY +edgevpn/edgevpn /usr/bin/edgevpn
|
|
|
|
COPY . .
|
2022-12-13 16:08:40 +01:00
|
|
|
RUN PATH=$PATH:$GOPATH/bin ginkgo --label-filter "$TEST_SUITE" --fail-fast -r ./tests/e2e/
|