Skip to content
This repository was archived by the owner on Mar 25, 2024. It is now read-only.

Commit df501cd

Browse files
author
Alena Prokharchyk
authored
Merge pull request #18 from alena1108/servicebyuuuid
locate backend service by external uuid
2 parents db982c5 + 56b4380 commit df501cd

File tree

3 files changed

+9
-22
lines changed

3 files changed

+9
-22
lines changed

config/config.go

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -7,8 +7,7 @@ const (
77
)
88

99
type BackendService struct {
10-
Namespace string
11-
Name string
10+
UUID string
1211
Endpoints []Endpoint
1312
Path string
1413
Host string
@@ -31,7 +30,6 @@ type FrontendService struct {
3130

3231
type LoadBalancerConfig struct {
3332
Name string
34-
Namespace string
3533
Scale int
3634
FrontendServices []*FrontendService
3735
}

controller/kubernetes/kubernetes.go

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -486,8 +486,7 @@ func (lbc *loadBalancerController) getServiceBackend(svc *api.Service, port int,
486486
continue
487487
}
488488
backend = &config.BackendService{
489-
Name: svc.Name,
490-
Namespace: svc.Namespace,
489+
UUID: string(svc.UID),
491490
Endpoints: eps,
492491
Algorithm: "roundrobin",
493492
Path: path,

provider/rancher/rancher.go

Lines changed: 7 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -303,7 +303,8 @@ func (lbp *LBProvider) getOrCreateSystemStack() (*client.Environment, error) {
303303

304304
func (lbp *LBProvider) getStack(name string) (*client.Environment, error) {
305305
opts := client.NewListOpts()
306-
opts.Filters["name"] = name
306+
307+
opts.Filters["externalId"] = fmt.Sprintf("kubernetes://%s", name)
307308
opts.Filters["removed_null"] = "1"
308309

309310
envs, err := lbp.client.Environment.List(opts)
@@ -545,12 +546,12 @@ func (lbp *LBProvider) setServiceLinks(lb *client.LoadBalancerService, lbConfig
545546
serviceLinks := &client.SetLoadBalancerServiceLinksInput{}
546547

547548
for _, bcknd := range lbConfig.FrontendServices[0].BackendServices {
548-
svc, err := lbp.getKubernetesServiceByName(bcknd.Name, bcknd.Namespace)
549+
svc, err := lbp.getKubernetesServiceByUUID(bcknd.UUID)
549550
if err != nil {
550551
return err
551552
}
552553
if svc == nil {
553-
return fmt.Errorf("Failed to find service [%s] in stack [%s] in Rancher", bcknd.Name, bcknd.Namespace)
554+
return fmt.Errorf("Failed to find service [%s] in Rancher", bcknd.UUID)
554555
}
555556
ports := []string{}
556557
var port string
@@ -662,29 +663,18 @@ func (lbp *LBProvider) getLBServiceByName(name string) (*client.LoadBalancerServ
662663
return &lbs.Data[0], nil
663664
}
664665

665-
func (lbp *LBProvider) getKubernetesServiceByName(name string, stackName string) (*client.KubernetesService, error) {
666-
stack, err := lbp.getStack(stackName)
667-
if err != nil {
668-
return nil, err
669-
}
670-
671-
if stack == nil {
672-
return nil, fmt.Errorf("Coudln't get stack by name [%s]", stackName)
673-
}
674-
666+
func (lbp *LBProvider) getKubernetesServiceByUUID(UUID string) (*client.KubernetesService, error) {
675667
opts := client.NewListOpts()
676-
opts.Filters["name"] = name
668+
opts.Filters["externalId"] = UUID
677669
opts.Filters["removed_null"] = "1"
678-
opts.Filters["environmentId"] = stack.Id
679670
lbs, err := lbp.client.KubernetesService.List(opts)
680671
if err != nil {
681-
return nil, fmt.Errorf("Coudln't get service by name [%s]. Error: %#v", name, err)
672+
return nil, fmt.Errorf("Coudln't get service by uuid [%s]. Error: %#v", UUID, err)
682673
}
683674

684675
if len(lbs.Data) == 0 {
685676
return nil, nil
686677
}
687-
688678
return &lbs.Data[0], nil
689679
}
690680

0 commit comments

Comments
 (0)