diff --git a/dns-controller/cmd/dns-controller/BUILD.bazel b/dns-controller/cmd/dns-controller/BUILD.bazel index 77213fdbb5d2f..5aefe39b39818 100644 --- a/dns-controller/cmd/dns-controller/BUILD.bazel +++ b/dns-controller/cmd/dns-controller/BUILD.bazel @@ -12,8 +12,8 @@ go_library( "//dns-controller/pkg/watchers:go_default_library", "//dnsprovider/pkg/dnsprovider:go_default_library", "//dnsprovider/pkg/dnsprovider/providers/aws/route53:go_default_library", + "//dnsprovider/pkg/dnsprovider/providers/do:go_default_library", "//dnsprovider/pkg/dnsprovider/providers/google/clouddns:go_default_library", - "//pkg/resources/digitalocean/dns:go_default_library", "//pkg/wellknownports:go_default_library", "//protokube/pkg/gossip:go_default_library", "//protokube/pkg/gossip/dns:go_default_library", diff --git a/dns-controller/cmd/dns-controller/main.go b/dns-controller/cmd/dns-controller/main.go index bc5ad5436bd7d..508ff2e95e517 100644 --- a/dns-controller/cmd/dns-controller/main.go +++ b/dns-controller/cmd/dns-controller/main.go @@ -35,8 +35,8 @@ import ( "k8s.io/kops/dns-controller/pkg/watchers" "k8s.io/kops/dnsprovider/pkg/dnsprovider" "k8s.io/kops/dnsprovider/pkg/dnsprovider/providers/aws/route53" + _ "k8s.io/kops/dnsprovider/pkg/dnsprovider/providers/do" _ "k8s.io/kops/dnsprovider/pkg/dnsprovider/providers/google/clouddns" - _ "k8s.io/kops/pkg/resources/digitalocean/dns" "k8s.io/kops/pkg/wellknownports" "k8s.io/kops/protokube/pkg/gossip" gossipdns "k8s.io/kops/protokube/pkg/gossip/dns" diff --git a/pkg/resources/digitalocean/dns/BUILD.bazel b/dnsprovider/pkg/dnsprovider/providers/do/BUILD.bazel similarity index 92% rename from pkg/resources/digitalocean/dns/BUILD.bazel rename to dnsprovider/pkg/dnsprovider/providers/do/BUILD.bazel index 1b053337c7008..d9ca6f5851c06 100644 --- a/pkg/resources/digitalocean/dns/BUILD.bazel +++ b/dnsprovider/pkg/dnsprovider/providers/do/BUILD.bazel @@ -3,7 +3,7 @@ load("@io_bazel_rules_go//go:def.bzl", "go_library", "go_test") go_library( name = "go_default_library", srcs = ["dns.go"], - importpath = "k8s.io/kops/pkg/resources/digitalocean/dns", + importpath = "k8s.io/kops/dnsprovider/pkg/dnsprovider/providers/do", visibility = ["//visibility:public"], deps = [ "//dns-controller/pkg/dns:go_default_library", diff --git a/pkg/resources/digitalocean/dns/dns.go b/dnsprovider/pkg/dnsprovider/providers/do/dns.go similarity index 98% rename from pkg/resources/digitalocean/dns/dns.go rename to dnsprovider/pkg/dnsprovider/providers/do/dns.go index 39936b6b2a4f5..fd65a21edffef 100644 --- a/pkg/resources/digitalocean/dns/dns.go +++ b/dnsprovider/pkg/dnsprovider/providers/do/dns.go @@ -33,13 +33,15 @@ import ( "k8s.io/kops/dnsprovider/pkg/dnsprovider/rrstype" ) +var _ dnsprovider.Interface = Interface{} + const ( ipPlaceholder = "203.0.113.123" - providerName = "digitalocean" + ProviderName = "digitalocean" ) func init() { - dnsprovider.RegisterDNSProvider(providerName, func(config io.Reader) (dnsprovider.Interface, error) { + dnsprovider.RegisterDNSProvider(ProviderName, func(config io.Reader) (dnsprovider.Interface, error) { client, err := newClient() if err != nil { return nil, err @@ -77,17 +79,17 @@ func newClient() (*godo.Client, error) { } // DNS implements dnsprovider.Interface -type DNS struct { +type Interface struct { client *godo.Client } // NewProvider returns an implementation of dnsprovider.Interface func NewProvider(client *godo.Client) dnsprovider.Interface { - return &DNS{client: client} + return &Interface{client: client} } // Zones returns an implementation of dnsprovider.Zones -func (d *DNS) Zones() (dnsprovider.Zones, bool) { +func (d Interface) Zones() (dnsprovider.Zones, bool) { return &zones{ client: d.client, }, true diff --git a/pkg/resources/digitalocean/dns/dns_test.go b/dnsprovider/pkg/dnsprovider/providers/do/dns_test.go similarity index 100% rename from pkg/resources/digitalocean/dns/dns_test.go rename to dnsprovider/pkg/dnsprovider/providers/do/dns_test.go diff --git a/protokube/cmd/protokube/BUILD.bazel b/protokube/cmd/protokube/BUILD.bazel index d9022f7fed230..b9490179bfd64 100644 --- a/protokube/cmd/protokube/BUILD.bazel +++ b/protokube/cmd/protokube/BUILD.bazel @@ -14,6 +14,7 @@ go_library( "//dns-controller/pkg/dns:go_default_library", "//dnsprovider/pkg/dnsprovider:go_default_library", "//dnsprovider/pkg/dnsprovider/providers/aws/route53:go_default_library", + "//dnsprovider/pkg/dnsprovider/providers/do:go_default_library", "//dnsprovider/pkg/dnsprovider/providers/google/clouddns:go_default_library", "//pkg/wellknownports:go_default_library", "//protokube/pkg/gossip:go_default_library", diff --git a/protokube/cmd/protokube/main.go b/protokube/cmd/protokube/main.go index 47d7866497d20..505c1400923ea 100644 --- a/protokube/cmd/protokube/main.go +++ b/protokube/cmd/protokube/main.go @@ -38,6 +38,7 @@ import ( // Load DNS plugins _ "k8s.io/kops/dnsprovider/pkg/dnsprovider/providers/aws/route53" + _ "k8s.io/kops/dnsprovider/pkg/dnsprovider/providers/do" _ "k8s.io/kops/dnsprovider/pkg/dnsprovider/providers/google/clouddns" ) diff --git a/upup/pkg/fi/cloudup/do/BUILD.bazel b/upup/pkg/fi/cloudup/do/BUILD.bazel index 47ada11d02c01..a2f261de796c6 100644 --- a/upup/pkg/fi/cloudup/do/BUILD.bazel +++ b/upup/pkg/fi/cloudup/do/BUILD.bazel @@ -12,9 +12,9 @@ go_library( visibility = ["//visibility:public"], deps = [ "//dnsprovider/pkg/dnsprovider:go_default_library", + "//dnsprovider/pkg/dnsprovider/providers/do:go_default_library", "//pkg/apis/kops:go_default_library", "//pkg/cloudinstances:go_default_library", - "//pkg/resources/digitalocean/dns:go_default_library", "//protokube/pkg/etcd:go_default_library", "//upup/pkg/fi:go_default_library", "//vendor/github.com/digitalocean/godo:go_default_library", diff --git a/upup/pkg/fi/cloudup/do/cloud.go b/upup/pkg/fi/cloudup/do/cloud.go index 2287f15388d13..8780f99ebfae8 100644 --- a/upup/pkg/fi/cloudup/do/cloud.go +++ b/upup/pkg/fi/cloudup/do/cloud.go @@ -30,9 +30,9 @@ import ( v1 "k8s.io/api/core/v1" "k8s.io/klog/v2" "k8s.io/kops/dnsprovider/pkg/dnsprovider" + dns "k8s.io/kops/dnsprovider/pkg/dnsprovider/providers/do" "k8s.io/kops/pkg/apis/kops" "k8s.io/kops/pkg/cloudinstances" - "k8s.io/kops/pkg/resources/digitalocean/dns" "k8s.io/kops/protokube/pkg/etcd" "k8s.io/kops/upup/pkg/fi" ) @@ -183,7 +183,11 @@ func (c *doCloudImplementation) Region() string { } func (c *doCloudImplementation) DNS() (dnsprovider.Interface, error) { - return c.dns, nil + provider, err := dnsprovider.GetDnsProvider(dns.ProviderName, nil) + if err != nil { + return nil, fmt.Errorf("error building DNS provider: %v", err) + } + return provider, nil } // Volumes returns an implementation of godo.StorageService diff --git a/upup/pkg/fi/cloudup/do/mock_do_cloud.go b/upup/pkg/fi/cloudup/do/mock_do_cloud.go index 2f12969cd9e7c..f3cb11387f420 100644 --- a/upup/pkg/fi/cloudup/do/mock_do_cloud.go +++ b/upup/pkg/fi/cloudup/do/mock_do_cloud.go @@ -23,9 +23,9 @@ import ( "github.com/digitalocean/godo" v1 "k8s.io/api/core/v1" "k8s.io/kops/dnsprovider/pkg/dnsprovider" + dns "k8s.io/kops/dnsprovider/pkg/dnsprovider/providers/do" "k8s.io/kops/pkg/apis/kops" "k8s.io/kops/pkg/cloudinstances" - "k8s.io/kops/pkg/resources/digitalocean/dns" "k8s.io/kops/upup/pkg/fi" )