🐛 arm64 fixups (#42)

* 🤖 Fixup on ARM64

* ⬆️ Bumps

* Minor fixups

* ⬆️ Bumps

* Add static artifacts
This commit is contained in:
Ettore Di Giacinto
2022-10-19 11:56:41 +02:00
committed by GitHub
parent 5ca49c3f57
commit 7d13179670
21 changed files with 149 additions and 17 deletions

View File

@@ -40,7 +40,7 @@ jobs:
fromIndex: true fromIndex: true
onlyMissing: true onlyMissing: true
buildx: true buildx: true
platform: linux/arm/v8 platform: linux/arm64
FINAL_REPO: quay.io/kairos/packages-arm64 FINAL_REPO: quay.io/kairos/packages-arm64
DOCKER_USERNAME: ${{ secrets.QUAY_USERNAME }} DOCKER_USERNAME: ${{ secrets.QUAY_USERNAME }}
DOCKER_PASSWORD: ${{ secrets.QUAY_PASSWORD }} DOCKER_PASSWORD: ${{ secrets.QUAY_PASSWORD }}

View File

@@ -7,6 +7,43 @@ on:
pull_request: pull_request:
jobs: jobs:
build-arm64:
runs-on: ubuntu-latest
env:
ARCH: amd64
steps:
- uses: actions/checkout@v2
- run: |
git fetch --prune --unshallow
mkdir build
- name: Set up QEMU
uses: docker/setup-qemu-action@master
with:
platforms: all
- name: Set up Docker Buildx
id: buildx
uses: docker/setup-buildx-action@master
- name: Download meta 🔧
uses: luet-lab/luet-github-action@master
with:
FINAL_REPO: quay.io/kairos/packages
REPOSITORY_TYPE: docker
downloadAllMeta: true
downloadFromList: true
downloadMeta: true
- name: Build packages 🔧
uses: luet-lab/luet-github-action@master
with:
build: true
fromIndex: true
buildx: true
platform: linux/arm64
onlyMissing: true
FINAL_REPO: quay.io/kairos/packages
DOCKER_USERNAME: ${{ secrets.QUAY_USERNAME }}
REPOSITORY_TYPE: docker
pushFinalImages: false
pushCache: false
build: build:
runs-on: ubuntu-latest runs-on: ubuntu-latest

View File

@@ -1,6 +1,6 @@
name: edgevpn name: edgevpn
category: utils category: utils
version: "0.17.0" version: "0.17.0+1"
labels: labels:
github.repo: "edgevpn" github.repo: "edgevpn"
github.owner: "mudler" github.owner: "mudler"

View File

@@ -1,10 +1,10 @@
packages: packages:
- name: "opensuse" - name: "opensuse"
category: "distro-initrd" category: "distro-initrd"
version: "0.11" version: "0.12"
# - name: "fedora" # - name: "fedora"
# category: "distro-initrd" # category: "distro-initrd"
# version: "0.11" # version: "0.11"
- name: "ubuntu" - name: "ubuntu"
category: "distro-initrd" category: "distro-initrd"
version: "0.11" version: "0.12"

View File

@@ -1,7 +1,7 @@
packages: packages:
- category: "distro-kernels" - category: "distro-kernels"
name: "opensuse" name: "opensuse"
version: "15.4+2" version: "15.4+1"
image_tag: "15.4" image_tag: "15.4"
image: "opensuse/leap" image: "opensuse/leap"
distribution: "opensuse" distribution: "opensuse"
@@ -16,7 +16,7 @@ packages:
- category: "distro-kernels" - category: "distro-kernels"
name: "ubuntu" name: "ubuntu"
image_tag: "20.04" image_tag: "20.04"
version: "20.04" version: "20.04+1"
image: "ubuntu" image: "ubuntu"
distribution: "ubuntu" distribution: "ubuntu"
packages: "linux-image-generic-hwe-20.04 dracut dracut-network" packages: "linux-image-generic-hwe-20.04 dracut dracut-network"

View File

@@ -0,0 +1,26 @@
image: {{.Values.image}}
{{if eq .Values.image "opensuse"}}
{{ if eq .Values.arch "arm64" }}
prelude:
- zypper in -y grub2-arm64-efi grub2
{{ else if eq .Values.arch "arm" }}
{{ else }}
prelude:
- zypper in -y grub2-i386-pc grub2-x86_64-efi grub2
{{ end }}
{{end}}
steps:
- mkdir /grub-artifacts
{{if .Values.distribution}}
{{if eq .Values.distribution "opensuse"}}
- cp -rf /usr/share/grub2/* /grub-artifacts
{{else}}
- cp -rfL /usr/lib/grub/* /grub-artifacts
{{end}}
{{end}}
package_dir: /grub-artifacts

View File

@@ -0,0 +1,5 @@
name: "grub-artifacts"
category: "static"
version: "0.1"
distribution: opensuse
image: opensuse/leap:15.3

View File

@@ -0,0 +1,11 @@
requires:
- name: "elemental-toolkit-opensuse"
category: "system"
version: ">=0"
steps:
- |
mkdir -p /{{.Values.name}}/etc && \
cp -rfv /framework/etc/cos /{{.Values.name}}/etc
package_dir: "/{{.Values.name}}"

View File

@@ -0,0 +1,3 @@
name: "grub-config"
category: "static"
version: "0.1"

View File

@@ -0,0 +1,34 @@
image: {{.Values.image}}
package_dir: "/output"
steps:
- mkdir -p /output/EFI/BOOT
- cp config/grub_live_efi.cfg /output/EFI/BOOT/grub.cfg
{{if .Values.distribution}}
{{if eq .Values.distribution "opensuse"}}
{{if .Values.arch }}
{{if eq .Values.arch "x86_64"}}
- cp /usr/share/grub2/x86_64-efi/grub.efi /output/EFI/BOOT/bootx64.efi
{{end}}
{{if eq .Values.arch "arm64"}}
- cp /usr/share/grub2/arm64-efi/grub.efi /output/EFI/BOOT/bootaa64.efi
{{end}}
{{end}}
{{else if eq .Values.distribution "fedora"}}
{{if eq .Values.arch "x86_64"}}
- grub2-mkimage -O x86_64-efi -o /output/EFI/BOOT/bootx64.efi -c /output/EFI/BOOT/grub.cfg -p /grub2 -d /usr/lib/grub/x86_64-efi {{.Values.efi_modules}}
{{else if eq .Values.arch "arm64"}}
- mkdir -p /output/EFI/fedora
- cp -r /boot/efi/EFI/fedora/* /output/EFI/fedora/
- cp -r /boot/efi/EFI/BOOT/* /output/EFI/BOOT/
{{end}}
{{else if eq .Values.distribution "ubuntu"}}
{{if eq .Values.arch "x86_64"}}
- grub-mkimage -O x86_64-efi -o /output/EFI/BOOT/bootx64.efi -c /output/EFI/BOOT/grub.cfg -p /grub2 -d /usr/lib/grub/x86_64-efi {{.Values.efi_modules}} linuxefi
{{else if eq .Values.arch "arm64"}}
- grub-mkimage -O arm64-efi -o /output/EFI/BOOT/bootaa64.efi -c /output/EFI/BOOT/grub.cfg -p /grub2 -d /usr/lib/grub/arm64-efi {{.Values.efi_modules_arm64}}
{{end}}
{{end}}
{{end}}

View File

@@ -0,0 +1,4 @@
search --no-floppy --label --set=root COS_RECOVERY
set root=($root)
set prefix=($root)/grub2
configfile ($root)/etc/cos/grub.cfg

View File

@@ -0,0 +1,8 @@
name: "grub-efi"
category: "static"
version: "0.1"
distribution: opensuse
image: opensuse/leap:15.3
arch: "x86_64"
efi_modules: ext2 iso9660 linux echo configfile search_label search_fs_file search search_fs_uuid ls normal gzio png fat gettext font minicmd gfxterm gfxmenu all_video xfs gcry_rijndael gcry_sha256 gcry_sha512 test true loadenv part_gpt part_msdos efi_gop efi_uga
efi_modules_arm64: ext2 iso9660 linux echo configfile search_label search_fs_file search search_fs_uuid ls normal gzio png fat gettext font minicmd gfxterm gfxmenu all_video xfs gcry_rijndael gcry_sha256 gcry_sha512 test true loadenv part_gpt part_msdos efi_gop

View File

@@ -1,6 +1,6 @@
name: "elemental-cli" name: "elemental-cli"
category: "system" category: "system"
version: "0.20221018+1" version: "0.20221018+3"
bin_name: "elemental" bin_name: "elemental"
fips: false fips: false
labels: labels:

View File

@@ -1,7 +1,7 @@
name: kcrypt-challenger name: kcrypt-challenger
category: system category: system
live: "yes" live: "yes"
version: "0.0.1+1" version: "0.0.1+2"
labels: labels:
github.repo: "kcrypt-challenger" github.repo: "kcrypt-challenger"
github.owner: "kairos-io" github.owner: "kairos-io"

View File

@@ -1,6 +1,6 @@
name: kcrypt name: kcrypt
category: system category: system
version: "0.3.1" version: "0.3.1+1"
labels: labels:
github.repo: "kcrypt" github.repo: "kcrypt"
github.owner: "kairos-io" github.owner: "kairos-io"

View File

@@ -1,7 +1,7 @@
{{ if .Values.variant }} {{ if .Values.variant }}
image: "golang:{{.Values.version}}-{{.Values.variant}}" image: "golang:{{.Values.tag}}-{{.Values.variant}}"
{{ else }} {{ else }}
image: "golang:{{.Values.version}}" image: "golang:{{.Values.tag}}"
{{ end }} {{ end }}
{{ if eq .Values.variant "alpine" }} {{ if eq .Values.variant "alpine" }}

View File

@@ -2,10 +2,12 @@ packages:
- name: toolchain-go - name: toolchain-go
category: development category: development
variant: "alpine" variant: "alpine"
version: "1.18" version: "1.18+1"
tag: "1.18"
hidden: true hidden: true
- name: toolchain-go-ubuntu - name: toolchain-go-ubuntu
variant: "" variant: ""
category: development category: development
version: "1.18" version: "1.18+1"
tag: "1.18"
hidden: true hidden: true

View File

@@ -1,4 +1,4 @@
name: toolchain-ubuntu name: toolchain-ubuntu
category: development category: development
version: "0.1" version: "0.2"
hidden: true hidden: true

View File

@@ -1,6 +1,6 @@
name: kubectl name: kubectl
category: container category: container
version: "1.25.3" version: "1.25.3+1"
arch: "amd64" arch: "amd64"
labels: labels:
github.repo: "kubectl" github.repo: "kubectl"

View File

@@ -10,7 +10,9 @@ env:
- GITHUB_ORG={{ ( index .Values.labels "github.owner" ) }} - GITHUB_ORG={{ ( index .Values.labels "github.owner" ) }}
- CGO_ENABLED=0 - CGO_ENABLED=0
steps: steps:
- cd go/src/github.com/${GITHUB_ORG}/{{ .Values.name }}/ && git checkout v"${PACKAGE_VERSION}" -b build && go build -o {{.Values.name}} && mv {{ .Values.name }} /usr/bin/{{ .Values.name }} - |
PACKAGE_VERSION=${PACKAGE_VERSION%\+*} && \
cd go/src/github.com/${GITHUB_ORG}/{{ .Values.name }}/ && git checkout v"${PACKAGE_VERSION}" -b build && go build -o {{.Values.name}} && mv {{ .Values.name }} /usr/bin/{{ .Values.name }}
- chmod +x /usr/bin/{{ .Values.name }} - chmod +x /usr/bin/{{ .Values.name }}
includes: includes:
- /usr/bin/{{.Values.name}} - /usr/bin/{{.Values.name}}

View File

@@ -1,6 +1,6 @@
name: kubesplit name: kubesplit
category: utils category: utils
version: "0.2.1" version: "0.2.1+1"
description: "A opinionated simple tool to split big YAML Kubernetes files into chunks to help building helm charts" description: "A opinionated simple tool to split big YAML Kubernetes files into chunks to help building helm charts"
labels: labels:
github.repo: "kubesplit" github.repo: "kubesplit"