...
1 package client
2
3 import (
4 "context"
5 "net"
6 "net/http"
7 "time"
8 )
9
10 const customDNSResolver = "daemonsetdns.daemonsetdns.svc.cluster.local.:53"
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29 func NewDaemonsetDNSClient() *http.Client {
30
31 dialer := NewDialer()
32
33 transport := &http.Transport{
34 DialContext: dialer.DialContext,
35 }
36
37 return &http.Client{
38 Transport: transport,
39 }
40 }
41
42 func NewDialer() *net.Dialer {
43 return &net.Dialer{
44 Timeout: time.Second * 10,
45 Resolver: &net.Resolver{
46
47 PreferGo: true,
48 Dial: func(_ context.Context, _, _ string) (net.Conn, error) {
49 return net.Dial("udp", customDNSResolver)
50 },
51 },
52 }
53 }
54
View as plain text