/
elb.go
47 lines (35 loc) · 985 Bytes
/
elb.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
package aws
import (
"github.com/aws/aws-sdk-go/service/elbv2"
"github.com/aws/aws-sdk-go/aws"
"../configuration"
)
type LoadBalancer struct {
Dns string
}
func GetMasterLB(config *configuration.InputVars) LoadBalancer {
lb := getLbByName("master-lb", config)
return LoadBalancer{*lb.DNSName}
}
func GetInfraLB(config *configuration.InputVars) LoadBalancer {
lb := getLbByName("router-lb", config)
return LoadBalancer{*lb.DNSName}
}
func GetInternalLB(config *configuration.InputVars) LoadBalancer {
lb := getLbByName("api-internal-lb", config)
return LoadBalancer{*lb.DNSName}
}
func getLbByName(name string, config *configuration.InputVars) *elbv2.LoadBalancer {
name = config.ProjectId + "-" + name
filter := &elbv2.DescribeLoadBalancersInput{
Names: []*string{aws.String(name)},
}
result, err := LBClent.DescribeLoadBalancers(filter)
if err != nil {
panic(err)
}
if len(result.LoadBalancers) > 0 {
return result.LoadBalancers[0]
}
return nil
}