-
Notifications
You must be signed in to change notification settings - Fork 426
Add Rust-based rabbitmqadmin-ng and remove Python
#780
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
Add Rust-based rabbitmqadmin-ng and remove Python
#780
Conversation
rabbitmqadmin-ng build stage to Ubuntu Dockerfilesrabbitmqadmin-ng build stage to Dockerfiles
da577d7 to
612343e
Compare
rabbitmqadmin-ng build stage to Dockerfilesrabbitmqadmin-ng build stage to Dockerfile-management.template
432a7f1 to
75f8e3e
Compare
rabbitmqadmin-ng build stage to Dockerfile-management.templaterabbitmqadmin-ng with Python fallback
75f8e3e to
e5aec78
Compare
ce7f657 to
6f0223b
Compare
|
I'd leave the Python version behind entirely. It's no longer maintained. Plus this tool is entirely optional. The OCI can be used without it. |
171dafe to
64e0428
Compare
33786ab to
a70d772
Compare
a70d772 to
32daba6
Compare
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 would remove rabbitmqadmin v1, or rather, not drag it along.
It is no longer maintained besides truly exceptional issues like security vulnerabilities (which are unlikely to be reported for such a tool).
One of the goals of rabbitmqadmin v2 as a native binary was to avoid numerous [older] Python CVEs that plagued several RabbitMQ images due to the inclusion of rabbitmqadmin v1.
Finally, there are some breaking changes in rabbitmqadmin v2 but the users seem to be adapting to them without any complaints, and rabbitmqadmin v2 is so far ahead in terms of features and test coverage that it feels like shipping two different tools at this point.
rabbitmqadmin v2 is a nice-to-have in this image. If the Rust toolchain does not support a particular platform, well, it won't be available but everything else that this image offers will be.
rabbitmqadmin-ng with Python fallbackrabbitmqadmin-ng and remove Python
32daba6 to
5f3f9c0
Compare
|
❤️ Am I reading correctly that where we've ended up here is roughly equivalent to the official released binaries on https://github.com/rabbitmq/rabbitmqadmin-ng/releases/tag/v2.17.0, but I guess also with support for Alpine/musl? 😅 While I do appreciate that you've managed to get this working, I now wonder if we should instead just be downloading those official release binaries, and if Alpine/musl support really is important enough that we need to keep it, we see if Michael would be open to releasing binaries for that platform over there? 🙈 Personally, I think we can make a pretty compelling case that the Alpine variants even exist in the first place primarily for the size consideration, so it's pretty reasonable for them to not include this, but I'd probably couple that with waiting to remove the Python-based version until at least the next patch release if not the next minor/major? 🤔 |
By compiling from source I'd like to think we'd support more architectures than the official binaries. But, if we just want to have Ubuntu |
|
FWIW when I hear arguments for using the Alpine variant, it always comes down to the perceived security aspect. I understand that there is a connection between how much stuff you cram into an image and its attach surface but Either way, this is a nice-to-have and limiting it to the Ubuntu variant with fewer platforms supported is fine with me. The only limiting factor to how many platforms are currently covered by the binary releases of |
|
I'll modify the PR to the following:
|
831da08 to
26649e8
Compare
|
@michaelklishin @tianon OK, all set. It's much simpler now 😸 |
The RabbitMQ management images now include the Rust-based `rabbitmqadmin-ng` CLI tool when possible. The deprecated Python version of `rabbitmqadmin` will no longer be available. This change adds a two-stage build to `Dockerfile-management.template`: - **Download stage**: Attempts to download `rabbitmqadmin-ng` from GitHub release for the target architecture on Ubuntu only. - **Final stage**: Copies the Rust binary if download succeeded. The `versions.sh` script fetches the latest `rabbitmqadmin-ng` release tag from the GitHub API and calculates SHA256 checksums and download URLs for the release artifacts for x86_64 and aarch64 architectures.
26649e8 to
dac149a
Compare
|
Hooray! |
Changes: - docker-library/rabbitmq@8e6c07c: Merge pull request docker-library/rabbitmq#780 from lukebakken/lukebakken/docker-librarygh-768-rabbitmqadmin-ng - docker-library/rabbitmq@dac149a: Add Rust-based `rabbitmqadmin-ng` and remove Python - docker-library/rabbitmq@14b8a4a: Update 4.0 to openssl 3.5.4 - docker-library/rabbitmq@7264d76: Update 4.0 to openssl 3.5.3 - docker-library/rabbitmq@c879782: Update 4.0 to 4.0.9 - docker-library/rabbitmq@85ee627: Update 4.0 to 4.0.8 - docker-library/rabbitmq@1519c4c: Merge pull request docker-library/rabbitmq#779 from lukebakken/lukebakken/fix-warnings
Changes: - docker-library/rabbitmq@0d65bb3: Merge pull request docker-library/rabbitmq#783 from infosiftr/refactor - docker-library/rabbitmq@c57ff6e: Slightly refactor new `rabbitmqadmin` code - docker-library/rabbitmq@8e6c07c: Merge pull request docker-library/rabbitmq#780 from lukebakken/lukebakken/docker-librarygh-768-rabbitmqadmin-ng - docker-library/rabbitmq@dac149a: Add Rust-based `rabbitmqadmin-ng` and remove Python - docker-library/rabbitmq@14b8a4a: Update 4.0 to openssl 3.5.4 - docker-library/rabbitmq@7264d76: Update 4.0 to openssl 3.5.3 - docker-library/rabbitmq@c879782: Update 4.0 to 4.0.9 - docker-library/rabbitmq@85ee627: Update 4.0 to 4.0.8 - docker-library/rabbitmq@1519c4c: Merge pull request docker-library/rabbitmq#779 from lukebakken/lukebakken/fix-warnings
Changes: - docker-library/rabbitmq@b9786fd: Merge pull request docker-library/rabbitmq#784 from infosiftr/alpine3.23 - docker-library/rabbitmq@f5aa704: Update to Alpine 3.23 - docker-library/rabbitmq@0d65bb3: Merge pull request docker-library/rabbitmq#783 from infosiftr/refactor - docker-library/rabbitmq@c57ff6e: Slightly refactor new `rabbitmqadmin` code - docker-library/rabbitmq@8e6c07c: Merge pull request docker-library/rabbitmq#780 from lukebakken/lukebakken/docker-librarygh-768-rabbitmqadmin-ng - docker-library/rabbitmq@dac149a: Add Rust-based `rabbitmqadmin-ng` and remove Python - docker-library/rabbitmq@14b8a4a: Update 4.0 to openssl 3.5.4 - docker-library/rabbitmq@7264d76: Update 4.0 to openssl 3.5.3 - docker-library/rabbitmq@c879782: Update 4.0 to 4.0.9 - docker-library/rabbitmq@85ee627: Update 4.0 to 4.0.8 - docker-library/rabbitmq@1519c4c: Merge pull request docker-library/rabbitmq#779 from lukebakken/lukebakken/fix-warnings
Changes: - docker-library/rabbitmq@8991001: Update 4.2 to rabbitmqadmin 2.18.0 - docker-library/rabbitmq@9b8508a: Update 4.1 to rabbitmqadmin 2.18.0 - docker-library/rabbitmq@a541e82: Update 4.0 to rabbitmqadmin 2.18.0 - docker-library/rabbitmq@7496c53: Update 3.13 to rabbitmqadmin 2.18.0 - docker-library/rabbitmq@b9786fd: Merge pull request docker-library/rabbitmq#784 from infosiftr/alpine3.23 - docker-library/rabbitmq@f5aa704: Update to Alpine 3.23 - docker-library/rabbitmq@0d65bb3: Merge pull request docker-library/rabbitmq#783 from infosiftr/refactor - docker-library/rabbitmq@c57ff6e: Slightly refactor new `rabbitmqadmin` code - docker-library/rabbitmq@8e6c07c: Merge pull request docker-library/rabbitmq#780 from lukebakken/lukebakken/docker-librarygh-768-rabbitmqadmin-ng - docker-library/rabbitmq@dac149a: Add Rust-based `rabbitmqadmin-ng` and remove Python - docker-library/rabbitmq@14b8a4a: Update 4.0 to openssl 3.5.4 - docker-library/rabbitmq@7264d76: Update 4.0 to openssl 3.5.3 - docker-library/rabbitmq@c879782: Update 4.0 to 4.0.9 - docker-library/rabbitmq@85ee627: Update 4.0 to 4.0.8 - docker-library/rabbitmq@1519c4c: Merge pull request docker-library/rabbitmq#779 from lukebakken/lukebakken/fix-warnings
Fixes #768
The RabbitMQ management images now include the Rust-based
rabbitmqadmin-ngCLI tool when possible. The deprecated Python version ofrabbitmqadminwill no longer be available.This change adds a two-stage build to
Dockerfile-management.template:rabbitmqadmin-ngfrom GitHub release for the target architecture on Ubuntu only.The
versions.shscript fetches the latestrabbitmqadmin-ngrelease tag from the GitHub API and calculates SHA256 checksums and download URLs for the release artifacts for x86_64 and aarch64 architectures intoversions.jsonand templated into the generated management Dockerfiles.