mirror of
https://github.com/lukaszraczylo/talos-builder.git
synced 2026-06-05 23:03:36 +00:00
Remove Pi4 from documentatino (sbc-raspberrypi covers that board)
This commit is contained in:
@@ -60,7 +60,7 @@ jobs:
|
||||
# ──────────────────────────────────────────────
|
||||
|
||||
- name: "Pi5 — Prepare (checkouts & patches)"
|
||||
run: make TALOS_VERSION=${{ env.TALOS_VERSION }} checkouts patches-pi5
|
||||
run: make TALOS_VERSION=${{ env.TALOS_VERSION }} checkouts patches
|
||||
|
||||
- name: "Pi5 — Kernel"
|
||||
run: make TALOS_VERSION=${{ env.TALOS_VERSION }} REGISTRY=${{ env.REGISTRY }} REGISTRY_USERNAME=${{ env.REGISTRY_USERNAME }} kernel
|
||||
@@ -84,10 +84,10 @@ jobs:
|
||||
REGISTRY_USERNAME=${{ env.REGISTRY_USERNAME }} \
|
||||
ASSET_TYPE=installer \
|
||||
EXTENSIONS="${{ env.EXTENSIONS }}" \
|
||||
installer-pi5
|
||||
installer
|
||||
crane push \
|
||||
./checkouts/talos/_out/installer-arm64.tar \
|
||||
${{ env.REGISTRY }}/${{ env.REGISTRY_USERNAME }}/installer:${{ github.ref_name }}-rpi5
|
||||
${{ env.REGISTRY }}/${{ env.REGISTRY_USERNAME }}/installer:${{ github.ref_name }}
|
||||
|
||||
- name: "Pi5 — Build metal disk image"
|
||||
run: |
|
||||
@@ -96,50 +96,9 @@ jobs:
|
||||
REGISTRY_USERNAME=${{ env.REGISTRY_USERNAME }} \
|
||||
ASSET_TYPE=metal \
|
||||
EXTENSIONS="${{ env.EXTENSIONS }}" \
|
||||
installer-pi5
|
||||
installer
|
||||
unzstd -c ./checkouts/talos/_out/metal-arm64.raw.zst | xz -T0 > ./metal-arm64-rpi5.raw.xz
|
||||
|
||||
# ──────────────────────────────────────────────
|
||||
# Raspberry Pi 4 / CM4
|
||||
# ──────────────────────────────────────────────
|
||||
|
||||
- name: "Pi4 — Prepare (clean, re-checkout & patches)"
|
||||
run: make TALOS_VERSION=${{ env.TALOS_VERSION }} checkouts-clean checkouts patches-pi4
|
||||
|
||||
- name: "Pi4 — Kernel"
|
||||
run: make TALOS_VERSION=${{ env.TALOS_VERSION }} REGISTRY=${{ env.REGISTRY }} REGISTRY_USERNAME=${{ env.REGISTRY_USERNAME }} kernel
|
||||
|
||||
- name: "Pi4 — Kernel initramfs"
|
||||
run: make TALOS_VERSION=${{ env.TALOS_VERSION }} REGISTRY=${{ env.REGISTRY }} REGISTRY_USERNAME=${{ env.REGISTRY_USERNAME }} kern_initramfs
|
||||
|
||||
- name: "Pi4 — Installer base"
|
||||
run: make TALOS_VERSION=${{ env.TALOS_VERSION }} REGISTRY=${{ env.REGISTRY }} REGISTRY_USERNAME=${{ env.REGISTRY_USERNAME }} installer-base
|
||||
|
||||
- name: "Pi4 — Imager"
|
||||
run: make TALOS_VERSION=${{ env.TALOS_VERSION }} REGISTRY=${{ env.REGISTRY }} REGISTRY_USERNAME=${{ env.REGISTRY_USERNAME }} imager
|
||||
|
||||
- name: "Pi4 — Build installer image (with extensions)"
|
||||
run: |
|
||||
make TALOS_VERSION=${{ env.TALOS_VERSION }} \
|
||||
REGISTRY=${{ env.REGISTRY }} \
|
||||
REGISTRY_USERNAME=${{ env.REGISTRY_USERNAME }} \
|
||||
ASSET_TYPE=installer \
|
||||
EXTENSIONS="${{ env.EXTENSIONS }}" \
|
||||
installer-pi4
|
||||
crane push \
|
||||
./checkouts/talos/_out/installer-arm64.tar \
|
||||
${{ env.REGISTRY }}/${{ env.REGISTRY_USERNAME }}/installer:${{ github.ref_name }}-rpi4
|
||||
|
||||
- name: "Pi4 — Build metal disk image"
|
||||
run: |
|
||||
make TALOS_VERSION=${{ env.TALOS_VERSION }} \
|
||||
REGISTRY=${{ env.REGISTRY }} \
|
||||
REGISTRY_USERNAME=${{ env.REGISTRY_USERNAME }} \
|
||||
ASSET_TYPE=metal \
|
||||
EXTENSIONS="${{ env.EXTENSIONS }}" \
|
||||
installer-pi4
|
||||
unzstd -c ./checkouts/talos/_out/metal-arm64.raw.zst | xz -T0 > ./metal-arm64-rpi4.raw.xz
|
||||
|
||||
# ──────────────────────────────────────────────
|
||||
# Release
|
||||
# ──────────────────────────────────────────────
|
||||
@@ -149,12 +108,11 @@ jobs:
|
||||
env:
|
||||
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||
run: |
|
||||
INSTALLER_PI5="${{ env.REGISTRY }}/${{ env.REGISTRY_USERNAME }}/installer:${{ github.ref_name }}-rpi5"
|
||||
INSTALLER_PI4="${{ env.REGISTRY }}/${{ env.REGISTRY_USERNAME }}/installer:${{ github.ref_name }}-rpi4"
|
||||
INSTALLER_PI5="${{ env.REGISTRY }}/${{ env.REGISTRY_USERNAME }}/installer:${{ github.ref_name }}"
|
||||
NOTES=$(cat <<EOF
|
||||
> ⚠️ Experimental build, use at your own risk.
|
||||
|
||||
Patched Talos Linux for **Raspberry Pi 5** and **Raspberry Pi 4 / CM4**, including NVMe, NIC and USB support.
|
||||
Patched Talos Linux for **Raspberry Pi 5**, including NVMe, NIC and USB support.
|
||||
|
||||
### Extensions included
|
||||
|
||||
@@ -166,13 +124,12 @@ jobs:
|
||||
| Platform | Disk image | Installer image |
|
||||
|----------|-----------|----------------|
|
||||
| **RPi 5 / CM5** | \`metal-arm64-rpi5.raw.xz\` | \`${INSTALLER_PI5}\` |
|
||||
| **RPi 4 / CM4** | \`metal-arm64-rpi4.raw.xz\` | \`${INSTALLER_PI4}\` |
|
||||
|
||||
### Fresh install
|
||||
|
||||
Download the disk image for your board and flash it:
|
||||
\`\`\`bash
|
||||
xz -d metal-arm64-rpi5.raw.xz # or metal-arm64-rpi4.raw.xz
|
||||
xz -d metal-arm64-rpi5.raw.xz
|
||||
dd if=metal-arm64-rpi5.raw of=<disk> bs=4M status=progress
|
||||
\`\`\`
|
||||
|
||||
@@ -182,15 +139,10 @@ jobs:
|
||||
# Raspberry Pi 5
|
||||
talosctl upgrade --nodes <NODE_IP> --image ${INSTALLER_PI5}
|
||||
|
||||
# Raspberry Pi 4 / CM4
|
||||
talosctl upgrade --nodes <NODE_IP> --image ${INSTALLER_PI4}
|
||||
\`\`\`
|
||||
|
||||
EOF
|
||||
)
|
||||
gh release create \
|
||||
${{ github.ref_name }} \
|
||||
metal-arm64-rpi5.raw.xz \
|
||||
metal-arm64-rpi4.raw.xz \
|
||||
--title "${{ github.ref_name }}" \
|
||||
--notes "$NOTES"
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
# Raspberry Pi 5 & Pi 4 Talos Builder
|
||||
# Raspberry Pi 5 Talos Builder
|
||||
|
||||
This repository builds custom Talos Linux images for the **Raspberry Pi 5** and **Raspberry Pi 4 / CM4**. It patches the Kernel and Talos build process to use the Linux Kernel source provided by [raspberrypi/linux](https://github.com/raspberrypi/linux).
|
||||
This repository builds custom Talos Linux images for the **Raspberry Pi 5**. It patches the Kernel and Talos build process to use the Linux Kernel source provided by [raspberrypi/linux](https://github.com/raspberrypi/linux).
|
||||
|
||||
## Tested on
|
||||
|
||||
@@ -18,7 +18,7 @@ So far, this release has been verified on:
|
||||
|
||||
## How to use?
|
||||
|
||||
Each release contains disk images and installer images for both Raspberry Pi 5 and Raspberry Pi 4 / CM4 platforms.
|
||||
Each release contains disk images and installer images for the Raspberry Pi 5 platforms.
|
||||
|
||||
### Examples
|
||||
|
||||
@@ -28,10 +28,6 @@ Initial:
|
||||
# Raspberry Pi 5 / CM5
|
||||
xz -d metal-arm64-rpi5.raw.xz
|
||||
dd if=metal-arm64-rpi5.raw of=<disk> bs=4M status=progress
|
||||
|
||||
# Raspberry Pi 4 / CM4
|
||||
xz -d metal-arm64-rpi4.raw.xz
|
||||
dd if=metal-arm64-rpi4.raw of=<disk> bs=4M status=progress
|
||||
```
|
||||
|
||||
Upgrade:
|
||||
@@ -41,11 +37,6 @@ Upgrade:
|
||||
talosctl upgrade \
|
||||
--nodes <node IP> \
|
||||
--image ghcr.io/talos-rpi5/installer:<version>-rpi5
|
||||
|
||||
# Raspberry Pi 4 / CM4
|
||||
talosctl upgrade \
|
||||
--nodes <node IP> \
|
||||
--image ghcr.io/talos-rpi5/installer:<version>-rpi4
|
||||
```
|
||||
|
||||
## Building
|
||||
@@ -54,10 +45,10 @@ talosctl upgrade \
|
||||
|
||||
The CI workflow builds and publishes images automatically. It is triggered when you push a version tag:
|
||||
|
||||
- **Push a tag** matching `v*.*.*` — this builds both Raspberry Pi 5 and Pi 4 / CM4 images and creates a GitHub Release:
|
||||
- **Push a tag** matching `v*.*.*` — this builds the Raspberry Pi 5 image and creates a GitHub Release:
|
||||
```bash
|
||||
git tag v1.11.6
|
||||
git push origin v1.11.6
|
||||
git tag v1.12.6
|
||||
git push origin v1.12.6
|
||||
```
|
||||
|
||||
### Local build
|
||||
@@ -67,16 +58,13 @@ If you'd like to make modifications, it is possible to create your own build.
|
||||
```bash
|
||||
# Full pipeline for Raspberry Pi 5
|
||||
make REGISTRY=ghcr.io REGISTRY_USERNAME=<username> pi5
|
||||
|
||||
# Full pipeline for Raspberry Pi 4 / CM4
|
||||
make REGISTRY=ghcr.io REGISTRY_USERNAME=<username> pi4
|
||||
```
|
||||
|
||||
Or step by step:
|
||||
|
||||
```bash
|
||||
# Clone dependencies and apply patches
|
||||
make checkouts patches-pi5 # or patches-pi4
|
||||
make checkouts patches
|
||||
|
||||
# Build the Linux Kernel (can take a while)
|
||||
make REGISTRY=ghcr.io REGISTRY_USERNAME=<username> kernel
|
||||
@@ -85,7 +73,7 @@ make REGISTRY=ghcr.io REGISTRY_USERNAME=<username> kernel
|
||||
make REGISTRY=ghcr.io REGISTRY_USERNAME=<username> overlay
|
||||
|
||||
# Build the installer and disk image
|
||||
make REGISTRY=ghcr.io REGISTRY_USERNAME=<username> installer-pi5 # or installer-pi4
|
||||
make REGISTRY=ghcr.io REGISTRY_USERNAME=<username> installer
|
||||
```
|
||||
|
||||
### Extensions support
|
||||
@@ -122,7 +110,7 @@ DIGEST=$(crane digest ghcr.io/siderolabs/foo-extension:v1.0.0)
|
||||
|
||||
make REGISTRY=ghcr.io REGISTRY_USERNAME=<username> \
|
||||
EXTENSIONS="ghcr.io/siderolabs/foo-extension:v1.0.0@${DIGEST}" \
|
||||
installer-pi5
|
||||
installer
|
||||
```
|
||||
|
||||
Pass multiple extensions as a space-separated string inside the quotes.
|
||||
|
||||
Reference in New Issue
Block a user