Fluxheim 1.6.7
·
236 commits
to main
since this release
Immutable
release. Only release title and notes can be modified.
Fluxheim 1.6.7 Release Notes
Fluxheim 1.6.7 starts the server-bootstrap cutover in the 1.6 Pingora-exit line. The active HTTP runtime still uses Pingora for this slice, but the listener inventory and process bootstrap settings now flow through Fluxheim-owned server plan types.
Changed
- Added config-to-
ServerPlanconstruction influxheim-server. - Moved HTTP, HTTPS, admin, metrics, stream, and UDP listener inventory into the Fluxheim server plan boundary.
- Moved daemon mode, PID/upgrade/certificate-reload socket paths, worker/thread settings, keepalive pool sizing, retry count, and graceful shutdown timing into the Fluxheim process plan boundary.
- Updated the root runtime Pingora adapter to consume the Fluxheim server plan for process configuration and HTTP, HTTPS, admin, and metrics listener registration.
- Updated root background-service registration gates to consume Fluxheim server-plan task metadata for cache purging, cache metrics, OTLP metrics export, ACME renewal, and certificate reload control.
- Added Fluxheim-owned foreground service intent metadata for proxy, admin, ops socket, metrics, stream proxy, and UDP proxy service registration.
- Added an explicit server-plan runtime adapter marker so the current Pingora compatibility runtime is a named adapter boundary before the native server cutover.
- Added server-plan listener lookup helpers so runtime/admin adapters consume HTTP, HTTPS, admin, and metrics listener addresses through
fluxheim-server. - Removed duplicated downstream TLS listener-address storage from
fluxheim-tls; HTTPS listener addresses now come from the server plan while TLS planning owns certificate selection and policy. - Moved downstream PROXY protocol listener policy and trusted-source parsing into
fluxheim-server, leaving the root runtime as a Pingora listener-policy adapter. - Split
fluxheim-serverprocess planning and PROXY protocol planning into focused modules so the new server crate stays under the 500-line modularity target. - Moved private Unix listener creation for the certificate reload control socket into
fluxheim-server, including stale socket replacement, mode0600, and nonblocking setup. - Split server listener and foreground service inventory types into focused
fluxheim-servermodules before the native bootstrap work adds more runtime state. - Moved downstream HTTP/2 hardening limits into a Pingora-neutral
fluxheim-serverpolicy plan, with the root runtime only adapting those values into PingoraH2Options. - Moved certificate reload control socket policy into
fluxheim-serverso the socket path, concurrency cap, and request read timeout are planned outside the Pingora runtime adapter. - Added server-plan lookup helpers for foreground services and background tasks, then made the root runtime adapter consume planned names when registering services.
- Added load-balancer health-check service intent to
ServerPlanso load-balancer foreground registration is planned alongside proxy, admin, metrics, stream, and UDP services. - Split server service-intent and background-task intent detection into focused
fluxheim-servermodules, reducing the server crate root while preserving the same runtime plan. - Split listener inventory construction into the
fluxheim-serverlistener module, keeping HTTP, HTTPS, admin, metrics, stream, and UDP listener parsing out of the server crate root. - Moved certificate reload control-plan construction into the focused
fluxheim-servercontrol module beside the control socket policy type. - Added listener-protocol ownership to foreground service specs so the server plan can map proxy, admin, metrics, stream, and UDP services back to their planned listeners.
- Updated the admin and metrics runtime adapters to consume service-owned listener lookups from the server plan.
- Added protocol-filtered service listener lookup and moved proxy HTTP/HTTPS listener registration onto the service-owned lookup path.
- Added a background-service adapter helper that consumes planned
BackgroundTaskSpecvalues directly, removing duplicated task kind/name wiring from plan-driven runtime services. - Updated admin service construction to consume planned control-plane and ops-socket service names from
ServerPlan. - Converted the admin self-healing watchdog registration to the typed background task spec path and removed the old name/kind free helper.
- Added admin self-healing watchdog intent to
ServerPlanso the admin adapter consumes the plannedRuntimeWatchdogtask instead of creating it locally. - Split the
ServerPlanimplementation into a focusedfluxheim-serverplan module, leaving the crate root as the public export and error surface. - Added an admin ops-socket endpoint plan to
ServerPlanand updated the admin adapter to consume planned socket path and mode values. - Added a first-service-listener lookup to
ServerPlanand updated admin service construction/logging to use the planned admin listener. - Added borrow-based service listener iterators to
ServerPlan, keeping the allocation-based address helpers as adapter conveniences. - Updated proxy HTTP and metrics listener registration to consume the borrow-based service listener views directly before adapting into Pingora.
- Hardened private Unix listener setup by binding under a temporary private umask, using fd-based
fchmodafter bind, and usingrustixpath operations for stale socket cleanup. - Removed the duplicate admin ops-socket mode parser from
fluxheim-server; server planning now delegates to the validated config accessor. - Documented that
ListenerSpec::proxy_protocol_enabled()reports only the server-level HTTP/HTTPS downstream PROXY protocol policy.
Tests
- Added focused
fluxheim-servertests for listener inventory, background-task intent, invalid listener handling, public-listener detection, and server-runner shutdown behavior. - Updated root runtime tests so Pingora
ServerConfmapping is exercised throughfluxheim-server. - Added a live admin-listener smoke test that starts Fluxheim, reaches the normal HTTP listener, checks unauthenticated admin health, checks authenticated admin status, and checks the local read-only ops socket.
- Verified plan-gated foreground service registration with live admin, observability, stream proxy, and UDP proxy smokes.
- Kept the new server crate files below the 500-line modularity target by splitting tests into
server_tests.rs,listener.rs,service.rs,process.rs, andproxy_protocol.rs. - Added a
fluxheim-serverregression test proving private Unix listener paths replace stale sockets, reject non-socket files, and enforce private permissions. - Added a
fluxheim-serverregression test for the downstream HTTP/2 hardening defaults consumed by the runtime adapter. - Added a
fluxheim-serverregression test for the certificate reload control socket plan and kept the live admin listener smoke in the verification set. - Extended
fluxheim-servertests to cover planned service and background-task lookup by kind. - Added a
fluxheim-serverregression test for load-balancer service intent and verified the runtime path with the live load-balancer smoke. - Kept the split server intent modules covered by
cargo test -p fluxheim-serverand the release-gated modularity policy check. - Verified the listener-planning split with
cargo test -p fluxheim-serverand the live admin listener smoke. - Split private Unix listener regression coverage into a focused Unix-only test module so the main server test module remains well below the 500-line target.
- Added
fluxheim-serverregression coverage for service-owned listener address lookup. - Added
fluxheim-serverregression coverage for protocol-filtered service listener lookup. - Extended
fluxheim-serverbackground-task inventory coverage to include the planned admin self-healing watchdog. - Split server background-task inventory tests into a focused module so the main server test file stays comfortably below the 500-line target.
- Added
fluxheim-serverregression coverage for admin ops-socket path and mode planning. - Added
fluxheim-serverregression coverage for first service-listener lookup. - Added
fluxheim-serverregression coverage for service listener iterator views. - Added
proxy,acme-clientruntime test coverage for disabled certificate reload control service planning.
Verification
cargo test -p fluxheim-servercargo test -p fluxheim-tlsRUSTFLAGS='-D warnings' cargo test --lib runtime::testscargo test --no-default-features --features proxy,acme-client --lib runtime::testsRUSTFLAGS='-D warnings' cargo test --lib admin::tests::admin_services_enable_watchdog_only_when_self_healing_is_enabledRUSTFLAGS='-D warnings' cargo check --workspacescripts/validate-modularity-policy.sh checkscripts/validate-pingora-dependency-policy.sh checkscripts/validate-pingora-boundary-policy.sh checkscripts/smoke_admin_listener.shFLUXHEIM_SMOKE_SKIP_CORE_MATRIX=1 scripts/smoke_1_0_core.shscripts/smoke_observability_local.shscripts/smoke_stream_proxy.shscripts/smoke_udp_proxy.shscripts/stable_release_gate.shscripts/podman_smoke.sh
Checksums And Signatures
- Commit:
f66f874fb1a9f0e75914a99fccd06afefd46cf7b - 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:
1f39714a85526df3144d2f6c97045dceb0e23cf6dbaf05372f574e73124611dd fluxheim-1.6.7.tar.gz0cf03e442e9ce76f2253e19309640caecb32eb46821e55821ee2b00808e33336 fluxheim-1.6.7.zip
- Binary checksums:
- x86_64:
de241831f608ce39d23fe4918028bc872ed9238ba885755642806e4d9ffd6f9a fluxheim-1.6.7-full-x86_64-linux.tar.gz657102fe68cba1588d729d292aa758eb7e4bc261ca13f65102b70b780af650a7 fluxheim-1.6.7-cache-x86_64-linux.tar.gze33ac308901a3ce45fa744f36e5da8d0d8b00ea977db8bbd20c2e45c165f2934 fluxheim-1.6.7-proxy-x86_64-linux.tar.gzfc5bf8293fff0372f6a28c3202e2bf18c8960915d8bbe9c3ff51b1c73e9d419d fluxheim-1.6.7-php-x86_64-linux.tar.gz5c690524371654f5fed23ec06e6c83d262e3dc66c6cec644834564000149747a fluxheim-1.6.7-load-balancer-x86_64-linux.tar.gz1f31c53bd953586c5e570e2bb3eceb80a42e1f255813505630cfabbe343c37a4 fluxheim-1.6.7-config-tester-x86_64-linux.tar.gz
- aarch64:
03291a9a9d6d2982719294425c1f6f4a6817576f44d26f34bb916b0f4a27559c fluxheim-1.6.7-full-aarch64-linux.tar.gz995ba058b5e50a4faa4b4c6b6ba297450a61cdf4972bf1f577bbcc2f30f95fbb fluxheim-1.6.7-cache-aarch64-linux.tar.gz1e65820980bee38ae470d2720e850cc02f3961d92285326eee721d4090f0de02 fluxheim-1.6.7-proxy-aarch64-linux.tar.gz8257bc890ecc2c1d2a48ebc3641924351210f824798475bd300fd595851979b6 fluxheim-1.6.7-php-aarch64-linux.tar.gz61d14171f60a69115e325b9c01c431fb8c4522839157f4fe7c7f701d2f023401 fluxheim-1.6.7-load-balancer-aarch64-linux.tar.gzeb00d0a89ce4ad974ddcf0bf7550ff9789b03bca6e0ffc2b5c6762b90b50ad3c fluxheim-1.6.7-config-tester-aarch64-linux.tar.gz
- macos:
bc56f59f553d5df1c40eef40fea395b70dcc46202ae7cd3b1d96605453cb3909 fluxheim-1.6.7-dev-aarch64-macos.tar.gz
- x86_64:
- SBOM checksums:
4e0ab313943d7cc0d42503de741682c74f3afb6f70a76ebba37394e19d6bac6d fluxheim.spdx.jsonc2a7211a6032d2909078d0cdde3ffccf2c1e084957172b1640ed566edd10adb9 fluxheim.cyclonedx.json
- Reproducible build:
d2a037bd18f20c3bce5cc8aef8b09280cc5b401f4f2b383afd352c3a5388e42cx86_64eb6b00f16f7634921f07dd00a8ba41e7fdd854646f5b5aeca4a50f960fc3f21baarch64c2bcdde93f7f1cf9bda2e829c806fceebd9c017f18990a1e4440e69e736e3ae4macos
- Full Build Container digests:
- Wolfi:
ghcr.io/valkyoth/fluxheim@sha256:7bc30cf0143f8042b96e79fa21d7d53e9fbdc0761e767e5123b6e9909d579e14 - Alpine:
ghcr.io/valkyoth/fluxheim@sha256:068a4d6e2510b6e46ba95b7ed5c55e37d7472f0fd8f0405d992844f4f92c3773 - SUSE Micro:
ghcr.io/valkyoth/fluxheim@sha256:5c128d368812896dac64e827a3a6cf52ee046d01febe559c58c19194d22a6177 - Debian:
ghcr.io/valkyoth/fluxheim@sha256:2191003c3357243f3e04321dce0e7aad2e9e61c7e9ccd5abc03c8119136af839
- Wolfi:
- Cache Build Container digests:
- Wolfi:
ghcr.io/valkyoth/fluxheim@sha256:185b6f1ec484b8ffa49e9047ef6a66d87c2650345a37fd899f90137c04cdc34f - Alpine:
ghcr.io/valkyoth/fluxheim@sha256:6c36e6c990db7b746bb2b1091f9b3f50124a46e3e5ed2be4922989c943f2a65c - SUSE Micro:
ghcr.io/valkyoth/fluxheim@sha256:02b25e90c16abdfb90eadaa621daf9bff65bf3e669549f90f885136030fe5b2d - Debian:
ghcr.io/valkyoth/fluxheim@sha256:1f3db39e3e00422f55adbe07a61b40f6866e3f3bc095c9132e7d8276ab26e7fe
- Wolfi:
- Proxy Build Container digests:
- Wolfi:
ghcr.io/valkyoth/fluxheim@sha256:8b08362e0bf8ac69354e069344a57b9acefde01f13f7eea8bda21c19fc925fcd - Alpine:
ghcr.io/valkyoth/fluxheim@sha256:96f0856d08a2f3a83487ab05884217f41f44c76f85e0a5c1947ee7599d8a1faa - SUSE Micro:
ghcr.io/valkyoth/fluxheim@sha256:a0e120f069d65d03946e579796269c11b84c67b3f9560cb189acb1c8b65b4d24 - Debian:
ghcr.io/valkyoth/fluxheim@sha256:9234f9e3feb7ae64f2150b4e2ef0f280bb03c944ff4417ca5dd66c9985f24ca2
- Wolfi:
- PHP Build Container digests:
- Wolfi:
ghcr.io/valkyoth/fluxheim@sha256:a6446551c9cfbb41b886225e39c37bec06d2ee96142ef43f49e044569a2b5c68 - Alpine:
ghcr.io/valkyoth/fluxheim@sha256:761cb9f973d67ef9df5981c0f881a465ffabb43d809ad33533ffb268c89bab28 - SUSE Micro:
ghcr.io/valkyoth/fluxheim@sha256:4dbdad85dd7d65010a4fd7dfca1e83b447cb687df1ce924e281d0d20798db099 - Debian:
ghcr.io/valkyoth/fluxheim@sha256:1a5a41d7fb0f1782eaa854f06746671675ef350d593482727ac668829af5fce0
- Wolfi:
- Load Balancer Build Container digests:
- Wolfi:
ghcr.io/valkyoth/fluxheim@sha256:4bbd10232a9945aede23529c03b6d129239a7a89155982fd6c07c26c884aa066 - Alpine:
ghcr.io/valkyoth/fluxheim@sha256:98acfe9ec875310686cc745fba76cc2cb1290077188980445e74a53d3fb0fb22 - SUSE Micro:
ghcr.io/valkyoth/fluxheim@sha256:2ce7f40f0eac879f818ffb0d37aa11fb10215d6e33b31eafd2faffe2eae4ed7b - Debian:
ghcr.io/valkyoth/fluxheim@sha256:d8b1660d8158ab8116c532813e7bc46dae1d1ca5277a017d69e9edbfab4bc482
- Wolfi:
- Tag signature:
Good "git" signature for 1921261+eldryoth@users.noreply.github.com with ED25519 key SHA256:EoLRQ5k4J5pYz3UMFmkrV798gYFNkToGS2xEPvebqB4