Skip to content

add aarch64 bundle for integration test#3530

Open
saku3 wants to merge 1 commit into
youki-dev:mainfrom
saku3:feat-add-aarch64bundle
Open

add aarch64 bundle for integration test#3530
saku3 wants to merge 1 commit into
youki-dev:mainfrom
saku3:feat-add-aarch64bundle

Conversation

@saku3
Copy link
Copy Markdown
Member

@saku3 saku3 commented May 5, 2026

Description

This adds an aarch64 bundle.

I would like to run youki on Lima on macOS and also run the integration tests on aarch64.

On Lima, uname -m returns aarch64, and youki is built as an aarch64 binary as well.

I created the bundle as follows:

mkdir -p bundle/rootfs
CID=$(docker create --platform=linux/arm64 busybox:musl)
docker export "$CID" | tar -C bundle/rootfs -xf -
docker rm "$CID"
tar --uid 0 --gid 0 --uname root --gname root -czf bundle-aarch64.tar.gz bundle/

Also, the personality test does not work correctly unless it runs on x86_64, so I will skip it.
This is because PER_LINUX32 makes uname(2) return a 32-bit architecture name, such as i686 instead of x86_64, and this behavior is architecture-dependent.
See: https://man7.org/linux/man-pages/man2/personality.2.html

Type of Change

  • Bug fix (non-breaking change that fixes an issue)
  • New feature (non-breaking change that adds functionality)
  • Breaking change (fix or feature that would cause existing functionality to not work as expected)
  • Documentation update
  • Refactoring (no functional changes)
  • Performance improvement
  • Test updates
  • CI/CD related changes
  • Other (please describe):

Testing

  • Added new unit tests
  • Added new integration tests
  • Ran existing test suite
  • Tested manually (please provide steps)

Related Issues

Fixes #3311

Additional Context

@saku3 saku3 added the kind/cleanup Categorizes issue or PR as related to cleaning up code, process, or technical debt. label May 5, 2026
Copy link
Copy Markdown
Contributor

@nayuta723 nayuta723 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It looks like the aarch64 tests may not have been added to CI. Could you please check?

Comment on lines 65 to 71
fn personality_for_linux32() -> TestResult {
personality_for_linux(LinuxPersonalityDomain::PerLinux32, "i686")
}

fn personality_for_linux64() -> TestResult {
personality_for_linux(LinuxPersonalityDomain::PerLinux, "x86_64")
}
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Rather than failing because it’s aarch, I suspect the failure is caused by the expected value being different here.
I think it should work if we adjust the expected values for each architecture. What do you think?

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

That may be true, but I do not intend to address it in this PR.

runc also runs this test only on x86_64:

https://github.com/opencontainers/runc/blob/eb7eaf19b6eec5d1143b257057899e4a7b738c81/tests/integration/personality.bats#L6

Personally, I do not think we need to handle this here, but if it is necessary, I can create a separate issue for it.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I see, that makes sense!
For now, it seems reasonable to follow runc and support only x86_64.

It would also be helpful if you could leave a comment in the code explaining that supporting other architectures is technically possible, but intentionally not implemented at this time.

@saku3
Copy link
Copy Markdown
Member Author

saku3 commented May 7, 2026

It looks like the aarch64 tests may not have been added to CI. Could you please check?

I did not intend to add aarch64 tests to CI in this PR.

The purpose of this PR is only to make the integration tests work in a Lima environment.

If adding aarch64 tests to CI is necessary, I can open a separate issue

@saku3 saku3 requested a review from nayuta723 May 7, 2026 11:39
Copy link
Copy Markdown
Contributor

@nayuta723 nayuta723 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I only left one comment — once that’s addressed, the rest looks LGTM!

If adding aarch64 tests to CI is necessary, I can open a separate issue

I think we should support aarch64 as well.
Could you create a separate issue for that?

@saku3
Copy link
Copy Markdown
Member Author

saku3 commented May 7, 2026

@nayuta723

Thanks.

I think we should support aarch64 as well.
Could you create a separate issue for that?

Added.

#3533

It would also be helpful if you could leave a comment in the code explaining that supporting other architectures is technically possible, but intentionally not implemented at this time.

I added a comment.

@nayuta723
Copy link
Copy Markdown
Contributor

LGTM

Comment thread scripts/contest.sh

# Pick arch-specific bundle when available.
# Fall back to bundle.tar.gz (x86_64) if there is no
# arch-specific tarball.
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Let's add a warning log for the fallback case.

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

added.

@saku3 saku3 force-pushed the feat-add-aarch64bundle branch from 6af15db to 4c1b530 Compare May 17, 2026 06:39
Signed-off-by: Yusuke Sakurai <yusuke.sakurai@3-shake.com>
@saku3 saku3 force-pushed the feat-add-aarch64bundle branch from 4c1b530 to cc31481 Compare May 18, 2026 11:13
@saku3 saku3 requested a review from utam0k May 18, 2026 11:24
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

kind/cleanup Categorizes issue or PR as related to cleaning up code, process, or technical debt.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Integration test failure: kill_start_container_test reports "cannot kill container due to incorrect state" on Linux ARM64

3 participants