Skip to content

Commit

Permalink
gce: Remove custom resolver
Browse files Browse the repository at this point in the history
  • Loading branch information
hakman committed Dec 23, 2023
1 parent f5791b4 commit 0be0241
Show file tree
Hide file tree
Showing 6 changed files with 3 additions and 98 deletions.
9 changes: 0 additions & 9 deletions nodeup/pkg/model/bootstrap_client.go
Original file line number Diff line number Diff line change
Expand Up @@ -26,13 +26,11 @@ import (
"k8s.io/kops/pkg/bootstrap"
"k8s.io/kops/pkg/bootstrap/pkibootstrap"
"k8s.io/kops/pkg/kopscontrollerclient"
"k8s.io/kops/pkg/resolver"
"k8s.io/kops/pkg/wellknownports"
"k8s.io/kops/upup/pkg/fi"
"k8s.io/kops/upup/pkg/fi/cloudup/awsup"
"k8s.io/kops/upup/pkg/fi/cloudup/azure"
"k8s.io/kops/upup/pkg/fi/cloudup/do"
"k8s.io/kops/upup/pkg/fi/cloudup/gce/gcediscovery"
"k8s.io/kops/upup/pkg/fi/cloudup/gce/tpm/gcetpmsigner"
"k8s.io/kops/upup/pkg/fi/cloudup/hetzner"
"k8s.io/kops/upup/pkg/fi/cloudup/openstack"
Expand All @@ -51,7 +49,6 @@ func (b BootstrapClientBuilder) Build(c *fi.NodeupModelBuilderContext) error {
}

var authenticator bootstrap.Authenticator
var resolver resolver.Resolver

switch b.CloudProvider() {
case kops.CloudProviderAWS:
Expand All @@ -66,11 +63,6 @@ func (b BootstrapClientBuilder) Build(c *fi.NodeupModelBuilderContext) error {
return err
}
authenticator = a
r, err := gcediscovery.New()
if err != nil {
return err
}
resolver = r
case kops.CloudProviderHetzner:
a, err := hetzner.NewHetznerAuthenticator()
if err != nil {
Expand Down Expand Up @@ -123,7 +115,6 @@ func (b BootstrapClientBuilder) Build(c *fi.NodeupModelBuilderContext) error {
Authenticator: authenticator,
CAs: []byte(b.NodeupConfig.CAs[fi.CertificateIDCA]),
BaseURL: baseURL,
Resolver: resolver,
}

bootstrapClientTask := &nodetasks.BootstrapClientTask{
Expand Down
47 changes: 1 addition & 46 deletions pkg/kopscontrollerclient/client.go
Original file line number Diff line number Diff line change
Expand Up @@ -33,7 +33,6 @@ import (

"k8s.io/klog/v2"
"k8s.io/kops/pkg/bootstrap"
"k8s.io/kops/pkg/resolver"
"k8s.io/kops/upup/pkg/fi"
"k8s.io/kops/upup/pkg/fi/cloudup"
)
Expand All @@ -47,47 +46,9 @@ type Client struct {
// BaseURL is the base URL for the server
BaseURL url.URL

// Resolver is a custom resolver that supports resolution of hostnames without requiring DNS.
// In particular, this supports gossip mode.
Resolver resolver.Resolver

httpClient *http.Client
}

// dial implements a DialContext resolver function, for when a custom resolver is in use
func (b *Client) dial(ctx context.Context, network, addr string) (net.Conn, error) {
var errors []error

host, port, err := net.SplitHostPort(addr)
if err != nil {
return nil, fmt.Errorf("cannot split host and port from %q: %w", addr, err)
}

// TODO: cache?
addresses, err := b.Resolver.Resolve(ctx, host)
if err != nil {
return nil, err
}

klog.Infof("resolved %q to %v", host, addresses)

for _, addr := range addresses {
timeout := 5 * time.Second
conn, err := net.DialTimeout(network, addr+":"+port, timeout)
if err == nil {
return conn, nil
}
if err != nil {
klog.Warningf("failed to dial %q: %v", addr, err)
errors = append(errors, err)
}
}
if len(errors) == 0 {
return nil, fmt.Errorf("no addresses for %q", addr)
}
return nil, errors[0]
}

func (b *Client) Query(ctx context.Context, req any, resp any) error {
if b.httpClient == nil {
certPool := x509.NewCertPool()
Expand All @@ -100,10 +61,6 @@ func (b *Client) Query(ctx context.Context, req any, resp any) error {
},
}

if b.Resolver != nil {
transport.DialContext = b.dial
}

httpClient := &http.Client{
Timeout: time.Duration(15) * time.Second,
Transport: transport,
Expand All @@ -113,9 +70,7 @@ func (b *Client) Query(ctx context.Context, req any, resp any) error {
}

// Sanity-check DNS to provide clearer diagnostic messages.
if b.Resolver != nil {
// Don't check DNS when there's a custom resolver.
} else if ips, err := net.LookupIP(b.BaseURL.Hostname()); err != nil {
if ips, err := net.LookupIP(b.BaseURL.Hostname()); err != nil {
if dnsErr, ok := err.(*net.DNSError); ok && dnsErr.IsNotFound {
return fi.NewTryAgainLaterError(fmt.Sprintf("kops-controller DNS not setup yet (not found: %v)", dnsErr))
}
Expand Down
25 changes: 0 additions & 25 deletions pkg/resolver/interface.go

This file was deleted.

3 changes: 0 additions & 3 deletions upup/pkg/fi/cloudup/gce/gcediscovery/resolver.go
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,6 @@ import (
compute "google.golang.org/api/compute/v1"
"k8s.io/klog/v2"
"k8s.io/kops/pkg/apis/kops"
"k8s.io/kops/pkg/resolver"
"k8s.io/kops/protokube/pkg/gossip"
"k8s.io/kops/upup/pkg/fi/cloudup/gce"
"k8s.io/kops/upup/pkg/fi/cloudup/gce/gcemetadata"
Expand Down Expand Up @@ -220,8 +219,6 @@ func lastComponent(s string) string {
return s
}

var _ resolver.Resolver = &Discovery{}

// Resolve implements resolver.Resolve, providing name -> address resolution using GCE discovery.
func (r *Discovery) Resolve(ctx context.Context, name string) ([]string, error) {
var records []string
Expand Down
10 changes: 0 additions & 10 deletions upup/pkg/fi/nodeup/command.go
Original file line number Diff line number Diff line change
Expand Up @@ -48,13 +48,11 @@ import (
"k8s.io/kops/pkg/bootstrap/pkibootstrap"
"k8s.io/kops/pkg/configserver"
"k8s.io/kops/pkg/kopscontrollerclient"
"k8s.io/kops/pkg/resolver"
"k8s.io/kops/pkg/wellknownports"
"k8s.io/kops/upup/pkg/fi"
"k8s.io/kops/upup/pkg/fi/cloudup/awsup"
"k8s.io/kops/upup/pkg/fi/cloudup/azure"
"k8s.io/kops/upup/pkg/fi/cloudup/do"
"k8s.io/kops/upup/pkg/fi/cloudup/gce/gcediscovery"
"k8s.io/kops/upup/pkg/fi/cloudup/gce/tpm/gcetpmsigner"
"k8s.io/kops/upup/pkg/fi/cloudup/hetzner"
"k8s.io/kops/upup/pkg/fi/cloudup/openstack"
Expand Down Expand Up @@ -606,7 +604,6 @@ func seedRNG(ctx context.Context, bootConfig *nodeup.BootConfig, region string)
// getNodeConfigFromServers queries kops-controllers for our node's configuration.
func getNodeConfigFromServers(ctx context.Context, bootConfig *nodeup.BootConfig, region string) (*nodeup.BootstrapResponse, error) {
var authenticator bootstrap.Authenticator
var resolver resolver.Resolver

switch bootConfig.CloudProvider {
case api.CloudProviderAWS:
Expand All @@ -621,12 +618,6 @@ func getNodeConfigFromServers(ctx context.Context, bootConfig *nodeup.BootConfig
return nil, err
}
authenticator = a

discovery, err := gcediscovery.New()
if err != nil {
return nil, err
}
resolver = discovery
case api.CloudProviderHetzner:
a, err := hetzner.NewHetznerAuthenticator()
if err != nil {
Expand Down Expand Up @@ -688,7 +679,6 @@ func getNodeConfigFromServers(ctx context.Context, bootConfig *nodeup.BootConfig

client := &kopscontrollerclient.Client{
Authenticator: authenticator,
Resolver: resolver,
CAs: []byte(bootConfig.ConfigServer.CACertificates),
}

Expand Down
7 changes: 2 additions & 5 deletions upup/pkg/fi/nodeup/nodetasks/bootstrap_client.go
Original file line number Diff line number Diff line change
Expand Up @@ -63,12 +63,9 @@ func (b *BootstrapClientTask) GetDependencies(tasks map[string]fi.NodeupTask) []
// BootstrapClient depends on the protokube service to ensure gossip DNS
var deps []fi.NodeupTask
for _, v := range tasks {
// If we aren't using a custom resolver, then
// BootstrapClient depends on the protokube service to ensure gossip DNS
if b.Client.Resolver == nil {
if svc, ok := v.(*Service); ok && svc.Name == protokubeService {
deps = append(deps, v)
}
if svc, ok := v.(*Service); ok && svc.Name == protokubeService {
deps = append(deps, v)
}
}
return deps
Expand Down

0 comments on commit 0be0241

Please sign in to comment.