ubicloud/rhizome/host/bin
Enes Cakir 5e34c5a809 Use htcat to download image from presigned URL
We previously used curl to download images from presigned URLs. This
worked well for our internal MinIO cluster, but with R2 presigned URLs,
curl performs poorly since it downloads with a single connection.

First, I benchmarked aria2 [^1], which supports multiple connections.
However, Daniel recommended using a memory-safe tool instead and
suggested htcat [^2], which his team wrote about 10 years ago. After a
few small improvements, htcat now works well for our use case and
delivers performance comparable to aria2.

If the URL is from R2, we now use htcat to download it with multiple
connections.

Since htcat pipes to stdout, we calculate the sha256 hash while
downloading similar to how we did with curl.

I will download the htcat binary on existing hosts.

[^1]: https://aria2.github.io/
[^2]: https://github.com/htcat/htcat
2025-08-27 12:43:23 +03:00
..
delete-old-serial-logs Restore Ruby 3.2 syntax to rhizome 2025-04-26 08:34:47 +09:00
download-boot-image Use htcat to download image from presigned URL 2025-08-27 12:43:23 +03:00
download-cloud-hypervisor Refactor CloudHypervisor 2025-04-29 16:45:24 -07:00
download-firmware Refactor CloudHypervisor 2025-04-29 16:45:24 -07:00
prep_host.rb Use htcat to download image from presigned URL 2025-08-27 12:43:23 +03:00
reboot-host Add a binary in rhizome to reboot host. 2023-10-03 12:48:52 -07:00
setup-cert-server Refactor setup and stop_and_remove steps into cert_server_setup 2025-01-09 16:44:52 +01:00
setup-grafana Add grafana installation strand 2025-06-25 10:59:23 +02:00
setup-nftables.rb Fix setup-nftables for VmHosts without additional subnets 2024-03-26 09:40:53 +01:00
setup-node-exporter Add node_exporter installation prog to VmHost 2025-06-25 10:59:23 +02:00
setup-slice Add rhizome side of SliceSetup. 2025-01-10 19:21:41 -08:00
setup-spdk Rhizome: Use fewer resources for SPDK on smaller hosts. 2025-04-28 20:27:45 -07:00
setup-sysstat Install Sysstat. 2023-11-10 12:54:43 -08:00
setup-vhost-block-backend Rhizome: Ubiblk Setup 2025-06-11 11:24:17 -07:00
setup-vm Allow Prog::Vm::Nexus.assemble to choose cloud-hypervisor version 2025-05-06 11:16:04 -07:00
storage-key-tool Add rhizome multi-device storage abstractions 2024-01-24 09:19:33 -08:00