Skip to content

v0.4.2

Choose a tag to compare

@github-actions github-actions released this 08 Oct 12:57
· 132 commits to main since this release
502351a

追加

  • Gateway ごとに managed の rproxy の形を変えられるようになりました(#36)。新しい CRD RproxyGatewayParameters(短縮名 rpgwp)。
    • GatewayClass の parametersRef(コントローラの namespace のもの)で既定を、Gateway の spec.infrastructure.parametersRef(同じ namespace のもの)で上書きを指定します。
    • replicas・resources・PDB・topologySpread・probe・停止の時間などを Gateway ごとに変えられます。nodeSelector・tolerations・affinity・priorityClass・Service の種類などは、クラスの policy で許したときだけ利用者が変えられます。イメージと環境変数はクラスだけが決めます。
    • 誤りは Accepted: False(InvalidParameters、項目の名前つき)。すでに動いている rproxy は、参照が誤りになっても最後の正しい形のまま動かし続けます。
    • namespace の admin に parameters を編集する権限を足す ClusterRole(rbac.aggregateToAdmin)。
  • Kustomize で入れられるようになりました(#37)。
    • リリースに install.yaml・install-fleet.yaml・crds.yaml を添付します。
    • リポジトリの config/(default・fleet・crd)を Kustomize の土台として使えます。config/samples/ に overlay の例があります。
    • chart のコントローラの設定は ConfigMap(envFrom)から読むようにしました。chart の値の書き方は変わりません。
  • rproxy を止めるとき、接続を流し終えてから止めます(#39)。rproxy は rproxy-api v0.4.1 になりました(イメージ ghcr.io/max3584/rproxy-gateway/rproxy:0.4.1)。
    • managed:止まり始めてから 15 秒は受け付けを続け(delay)、そのあと今の接続の終わりを 25 秒まで待ちます(drain)。値は managed.shutdown か parameters の rproxy.shutdown。
    • fleet:delay 5 秒・drain 25 秒(fleet.shutdown)。前に置くロードバランサや VIP のヘルスチェックは /readyz に向けてください。

変更

  • managed の rproxy の readiness は /readyz を見ます(止まり始めるとすぐ宛先から外れます)。止める前の待ち(preStop)は既定で付けません。比べた結果、MetalLB の L2 と Local ではこの形が最も途切れが短くなりました(Pod の削除・入れ替え・drain で 0.2〜1.2 秒)。
    • managed.preStopSeconds を指定している環境は、その値を今までどおり使います。
    • Pod の終了の猶予は delay + drain + 5 秒(既定 45 秒)です。
    • rproxy-api v0.4.0 のイメージを使っているときは、v0.4.1 の形(preStop 15 秒、/healthz)のままです。
  • Gateway からの parametersRef は、受け付けなかった v0.4.1 までと違い、使えるようになりました。fleet モードでは InvalidParameters です。
  • 新しい CRD を使うときは、helm upgrade の前に CRD を入れてください(helm upgrade は新しい CRD を入れません)。

rproxy: rproxy-api v0.4.1


Added

  • Per-Gateway shape of managed rproxy (#36): a new CRD RproxyGatewayParameters (short name rpgwp).
    • Defaults through the GatewayClass parametersRef (in the controller's namespace), overrides through the Gateway's spec.infrastructure.parametersRef (same namespace).
    • Replicas, resources, PDB, topology spread, probes, shutdown timing and more per Gateway. nodeSelector, tolerations, affinity, priorityClass, Service type and the like are open to tenants only when the class policy allows them; the image and environment are class-only.
    • Errors set Accepted: False (InvalidParameters, naming the field). A running rproxy keeps its last good shape when its reference turns invalid.
    • A ClusterRole aggregated to namespace admins for editing parameters (rbac.aggregateToAdmin).
  • Install with Kustomize (#37).
    • Releases attach install.yaml, install-fleet.yaml and crds.yaml.
    • config/ in the repository (default, fleet, crd) works as a Kustomize base; overlay examples are in config/samples/.
    • The chart's controller settings now come from a ConfigMap (envFrom); chart values are unchanged.
  • rproxy drains connections before stopping (#39). rproxy is now rproxy-api v0.4.1 (image ghcr.io/max3584/rproxy-gateway/rproxy:0.4.1).
    • managed: keeps accepting for 15 s after stopping starts (delay), then waits up to 25 s for current connections (drain). Set with managed.shutdown or rproxy.shutdown in parameters.
    • fleet: delay 5 s, drain 25 s (fleet.shutdown). Point health checks of load balancers or VIPs in front at /readyz.

Changed

  • managed rproxy readiness uses /readyz (taken out of endpoints as soon as stopping starts), and no preStop by default. Compared variants showed this gives the shortest gaps with MetalLB L2 and Local (0.2–1.2 s on pod deletion, rollout and drain).
    • Installs that set managed.preStopSeconds keep that value.
    • Pod termination grace is delay + drain + 5 s (45 s by default).
    • With an rproxy-api v0.4.0 image, pods keep the v0.4.1 shape (preStop 15 s, /healthz).
  • A Gateway's parametersRef, refused up to v0.4.1, is now used; in fleet mode it gets InvalidParameters.
  • Install the new CRD before helm upgrade (helm upgrade does not install new CRDs).

rproxy: rproxy-api v0.4.1