Skip to content

CI: always build ARM64 images - #95

Merged
ti-mo merged 2 commits into
mainfrom
florianl-patch-1
Sep 8, 2026
Merged

ti-mo merged 2 commits into
mainfrom
florianl-patch-1

Conversation

@florianl

@florianl florianl commented Sep 5, 2026

Copy link
Copy Markdown
Contributor

With a8de719 the Linux kernel versions were updated and the 7.1 tag moved from 7.1.1 to 7.1.12.

This change was noticed, as in our CIs 7.1 is used for testing against amd64 and arm64 Linux kernel. But with the mentioned commit, no 7.1.12 arm64 image was created and our CI started to fail.

To fix this, always build an arm64 image and don't limit it to static tags.

Reproducer that shows that no arm64 image was created for 7.1.12
#!/bin/bash

set -e

REGISTRY="ghcr.io/cilium/ci-kernels"

check_kernel() {
    local version=$1

    echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━"
    echo "Version: $version"
    echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━"

    # Get raw manifest
    manifest=$(skopeo inspect --raw "docker://${REGISTRY}:${version}" 2>/dev/null || echo "")

    if [ -z "$manifest" ]; then
        echo "❌ Image not found or not accessible"
        echo ""
        return 1
    fi

    # Check if it's a multi-platform image or single-arch
    media_type=$(echo "$manifest" | jq -r '.mediaType')
    has_manifests=$(echo "$manifest" | jq -r 'has("manifests")')

    echo "MediaType: $media_type"

    if [ "$has_manifests" = "true" ]; then
        # Multi-platform index
        echo "Type: Multi-platform index ✓"
        echo ""
        echo "Available architectures:"
        echo "$manifest" | jq -r '.manifests[]?.platform | "\(.architecture) (\(.os))"' | sed 's/^/  - /'
        echo ""
    else
        # Single architecture
        arch=$(echo "$manifest" | jq -r '.architecture // "unknown"')
        echo "Type: Single architecture (amd64 only)"
        echo ""
        echo "Available architectures:"
        echo "  - amd64 (linux)"
        echo ""
    fi
}

check_kernel "7.1.12"
check_kernel "7.2.2"

@ti-mo

ti-mo commented Sep 7, 2026

Copy link
Copy Markdown
Contributor

Looks like there's a reason this filter was in place, but I agree it's not clear why things are the way they are in many parts of this build pipeline. Apparently there's no zlib/libelf available in the 5.10 cross-compile context. Not sure how that's possible. @florianl would you be able to figure it out?

@ti-mo

ti-mo commented Sep 7, 2026

Copy link
Copy Markdown
Contributor

Looks like arm64 versions of libelf and zlib need to be installed due to torvalds/linux@e96f2d64c812. This is no longer required as of 5.18+. I'll try the build locally and push some patches.

ti-mo and others added 2 commits September 7, 2026 16:57
These still build libbpf for bpf_preload_umd and require those specific
ARM64 dependencies to be installed.

Signed-off-by: Timo Beckers <timo@isovalent.com>
With a8de719 the Linux kernel versions were updated and the 7.1 tag moved from 7.1.1 to 7.1.12.

This change was noticed, as in our CIs 7.1 is used for testing against amd64 and arm64 Linux kernel. But with the mentioned commit, no 7.1.12 arm64 image was created and our CI started to fail. 

To fix this, always build an arm64 image and don't limit it to static tags.

Signed-off-by: Florian Lehner <florianl@users.noreply.github.com>
@ti-mo
ti-mo merged commit ae9bece into main Sep 8, 2026
11 checks passed
@ti-mo
ti-mo deleted the florianl-patch-1 branch September 8, 2026 06:49
@florianl

florianl commented Sep 8, 2026

Copy link
Copy Markdown
Contributor Author

@ti-mo sorry for responsing just now. I started looking into it but wanted to do more testing bevore sharing something.
In https://gist.github.com/florianl/b537f13da3f96cdcb91f71518ba98d34 you find my current working (for me) solution. I'm not sure, I'm covering all corner-cases, so I didn't share it yet.

@ti-mo

ti-mo commented Sep 8, 2026

Copy link
Copy Markdown
Contributor

@florianl This should already be fixed and working, arm64 images are built for all supported kernel versions.

@florianl

florianl commented Sep 8, 2026

Copy link
Copy Markdown
Contributor Author

ah 🙈 I didn't see the update. Thanks for fixing it!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants