diff --git a/go.mod b/go.mod index 77254ec6..2db70b6c 100644 --- a/go.mod +++ b/go.mod @@ -11,6 +11,7 @@ require ( github.com/spf13/cobra v1.6.0 go.bytebuilders.dev/license-verifier v0.12.2 gomodules.xyz/logs v0.0.6 + gomodules.xyz/sets v0.2.1 gomodules.xyz/x v0.0.14 k8s.io/api v0.25.2 k8s.io/apimachinery v0.25.2 @@ -176,7 +177,6 @@ require ( gomodules.xyz/clock v0.0.0-20200817085942-06523dba733f // indirect gomodules.xyz/flags v0.1.3 // indirect gomodules.xyz/jsonpatch/v2 v2.2.0 // indirect - gomodules.xyz/sets v0.2.1 // indirect gomodules.xyz/wait v0.2.0 // indirect google.golang.org/api v0.96.0 // indirect google.golang.org/appengine v1.6.7 // indirect diff --git a/pkg/plan/plan.go b/pkg/plan/plan.go index ab28d41e..40e2fc78 100644 --- a/pkg/plan/plan.go +++ b/pkg/plan/plan.go @@ -27,6 +27,7 @@ import ( externaldnsv1alpha1 "kubeops.dev/external-dns-operator/apis/external/v1alpha1" "github.com/sirupsen/logrus" + "gomodules.xyz/sets" "k8s.io/apimachinery/pkg/labels" "k8s.io/klog/v2" "sigs.k8s.io/external-dns/endpoint" @@ -305,8 +306,16 @@ func createAndApplyPlan(ctx context.Context, cfg *externaldns.Config, r registry klog.Info("all records are already up to date") } + managedRecordsTypes := sets.NewString() + + for _, dnsType := range cfg.ManagedDNSRecordTypes { + managedRecordsTypes.Insert(dnsType) + } + for _, rec := range pln.Desired { - dnsRecs = append(dnsRecs, externaldnsv1alpha1.DNSRecord{Name: rec.DNSName, Target: rec.Targets.String()}) + if managedRecordsTypes.Has(rec.RecordType) { + dnsRecs = append(dnsRecs, externaldnsv1alpha1.DNSRecord{Name: rec.DNSName, Target: rec.Targets.String()}) + } } return dnsRecs, nil }