2022-08-08 15:55:32 +00:00
|
|
|
VERSION 0.6
|
|
|
|
FROM alpine
|
|
|
|
|
2022-09-23 15:53:23 +00:00
|
|
|
ARG BASE_IMAGE=quay.io/kairos/core-opensuse:latest
|
|
|
|
ARG IMAGE_REPOSITORY=quay.io/kairos
|
2022-08-08 15:55:32 +00:00
|
|
|
|
|
|
|
ARG LUET_VERSION=0.32.4
|
2022-08-08 23:57:37 +00:00
|
|
|
ARG GOLINT_VERSION=v1.46.2
|
2022-08-08 15:55:32 +00:00
|
|
|
ARG GOLANG_VERSION=1.18
|
|
|
|
|
2022-08-10 15:30:16 +00:00
|
|
|
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/+/-/)
|
|
|
|
|
2022-08-08 23:57:37 +00:00
|
|
|
build-cosign:
|
|
|
|
FROM gcr.io/projectsigstore/cosign:v1.9.0
|
|
|
|
SAVE ARTIFACT /ko-app/cosign cosign
|
|
|
|
|
2022-08-08 15:55:32 +00:00
|
|
|
go-deps:
|
|
|
|
FROM golang:$GOLANG_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
|
|
|
|
|
|
|
|
BUILD_GOLANG:
|
|
|
|
COMMAND
|
|
|
|
WORKDIR /build
|
|
|
|
COPY . ./
|
|
|
|
ARG BIN
|
|
|
|
ARG SRC
|
|
|
|
|
2022-08-17 21:59:30 +00:00
|
|
|
ENV CGO_ENABLED=0
|
|
|
|
|
2022-08-08 15:55:32 +00:00
|
|
|
RUN go build -ldflags "-s -w" -o ${BIN} ./${SRC} && upx ${BIN}
|
|
|
|
SAVE ARTIFACT ${BIN} ${BIN} AS LOCAL build/${BIN}
|
|
|
|
|
2022-08-08 23:57:37 +00:00
|
|
|
VERSION:
|
|
|
|
COMMAND
|
|
|
|
FROM alpine
|
|
|
|
RUN apk add git
|
|
|
|
|
|
|
|
COPY . ./
|
|
|
|
|
2022-08-09 22:14:16 +00:00
|
|
|
RUN echo $(git describe --exact-match --tags || echo "v0.0.0-$(git log --oneline -n 1 | cut -d" " -f1)") > VERSION
|
2022-08-08 23:57:37 +00:00
|
|
|
|
|
|
|
SAVE ARTIFACT VERSION VERSION
|
|
|
|
|
2022-08-08 15:55:32 +00:00
|
|
|
lint:
|
|
|
|
FROM golang:$GOLANG_VERSION
|
2022-08-08 23:57:37 +00:00
|
|
|
RUN wget -O- -nv https://raw.githubusercontent.com/golangci/golangci-lint/master/install.sh | sh -s $GOLINT_VERSION
|
2022-08-08 15:55:32 +00:00
|
|
|
WORKDIR /build
|
|
|
|
COPY . .
|
|
|
|
RUN golangci-lint run
|
|
|
|
|
2022-08-18 23:16:15 +00:00
|
|
|
build-provider:
|
|
|
|
FROM +go-deps
|
|
|
|
DO +BUILD_GOLANG --BIN=agent-provider-k3s --SRC=main.go
|
|
|
|
|
2022-08-08 15:55:32 +00:00
|
|
|
docker:
|
2022-08-08 23:57:37 +00:00
|
|
|
DO +VERSION
|
|
|
|
ARG VERSION=$(cat VERSION)
|
|
|
|
|
|
|
|
FROM $BASE_IMAGE
|
|
|
|
|
|
|
|
IF [ "$K3S_VERSION" = "latest" ]
|
|
|
|
ELSE
|
|
|
|
ENV INSTALL_K3S_VERSION=${K3S_VERSION}
|
|
|
|
END
|
2022-08-08 15:55:32 +00:00
|
|
|
|
|
|
|
ENV INSTALL_K3S_BIN_DIR="/usr/bin"
|
|
|
|
RUN curl -sfL https://get.k3s.io > installer.sh \
|
2022-08-08 23:57:37 +00:00
|
|
|
&& 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
|
2022-08-08 15:55:32 +00:00
|
|
|
|
|
|
|
COPY +build-provider/agent-provider-k3s /system/providers/agent-provider-k3s
|
|
|
|
|
2022-08-08 23:57:37 +00:00
|
|
|
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 </usr/lib/os-release.tmpl
|
|
|
|
|
2022-10-12 06:45:44 +00:00
|
|
|
SAVE IMAGE --push $IMAGE_REPOSITORY/${BASE_IMAGE_NAME}-k3s:${K3S_VERSION_TAG}
|
|
|
|
SAVE IMAGE --push $IMAGE_REPOSITORY/${BASE_IMAGE_NAME}-k3s:${K3S_VERSION_TAG}_${VERSION}
|
2022-08-08 23:57:37 +00:00
|
|
|
|
|
|
|
cosign:
|
2022-08-10 15:30:16 +00:00
|
|
|
ARG --required ACTIONS_ID_TOKEN_REQUEST_TOKEN
|
|
|
|
ARG --required ACTIONS_ID_TOKEN_REQUEST_URL
|
2022-08-08 23:57:37 +00:00
|
|
|
|
2022-08-10 15:30:16 +00:00
|
|
|
ARG --required REGISTRY
|
|
|
|
ARG --required REGISTRY_USER
|
|
|
|
ARG --required REGISTRY_PASSWORD
|
|
|
|
|
|
|
|
DO +VERSION
|
|
|
|
ARG VERSION=$(cat VERSION)
|
|
|
|
|
|
|
|
FROM docker
|
|
|
|
|
|
|
|
ENV ACTIONS_ID_TOKEN_REQUEST_TOKEN=${ACTIONS_ID_TOKEN_REQUEST_TOKEN}
|
|
|
|
ENV ACTIONS_ID_TOKEN_REQUEST_URL=${ACTIONS_ID_TOKEN_REQUEST_URL}
|
|
|
|
|
|
|
|
ENV REGISTRY=${REGISTRY}
|
|
|
|
ENV REGISTRY_USER=${REGISTRY_USER}
|
|
|
|
ENV REGISTRY_PASSWORD=${REGISTRY_PASSWORD}
|
2022-08-08 23:57:37 +00:00
|
|
|
|
2022-08-10 15:30:16 +00:00
|
|
|
ENV COSIGN_EXPERIMENTAL=1
|
2022-08-08 23:57:37 +00:00
|
|
|
COPY +build-cosign/cosign /usr/local/bin/
|
|
|
|
|
2022-08-10 15:30:16 +00:00
|
|
|
RUN echo $REGISTRY_PASSWORD | docker login -u $REGISTRY_USER --password-stdin $REGISTRY
|
2022-08-08 15:55:32 +00:00
|
|
|
|
2022-10-12 06:45:44 +00:00
|
|
|
RUN cosign sign $IMAGE_REPOSITORY/${BASE_IMAGE_NAME}-k3s:${K3S_VERSION_TAG}
|
|
|
|
RUN cosign sign $IMAGE_REPOSITORY/${BASE_IMAGE_NAME}-k3s:${K3S_VERSION_TAG}_${VERSION}
|
2022-08-18 23:16:15 +00:00
|
|
|
|
|
|
|
docker-all-platforms:
|
|
|
|
BUILD --platform=linux/amd64 +docker
|
|
|
|
BUILD --platform=linux/arm64 +docker
|
|
|
|
|
|
|
|
cosign-all-platforms:
|
|
|
|
BUILD --platform=linux/amd64 +cosign
|
|
|
|
BUILD --platform=linux/arm64 +cosign
|