Skip to content

Commit 8d8fd37

Browse files
authored
Remove VA.DNSResolver (#7001)
I have confirmed that this config field is not set in any deployment environment. Fixes #6868
1 parent 944a865 commit 8d8fd37

File tree

6 files changed

+41
-53
lines changed

6 files changed

+41
-53
lines changed

bdns/servers.go

Lines changed: 16 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -105,9 +105,6 @@ type dynamicProvider struct {
105105
// a hostname it will be resolved via the system DNS. If the port is left
106106
// unspecified it will default to '53'. If this field is left unspecified
107107
// the system DNS will be used for resolution of DNS backends.
108-
//
109-
// TODO(#6868): Make this field required once 'dnsResolver' is removed from
110-
// the boulder-va JSON config in favor of 'dnsProvider'.
111108
dnsAuthority string
112109
// service is the service name to look up SRV records for within the domain.
113110
// If this field is left unspecified 'dns' will be used as the service name.
@@ -189,19 +186,15 @@ func StartDynamicProvider(c *cmd.DNSProvider, refresh time.Duration) (*dynamicPr
189186
service = "dns"
190187
}
191188

192-
// TODO(#6868): Make dnsAuthority required once 'dnsResolver' is removed
193-
// from the boulder-va JSON config in favor of 'dnsProvider'.
194-
dnsAuthority := c.DNSAuthority
195-
if dnsAuthority != "" {
196-
host, port, err := ParseTarget(dnsAuthority, "53")
197-
if err != nil {
198-
return nil, err
199-
}
200-
dnsAuthority = net.JoinHostPort(host, port)
201-
err = validateServerAddress(dnsAuthority)
202-
if err != nil {
203-
return nil, err
204-
}
189+
host, port, err := ParseTarget(c.DNSAuthority, "53")
190+
if err != nil {
191+
return nil, err
192+
}
193+
194+
dnsAuthority := net.JoinHostPort(host, port)
195+
err = validateServerAddress(dnsAuthority)
196+
if err != nil {
197+
return nil, err
205198
}
206199

207200
dp := dynamicProvider{
@@ -222,7 +215,7 @@ func StartDynamicProvider(c *cmd.DNSProvider, refresh time.Duration) (*dynamicPr
222215

223216
// Update once immediately, so we can know whether that was successful, then
224217
// kick off the long-running update goroutine.
225-
err := dp.update()
218+
err = dp.update()
226219
if err != nil {
227220
return nil, fmt.Errorf("failed to start dynamic provider: %w", err)
228221
}
@@ -261,17 +254,12 @@ func (dp *dynamicProvider) update() error {
261254
ctx, cancel := context.WithTimeout(context.Background(), dp.refresh/2)
262255
defer cancel()
263256

264-
// If dnsAuthority is specified, setup a custom resolver to use it
265-
// otherwise use a default system resolver.
266-
resolver := net.DefaultResolver
267-
if dp.dnsAuthority != "" {
268-
resolver = &net.Resolver{
269-
PreferGo: true,
270-
Dial: func(ctx context.Context, network, address string) (net.Conn, error) {
271-
d := &net.Dialer{}
272-
return d.DialContext(ctx, network, dp.dnsAuthority)
273-
},
274-
}
257+
resolver := &net.Resolver{
258+
PreferGo: true,
259+
Dial: func(ctx context.Context, network, address string) (net.Conn, error) {
260+
d := &net.Dialer{}
261+
return d.DialContext(ctx, network, dp.dnsAuthority)
262+
},
275263
}
276264

277265
// RFC 2782 formatted SRV record being queried e.g. "_service._proto.name."

cmd/boulder-va/main.go

Lines changed: 3 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -27,8 +27,7 @@ type Config struct {
2727
// before giving up. May be short-circuited by deadlines. A zero value
2828
// will be turned into 1.
2929
DNSTries int
30-
DNSResolver string `validate:"required_without=DNSProvider,excluded_with=DNSProvider,omitempty,hostname|hostname_port"`
31-
DNSProvider *cmd.DNSProvider `validate:"required_without=DNSResolver,excluded_with=DNSResolver,omitempty"`
30+
DNSProvider *cmd.DNSProvider `validate:"required"`
3231
DNSTimeout config.Duration `validate:"required"`
3332
DNSAllowLoopbackAddresses bool
3433

@@ -81,22 +80,8 @@ func main() {
8180
}
8281
clk := cmd.Clock()
8382

84-
// TODO(#6868) Remove this once all instances of VA.DNSResolver have been
85-
// removed from production config files.
86-
if c.VA.DNSResolver != "" && c.VA.DNSProvider != nil {
87-
cmd.Fail("Cannot specify both 'dnsResolver' and dnsProvider")
88-
}
89-
90-
if c.VA.DNSResolver == "" && c.VA.DNSProvider == nil {
91-
cmd.Fail("Must specify either 'dnsResolver' or dnsProvider")
92-
}
93-
94-
if c.VA.DNSProvider == nil && c.VA.DNSResolver != "" {
95-
c.VA.DNSProvider = &cmd.DNSProvider{
96-
SRVLookup: cmd.ServiceDomain{
97-
Domain: c.VA.DNSResolver,
98-
},
99-
}
83+
if c.VA.DNSProvider == nil {
84+
cmd.Fail("Must specify dnsProvider")
10085
}
10186

10287
var servers bdns.ServerProvider

cmd/config.go

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -525,10 +525,7 @@ type DNSProvider struct {
525525
// a hostname it will be resolved via the system DNS. If the port is left
526526
// unspecified it will default to '53'. If this field is left unspecified
527527
// the system DNS will be used for resolution of DNS backends.
528-
//
529-
// TODO(#6868): Make this field required once 'dnsResolver' is removed from
530-
// the boulder-va JSON config in favor of 'dnsProvider'.
531-
DNSAuthority string `validate:"omitempty,ip|hostname|hostname_port"`
528+
DNSAuthority string `validate:"required,ip|hostname|hostname_port"`
532529

533530
// SRVLookup contains the service and domain name used to construct a SRV
534531
// DNS query to lookup DNS backends. 'Domain' is required. 'Service' is

test/config/va-remote-a.json

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,13 @@
33
"userAgent": "boulder-remote-a",
44
"debugAddr": ":8011",
55
"dnsTries": 3,
6-
"dnsResolver": "service.consul",
6+
"dnsProvider": {
7+
"dnsAuthority": "consul.service.consul",
8+
"srvLookup": {
9+
"service": "dns",
10+
"domain": "service.consul"
11+
}
12+
},
713
"dnsTimeout": "1s",
814
"dnsAllowLoopbackAddresses": true,
915
"issuerDomain": "happy-hacker-ca.invalid",

test/config/va-remote-b.json

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,13 @@
33
"userAgent": "boulder-remote-b",
44
"debugAddr": ":8012",
55
"dnsTries": 3,
6-
"dnsResolver": "service.consul",
6+
"dnsProvider": {
7+
"dnsAuthority": "consul.service.consul",
8+
"srvLookup": {
9+
"service": "dns",
10+
"domain": "service.consul"
11+
}
12+
},
713
"dnsTimeout": "1s",
814
"dnsAllowLoopbackAddresses": true,
915
"issuerDomain": "happy-hacker-ca.invalid",

test/config/va.json

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,13 @@
33
"userAgent": "boulder",
44
"debugAddr": ":8004",
55
"dnsTries": 3,
6-
"dnsResolver": "service.consul",
6+
"dnsProvider": {
7+
"dnsAuthority": "consul.service.consul",
8+
"srvLookup": {
9+
"service": "dns",
10+
"domain": "service.consul"
11+
}
12+
},
713
"dnsTimeout": "1s",
814
"dnsAllowLoopbackAddresses": true,
915
"issuerDomain": "happy-hacker-ca.invalid",

0 commit comments

Comments
 (0)