-
Notifications
You must be signed in to change notification settings - Fork 166
Add support for Mikrotik CHR arm64 images #428
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
base: master
Are you sure you want to change the base?
Conversation
- Adjust vrnetlab to support aarch64. - Bump routeros docker image to debian trixie for newer more performant qemu version - Install python 3.12 with uv. To keep backwards compatibility
|
works great and so much faster on my macbp! |
|
also tested on amd64 now. I consider this done |
|
@mpfz0r not sure if using -arm64 is best choice when trying to make this as easy to use as possible you might wanna get rid of the dash? which fails when you want simple env switches unless one does: export ARCH="-arm64" which is also kind of awkward? So if you create the image without the - we loose a bit readability but do gain quite some simple flexibility |
|
I would've like to keep this a semantic version. I'm either gonna tag the amd64 image with an additional tag |
- Support cross-compilation via DOCKER_PLATFORM in makefile.include - Auto-detect platform from chr-*-arm64.vdi filenames - Add docker-build-extra and docker-push-image-extra targets which can optionally be implemented - Tag amd64 images with both :version and :version-amd64
|
I've added this and also cross platform build support, so you dont need to resort to two machines when building this. I've started looking into multi-arch images, but since this needs a running registry, I think this doesn't necessarily need to be implemented in vrnetlab. |
|
@hellt any chance this can get merged or is there anything missing? |
|
I was waiting on @mpfz0r to conclude the testing. Is everything complete? |
|
@hellt yes, it is. there was a bit of a back and forth on how we tag the images. But I consider this ready now. we might want to think on whether we can update the base image for all platforms to benefit from a newer qemu. |
| ] | ||
| ) | ||
|
|
||
| machine = "pc" if self.arch == "x86_64" else "virt,virtualization=on -accel tcg,tb-size=128" |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I don't think we can take this in for the common library. It seems quite specific to CHR and not universally applied to all platforms.
Instead, I would propose adding the necessary variables that the CHR would provide to the class constructor when the certain arch is detected
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@mpfz0r @mischadiehm I would suggest you to check how to minimize the custom touches done to the common/vrnetlab.py
some added things there are CHR specific, and should be in the CHR code, not in the common
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I don't think we can take this in for the common library. It seems quite specific to CHR and not universally applied to all platforms.
hmm, my thinking was that if we get non-x86 images from other vendors, at least picking the right qemu-system-${self.arch} would have a place in common.
The other ones are debatable I guess.
The tcg flags are for optimization and should help other platforms as well.
I'm not entirely sure other future arm64 platforms would need the same UEFI firmware, so I'd make this one into CHR specific.
DOCKER_PLATFORMvariable)