- Replace form_urlencoded with RFC 3986 compliant URI encoding - Implement aws_uri_encode() matching AWS SigV4 spec exactly - Unreserved chars (A-Z,a-z,0-9,-,_,.,~) not encoded - All other chars percent-encoded with uppercase hex - Preserve slashes in paths, encode in query params - Normalize empty paths to '/' per AWS spec - Fix test expectations (body hash, HMAC values) - Add comprehensive SigV4 signature determinism test This fixes the canonicalization mismatch that caused signature validation failures in T047. Auth can now be enabled for production. Refs: T058.S1
63 lines
1.9 KiB
YAML
63 lines
1.9 KiB
YAML
id: T055
|
|
name: FiberLB Feature Completion
|
|
goal: Implement Maglev hashing, L7 load balancing, and BGP integration to meet PROJECT.md Item 7 requirements
|
|
status: planned
|
|
priority: P1
|
|
owner: peerB
|
|
created: 2025-12-12
|
|
depends_on: [T051]
|
|
blocks: [T039]
|
|
|
|
context: |
|
|
**Findings from T049 Audit:**
|
|
- "Major Feature Gaps: No Maglev, No BGP, No L7"
|
|
- Current implementation is L4 Round-Robin only.
|
|
|
|
**PROJECT.md Item 7 Requirements:**
|
|
- "MaglevによるL4ロードバランシング" (Maglev L4 LB)
|
|
- "BGP AnycastによるL2ロードバランシング" (BGP Anycast L2 LB)
|
|
- "L7ロードバランシング" (L7 LB)
|
|
- "AWS ELBみたいなことをできるようにしたい" (Like AWS ELB)
|
|
|
|
acceptance:
|
|
- Maglev hashing algorithm implemented for stable L4 backend selection
|
|
- L7 Load Balancing (HTTP/HTTPS) supported (Path/Host routing)
|
|
- BGP advertisement of VIPs (integration with BGP daemon or OVN)
|
|
- Configuration support for these new modes
|
|
|
|
steps:
|
|
- step: S1
|
|
name: Maglev Hashing
|
|
done: Implement Maglev algorithm for L4 pool type
|
|
status: pending
|
|
owner: peerB
|
|
priority: P1
|
|
notes: |
|
|
- Implement Maglev lookup table generation
|
|
- consistent hashing for backend selection
|
|
- connection tracking for flow affinity
|
|
|
|
- step: S2
|
|
name: L7 Load Balancing
|
|
done: Implement HTTP proxying capabilities
|
|
status: pending
|
|
owner: peerB
|
|
priority: P1
|
|
notes: |
|
|
- Use `hyper` or `pingora` (if feasible) or `axum`
|
|
- Support Host/Path based routing rules in Listener
|
|
- TLS termination
|
|
|
|
- step: S3
|
|
name: BGP Integration Research & Spec
|
|
done: Design BGP Anycast integration strategy
|
|
status: pending
|
|
owner: peerA
|
|
priority: P1
|
|
notes: |
|
|
- Research: GoBGP sidecar vs Rust native (e.g. `zettabgp`)
|
|
- Decide how to advertise VIPs to the physical network or OVN gateway
|
|
|
|
evidence: []
|
|
notes: |
|
|
Extends FiberLB beyond MVP to full feature set.
|