Repository navigation
v0.4.2
追加
- 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)。
- GatewayClass の
- 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:止まり始めてから 15 秒は受け付けを続け(delay)、そのあと今の接続の終わりを 25 秒まで待ちます(drain)。値は
変更
- 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 namerpgwp).- Defaults through the GatewayClass
parametersRef(in the controller's namespace), overrides through the Gateway'sspec.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
policyallows 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).
- Defaults through the GatewayClass
- Install with Kustomize (#37).
- Releases attach
install.yaml,install-fleet.yamlandcrds.yaml. config/in the repository (default, fleet, crd) works as a Kustomize base; overlay examples are inconfig/samples/.- The chart's controller settings now come from a ConfigMap (
envFrom); chart values are unchanged.
- Releases attach
- 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.shutdownorrproxy.shutdownin parameters. - fleet: delay 5 s, drain 25 s (
fleet.shutdown). Point health checks of load balancers or VIPs in front at/readyz.
- managed: keeps accepting for 15 s after stopping starts (delay), then waits up to 25 s for current connections (drain). Set with
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 andLocal(0.2–1.2 s on pod deletion, rollout and drain).- Installs that set
managed.preStopSecondskeep 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).
- Installs that set
- A Gateway's
parametersRef, refused up to v0.4.1, is now used; in fleet mode it getsInvalidParameters. - Install the new CRD before
helm upgrade(helm upgradedoes not install new CRDs).
rproxy: rproxy-api v0.4.1