mirror of
https://github.com/kubernetes-sigs/external-dns.git
synced 2026-05-05 06:36:11 +02:00
add domain filter for vinyl
This commit is contained in:
parent
de366f619f
commit
656ec36532
2
main.go
2
main.go
@ -133,7 +133,7 @@ func main() {
|
||||
case "azure":
|
||||
p, err = provider.NewAzureProvider(cfg.AzureConfigFile, domainFilter, zoneIDFilter, cfg.AzureResourceGroup, cfg.DryRun)
|
||||
case "vinyldns":
|
||||
p, err = provider.NewVinylDNSProvider(zoneIDFilter, cfg.DryRun)
|
||||
p, err = provider.NewVinylDNSProvider(domainFilter, zoneIDFilter, cfg.DryRun)
|
||||
case "cloudflare":
|
||||
p, err = provider.NewCloudFlareProvider(domainFilter, zoneIDFilter, cfg.CloudflareZonesPerPage, cfg.CloudflareProxied, cfg.DryRun)
|
||||
case "rcodezero":
|
||||
|
||||
@ -46,9 +46,10 @@ type vinyldnsZoneInterface interface {
|
||||
}
|
||||
|
||||
type vinyldnsProvider struct {
|
||||
client vinyldnsZoneInterface
|
||||
zoneFilter ZoneIDFilter
|
||||
dryRun bool
|
||||
client vinyldnsZoneInterface
|
||||
zoneFilter ZoneIDFilter
|
||||
domainFilter DomainFilter
|
||||
dryRun bool
|
||||
}
|
||||
|
||||
type vinyldnsChange struct {
|
||||
@ -57,7 +58,7 @@ type vinyldnsChange struct {
|
||||
}
|
||||
|
||||
// NewVinylDNSProvider provides support for VinylDNS records
|
||||
func NewVinylDNSProvider(zoneFilter ZoneIDFilter, dryRun bool) (Provider, error) {
|
||||
func NewVinylDNSProvider(domainFilter DomainFilter, zoneFilter ZoneIDFilter, dryRun bool) (Provider, error) {
|
||||
_, ok := os.LookupEnv("VINYLDNS_ACCESS_KEY")
|
||||
if !ok {
|
||||
return nil, fmt.Errorf("no vinyldns access key found")
|
||||
@ -66,9 +67,10 @@ func NewVinylDNSProvider(zoneFilter ZoneIDFilter, dryRun bool) (Provider, error)
|
||||
client := vinyldns.NewClientFromEnv()
|
||||
|
||||
return &vinyldnsProvider{
|
||||
client: client,
|
||||
dryRun: dryRun,
|
||||
zoneFilter: zoneFilter,
|
||||
client: client,
|
||||
dryRun: dryRun,
|
||||
zoneFilter: zoneFilter,
|
||||
domainFilter: domainFilter,
|
||||
}, nil
|
||||
}
|
||||
|
||||
@ -83,7 +85,11 @@ func (p *vinyldnsProvider) Records() (endpoints []*endpoint.Endpoint, _ error) {
|
||||
continue
|
||||
}
|
||||
|
||||
log.Infof(fmt.Sprintf("Zone: [%s]", zone.Name))
|
||||
if !p.domainFilter.Match(zone.Name) {
|
||||
continue
|
||||
}
|
||||
|
||||
log.Infof(fmt.Sprintf("Zone: [%s:%s]", zone.ID, zone.Name))
|
||||
records, err := p.client.RecordSets(zone.ID)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
|
||||
@ -89,11 +89,16 @@ func TestVinylDNSServices(t *testing.T) {
|
||||
}
|
||||
|
||||
func testVinylDNSProviderRecords(t *testing.T) {
|
||||
mockVinylDNSProvider.zoneFilter = NewZoneIDFilter([]string{"0"})
|
||||
mockVinylDNSProvider.domainFilter = NewDomainFilter([]string{"example.com"})
|
||||
result, err := mockVinylDNSProvider.Records()
|
||||
assert.Nil(t, err)
|
||||
assert.Equal(t, len(vinylDNSRecords), len(result))
|
||||
|
||||
mockVinylDNSProvider.zoneFilter = NewZoneIDFilter([]string{"0"})
|
||||
result, err = mockVinylDNSProvider.Records()
|
||||
assert.Nil(t, err)
|
||||
assert.Equal(t, len(vinylDNSRecords), len(result))
|
||||
|
||||
mockVinylDNSProvider.zoneFilter = NewZoneIDFilter([]string{"1"})
|
||||
result, err = mockVinylDNSProvider.Records()
|
||||
assert.Nil(t, err)
|
||||
@ -126,11 +131,11 @@ func testVinylDNSSuitableZone(t *testing.T) {
|
||||
|
||||
func TestNewVinylDNSProvider(t *testing.T) {
|
||||
os.Setenv("VINYLDNS_ACCESS_KEY", "xxxxxxxxxxxxxxxxxxxxxxxxxx")
|
||||
_, err := NewVinylDNSProvider(NewZoneIDFilter([]string{"example.com"}), true)
|
||||
_, err := NewVinylDNSProvider(NewDomainFilter([]string{"example.com"}), NewZoneIDFilter([]string{"0"}), true)
|
||||
assert.Nil(t, err)
|
||||
|
||||
os.Unsetenv("VINYLDNS_ACCESS_KEY")
|
||||
_, err = NewVinylDNSProvider(NewZoneIDFilter([]string{"example.com"}), true)
|
||||
_, err = NewVinylDNSProvider(NewDomainFilter([]string{"example.com"}), NewZoneIDFilter([]string{"0"}), true)
|
||||
assert.NotNil(t, err)
|
||||
if err == nil {
|
||||
t.Errorf("Expected to fail new provider on empty token")
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user