Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Multi-arch support #28

Merged
merged 2 commits into from
Feb 11, 2021
Merged

Multi-arch support #28

merged 2 commits into from
Feb 11, 2021

Conversation

detiber
Copy link
Contributor

@detiber detiber commented Feb 5, 2021

No description provided.

@thebsdbox
Copy link
Contributor

Awesome work! @detiber 😀

@detiber detiber force-pushed the ARM branch 4 times, most recently from a30c577 to 6dbe664 Compare February 8, 2021 16:23
@detiber
Copy link
Contributor Author

detiber commented Feb 9, 2021

@gianarb This is currently in a state where I've been able to validate that things are in a functional state:

  • multi-arch kernel builds using buildx create functional kernels
  • multi-arch container builds for tink-docker and bootkit using buildkit
  • linuxkit builds for both amd64 and arm64 are functional.

In order for this to work for CI and automated deployment we'll likely need a few additional things:

  • A self-hosted runner pre-configured with a buildx builder configured with native nodes for building the kernel image when needed. (Other use cases can likely remain on the default hosted runners)
  • Container registry to push images to from the buildx builds, and appropriate credentials configured in the repo settings
  • GitHub Workflow changes to support ^

Not sure how you want to proceed. I'm also wondering if it would make sense to migrate the project to the Tinkerbell org before trying to tackle the above.

@detiber
Copy link
Contributor Author

detiber commented Feb 10, 2021

Things look mostly functional now for the CI builds. The kernel ci build still has a minor issue (though not causing it to fail) related to pushing the multi-arch manifest (but not the underlying arch-specific images) to an insecure registry, caused by this buildx bug: docker/buildx#354

If things look good, I can go ahead and rebase/squash the changes.

on:
pull_request:
paths:
- kernel/**
Copy link
Contributor

Choose a reason for hiding this comment

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

NICE, wondered how this hung together

Copy link
Contributor

@thebsdbox thebsdbox left a comment

Choose a reason for hiding this comment

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

From my limited understanding of Makefiles, this all looks good to me 👍 Excellent stuff!

Copy link
Contributor

@markjacksonfishing markjacksonfishing left a comment

Choose a reason for hiding this comment

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

This is awesome work!
/lgtm

- Add an initial aarch64 kernel config
- Use buildx for multi-arch kernel images
- multi-arch support for hook
- Rename tinkie to hook
- multi-arch
@detiber detiber changed the title [WIP] Multi-arch support Multi-arch support Feb 11, 2021
@detiber
Copy link
Contributor Author

detiber commented Feb 11, 2021

Squashed, should be ready to go.

@gianarb gianarb merged commit aa5ae82 into tinkerbell:master Feb 11, 2021
@gianarb
Copy link
Contributor

gianarb commented Feb 11, 2021

Awesome @detiber !!! Thanks

mmlb pushed a commit to mmlb/tinkerbell-hook that referenced this pull request Jul 19, 2021
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.

4 participants