VERSION 0.6 FROM alpine ARG BASE_IMAGE=quay.io/kairos/core-opensuse-leap:v2.3.2 ARG IMAGE_REPOSITORY=quay.io/kairos ARG LUET_VERSION=0.35.1 ARG GOLINT_VERSION=v1.61.0 ARG GOLANG_VERSION=1.23 ARG K3S_VERSION=latest ARG BASE_IMAGE_NAME=$(echo $BASE_IMAGE | grep -o [^/]*: | rev | cut -c2- | rev) ARG BASE_IMAGE_TAG=$(echo $BASE_IMAGE | grep -o :.* | cut -c2-) ARG K3S_VERSION_TAG=$(echo $K3S_VERSION | sed s/+/-/) luet: FROM quay.io/luet/base:$LUET_VERSION SAVE ARTIFACT /usr/bin/luet /luet build-cosign: FROM gcr.io/projectsigstore/cosign:v1.13.1 SAVE ARTIFACT /ko-app/cosign cosign go-deps: FROM us-docker.pkg.dev/palette-images/build-base-images/golang:${GOLANG_VERSION}-alpine WORKDIR /build COPY go.mod go.sum ./ RUN go mod download RUN apk update SAVE ARTIFACT go.mod AS LOCAL go.mod SAVE ARTIFACT go.sum AS LOCAL go.sum BUILD_GOLANG: COMMAND WORKDIR /build COPY . ./ ARG BIN ARG SRC ENV CGO_ENABLED=0 RUN go-build-static.sh -a -o ${BIN} ./${SRC} SAVE ARTIFACT ${BIN} ${BIN} AS LOCAL build/${BIN} VERSION: COMMAND FROM alpine RUN apk add git COPY . ./ RUN echo $(git describe --exact-match --tags || echo "v0.0.0-$(git rev-parse --short=8 HEAD)") > VERSION SAVE ARTIFACT VERSION VERSION lint: FROM golang:$GOLANG_VERSION RUN wget -O- -nv https://raw.githubusercontent.com/golangci/golangci-lint/master/install.sh | sh -s $GOLINT_VERSION WORKDIR /build COPY . . RUN golangci-lint run build-provider: FROM +go-deps DO +BUILD_GOLANG --BIN=agent-provider-k3s --SRC=main.go build-provider-package: DO +VERSION ARG VERSION=$(cat VERSION) FROM scratch COPY +build-provider/agent-provider-k3s /system/providers/agent-provider-k3s COPY scripts /opt/k3s/scripts SAVE IMAGE --push $IMAGE_REPOSITORY/provider-k3s:${VERSION} docker: DO +VERSION ARG VERSION=$(cat VERSION) FROM $BASE_IMAGE IF [ "$K3S_VERSION" = "latest" ] ELSE ENV INSTALL_K3S_VERSION=${K3S_VERSION} END COPY +luet/luet /usr/bin/luet ENV INSTALL_K3S_BIN_DIR="/usr/bin" RUN curl -sfL https://get.k3s.io > installer.sh \ && INSTALL_K3S_SKIP_START="true" INSTALL_K3S_SKIP_ENABLE="true" bash installer.sh \ && INSTALL_K3S_SKIP_START="true" INSTALL_K3S_SKIP_ENABLE="true" bash installer.sh agent \ && rm -rf installer.sh RUN curl -sL https://github.com/etcd-io/etcd/releases/download/v3.5.5/etcd-v3.5.5-linux-amd64.tar.gz | sudo tar -zxv --strip-components=1 -C /usr/local/bin COPY +build-provider/agent-provider-k3s /system/providers/agent-provider-k3s ENV OS_ID=${BASE_IMAGE_NAME}-k3s ENV OS_NAME=$OS_ID:${BASE_IMAGE_TAG} ENV OS_REPO=${IMAGE_REPOSITORY} ENV OS_VERSION=${K3S_VERSION_TAG}_${VERSION} ENV OS_LABEL=${BASE_IMAGE_TAG}_${K3S_VERSION_TAG}_${VERSION} RUN envsubst >>/etc/os-release