1
1
package main
2
2
3
3
import (
4
+ "net"
5
+ "net/http"
6
+
4
7
log "github.com/sirupsen/logrus"
5
8
9
+ "external-dns-openstack-webhook/internal/designate/provider"
10
+
6
11
"sigs.k8s.io/external-dns/endpoint"
7
12
"sigs.k8s.io/external-dns/provider/webhook/api"
8
13
)
9
14
10
- import "external-dns-openstack-webhook/internal/designate/provider"
11
-
12
15
func main () {
13
16
epf := endpoint .NewDomainFilter ([]string {})
14
17
dp , err := provider .NewDesignateProvider (epf , false )
@@ -17,6 +20,39 @@ func main() {
17
20
}
18
21
19
22
log .SetLevel (log .DebugLevel )
23
+
24
+ startedChan := make (chan struct {})
25
+ httpApiStarted := false
26
+
27
+ go func () {
28
+ <- startedChan
29
+ httpApiStarted = true
30
+ }()
31
+
32
+ m := http .NewServeMux ()
33
+ m .HandleFunc ("/healthz" , func (w http.ResponseWriter , r * http.Request ) {
34
+ if ! httpApiStarted {
35
+ w .WriteHeader (http .StatusInternalServerError )
36
+ }
37
+ })
38
+
39
+ go func () {
40
+ log .Debug ("Starting status server on :8080" )
41
+ s := & http.Server {
42
+ Addr : "0.0.0.0:8080" ,
43
+ Handler : m ,
44
+ }
45
+
46
+ l , err := net .Listen ("tcp" , "0.0.0.0:8080" )
47
+ if err != nil {
48
+ log .Fatal (err )
49
+ }
50
+ err = s .Serve (l )
51
+ if err != nil {
52
+ log .Fatalf ("health listener stopped : %s" , err )
53
+ }
54
+ }()
55
+
20
56
log .Printf ("Starting server" )
21
- api .StartHTTPApi (dp , nil , 0 , 0 , "127.0.0.1:8888" )
57
+ api .StartHTTPApi (dp , startedChan , 0 , 0 , "127.0.0.1:8888" )
22
58
}
0 commit comments