-
Notifications
You must be signed in to change notification settings - Fork 13
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
エンハンスドロードバランサでのエニーキャスト対応 #577
Comments
サービスクラス:
サービスクラスはProxyLB作成時のパラメータ |
実装案:
案2だとProxyLBとProxyLBCreateRequest両方で対応する必要があるが、既存クライアントに対する変更の影響が少ないためこちらの案の方が望ましい。 |
案3: naked型にPlanフィールドを追加( この案だとコードの複雑性が上がるが案2と同じく既存クライアントに対する影響が少なく、かつmapconvなどの中間変換層を気にせずに実装できる。 |
Note: プラン変更APIをどうするか? 現在のプラン変更APIシグニチャは以下の通り // ProxyLBAPI is interface for operate ProxyLB resource
type ProxyLBAPI interface {
ChangePlan(ctx context.Context, id types.ID, param *ProxyLBChangePlanRequest) (*ProxyLB, error)
}
type ProxyLBChangePlanRequest struct {
Plan types.EProxyLBPlan
} この形だと一度APIリクエストを発行して現在のProxyLBの値を参照しないとサービスクラスが決定できない。 |
libsacloud v2のコード生成の仕組みでは先にAPIで既存データを参照してから処理するという方法は困難。 このため、以下のような対応が必要となる。 対応案:
案1はプラン変更専用のnaked型があるため、先述のnaked型でjson.Marshaler/Unmarshalerを実装する方法とはバッティングしない。 ただしbreaking-changeになることとクライアントの利便性が下がる(ServiceClassをクライアント側で組み立てる必要があるため)。 案2はリージョンは作成後は変更できないにもかかわらずパラメータを渡すことが好ましくないためできれば避けたい。 このため案1を採用し、必要に応じてutils/helpersでIDとプランを渡すとプラン変更してくれるユーティリティを提供する。 |
https://cloud-news.sakura.ad.jp/2020/06/11/enhanced-lb-anycast/
リクエスト時に以下のパラメータを指定可能にする。
The text was updated successfully, but these errors were encountered: