mirror of
https://github.com/kairos-io/provider-kairos.git
synced 2025-09-18 00:02:14 +00:00
Cleanup (#487)
Remove left-overs from when we used this repo to release "standard" images. --------- Signed-off-by: Dimitris Karakasilis <dimitris@karakasilis.me>
This commit is contained in:
committed by
GitHub
parent
ddb576abef
commit
43e7222cbc
12
.github/bump_core.sh
vendored
12
.github/bump_core.sh
vendored
@@ -1,12 +0,0 @@
|
||||
#!/bin/bash
|
||||
|
||||
# https://gist.github.com/lukechilds/a83e1d7127b78fef38c2914c4ececc3c
|
||||
get_latest_release() {
|
||||
curl --silent "https://api.github.com/repos/$1/releases/latest" | # Get latest release from GitHub api
|
||||
grep '"tag_name":' | # Get tag line
|
||||
sed -E 's/.*"([^"]+)".*/\1/' # Pluck JSON value
|
||||
}
|
||||
|
||||
LATEST=$(get_latest_release "kairos-io/kairos")
|
||||
|
||||
echo "$LATEST" > CORE_VERSION
|
48
.github/bump_k3s_versions.sh
vendored
48
.github/bump_k3s_versions.sh
vendored
@@ -1,48 +0,0 @@
|
||||
#!/bin/bash
|
||||
|
||||
# Compares two semantic versions. True if the first is lower or equal to the second.
|
||||
# https://stackoverflow.com/a/4024263
|
||||
verlte() {
|
||||
[ "$1" = "$(echo -e "$1\n$2" | sort -V | head -n1)" ]
|
||||
}
|
||||
|
||||
# https://www.shellcheck.net/wiki/SC2207
|
||||
mapfile -t versionsArray < <(curl -s https://update.k3s.io/v1-release/channels | jq -rc '[ .data[] | select(.type == "channel") | select(.name | test("testing") | not) | .latest ] | unique | .[]')
|
||||
|
||||
# This gives us the latest stable version minor number
|
||||
latest_version=$(curl -s https://update.k3s.io/v1-release/channels | jq -rc '.data[] | select(.id == "latest") | .latest' | cut -d. -f2)
|
||||
# Supported versions are the latest 3 ones:
|
||||
# "The Kubernetes project maintains release branches for the most recent three minor releases (1.27, 1.26, 1.25)"
|
||||
# from https://kubernetes.io/releases/
|
||||
# So we calculate that based on the $(latest release - 2) to get the supported upstream versions
|
||||
supported_version=$((latest_version-2))
|
||||
echo "Supported minimum version: v1.$supported_version.0"
|
||||
|
||||
# Filter only versions above v1.$supported_version.0 (https://stackoverflow.com/a/40375567)
|
||||
for index in "${!versionsArray[@]}" ; do
|
||||
(verlte "${versionsArray[$index]}" v1.$supported_version.0) && unset -v 'versionsArray[$index]'
|
||||
done
|
||||
versions="${versionsArray[*]}"
|
||||
echo "Found supported versions: $versions"
|
||||
|
||||
amd64_flavor=("opensuse-leap" "opensuse-tumbleweed" "alpine-ubuntu" "alpine-opensuse-leap" "ubuntu" "ubuntu-20-lts" "ubuntu-22-lts" "fedora" "debian")
|
||||
arm64_flavor=("opensuse-leap-arm-rpi" "opensuse-tumbleweed-arm-rpi" "alpine-arm-rpi")
|
||||
arm64_models=("rpi64")
|
||||
releases="[]"
|
||||
releases_arm="[]"
|
||||
|
||||
for row in $versions; do
|
||||
for flavor in "${amd64_flavor[@]}"; do
|
||||
echo "Adding version $row for flavor $flavor on amd64"
|
||||
releases=$(echo "$releases" | jq ". += [{ \"flavor\": \"$flavor\", \"k3s_version\": \"$row\" }]" )
|
||||
done
|
||||
for flavor in "${arm64_flavor[@]}"; do
|
||||
for model in "${arm64_models[@]}"; do
|
||||
echo "Adding version $row for flavor $flavor and model $model on arm64"
|
||||
releases_arm=$(echo "$releases_arm" | jq ". += [{ \"flavor\": \"$flavor\", \"model\": \"$model\", \"k3s_version\": \"$row\" }]" )
|
||||
done
|
||||
done
|
||||
done
|
||||
|
||||
echo "$releases_arm" | jq > releases-arm.json
|
||||
echo "$releases" | jq > releases.json
|
24
.github/bump_repositories.sh
vendored
24
.github/bump_repositories.sh
vendored
@@ -1,24 +0,0 @@
|
||||
#!/bin/bash
|
||||
set -e
|
||||
|
||||
reference() {
|
||||
nr=$1
|
||||
tag=$2
|
||||
|
||||
echo ".repositories[$nr] |= . * { \"reference\": \"$tag-repository.yaml\" }"
|
||||
}
|
||||
|
||||
YQ=${YQ:-docker run --rm -v "${PWD}":/workdir mikefarah/yq}
|
||||
set -x
|
||||
|
||||
last_commit_snapshot() {
|
||||
docker run --rm quay.io/skopeo/stable list-tags "docker://$1" | jq -rc '.Tags | map(select( (. | contains("-repository.yaml")) )) | sort_by(. | sub("v";"") | sub("-repository.yaml";"") | sub("-";"") | split(".") | map(tonumber) ) | .[-1]' | sed "s/-repository.yaml//g"
|
||||
}
|
||||
|
||||
latest_tag=$(last_commit_snapshot quay.io/kairos/packages)
|
||||
latest_tag_arm64=$(last_commit_snapshot quay.io/kairos/packages-arm64)
|
||||
|
||||
$YQ eval "$(reference 0 "$latest_tag")" -i repository.yaml
|
||||
$YQ eval "$(reference 1 "$latest_tag_arm64")" -i repository.yaml
|
||||
|
||||
|
4
.github/run_test.sh
vendored
4
.github/run_test.sh
vendored
@@ -1,4 +0,0 @@
|
||||
#!/bin/bash
|
||||
|
||||
go install -mod=mod github.com/onsi/ginkgo/v2/ginkgo
|
||||
ginkgo --label-filter "$1" --fail-fast -v -r ./tests/
|
23
.github/workflows/bump_core.yml
vendored
23
.github/workflows/bump_core.yml
vendored
@@ -1,23 +0,0 @@
|
||||
name: Bump core
|
||||
on:
|
||||
schedule:
|
||||
- cron: 0 18 * * *
|
||||
workflow_dispatch:
|
||||
jobs:
|
||||
build:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- uses: actions/checkout@v3
|
||||
- name: Bump k3s 🔧
|
||||
run: |
|
||||
sudo -E bash ./.github/bump_core.sh
|
||||
- name: Create Pull Request
|
||||
uses: peter-evans/create-pull-request@v5
|
||||
with:
|
||||
token: ${{ secrets.PAT_TOKEN }}
|
||||
push-to-fork: ci-forks/provider-c3os
|
||||
commit-message: ":arrow_up: Update core images"
|
||||
branch: core-images-bump
|
||||
signoff: true
|
||||
title: ":arrow_up: Kairos core image bump"
|
||||
body: "Update of the Kairos core image tag"
|
22
.github/workflows/bump_k3s.yml
vendored
22
.github/workflows/bump_k3s.yml
vendored
@@ -1,22 +0,0 @@
|
||||
name: Bump k3s
|
||||
on:
|
||||
schedule:
|
||||
- cron: 0 18 * * *
|
||||
workflow_dispatch:
|
||||
jobs:
|
||||
build:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- uses: actions/checkout@v3
|
||||
- name: Bump k3s 🔧
|
||||
run: |
|
||||
sudo -E bash ./.github/bump_k3s_versions.sh
|
||||
- name: Create Pull Request
|
||||
uses: peter-evans/create-pull-request@v5
|
||||
with:
|
||||
signoff: true
|
||||
token: ${{ secrets.PAT_TOKEN }}
|
||||
push-to-fork: ci-forks/provider-c3os
|
||||
commit-message: ":arrow_up: Update k3s"
|
||||
title: "K3s versions bump"
|
||||
body: "Keep track of stable releases"
|
26
.github/workflows/bump_repos.yml
vendored
26
.github/workflows/bump_repos.yml
vendored
@@ -1,26 +0,0 @@
|
||||
name: Bump repositories
|
||||
on:
|
||||
schedule:
|
||||
- cron: 0 20 * * *
|
||||
workflow_dispatch:
|
||||
jobs:
|
||||
build:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- uses: actions/checkout@v3
|
||||
- name: Bump cos 🔧
|
||||
run: |
|
||||
docker run --name=yq -v "${PWD}":/workdir mikefarah/yq
|
||||
docker cp yq:/usr/bin/yq ./
|
||||
export YQ=$PWD/yq
|
||||
sudo -E bash ./.github/bump_repositories.sh
|
||||
rm -rf yq
|
||||
- name: Create Pull Request
|
||||
uses: peter-evans/create-pull-request@v5
|
||||
with:
|
||||
token: ${{ secrets.PAT_TOKEN }}
|
||||
push-to-fork: ci-forks/provider-c3os
|
||||
commit-message: ":arrow_up: Update repositories"
|
||||
signoff: true
|
||||
title: "Repositories bump"
|
||||
body: "Bump of luet repositories"
|
@@ -1 +0,0 @@
|
||||
v2.3.0
|
277
Earthfile
277
Earthfile
@@ -1,75 +1,10 @@
|
||||
VERSION 0.6
|
||||
|
||||
IMPORT github.com/kairos-io/kairos
|
||||
|
||||
FROM alpine
|
||||
ARG OS_ID=kairos
|
||||
ARG VARIANT=standard
|
||||
ARG FLAVOR=opensuse-leap
|
||||
|
||||
## Versioning
|
||||
ARG K3S_VERSION
|
||||
RUN apk add git
|
||||
COPY . ./
|
||||
RUN echo $(git describe --always --tags --dirty) > VERSION
|
||||
ARG CORE_VERSION=$(cat CORE_VERSION || echo "latest")
|
||||
ARG VERSION=$(cat VERSION)
|
||||
RUN echo "version ${VERSION}"
|
||||
ARG K3S_VERSION_TAG=$(echo $K3S_VERSION | sed s/+/-/)
|
||||
ARG TAG=${VERSION}-k3s${K3S_VERSION_TAG}
|
||||
ARG BASE_REPO=quay.io/kairos
|
||||
ARG IMAGE=${BASE_REPO}/${OS_ID}-${FLAVOR}:$TAG
|
||||
ARG BASE_IMAGE=quay.io/kairos/core-${FLAVOR}:${CORE_VERSION}
|
||||
# renovate: datasource=docker depName=quay.io/kairos/osbuilder-tools versioning=semver-coerced
|
||||
ARG OSBUILDER_VERSION=v0.8.2
|
||||
ARG OSBUILDER_IMAGE=quay.io/kairos/osbuilder-tools:$OSBUILDER_VERSION
|
||||
|
||||
## External deps pinned versions
|
||||
ARG LUET_VERSION=0.33.0
|
||||
# renovate: datasource=docker depName=golang
|
||||
ARG GO_VERSION=1.20
|
||||
|
||||
ARG MODEL=generic
|
||||
ARG TARGETARCH
|
||||
ARG CGO_ENABLED=0
|
||||
|
||||
RELEASEVERSION:
|
||||
COMMAND
|
||||
RUN echo "$IMAGE" > IMAGE
|
||||
RUN echo "$VERSION" > VERSION
|
||||
SAVE ARTIFACT VERSION AS LOCAL build/VERSION
|
||||
SAVE ARTIFACT IMAGE AS LOCAL build/IMAGE
|
||||
|
||||
all-arm-generic:
|
||||
BUILD --platform=linux/arm64 +docker
|
||||
BUILD --platform=linux/arm64 +image-sbom
|
||||
BUILD --platform=linux/arm64 +iso
|
||||
DO +RELEASEVERSION
|
||||
|
||||
all:
|
||||
ARG SECURITY_SCANS=true
|
||||
BUILD +docker
|
||||
IF [ "$SECURITY_SCANS" = "true" ]
|
||||
BUILD +image-sbom
|
||||
END
|
||||
BUILD +iso
|
||||
BUILD +netboot
|
||||
BUILD +ipxe-iso
|
||||
DO +RELEASEVERSION
|
||||
|
||||
ci:
|
||||
BUILD +docker
|
||||
BUILD +iso
|
||||
|
||||
all-arm:
|
||||
ARG SECURITY_SCANS=true
|
||||
BUILD --platform=linux/arm64 +docker
|
||||
IF [ "$SECURITY_SCANS" = "true" ]
|
||||
BUILD --platform=linux/arm64 +image-sbom --MODEL=rpi64
|
||||
END
|
||||
BUILD +arm-image --MODEL=rpi64
|
||||
DO +RELEASEVERSION
|
||||
|
||||
go-deps:
|
||||
ARG GO_VERSION
|
||||
FROM golang:$GO_VERSION
|
||||
@@ -82,7 +17,6 @@ go-deps:
|
||||
test:
|
||||
FROM +go-deps
|
||||
WORKDIR /build
|
||||
COPY (kairos+luet/luet) /usr/bin/luet
|
||||
COPY . .
|
||||
RUN go run github.com/onsi/ginkgo/v2/ginkgo --fail-fast --covermode=atomic --coverprofile=coverage.out -p -r ./internal
|
||||
SAVE ARTIFACT coverage.out AS LOCAL coverage.out
|
||||
@@ -123,214 +57,3 @@ version:
|
||||
|
||||
ARG VERSION=$(cat VERSION)
|
||||
SAVE ARTIFACT VERSION VERSION
|
||||
|
||||
docker:
|
||||
ARG FLAVOR
|
||||
ARG VARIANT
|
||||
FROM $BASE_IMAGE
|
||||
|
||||
DO +PROVIDER_INSTALL
|
||||
|
||||
ARG KAIROS_VERSION
|
||||
IF [ "$KAIROS_VERSION" = "" ]
|
||||
ARG OS_VERSION=${VERSION}
|
||||
ELSE
|
||||
ARG OS_VERSION=${KAIROS_VERSION}
|
||||
END
|
||||
|
||||
ARG OS_ID
|
||||
ARG OS_NAME=${OS_ID}-${FLAVOR}
|
||||
ARG OS_REPO=quay.io/kairos/${OS_ID}-${FLAVOR}
|
||||
ARG OS_LABEL=latest
|
||||
|
||||
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" --VARIANT=${VARIANT} --FLAVOR=${FLAVOR}
|
||||
|
||||
SAVE IMAGE $IMAGE
|
||||
|
||||
# This install the requirements for the provider to be included.
|
||||
# Made as a command so it can be reused from other targets without depending on this repo BASE_IMAGE
|
||||
PROVIDER_INSTALL:
|
||||
COMMAND
|
||||
IF [ "$K3S_VERSION" = "latest" ]
|
||||
ELSE
|
||||
ENV INSTALL_K3S_VERSION=${K3S_VERSION}
|
||||
END
|
||||
|
||||
IF [ "$FLAVOR" = "opensuse-leap" ] || [ "$FLAVOR" = "opensuse-leap-arm-rpi" ]
|
||||
RUN zypper ref && zypper in -y nohang
|
||||
ELSE IF [ "$FLAVOR" = "alpine-ubuntu" ] || [ "$FLAVOR" = "alpine-opensuse-leap" ] || [ "$FLAVOR" = "alpine-arm-rpi" ]
|
||||
RUN apk add grep
|
||||
ELSE IF [ "$FLAVOR" = "opensuse-tumbleweed" ] || [ "$FLAVOR" = "opensuse-tumbleweed-arm-rpi" ]
|
||||
RUN zypper ref && zypper in -y nohang
|
||||
ELSE IF [ "$FLAVOR" = "ubuntu" ] || [ "$FLAVOR" = "ubuntu-20-lts" ] || [ "$FLAVOR" = "ubuntu-22-lts" ] || [ "$FLAVOR" = "debian" ]
|
||||
RUN apt-get update && apt-get install -y nohang
|
||||
END
|
||||
|
||||
ENV INSTALL_K3S_BIN_DIR="/usr/bin"
|
||||
RUN curl -sfL https://get.k3s.io > installer.sh \
|
||||
&& INSTALL_K3S_SELINUX_WARN=true INSTALL_K3S_SKIP_START="true" INSTALL_K3S_SKIP_ENABLE="true" INSTALL_K3S_SKIP_SELINUX_RPM="true" bash installer.sh \
|
||||
&& INSTALL_K3S_SELINUX_WARN=true INSTALL_K3S_SKIP_START="true" INSTALL_K3S_SKIP_ENABLE="true" INSTALL_K3S_SKIP_SELINUX_RPM="true" bash installer.sh agent \
|
||||
&& rm -rf installer.sh
|
||||
|
||||
# If base image does not bundle a luet config use one
|
||||
# TODO: Remove this, use luet config from base images so they are in sync
|
||||
IF [ ! -e "/etc/luet/luet.yaml" ]
|
||||
COPY repository.yaml /etc/luet/luet.yaml
|
||||
END
|
||||
|
||||
RUN luet install -y utils/edgevpn utils/k9s utils/nerdctl container/kubectl utils/kube-vip && luet cleanup
|
||||
# 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
|
||||
|
||||
COPY +build-kairos-agent-provider/agent-provider-kairos /system/providers/agent-provider-kairos
|
||||
RUN ln -s /system/providers/agent-provider-kairos /usr/bin/kairos
|
||||
|
||||
|
||||
docker-rootfs:
|
||||
FROM +docker
|
||||
SAVE ARTIFACT /. rootfs
|
||||
|
||||
kairos:
|
||||
ARG KAIROS_VERSION=master
|
||||
FROM alpine
|
||||
RUN apk add git
|
||||
WORKDIR /kairos
|
||||
RUN git clone https://github.com/kairos-io/kairos /kairos && cd /kairos && git checkout "$KAIROS_VERSION"
|
||||
SAVE ARTIFACT /kairos/
|
||||
|
||||
iso:
|
||||
ARG OSBUILDER_IMAGE
|
||||
ARG IMG=docker:$IMAGE
|
||||
ARG overlay=overlay/files-iso
|
||||
IF [ "$TARGETARCH" = "arm64" ]
|
||||
ARG DISTRO=$(echo $FLAVOR | sed 's/-arm-.*//')
|
||||
ARG ISO_NAME=${OS_ID}-${VARIANT}-${DISTRO}-${TARGETARCH}-${MODEL}-${VERSION}
|
||||
ELSE
|
||||
ARG ISO_NAME=${OS_ID}-${VARIANT}-${FLAVOR}-${TARGETARCH}-${MODEL}-${VERSION}
|
||||
END
|
||||
FROM $OSBUILDER_IMAGE
|
||||
RUN zypper in -y jq docker
|
||||
WORKDIR /build
|
||||
COPY . ./
|
||||
RUN mkdir -p overlay/files-iso
|
||||
COPY +kairos/kairos/overlay/files-iso/ ./$overlay/
|
||||
COPY +docker-rootfs/rootfs /build/image
|
||||
RUN /entrypoint.sh --name $ISO_NAME --debug build-iso --date=false dir:/build/image --overlay-iso /build/${overlay} --output /build
|
||||
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
|
||||
|
||||
netboot:
|
||||
FROM opensuse/leap
|
||||
ARG VERSION
|
||||
IF [ "$TARGETARCH" = "arm64" ]
|
||||
ARG DISTRO=$(echo $FLAVOR | sed 's/-arm-.*//')
|
||||
ARG ISO_NAME=${OS_ID}-${VARIANT}-${DISTRO}-${TARGETARCH}-${MODEL}-${VERSION}
|
||||
ELSE
|
||||
ARG ISO_NAME=${OS_ID}-${VARIANT}-${FLAVOR}-${TARGETARCH}-${MODEL}-${VERSION}
|
||||
END
|
||||
WORKDIR /build
|
||||
COPY +iso/kairos.iso kairos.iso
|
||||
COPY . .
|
||||
RUN zypper in -y cdrtools
|
||||
|
||||
COPY +kairos/kairos/scripts/netboot.sh ./
|
||||
RUN sh netboot.sh kairos.iso $ISO_NAME $VERSION
|
||||
|
||||
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:
|
||||
ARG OSBUILDER_IMAGE
|
||||
ARG COMPRESS_IMG=true
|
||||
FROM $OSBUILDER_IMAGE
|
||||
ARG MODEL=rpi64
|
||||
ARG DISTRO=$(echo $FLAVOR | sed 's/-arm-.*//')
|
||||
# TARGETARCH is not used here because OSBUILDER_IMAGE is not available in arm64. When this changes, then the caller
|
||||
# of this target can simply pass the desired TARGETARCH.
|
||||
ARG IMAGE_NAME=${OS_ID}-${VARIANT}-${DISTRO}-arm64-${MODEL}-${VERSION}-k3s${K3S_VERSION}.img
|
||||
WORKDIR /build
|
||||
|
||||
ENV SIZE="15200"
|
||||
|
||||
IF [[ "$FLAVOR" = "ubuntu-20-lts-arm-nvidia-jetson-agx-orin" ]]
|
||||
ENV STATE_SIZE="14000"
|
||||
ENV RECOVERY_SIZE="10000"
|
||||
ENV DEFAULT_ACTIVE_SIZE="4500"
|
||||
ELSE IF [[ "$FLAVOR" =~ ^ubuntu* ]]
|
||||
ENV STATE_SIZE="6900"
|
||||
ENV RECOVERY_SIZE="4600"
|
||||
ENV DEFAULT_ACTIVE_SIZE="2700"
|
||||
ELSE
|
||||
ENV STATE_SIZE="6200"
|
||||
ENV RECOVERY_SIZE="4200"
|
||||
ENV DEFAULT_ACTIVE_SIZE="2000"
|
||||
END
|
||||
|
||||
|
||||
COPY --platform=linux/arm64 +docker-rootfs/rootfs /build/image
|
||||
# With docker is required for loop devices
|
||||
WITH DOCKER --allow-privileged
|
||||
RUN /build-arm-image.sh --use-lvm --model $MODEL --directory "/build/image" /build/$IMAGE_NAME
|
||||
END
|
||||
IF [ "$COMPRESS_IMG" = "true" ]
|
||||
RUN xz -v /build/$IMAGE_NAME
|
||||
SAVE ARTIFACT /build/$IMAGE_NAME.xz img AS LOCAL build/$IMAGE_NAME.xz
|
||||
ELSE
|
||||
SAVE ARTIFACT /build/$IMAGE_NAME img AS LOCAL build/$IMAGE_NAME
|
||||
END
|
||||
SAVE ARTIFACT /build/$IMAGE_NAME.sha256 img-sha256 AS LOCAL build/$IMAGE_NAME.sha256
|
||||
|
||||
syft:
|
||||
FROM anchore/syft:latest
|
||||
SAVE ARTIFACT /syft syft
|
||||
|
||||
image-sbom:
|
||||
FROM +docker
|
||||
WORKDIR /build
|
||||
ARG TAG
|
||||
ARG FLAVOR
|
||||
ARG VARIANT
|
||||
ARG MODEL
|
||||
IF [ "$TARGETARCH" = "arm64" ]
|
||||
ARG DISTRO=$(echo $FLAVOR | sed 's/-arm-.*//')
|
||||
ARG ISO_NAME=${OS_ID}-${VARIANT}-${DISTRO}-${TARGETARCH}-${MODEL}-${VERSION}
|
||||
ELSE
|
||||
ARG ISO_NAME=${OS_ID}-${VARIANT}-${FLAVOR}-${TARGETARCH}-${MODEL}-${VERSION}
|
||||
END
|
||||
COPY +syft/syft /usr/bin/syft
|
||||
RUN syft / -o json=sbom.syft.json -o spdx-json=sbom.spdx.json
|
||||
SAVE ARTIFACT /build/sbom.syft.json sbom.syft.json AS LOCAL build/${ISO_NAME}-sbom.syft.json
|
||||
SAVE ARTIFACT /build/sbom.spdx.json sbom.spdx.json AS LOCAL build/${ISO_NAME}-sbom.spdx.json
|
||||
|
||||
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
|
||||
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
|
||||
SAVE ARTIFACT /build/ipxe/src/bin/ipxe.usb usb AS LOCAL build/${ISO_NAME}-ipxe-usb.img
|
||||
|
||||
## 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 /
|
||||
|
@@ -57,19 +57,19 @@ Contribute
|
||||
|
||||
## Provider kairos
|
||||
|
||||
This repository generates Kairos images with full-mesh support. full-mesh support currently is available only with k3s, and the provider follows strictly k3s releases.
|
||||
This repository hosts the code for provider binary used in Kairos "standard" images which offer full-mesh support.
|
||||
full-mesh support currently is available only with k3s, and the provider follows strictly k3s releases.
|
||||
|
||||
> [!NOTE]
|
||||
> The provider-kairos release pipelines have been merged with the kairos ones from version `2.4.0` onward. All image artifacts are released from the kairos repository, both core images and standard images (those with the provider).
|
||||
|
||||
To use Kairos with mesh support, either download the bootable medium in the releases.
|
||||
To use Kairos with mesh support, download the bootable medium form the [kairos releases](https://github.com/kairos-io/kairos/releases).
|
||||
|
||||
Follow up the examples in our documentation on how to get started:
|
||||
- https://kairos.io/docs/examples/single-node/
|
||||
- https://kairos.io/docs/examples/multi-node/
|
||||
- https://kairos.io/docs/examples/multi-node-p2p-ha-kubevip/
|
||||
|
||||
|
||||
## Upgrades
|
||||
|
||||
Upgrading can be done either via Kubernetes or manually with `kairos-agent upgrade --image <image>`, or you can list available versions with `kairos-agent upgrade list-releases`.
|
||||
|
@@ -3,7 +3,6 @@ package role
|
||||
import (
|
||||
"fmt"
|
||||
"math/rand"
|
||||
"time"
|
||||
|
||||
"github.com/kairos-io/kairos-agent/v2/pkg/config"
|
||||
providerConfig "github.com/kairos-io/provider-kairos/v2/internal/provider/config"
|
||||
@@ -13,8 +12,6 @@ import (
|
||||
|
||||
// scheduleRoles assigns roles to nodes. Meant to be called only by leaders.
|
||||
func scheduleRoles(nodes []string, c *service.RoleConfig, cc *config.Config, pconfig *providerConfig.Config) error { //nolint:revive
|
||||
rand.Seed(time.Now().Unix())
|
||||
|
||||
// Assign roles to nodes
|
||||
unassignedNodes, currentRoles := getRoles(c.Client, nodes)
|
||||
c.Logger.Infof("I'm the leader. My UUID is: %s.\n Current assigned roles: %+v", c.UUID, currentRoles)
|
||||
|
@@ -1,47 +0,0 @@
|
||||
[
|
||||
{
|
||||
"flavor": "opensuse-leap-arm-rpi",
|
||||
"model": "rpi64",
|
||||
"k3s_version": "v1.25.11+k3s1"
|
||||
},
|
||||
{
|
||||
"flavor": "opensuse-tumbleweed-arm-rpi",
|
||||
"model": "rpi64",
|
||||
"k3s_version": "v1.25.11+k3s1"
|
||||
},
|
||||
{
|
||||
"flavor": "alpine-arm-rpi",
|
||||
"model": "rpi64",
|
||||
"k3s_version": "v1.25.11+k3s1"
|
||||
},
|
||||
{
|
||||
"flavor": "opensuse-leap-arm-rpi",
|
||||
"model": "rpi64",
|
||||
"k3s_version": "v1.26.6+k3s1"
|
||||
},
|
||||
{
|
||||
"flavor": "opensuse-tumbleweed-arm-rpi",
|
||||
"model": "rpi64",
|
||||
"k3s_version": "v1.26.6+k3s1"
|
||||
},
|
||||
{
|
||||
"flavor": "alpine-arm-rpi",
|
||||
"model": "rpi64",
|
||||
"k3s_version": "v1.26.6+k3s1"
|
||||
},
|
||||
{
|
||||
"flavor": "opensuse-leap-arm-rpi",
|
||||
"model": "rpi64",
|
||||
"k3s_version": "v1.27.3+k3s1"
|
||||
},
|
||||
{
|
||||
"flavor": "opensuse-tumbleweed-arm-rpi",
|
||||
"model": "rpi64",
|
||||
"k3s_version": "v1.27.3+k3s1"
|
||||
},
|
||||
{
|
||||
"flavor": "alpine-arm-rpi",
|
||||
"model": "rpi64",
|
||||
"k3s_version": "v1.27.3+k3s1"
|
||||
}
|
||||
]
|
122
releases.json
122
releases.json
@@ -1,122 +0,0 @@
|
||||
[
|
||||
{
|
||||
"flavor": "opensuse-leap",
|
||||
"k3s_version": "v1.25.11+k3s1"
|
||||
},
|
||||
{
|
||||
"flavor": "opensuse-tumbleweed",
|
||||
"k3s_version": "v1.25.11+k3s1"
|
||||
},
|
||||
{
|
||||
"flavor": "alpine-ubuntu",
|
||||
"k3s_version": "v1.25.11+k3s1"
|
||||
},
|
||||
{
|
||||
"flavor": "alpine-opensuse-leap",
|
||||
"k3s_version": "v1.25.11+k3s1"
|
||||
},
|
||||
{
|
||||
"flavor": "ubuntu",
|
||||
"k3s_version": "v1.25.11+k3s1"
|
||||
},
|
||||
{
|
||||
"flavor": "ubuntu-20-lts",
|
||||
"k3s_version": "v1.25.11+k3s1"
|
||||
},
|
||||
{
|
||||
"flavor": "ubuntu-22-lts",
|
||||
"k3s_version": "v1.25.11+k3s1"
|
||||
},
|
||||
{
|
||||
"flavor": "fedora",
|
||||
"k3s_version": "v1.25.11+k3s1"
|
||||
},
|
||||
{
|
||||
"flavor": "debian",
|
||||
"k3s_version": "v1.25.11+k3s1"
|
||||
},
|
||||
{
|
||||
"flavor": "rockylinux",
|
||||
"k3s_version": "v1.25.11+k3s1"
|
||||
},
|
||||
{
|
||||
"flavor": "opensuse-leap",
|
||||
"k3s_version": "v1.26.6+k3s1"
|
||||
},
|
||||
{
|
||||
"flavor": "opensuse-tumbleweed",
|
||||
"k3s_version": "v1.26.6+k3s1"
|
||||
},
|
||||
{
|
||||
"flavor": "alpine-ubuntu",
|
||||
"k3s_version": "v1.26.6+k3s1"
|
||||
},
|
||||
{
|
||||
"flavor": "alpine-opensuse-leap",
|
||||
"k3s_version": "v1.26.6+k3s1"
|
||||
},
|
||||
{
|
||||
"flavor": "ubuntu",
|
||||
"k3s_version": "v1.26.6+k3s1"
|
||||
},
|
||||
{
|
||||
"flavor": "ubuntu-20-lts",
|
||||
"k3s_version": "v1.26.6+k3s1"
|
||||
},
|
||||
{
|
||||
"flavor": "ubuntu-22-lts",
|
||||
"k3s_version": "v1.26.6+k3s1"
|
||||
},
|
||||
{
|
||||
"flavor": "fedora",
|
||||
"k3s_version": "v1.26.6+k3s1"
|
||||
},
|
||||
{
|
||||
"flavor": "debian",
|
||||
"k3s_version": "v1.26.6+k3s1"
|
||||
},
|
||||
{
|
||||
"flavor": "rockylinux",
|
||||
"k3s_version": "v1.26.6+k3s1"
|
||||
},
|
||||
{
|
||||
"flavor": "opensuse-leap",
|
||||
"k3s_version": "v1.27.3+k3s1"
|
||||
},
|
||||
{
|
||||
"flavor": "opensuse-tumbleweed",
|
||||
"k3s_version": "v1.27.3+k3s1"
|
||||
},
|
||||
{
|
||||
"flavor": "alpine-ubuntu",
|
||||
"k3s_version": "v1.27.3+k3s1"
|
||||
},
|
||||
{
|
||||
"flavor": "alpine-opensuse-leap",
|
||||
"k3s_version": "v1.27.3+k3s1"
|
||||
},
|
||||
{
|
||||
"flavor": "ubuntu",
|
||||
"k3s_version": "v1.27.3+k3s1"
|
||||
},
|
||||
{
|
||||
"flavor": "ubuntu-20-lts",
|
||||
"k3s_version": "v1.27.3+k3s1"
|
||||
},
|
||||
{
|
||||
"flavor": "ubuntu-22-lts",
|
||||
"k3s_version": "v1.27.3+k3s1"
|
||||
},
|
||||
{
|
||||
"flavor": "fedora",
|
||||
"k3s_version": "v1.27.3+k3s1"
|
||||
},
|
||||
{
|
||||
"flavor": "debian",
|
||||
"k3s_version": "v1.27.3+k3s1"
|
||||
},
|
||||
{
|
||||
"flavor": "rockylinux",
|
||||
"k3s_version": "v1.27.3+k3s1"
|
||||
}
|
||||
]
|
@@ -1,17 +0,0 @@
|
||||
repositories:
|
||||
- &kairos
|
||||
name: "kairos"
|
||||
# https://github.com/kairos-io/packages
|
||||
description: "kairos repository"
|
||||
type: "docker"
|
||||
arch: amd64
|
||||
cached: true
|
||||
priority: 2
|
||||
urls:
|
||||
- "quay.io/kairos/packages"
|
||||
reference: 20230707164258-repository.yaml
|
||||
- !!merge <<: *kairos
|
||||
arch: arm64
|
||||
urls:
|
||||
- "quay.io/kairos/packages-arm64"
|
||||
reference: 20230707174702-repository.yaml
|
Reference in New Issue
Block a user