Fluxheim 1.5.7
Fluxheim 1.5.7 Release Notes
Fluxheim 1.5.7 starts the Fluxheim-native load-balancer core line. The goal is
to replace pingora-load-balancing as Fluxheim's load-balancer substrate while
preserving the current proxy/load-balancer configuration, admin API, status
shape, metrics, privacy-mode behavior, managed-cookie behavior, and selection
results as far as possible.
Changed
- Add a Fluxheim-owned backend/backend-set model for load-balancer upstream
construction. - Route static upstream pools, file-refreshed upstream discovery, and
DNS-refreshed upstream discovery through the Fluxheim backend model. - Move backend keying, passive health, slow start, connection counters,
latency scoring, and backend policy evaluation onto a Fluxheim-owned backend
identity abstraction. - Build Maglev lookup tables from Fluxheim backend identities so Maglev
construction no longer depends on Pingora's concrete backend type. - Move file-refreshed and DNS-refreshed backend discovery behind a
Fluxheim-owned discovery trait. - Route runtime backend stats, bounded-load weight accounting, and disabled
upstream parsing through the Fluxheim backend identity/adapter layer. - Move slow-start state regression coverage onto Fluxheim backend identities,
keeping Pingora backend construction only in runtime-selection tests. - Replace Pingora's FNV weighted-hash selector for source, URI, header, and
cookie hash modes with Fluxheim-owned weighted-first FNV selection over the
current backend container. - Seed Fluxheim-owned FNV and consistent-hash selectors with per-boot routing
secrets so clients cannot precompute keys that target a chosen backend. - Replace Pingora's random selector dependency for power-of-two choices with a
Fluxheim-owned weighted random first pick and unique backend fallback scan. - Replace Pingora's consistent-hash selector dependency with Fluxheim-owned
rendezvous candidate ordering for consistent and bounded-load consistent
hash modes. Dynamic file/DNS discovery remains supported through the
Fluxheim runtime backend container. This is a valid consistent-hash
algorithm change and can remap existing consistent-hash affinity keys once
during the 1.5.7 upgrade. - Collapse load-balancer factory, stats, and priority-check helpers onto a
concrete readiness container now that Fluxheim owns all shipped selection
algorithms. - Centralize runtime backend container operations behind Fluxheim-owned
adapter helpers so readiness checks, backend enumeration, and health-check
metadata have one migration boundary. - Route static upstream pools through the same Fluxheim-owned discovery
adapter as file-refreshed and DNS-refreshed pools, removing Pingora's static
discovery wrapper from load-balancer construction. - Replace Pingora's generic
GenBackgroundServicewrapper for load-balancer
pools with a Fluxheim-ownedServiceWithDependentsimplementation while
preserving the current update and health-check loop. - Introduce a Fluxheim backend-container trait so selector and runtime-stat
code depend on Fluxheim's backend/readiness interface instead of the concrete
Pingora container type. - Centralize the remaining concrete runtime backend value type behind the
backend adapter module, keeping orchestration and discovery on Fluxheim's
adapter alias while the final value-type replacement remains isolated. - Wrap load-balanced pools in a Fluxheim runtime type before handing them to
selection, status, and background-service code. - Return Fluxheim runtime-wrapped load-balancer pools from discovery so
selection-mode construction no longer repeats Pingora container wrapping. - Keep the selector-facing backend-container trait implemented only by the
Fluxheim runtime wrapper. - Replace Pingora's load-balancer
Backendscontainer, discovery adapter, and
background update loop with Fluxheim-owned backend storage, readiness state,
discovery refresh, health-check scheduling, and shutdown handling. - Move load-balancer health checks behind a Fluxheim-owned health-check trait.
Existing TCP/HTTP health-check behavior is preserved, with Pingora connector
code kept inside the adapter layer instead of the runtime readiness boundary. - Hide the remaining runtime backend value type behind the load-balancer
backend adapter so selector and health-check modules use Fluxheim's boundary
type while the final backend-type replacement remains isolated. - Serialize per-backend load-balancer health state updates so enable/disable
changes and active health observations cannot overwrite each other under
concurrent health checks. - Store refreshed backend sets before refreshed health maps and use checked
wake-time arithmetic in the load-balancer background loop. - Clarify stream upstream TLS warnings for mixed hostname and IP upstream
routes where only IP connections skip hostname verification without
upstream_sni.
Boundaries
1.5.7 is the load-balancer substrate replacement line. It may replace backend
types, backend readiness storage, discovery adapters, health-check scheduling,
background update lifecycle, and remaining load-balancer factory errors with
Fluxheim-owned equivalents.
1.5.7 does not add restart-persistent load-balancer state, active-active
cross-node state sync, runtime add/remove-member, xDS/Kubernetes/Consul
discovery, UDP/GSLB, WAF, VPN/firewall appliance behavior, HTTP/3/QUIC, or
Wasm/iRules/Lua scripting.
Checksums And Signatures
- Commit:
4c3afcdf9d7e25546a48976d29b0e98adf80b23c - Local gate: GitHub CI green before tag; local release metadata checks passed
- CodeQL/code scanning: no open release-blocking alerts before tag
- Source archive checksums:
8f49121c205c615da93be23e54bc049659e1bc4a7c9d8906d27b75be3c1538fc fluxheim-1.5.7.tar.gzfb1c301f37a9ac31e24e88934ceef5b4551337eeeb50081565cea5d99e22606f fluxheim-1.5.7.zip
- Binary checksums:
- x86_64:
f117cf4b4de33bdb2bd52d2a388466b131d8ef39741afc062c1f315b308cdc80 fluxheim-1.5.7-full-x86_64-linux.tar.gz40feefd8a8db257e5c2098b23d218cbed4f8475cabc7634cde387b59151f7db7 fluxheim-1.5.7-cache-x86_64-linux.tar.gz4d4f8cf0cc82fb534309bd07a7c84dddff732f3d262a586dce4d17827f1a003a fluxheim-1.5.7-proxy-x86_64-linux.tar.gz04a8aac4afd569454f88142c58f965b4db5367255cbda996d23443fec8558dd8 fluxheim-1.5.7-php-x86_64-linux.tar.gz68fd806bc8ad3608b4c29cf51d38f1fe56638209325fa950653002366a3672a7 fluxheim-1.5.7-load-balancer-x86_64-linux.tar.gzf11ece9ffb287f51a270f14ff1d33fceb6682943af6270a1615d2dfe9bfb6ca8 fluxheim-1.5.7-config-tester-x86_64-linux.tar.gz
- aarch64:
e345b5d7db7ae6e23f590532dfbece32422ee6dfc2b4f666b377923920bd1d05 fluxheim-1.5.7-full-aarch64-linux.tar.gz9d012092191af3172b8707ae740669b70c69e09d8f9f167f2c524dc54e7b7e7e fluxheim-1.5.7-cache-aarch64-linux.tar.gze9bd81f3a3eede386ba4a5b046c3bdd18a4f7784aaddcf4707d449746a5d1df2 fluxheim-1.5.7-proxy-aarch64-linux.tar.gzcc4278c3c5910f0fdaeed321c9ffb34f2aedb33695468fc14e6300875fef7ba7 fluxheim-1.5.7-php-aarch64-linux.tar.gz66691b9fc38f3d03b1f0ff0235ccae8fddf404522ac0735d75e59580b864d141 fluxheim-1.5.7-load-balancer-aarch64-linux.tar.gze898abaa74b1abe2f83c4c2e0c003a6c701c56dc98c30e6f76d4d516d8f43448 fluxheim-1.5.7-config-tester-aarch64-linux.tar.gz
- macos:
4ecb5c08af2f38b6346d5b62e6e3ab47301de49021489f81be39fdf16dfedde1 fluxheim-1.5.7-dev-aarch64-macos.tar.gz
- x86_64:
- SBOM checksums:
621a99aaf138cf333a83886dd4df7c389d52f2d4adf575c141cb86b42cac61b2 fluxheim.spdx.json7beb909f309a4ee7d55d1b9229a23e9b8c5b9f68f51bf4626b69f7b1e975f49e fluxheim.cyclonedx.json
- Reproducible build:
7ed55ef583046f5be854e479b739c293e7395c9149e96bd6ddf2236f7d4c1aacx86_64b60192a433a1e4a560a4aea8aca2138f58d5ebbffbab1bf072893f032a91d2f4aarch6446e39a003856196efef4338d17400c5d3eded2893a91fe6572b125ceaddc7e55macos
- Full Build Container digests:
- Wolfi:
ghcr.io/valkyoth/fluxheim@sha256:8bcae75fe6c2471521d84da30ea01934312a5d09ae97a7316008d710727902b0 - Alpine:
ghcr.io/valkyoth/fluxheim@sha256:4430892fb03a3ec058eeb3990daa82052c22eeef7856f775f09a150235f7ab49 - SUSE Micro:
ghcr.io/valkyoth/fluxheim@sha256:aaaadd88849f1b7477aaff44d5b39a27f8b986d6cb1e1f588ef4e4772f9b7f2d - Debian:
ghcr.io/valkyoth/fluxheim@sha256:70031ecc56edcdce8dedc32f07185df62a77f89b183889c1a3ba7de3016fbdcf
- Wolfi:
- Cache Build Container digests:
- Wolfi:
ghcr.io/valkyoth/fluxheim@sha256:1df81acc5604cafe4b129c658bd375929c760afe5633160de51e3f56617d21f8 - Alpine:
ghcr.io/valkyoth/fluxheim@sha256:1a0f6585ba194a5e4eb623096bc5ef0301dc5fcc657f519836efa15118a7dd70 - SUSE Micro:
ghcr.io/valkyoth/fluxheim@sha256:5d9e1ba146e991398e5cd77fcef420b89c6d0d25d380680e26537a6c17b529a0 - Debian:
ghcr.io/valkyoth/fluxheim@sha256:0168740c6212ccca74b3b15761e80b7f05f8b44c98a7387d0af8109645d75ce2
- Wolfi:
- Proxy Build Container digests:
- Wolfi:
ghcr.io/valkyoth/fluxheim@sha256:6846c457893e98e136fbf0680d0fc1e2936fcd5aeb7e63caa4194e272566f47d - Alpine:
ghcr.io/valkyoth/fluxheim@sha256:4bd9f02e5b5b407a4f2683a2081596b3f56dde7b116e66746821c392a46e0219 - SUSE Micro:
ghcr.io/valkyoth/fluxheim@sha256:2b57e4d2b17f3768054ee67114b8fc3ca7630300bcc5f4a2f07e24a723e0c5aa - Debian:
ghcr.io/valkyoth/fluxheim@sha256:312cf1eec27c951392fedfab7ad22285264cc072cb8698a7a613c9feb7abc187
- Wolfi:
- PHP Build Container digests:
- Wolfi:
ghcr.io/valkyoth/fluxheim@sha256:5be25d8ebcf89c8066997ebfefceec6f9e09b0884eb0b0ff01680ea959ce0768 - Alpine:
ghcr.io/valkyoth/fluxheim@sha256:196b9d0abb5784de8921300195e24c30cb9cca7ea1023f549e9d1c1b3b0306f9 - SUSE Micro:
ghcr.io/valkyoth/fluxheim@sha256:7e4395cf561235a5088bf2aa2a3ff94da11cd8be9ee4b4171fcc358e91582237 - Debian:
ghcr.io/valkyoth/fluxheim@sha256:c034b4a83ec2f92549371d86143811983055144c1c1f2d4da94047b19d62ad5b
- Wolfi:
- Load Balancer Build Container digests:
- Wolfi:
ghcr.io/valkyoth/fluxheim@sha256:94d6653ade3d38ca53211ff8feb82024cb37c582be432d9faa8cf350d6d852bc - Alpine:
ghcr.io/valkyoth/fluxheim@sha256:9a01dc94b407712dd1357f7c2a0bd1ea35de8ce918887787e5d422db77507ee2 - SUSE Micro:
ghcr.io/valkyoth/fluxheim@sha256:64b5835211c5937110035708a636f0c88263c018268283ddd2b94eb4b87762c0 - Debian:
ghcr.io/valkyoth/fluxheim@sha256:524a22a332c9c5f728e1918a1fbda12ab87d48c1c50086fea0e00d41cd0884a3
- Wolfi:
- Tag signature:
Good "git" signature for 1921261+eldryoth@users.noreply.github.com with ED25519 key SHA256:EoLRQ5k4J5pYz3UMFmkrV798gYFNkToGS2xEPvebqB4