@@ -18,6 +18,7 @@ const (
1818 loadBalancerHostnameAnnotation = "servers.com/load-balancer-hostname"
1919 loadBalancerLocationIdAnnotation = "servers.com/load-balancer-location-id"
2020 loadBalancerProxyProtocolAnnotation = "servers.com/proxy-protocol"
21+ loadBalancerClusterAnnotation = "servers.com/cluster-id"
2122)
2223
2324type loadBalancers struct {
@@ -67,6 +68,8 @@ func (l *loadBalancers) EnsureLoadBalancer(ctx context.Context, clusterName stri
6768 return nil , err
6869 }
6970
71+ lbClusterID := l .extractLBClusterID (service )
72+
7073 if loadBalancer == nil {
7174 locationID , err := l .extractLocationID (service )
7275 if err != nil {
@@ -78,6 +81,7 @@ func (l *loadBalancers) EnsureLoadBalancer(ctx context.Context, clusterName stri
7881 input .UpstreamZones = upstreamZones
7982 input .LocationID = locationID
8083 input .Name = l .GetLoadBalancerName (ctx , clusterName , service )
84+ input .ClusterID = lbClusterID
8185
8286 loadBalancer , err = l .client .LoadBalancers .CreateL4LoadBalancer (ctx , input )
8387 if err != nil {
@@ -94,6 +98,7 @@ func (l *loadBalancers) EnsureLoadBalancer(ctx context.Context, clusterName stri
9498 input .VHostZones = vhostZones
9599 input .UpstreamZones = upstreamZones
96100 input .Name = & name
101+ input .ClusterID = lbClusterID
97102
98103 loadBalancer , err = l .client .LoadBalancers .UpdateL4LoadBalancer (ctx , loadBalancer .ID , input )
99104 if err != nil {
@@ -285,3 +290,13 @@ func (l *loadBalancers) buildResult(service *v1.Service, loadBalancer *cli.L4Loa
285290
286291 return & v1.LoadBalancerStatus {Ingress : ingresses }
287292}
293+
294+ func (l * loadBalancers ) extractLBClusterID (service * v1.Service ) string {
295+ var clusterID string
296+
297+ if id , ok := service .Annotations [loadBalancerClusterAnnotation ]; ok {
298+ clusterID = id
299+ }
300+
301+ return clusterID
302+ }
0 commit comments