diff --git a/main.go b/main.go index 63274e6..a282709 100644 --- a/main.go +++ b/main.go @@ -188,9 +188,6 @@ func main() { key := svc.Metadata.Namespace + "/" + svc.Metadata.Name ep, found := endpointMap[key] - if !found || len(ep.Subsets) == 0 { - continue - } b := Backend{ Name: "SRV_" + strings.ReplaceAll(svc.Metadata.Name, " ", "-"), @@ -210,8 +207,6 @@ func main() { } if val, ok := ann["haproxy/health-check"]; ok && val != "" { b.HealthCheck = val - } else { - b.HealthCheck = "" } if val, ok := ann["haproxy/server-options"]; ok && val != "" { b.ServerOptions = val @@ -225,30 +220,36 @@ func main() { } servers := []BackendServer{} - for _, subset := range ep.Subsets { - for _, addr := range subset.Addresses { - for _, port := range subset.Ports { - if targetPort != 0 && port.Port != targetPort { - continue + + if found && len(ep.Subsets) > 0 { + for _, subset := range ep.Subsets { + for _, addr := range subset.Addresses { + for _, port := range subset.Ports { + if targetPort != 0 && port.Port != targetPort { + continue + } + cookie := hashString(fmt.Sprintf("%s-%s-%d", svc.Metadata.Name, addr.IP, port.Port)) + serverName := fmt.Sprintf("%s_%d", svc.Metadata.Name, cookie) + servers = append(servers, BackendServer{ + Name: serverName, + Address: addr.IP, + Port: port.Port, + Cookie: cookie, + }) } - cookie := hashString(fmt.Sprintf("%s-%s-%d", svc.Metadata.Name, addr.IP, port.Port)) - serverName := fmt.Sprintf("%s_%d", svc.Metadata.Name, cookie) - servers = append(servers, BackendServer{ - Name: serverName, - Address: addr.IP, - Port: port.Port, - Cookie: cookie, - }) } } } + b.Servers = servers backends = append(backends, b) } + tmplAbsPath, err := filepath.Abs(templatePath) if err != nil { log.Fatalf("Failed to get absolute path: %v", err) } + tmpl, err := getTemplate(tmplAbsPath) if err != nil { log.Fatalf("Failed to parse template: %v", err)