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

ARM64 K8up #510

Merged
merged 6 commits into from
Sep 23, 2021
Merged

ARM64 K8up #510

merged 6 commits into from
Sep 23, 2021

Conversation

cimnine
Copy link
Contributor

@cimnine cimnine commented Sep 17, 2021

Summary

This has no prio. But I hoped it would be a low hanging fruit.
The aim of this PR is to provide ARM64 binaries and Docker images for K8up.

Todo:

  • Build & Push ARM64 release binaries with goreleaser
  • Build & Push ARM64 release Docker images with goreleaser
  • Enable Github Actions to build multi-arch images
  • Build ARM64 snapshot images with make docker-build (see .github/workflows/master.yml)
  • Manual Test on ARM64 system
  • evtl. automated test on ARM64 system

Checklist

  • Keep pull requests small so they can be easily reviewed.
  • Categorize the PR by setting a good title and adding one of the labels:
    bug, enhancement, documentation, change, breaking,
    as they show up in the changelog
  • Update the documentation.
  • Update tests.
  • Link this PR to related issues.

@cimnine cimnine added the enhancement New feature or request label Sep 17, 2021
@ccremer
Copy link
Contributor

ccremer commented Sep 17, 2021

Do we really need ARM for local testing and building and e2e? Why not just build the images with goreleaser upon releases?

@ccremer
Copy link
Contributor

ccremer commented Sep 17, 2021

Also, the Dockerfile needs to download the restic binary from GH release page: https://github.com/restic/restic/releases
The images on Docker hub don't seem to feature ARM builds: https://hub.docker.com/r/restic/restic/tags?page=1&ordering=last_updated

Generally I think supporting ARM is on a best-effort basis. I wouldn't yet worry about local builds and tests, just making the images released with goreleaser upon Git pushes would be fine, nothing else.

What do others think @Kidswiss @tobru ?

@cimnine
Copy link
Contributor Author

cimnine commented Sep 17, 2021

Also, the Dockerfile needs to download the restic binary from GH release page: https://github.com/restic/restic/releases
The images on Docker hub don't seem to feature ARM builds: https://hub.docker.com/r/restic/restic/tags?page=1&ordering=last_updated

Good catch! I've opened restic/restic#3516. It would probably not be a huge deal to refactor the restic Dockerfile and Docker image build process to produce ARM64 images.

Generally I think supporting ARM is on a best-effort basis.

Yes.

I wouldn't yet worry about local builds and tests, just making the images released with goreleaser upon Git pushes would be fine, nothing else.

Would be fine by me :)

@cimnine cimnine force-pushed the ARMImages branch 3 times, most recently from 027849a to 8880eba Compare September 22, 2021 15:54
@cimnine cimnine self-assigned this Sep 23, 2021
@tobru
Copy link
Contributor

tobru commented Sep 23, 2021

I think this is a good idea to provide ARM images, this helps people using Raspis and ARM also get's used more and more in the cloud...

cimnine and others added 4 commits September 23, 2021 12:41
Since it is not likely that Restic provides ARM64
Docker images in the foreseeable future.
Co-authored-by: Tobias Brunner <tobias.brunner@vshn.ch>
@cimnine cimnine force-pushed the ARMImages branch 2 times, most recently from 426f0ad to 5f0e3b8 Compare September 23, 2021 12:18
Copy link
Contributor

@ccremer ccremer left a comment

Choose a reason for hiding this comment

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

This looks good now 🎉
Would be interesting if that actually works.

@bastjan don't you have an ARM machine where you could quickly test it out?

@cimnine
Copy link
Contributor Author

cimnine commented Sep 23, 2021

I believe make e2e-test K8UP_GOARCH=arm64 should be a pretty complete test, but only works if the Docker server runs on an arm64 host or runs in an arm64 VM.

@cimnine cimnine marked this pull request as ready for review September 23, 2021 12:29
@bastjan
Copy link
Contributor

bastjan commented Sep 23, 2021

@bastjan don't you have an ARM machine where you could quickly test it out?

I do! I'll test it quickly...

@bastjan
Copy link
Contributor

bastjan commented Sep 23, 2021

@bastjan don't you have an ARM machine where you could quickly test it out?

I do! I'll test it quickly...

Works on my machine™️

@cimnine cimnine enabled auto-merge September 23, 2021 17:53
@cimnine cimnine merged commit 7b0c751 into master Sep 23, 2021
@cimnine cimnine deleted the ARMImages branch September 23, 2021 17:57
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants