Repository navigation
v0.4.16
修正(セキュリティ)
- 共有の Gateway で、1 つのテナントの不正な値によって、そのポートのほかのテナントのルートが全部止まっていたのを直しました(#92)。HTTPRoute の正規表現(
(など)・ヘッダの値・RproxyMiddleware の形・ListenerSet のホスト名の数などを、rproxy と同じ規則でルートごとに確かめ、通らないルートだけをAccepted: False(UnsupportedValue)にして外します。それでも rproxy が断ったときは、ポートごとではなく原因のルートだけを外します(rproxy の答えの先頭の名前か、dry run で探します)。移行した Ingress・IngressRoute も同じです。 - コントローラが、クラスタ全体の Secret・ConfigMap を中身ごとメモリに持たないようにしました(#92)。メタデータだけを見張り、Gateway が参照するものだけを読みます。大きな ConfigMap を大量に作られても、コントローラが OOM で落ちなくなります。
- tokio 1.54.1(RUSTSEC-2026-0386)。
変更
- 不正な値を持つ HTTPRoute は、そのルートだけが
Accepted: Falseになります(これまではポートのルールごと外れていました)。 - RproxyMiddleware は、知らない項目や形の誤りがあると、そのルートが
Accepted: Falseになります。
rproxy: rproxy-api v0.4.16 · UI: TCP-UDP-rproxy-ui v0.4.9
Fixed (security)
- On a shared Gateway, one tenant's bad value no longer takes down every other tenant's routes on that port (#92). HTTPRoute regular expressions (such as
(), header values, RproxyMiddleware shapes, the number of ListenerSet host names and so on are checked per route with rproxy's own rules; only a failing route is left out withAccepted: False(UnsupportedValue). If rproxy still refuses, only the offending route is left out instead of the whole port (found from the name at the start of rproxy's answer, or with dry runs). Migrated Ingress and IngressRoute resources are handled the same way. - The controller no longer keeps every Secret and ConfigMap in the cluster in memory (#92). It watches metadata only and reads just what Gateways refer to, so many large ConfigMaps can no longer make it run out of memory.
- tokio 1.54.1 (RUSTSEC-2026-0386).
Changed
- An HTTPRoute with a bad value is now
Accepted: Falseon its own (before, the whole port's rule was dropped). - A RproxyMiddleware with unknown fields or a wrong shape makes its route
Accepted: False.
rproxy: rproxy-api v0.4.16 · UI: TCP-UDP-rproxy-ui v0.4.9