Skip to content

Commit af0a0b4

Browse files
authored
Merge pull request #151 from luthermonson/clustername-tag
add cluster name as a tag to nodebalancers
2 parents 8148850 + 77ca712 commit af0a0b4

2 files changed

Lines changed: 15 additions & 13 deletions

File tree

cloud/linode/loadbalancers.go

Lines changed: 9 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -239,7 +239,7 @@ func (l *loadbalancers) EnsureLoadBalancer(ctx context.Context, clusterName stri
239239
klog.Infof("created new NodeBalancer (%d) for service (%s)", nb.ID, serviceNn)
240240

241241
case nil:
242-
if err = l.updateNodeBalancer(ctx, service, nodes, nb); err != nil {
242+
if err = l.updateNodeBalancer(ctx, clusterName, service, nodes, nb); err != nil {
243243
sentry.CaptureError(ctx, err)
244244
return nil, err
245245
}
@@ -263,7 +263,7 @@ func (l *loadbalancers) EnsureLoadBalancer(ctx context.Context, clusterName stri
263263
}
264264

265265
//nolint:funlen
266-
func (l *loadbalancers) updateNodeBalancer(ctx context.Context, service *v1.Service, nodes []*v1.Node, nb *linodego.NodeBalancer) (err error) {
266+
func (l *loadbalancers) updateNodeBalancer(ctx context.Context, clusterName string, service *v1.Service, nodes []*v1.Node, nb *linodego.NodeBalancer) (err error) {
267267
if len(nodes) == 0 {
268268
return fmt.Errorf("%w: service %s", errNoNodesAvailable, getServiceNn(service))
269269
}
@@ -280,7 +280,7 @@ func (l *loadbalancers) updateNodeBalancer(ctx context.Context, service *v1.Serv
280280
}
281281
}
282282

283-
tags := l.getLoadBalancerTags(ctx, service)
283+
tags := l.getLoadBalancerTags(ctx, clusterName, service)
284284
if !reflect.DeepEqual(nb.Tags, tags) {
285285
update := nb.GetUpdateOptions()
286286
update.Tags = &tags
@@ -392,7 +392,7 @@ func (l *loadbalancers) UpdateLoadBalancer(ctx context.Context, clusterName stri
392392
}
393393
}
394394

395-
return l.updateNodeBalancer(ctx, serviceWithStatus, nodes, nb)
395+
return l.updateNodeBalancer(ctx, clusterName, serviceWithStatus, nodes, nb)
396396
}
397397

398398
// Delete any NodeBalancer configs for ports that no longer exist on the Service
@@ -505,19 +505,20 @@ func (l *loadbalancers) getNodeBalancerByID(ctx context.Context, service *v1.Ser
505505
return nb, nil
506506
}
507507

508-
func (l *loadbalancers) getLoadBalancerTags(_ context.Context, service *v1.Service) []string {
508+
func (l *loadbalancers) getLoadBalancerTags(_ context.Context, clusterName string, service *v1.Service) []string {
509+
tags := []string{clusterName}
509510
tagStr, ok := getServiceAnnotation(service, annLinodeLoadBalancerTags)
510511
if ok {
511-
return strings.Split(tagStr, ",")
512+
return append(tags, strings.Split(tagStr, ",")...)
512513
}
513-
return []string{}
514+
return tags
514515
}
515516

516517
func (l *loadbalancers) createNodeBalancer(ctx context.Context, clusterName string, service *v1.Service, configs []*linodego.NodeBalancerConfigCreateOptions) (lb *linodego.NodeBalancer, err error) {
517518
connThrottle := getConnectionThrottle(service)
518519

519520
label := l.GetLoadBalancerName(ctx, clusterName, service)
520-
tags := l.getLoadBalancerTags(ctx, service)
521+
tags := l.getLoadBalancerTags(ctx, clusterName, service)
521522
createOpts := linodego.NodeBalancerCreateOptions{
522523
Label: &label,
523524
Region: l.zone,

cloud/linode/loadbalancers_test.go

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -282,7 +282,7 @@ func testCreateNodeBalancer(t *testing.T, client *linodego.Client, _ *fakeAPI, f
282282
t.Logf("actual: %v", nb.ClientConnThrottle)
283283
}
284284

285-
expectedTags := []string{"fake", "test", "yolo"}
285+
expectedTags := []string{"linodelb", "fake", "test", "yolo"}
286286
if !reflect.DeepEqual(nb.Tags, expectedTags) {
287287
t.Error("unexpected Tags")
288288
t.Logf("expected: %v", expectedTags)
@@ -500,10 +500,11 @@ func testUpdateLoadBalancerAddTags(t *testing.T, client *linodego.Client, _ *fak
500500
lb := &loadbalancers{client, "us-west", nil}
501501
fakeClientset := fake.NewSimpleClientset()
502502
lb.kubeClient = fakeClientset
503+
clusterName := "linodelb"
503504

504-
defer lb.EnsureLoadBalancerDeleted(context.TODO(), "linodelb", svc)
505+
defer lb.EnsureLoadBalancerDeleted(context.TODO(), clusterName, svc)
505506

506-
lbStatus, err := lb.EnsureLoadBalancer(context.TODO(), "linodelb", svc, nodes)
507+
lbStatus, err := lb.EnsureLoadBalancer(context.TODO(), clusterName, svc, nodes)
507508
if err != nil {
508509
t.Errorf("EnsureLoadBalancer returned an error: %s", err)
509510
}
@@ -515,7 +516,7 @@ func testUpdateLoadBalancerAddTags(t *testing.T, client *linodego.Client, _ *fak
515516
annLinodeLoadBalancerTags: testTags,
516517
})
517518

518-
err = lb.UpdateLoadBalancer(context.TODO(), "linodelb", svc, nodes)
519+
err = lb.UpdateLoadBalancer(context.TODO(), clusterName, svc, nodes)
519520
if err != nil {
520521
t.Fatalf("UpdateLoadBalancer returned an error while updated annotations: %s", err)
521522
}
@@ -525,7 +526,7 @@ func testUpdateLoadBalancerAddTags(t *testing.T, client *linodego.Client, _ *fak
525526
t.Fatalf("failed to get NodeBalancer by status: %v", err)
526527
}
527528

528-
expectedTags := strings.Split(testTags, ",")
529+
expectedTags := append([]string{clusterName}, strings.Split(testTags, ",")...)
529530
observedTags := nb.Tags
530531

531532
if !reflect.DeepEqual(expectedTags, observedTags) {

0 commit comments

Comments
 (0)