mirror of
https://github.com/kubernetes-sigs/external-dns.git
synced 2025-08-07 10:06:57 +02:00
chore(code-quality): linter warnings fixes
Signed-off-by: ivan katliarchuk <ivan.katliarchuk@gmail.com>
This commit is contained in:
parent
5eaf814b94
commit
757a57609f
@ -51,11 +51,12 @@ const (
|
|||||||
// We have to use pointers to bools now, as the upstream cloudflare-go library requires them
|
// We have to use pointers to bools now, as the upstream cloudflare-go library requires them
|
||||||
// see: https://github.com/cloudflare/cloudflare-go/pull/595
|
// see: https://github.com/cloudflare/cloudflare-go/pull/595
|
||||||
|
|
||||||
|
var (
|
||||||
// proxyEnabled is a pointer to a bool true showing the record should be proxied through cloudflare
|
// proxyEnabled is a pointer to a bool true showing the record should be proxied through cloudflare
|
||||||
var proxyEnabled *bool = boolPtr(true)
|
proxyEnabled *bool = boolPtr(true)
|
||||||
|
|
||||||
// proxyDisabled is a pointer to a bool false showing the record should not be proxied through cloudflare
|
// proxyDisabled is a pointer to a bool false showing the record should not be proxied through cloudflare
|
||||||
var proxyDisabled *bool = boolPtr(false)
|
proxyDisabled *bool = boolPtr(false)
|
||||||
|
)
|
||||||
|
|
||||||
// for faster getRecordID() lookup
|
// for faster getRecordID() lookup
|
||||||
type DNSRecordIndex struct {
|
type DNSRecordIndex struct {
|
||||||
@ -279,8 +280,8 @@ func NewCloudFlareProvider(domainFilter endpoint.DomainFilter, zoneIDFilter prov
|
|||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, fmt.Errorf("failed to initialize cloudflare provider: %w", err)
|
return nil, fmt.Errorf("failed to initialize cloudflare provider: %w", err)
|
||||||
}
|
}
|
||||||
provider := &CloudFlareProvider{
|
|
||||||
// Client: config,
|
return &CloudFlareProvider{
|
||||||
Client: zoneService{config},
|
Client: zoneService{config},
|
||||||
domainFilter: domainFilter,
|
domainFilter: domainFilter,
|
||||||
zoneIDFilter: zoneIDFilter,
|
zoneIDFilter: zoneIDFilter,
|
||||||
@ -289,13 +290,12 @@ func NewCloudFlareProvider(domainFilter endpoint.DomainFilter, zoneIDFilter prov
|
|||||||
DryRun: dryRun,
|
DryRun: dryRun,
|
||||||
DNSRecordsPerPage: dnsRecordsPerPage,
|
DNSRecordsPerPage: dnsRecordsPerPage,
|
||||||
RegionKey: regionKey,
|
RegionKey: regionKey,
|
||||||
}
|
}, nil
|
||||||
return provider, nil
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// Zones returns the list of hosted zones.
|
// Zones returns the list of hosted zones.
|
||||||
func (p *CloudFlareProvider) Zones(ctx context.Context) ([]cloudflare.Zone, error) {
|
func (p *CloudFlareProvider) Zones(ctx context.Context) ([]cloudflare.Zone, error) {
|
||||||
result := []cloudflare.Zone{}
|
var result []cloudflare.Zone
|
||||||
|
|
||||||
// if there is a zoneIDfilter configured
|
// if there is a zoneIDfilter configured
|
||||||
// && if the filter isn't just a blank string (used in tests)
|
// && if the filter isn't just a blank string (used in tests)
|
||||||
@ -349,7 +349,7 @@ func (p *CloudFlareProvider) Records(ctx context.Context) ([]*endpoint.Endpoint,
|
|||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
|
|
||||||
endpoints := []*endpoint.Endpoint{}
|
var endpoints []*endpoint.Endpoint
|
||||||
for _, zone := range zones {
|
for _, zone := range zones {
|
||||||
records, err := p.listDNSRecordsWithAutoPagination(ctx, zone.ID)
|
records, err := p.listDNSRecordsWithAutoPagination(ctx, zone.ID)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
@ -373,7 +373,7 @@ func (p *CloudFlareProvider) Records(ctx context.Context) ([]*endpoint.Endpoint,
|
|||||||
|
|
||||||
// ApplyChanges applies a given set of changes in a given zone.
|
// ApplyChanges applies a given set of changes in a given zone.
|
||||||
func (p *CloudFlareProvider) ApplyChanges(ctx context.Context, changes *plan.Changes) error {
|
func (p *CloudFlareProvider) ApplyChanges(ctx context.Context, changes *plan.Changes) error {
|
||||||
cloudflareChanges := []*cloudFlareChange{}
|
var cloudflareChanges []*cloudFlareChange
|
||||||
|
|
||||||
// if custom hostnames are enabled, deleting first allows to avoid conflicts with the new ones
|
// if custom hostnames are enabled, deleting first allows to avoid conflicts with the new ones
|
||||||
if p.CustomHostnamesConfig.Enabled {
|
if p.CustomHostnamesConfig.Enabled {
|
||||||
@ -425,7 +425,7 @@ func (p *CloudFlareProvider) submitCustomHostnameChanges(ctx context.Context, zo
|
|||||||
failedChange := false
|
failedChange := false
|
||||||
// return early if disabled
|
// return early if disabled
|
||||||
if !p.CustomHostnamesConfig.Enabled {
|
if !p.CustomHostnamesConfig.Enabled {
|
||||||
return !failedChange
|
return true
|
||||||
}
|
}
|
||||||
|
|
||||||
switch change.Action {
|
switch change.Action {
|
||||||
@ -730,7 +730,7 @@ func (p *CloudFlareProvider) submitChanges(ctx context.Context, changes []*cloud
|
|||||||
|
|
||||||
// AdjustEndpoints modifies the endpoints as needed by the specific provider
|
// AdjustEndpoints modifies the endpoints as needed by the specific provider
|
||||||
func (p *CloudFlareProvider) AdjustEndpoints(endpoints []*endpoint.Endpoint) ([]*endpoint.Endpoint, error) {
|
func (p *CloudFlareProvider) AdjustEndpoints(endpoints []*endpoint.Endpoint) ([]*endpoint.Endpoint, error) {
|
||||||
adjustedEndpoints := []*endpoint.Endpoint{}
|
var adjustedEndpoints []*endpoint.Endpoint
|
||||||
for _, e := range endpoints {
|
for _, e := range endpoints {
|
||||||
proxied := shouldBeProxied(e, p.proxiedByDefault)
|
proxied := shouldBeProxied(e, p.proxiedByDefault)
|
||||||
if proxied {
|
if proxied {
|
||||||
@ -969,7 +969,7 @@ func getEndpointCustomHostnames(ep *endpoint.Endpoint) []string {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func groupByNameAndTypeWithCustomHostnames(records DNSRecordsMap, chs CustomHostnamesMap) []*endpoint.Endpoint {
|
func groupByNameAndTypeWithCustomHostnames(records DNSRecordsMap, chs CustomHostnamesMap) []*endpoint.Endpoint {
|
||||||
endpoints := []*endpoint.Endpoint{}
|
var endpoints []*endpoint.Endpoint
|
||||||
|
|
||||||
// group supported records by name and type
|
// group supported records by name and type
|
||||||
groups := map[string][]cloudflare.DNSRecord{}
|
groups := map[string][]cloudflare.DNSRecord{}
|
||||||
@ -994,7 +994,7 @@ func groupByNameAndTypeWithCustomHostnames(records DNSRecordsMap, chs CustomHost
|
|||||||
customHostnames[c.CustomOriginServer] = append(customHostnames[c.CustomOriginServer], c.Hostname)
|
customHostnames[c.CustomOriginServer] = append(customHostnames[c.CustomOriginServer], c.Hostname)
|
||||||
}
|
}
|
||||||
|
|
||||||
// create single endpoint with all the targets for each name/type
|
// create a single endpoint with all the targets for each name/type
|
||||||
for _, records := range groups {
|
for _, records := range groups {
|
||||||
if len(records) == 0 {
|
if len(records) == 0 {
|
||||||
return endpoints
|
return endpoints
|
||||||
@ -1016,7 +1016,7 @@ func groupByNameAndTypeWithCustomHostnames(records DNSRecordsMap, chs CustomHost
|
|||||||
continue
|
continue
|
||||||
}
|
}
|
||||||
e = e.WithProviderSpecific(source.CloudflareProxiedKey, strconv.FormatBool(proxied))
|
e = e.WithProviderSpecific(source.CloudflareProxiedKey, strconv.FormatBool(proxied))
|
||||||
// noop (customHostnames is empty) if custom hostnames feature is not in use
|
// noop (customHostnames is empty) if the custom hostnames feature is not in use
|
||||||
if customHostnames, ok := customHostnames[records[0].Name]; ok {
|
if customHostnames, ok := customHostnames[records[0].Name]; ok {
|
||||||
sort.Strings(customHostnames)
|
sort.Strings(customHostnames)
|
||||||
e = e.WithProviderSpecific(source.CloudflareCustomHostnameKey, strings.Join(customHostnames, ","))
|
e = e.WithProviderSpecific(source.CloudflareCustomHostnameKey, strings.Join(customHostnames, ","))
|
||||||
|
@ -92,7 +92,7 @@ type etcdClient struct {
|
|||||||
|
|
||||||
var _ coreDNSClient = etcdClient{}
|
var _ coreDNSClient = etcdClient{}
|
||||||
|
|
||||||
// GetService return all Service records stored in etcd stored anywhere under the given key (recursively)
|
// GetServices GetService return all Service records stored in etcd stored anywhere under the given key (recursively)
|
||||||
func (c etcdClient) GetServices(prefix string) ([]*Service, error) {
|
func (c etcdClient) GetServices(prefix string) ([]*Service, error) {
|
||||||
ctx, cancel := context.WithTimeout(c.ctx, etcdTimeout)
|
ctx, cancel := context.WithTimeout(c.ctx, etcdTimeout)
|
||||||
defer cancel()
|
defer cancel()
|
||||||
|
@ -33,7 +33,13 @@ import (
|
|||||||
"sigs.k8s.io/external-dns/provider"
|
"sigs.k8s.io/external-dns/provider"
|
||||||
)
|
)
|
||||||
|
|
||||||
const dnsimpleRecordTTL = 3600 // Default TTL of 1 hour if not set (DNSimple's default)
|
const (
|
||||||
|
dnsimpleCreate = "CREATE"
|
||||||
|
dnsimpleDelete = "DELETE"
|
||||||
|
dnsimpleUpdate = "UPDATE"
|
||||||
|
|
||||||
|
dnsimpleRecordTTL = 3600 // Default TTL of 1 hour if not set (DNSimple's default)
|
||||||
|
)
|
||||||
|
|
||||||
type dnsimpleIdentityService struct {
|
type dnsimpleIdentityService struct {
|
||||||
service *dnsimple.IdentityService
|
service *dnsimple.IdentityService
|
||||||
@ -91,12 +97,6 @@ type dnsimpleChange struct {
|
|||||||
ResourceRecordSet dnsimple.ZoneRecord
|
ResourceRecordSet dnsimple.ZoneRecord
|
||||||
}
|
}
|
||||||
|
|
||||||
const (
|
|
||||||
dnsimpleCreate = "CREATE"
|
|
||||||
dnsimpleDelete = "DELETE"
|
|
||||||
dnsimpleUpdate = "UPDATE"
|
|
||||||
)
|
|
||||||
|
|
||||||
// NewDnsimpleProvider initializes a new Dnsimple based provider
|
// NewDnsimpleProvider initializes a new Dnsimple based provider
|
||||||
func NewDnsimpleProvider(domainFilter endpoint.DomainFilter, zoneIDFilter provider.ZoneIDFilter, dryRun bool) (provider.Provider, error) {
|
func NewDnsimpleProvider(domainFilter endpoint.DomainFilter, zoneIDFilter provider.ZoneIDFilter, dryRun bool) (provider.Provider, error) {
|
||||||
oauthToken := os.Getenv("DNSIMPLE_OAUTH")
|
oauthToken := os.Getenv("DNSIMPLE_OAUTH")
|
||||||
@ -149,7 +149,7 @@ func ZonesFromZoneString(zonestring string) map[string]dnsimple.Zone {
|
|||||||
return zones
|
return zones
|
||||||
}
|
}
|
||||||
|
|
||||||
// Returns a list of filtered Zones
|
// Zones Return a list of filtered Zones
|
||||||
func (p *dnsimpleProvider) Zones(ctx context.Context) (map[string]dnsimple.Zone, error) {
|
func (p *dnsimpleProvider) Zones(ctx context.Context) (map[string]dnsimple.Zone, error) {
|
||||||
zones := make(map[string]dnsimple.Zone)
|
zones := make(map[string]dnsimple.Zone)
|
||||||
|
|
||||||
|
@ -181,7 +181,7 @@ func (ep *ExoscaleProvider) ApplyChanges(ctx context.Context, changes *plan.Chan
|
|||||||
}
|
}
|
||||||
|
|
||||||
for _, epoint := range changes.UpdateOld {
|
for _, epoint := range changes.UpdateOld {
|
||||||
// Since Exoscale "Patches", we ignore UpdateOld
|
// Since Exoscale "Patches", we've ignored UpdateOld
|
||||||
// We leave this logging here for information
|
// We leave this logging here for information
|
||||||
log.Debugf("UPDATE-OLD (ignored) for epoint: %+v", epoint)
|
log.Debugf("UPDATE-OLD (ignored) for epoint: %+v", epoint)
|
||||||
}
|
}
|
||||||
|
@ -34,17 +34,15 @@ import (
|
|||||||
"sigs.k8s.io/external-dns/pkg/apis/externaldns"
|
"sigs.k8s.io/external-dns/pkg/apis/externaldns"
|
||||||
)
|
)
|
||||||
|
|
||||||
// DefaultTimeout api requests after 180s
|
|
||||||
const DefaultTimeout = 180 * time.Second
|
|
||||||
|
|
||||||
// Errors
|
// Errors
|
||||||
var (
|
var (
|
||||||
ErrAPIDown = errors.New("godaddy: the GoDaddy API is down")
|
ErrAPIDown = errors.New("godaddy: the GoDaddy API is down")
|
||||||
)
|
)
|
||||||
|
|
||||||
// error codes
|
|
||||||
const (
|
const (
|
||||||
ErrCodeQuotaExceeded = "QUOTA_EXCEEDED"
|
ErrCodeQuotaExceeded = "QUOTA_EXCEEDED"
|
||||||
|
// DefaultTimeout api requests after 180s
|
||||||
|
DefaultTimeout = 180 * time.Second
|
||||||
)
|
)
|
||||||
|
|
||||||
// APIError error
|
// APIError error
|
||||||
|
@ -36,6 +36,8 @@ const (
|
|||||||
gdCreate = 0
|
gdCreate = 0
|
||||||
gdReplace = 1
|
gdReplace = 1
|
||||||
gdDelete = 2
|
gdDelete = 2
|
||||||
|
|
||||||
|
domainsURI = "/v1/domains?statuses=ACTIVE,PENDING_DNS_ACTIVE"
|
||||||
)
|
)
|
||||||
|
|
||||||
var actionNames = []string{
|
var actionNames = []string{
|
||||||
@ -44,8 +46,6 @@ var actionNames = []string{
|
|||||||
"delete",
|
"delete",
|
||||||
}
|
}
|
||||||
|
|
||||||
const domainsURI = "/v1/domains?statuses=ACTIVE,PENDING_DNS_ACTIVE"
|
|
||||||
|
|
||||||
type gdClient interface {
|
type gdClient interface {
|
||||||
Patch(string, interface{}, interface{}) error
|
Patch(string, interface{}, interface{}) error
|
||||||
Post(string, interface{}, interface{}) error
|
Post(string, interface{}, interface{}) error
|
||||||
|
@ -154,7 +154,7 @@ func NewGoogleProvider(ctx context.Context, project string, domainFilter endpoin
|
|||||||
|
|
||||||
zoneTypeFilter := provider.NewZoneTypeFilter(zoneVisibility)
|
zoneTypeFilter := provider.NewZoneTypeFilter(zoneVisibility)
|
||||||
|
|
||||||
provider := &GoogleProvider{
|
return &GoogleProvider{
|
||||||
project: project,
|
project: project,
|
||||||
dryRun: dryRun,
|
dryRun: dryRun,
|
||||||
batchChangeSize: batchChangeSize,
|
batchChangeSize: batchChangeSize,
|
||||||
@ -166,9 +166,7 @@ func NewGoogleProvider(ctx context.Context, project string, domainFilter endpoin
|
|||||||
managedZonesClient: managedZonesService{dnsClient.ManagedZones},
|
managedZonesClient: managedZonesService{dnsClient.ManagedZones},
|
||||||
changesClient: changesService{dnsClient.Changes},
|
changesClient: changesService{dnsClient.Changes},
|
||||||
ctx: ctx,
|
ctx: ctx,
|
||||||
}
|
}, nil
|
||||||
|
|
||||||
return provider, nil
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// Zones returns the list of hosted zones.
|
// Zones returns the list of hosted zones.
|
||||||
@ -261,11 +259,11 @@ func (p *GoogleProvider) SupportedRecordType(recordType string) bool {
|
|||||||
|
|
||||||
// newFilteredRecords returns a collection of RecordSets based on the given endpoints and domainFilter.
|
// newFilteredRecords returns a collection of RecordSets based on the given endpoints and domainFilter.
|
||||||
func (p *GoogleProvider) newFilteredRecords(endpoints []*endpoint.Endpoint) []*dns.ResourceRecordSet {
|
func (p *GoogleProvider) newFilteredRecords(endpoints []*endpoint.Endpoint) []*dns.ResourceRecordSet {
|
||||||
records := []*dns.ResourceRecordSet{}
|
var records []*dns.ResourceRecordSet
|
||||||
|
|
||||||
for _, endpoint := range endpoints {
|
for _, ep := range endpoints {
|
||||||
if p.domainFilter.Match(endpoint.DNSName) {
|
if p.domainFilter.Match(ep.DNSName) {
|
||||||
records = append(records, newRecord(endpoint))
|
records = append(records, newRecord(ep))
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -314,7 +312,7 @@ func (p *GoogleProvider) submitChange(ctx context.Context, change *dns.Change) e
|
|||||||
|
|
||||||
// batchChange separates a zone in multiple transaction.
|
// batchChange separates a zone in multiple transaction.
|
||||||
func batchChange(change *dns.Change, batchSize int) []*dns.Change {
|
func batchChange(change *dns.Change, batchSize int) []*dns.Change {
|
||||||
changes := []*dns.Change{}
|
var changes []*dns.Change
|
||||||
|
|
||||||
if batchSize == 0 {
|
if batchSize == 0 {
|
||||||
return append(changes, change)
|
return append(changes, change)
|
||||||
|
@ -322,7 +322,7 @@ func NewIBMCloudProvider(configFile string, domainFilter endpoint.DomainFilter,
|
|||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
|
|
||||||
provider := &IBMCloudProvider{
|
return &IBMCloudProvider{
|
||||||
Client: client,
|
Client: client,
|
||||||
source: source,
|
source: source,
|
||||||
domainFilter: domainFilter,
|
domainFilter: domainFilter,
|
||||||
@ -331,8 +331,7 @@ func NewIBMCloudProvider(configFile string, domainFilter endpoint.DomainFilter,
|
|||||||
privateZone: isPrivate,
|
privateZone: isPrivate,
|
||||||
proxiedByDefault: proxiedByDefault,
|
proxiedByDefault: proxiedByDefault,
|
||||||
DryRun: dryRun,
|
DryRun: dryRun,
|
||||||
}
|
}, nil
|
||||||
return provider, nil
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// Records gets the current records.
|
// Records gets the current records.
|
||||||
@ -680,8 +679,8 @@ func (p *IBMCloudProvider) privateRecords(ctx context.Context) ([]*endpoint.Endp
|
|||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
// Filter VPC annoation for private zone active
|
// Filter VPC annoation for private zone active
|
||||||
for _, source := range sources {
|
for _, src := range sources {
|
||||||
vpc = checkVPCAnnotation(source)
|
vpc = checkVPCAnnotation(src)
|
||||||
if len(vpc) > 0 {
|
if len(vpc) > 0 {
|
||||||
log.Debugf("VPC found: %s", vpc)
|
log.Debugf("VPC found: %s", vpc)
|
||||||
break
|
break
|
||||||
@ -984,7 +983,7 @@ func checkVPCAnnotation(endpoint *endpoint.Endpoint) string {
|
|||||||
for _, v := range endpoint.ProviderSpecific {
|
for _, v := range endpoint.ProviderSpecific {
|
||||||
if v.Name == vpcFilter {
|
if v.Name == vpcFilter {
|
||||||
vpcCrn, err := crn.Parse(v.Value)
|
vpcCrn, err := crn.Parse(v.Value)
|
||||||
if vpcCrn.ResourceType != "vpc" || err != nil {
|
if err != nil || vpcCrn.ResourceType != "vpc" {
|
||||||
log.Errorf("Failed to parse vpc [%s]: %v", v.Value, err)
|
log.Errorf("Failed to parse vpc [%s]: %v", v.Value, err)
|
||||||
} else {
|
} else {
|
||||||
vpc = v.Value
|
vpc = v.Value
|
||||||
@ -1002,6 +1001,7 @@ func isNil(i interface{}) bool {
|
|||||||
switch reflect.TypeOf(i).Kind() {
|
switch reflect.TypeOf(i).Kind() {
|
||||||
case reflect.Ptr, reflect.Map, reflect.Array, reflect.Chan, reflect.Slice:
|
case reflect.Ptr, reflect.Map, reflect.Array, reflect.Chan, reflect.Slice:
|
||||||
return reflect.ValueOf(i).IsNil()
|
return reflect.ValueOf(i).IsNil()
|
||||||
}
|
default:
|
||||||
return false
|
return false
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
@ -96,15 +96,14 @@ func NewLinodeProvider(domainFilter endpoint.DomainFilter, dryRun bool) (*Linode
|
|||||||
linodeClient := linodego.NewClient(oauth2Client)
|
linodeClient := linodego.NewClient(oauth2Client)
|
||||||
linodeClient.SetUserAgent(fmt.Sprintf("%s linodego/%s", externaldns.UserAgent(), linodego.Version))
|
linodeClient.SetUserAgent(fmt.Sprintf("%s linodego/%s", externaldns.UserAgent(), linodego.Version))
|
||||||
|
|
||||||
provider := &LinodeProvider{
|
return &LinodeProvider{
|
||||||
Client: &linodeClient,
|
Client: &linodeClient,
|
||||||
domainFilter: domainFilter,
|
domainFilter: domainFilter,
|
||||||
DryRun: dryRun,
|
DryRun: dryRun,
|
||||||
}
|
}, nil
|
||||||
return provider, nil
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// Zones returns the list of hosted zones.
|
// Zones return the list of hosted zones.
|
||||||
func (p *LinodeProvider) Zones(ctx context.Context) ([]linodego.Domain, error) {
|
func (p *LinodeProvider) Zones(ctx context.Context) ([]linodego.Domain, error) {
|
||||||
zones, err := p.fetchZones(ctx)
|
zones, err := p.fetchZones(ctx)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
|
@ -136,13 +136,12 @@ func newNS1ProviderWithHTTPClient(config NS1Config, client *http.Client) (*NS1Pr
|
|||||||
|
|
||||||
apiClient := api.NewClient(client, clientArgs...)
|
apiClient := api.NewClient(client, clientArgs...)
|
||||||
|
|
||||||
provider := &NS1Provider{
|
return &NS1Provider{
|
||||||
client: NS1DomainService{apiClient},
|
client: NS1DomainService{apiClient},
|
||||||
domainFilter: config.DomainFilter,
|
domainFilter: config.DomainFilter,
|
||||||
zoneIDFilter: config.ZoneIDFilter,
|
zoneIDFilter: config.ZoneIDFilter,
|
||||||
minTTLSeconds: config.MinTTLSeconds,
|
minTTLSeconds: config.MinTTLSeconds,
|
||||||
}
|
}, nil
|
||||||
return provider, nil
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// Records returns the endpoints this provider knows about
|
// Records returns the endpoints this provider knows about
|
||||||
@ -257,7 +256,7 @@ func (p *NS1Provider) zonesFiltered() ([]*dns.Zone, error) {
|
|||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
|
|
||||||
toReturn := []*dns.Zone{}
|
var toReturn []*dns.Zone
|
||||||
|
|
||||||
for _, z := range zones {
|
for _, z := range zones {
|
||||||
if p.domainFilter.Match(z.Zone) && p.zoneIDFilter.Match(z.ID) {
|
if p.domainFilter.Match(z.Zone) && p.zoneIDFilter.Match(z.ID) {
|
||||||
@ -292,10 +291,10 @@ func (p *NS1Provider) ApplyChanges(ctx context.Context, changes *plan.Changes) e
|
|||||||
func newNS1Changes(action string, endpoints []*endpoint.Endpoint) []*ns1Change {
|
func newNS1Changes(action string, endpoints []*endpoint.Endpoint) []*ns1Change {
|
||||||
changes := make([]*ns1Change, 0, len(endpoints))
|
changes := make([]*ns1Change, 0, len(endpoints))
|
||||||
|
|
||||||
for _, endpoint := range endpoints {
|
for _, ep := range endpoints {
|
||||||
changes = append(changes, &ns1Change{
|
changes = append(changes, &ns1Change{
|
||||||
Action: action,
|
Action: action,
|
||||||
Endpoint: endpoint,
|
Endpoint: ep,
|
||||||
},
|
},
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
@ -186,13 +186,13 @@ func mergeEndpointsMultiTargets(endpoints []*endpoint.Endpoint) []*endpoint.Endp
|
|||||||
|
|
||||||
// Otherwise, create a new list of endpoints with the consolidated targets.
|
// Otherwise, create a new list of endpoints with the consolidated targets.
|
||||||
var mergedEndpoints []*endpoint.Endpoint
|
var mergedEndpoints []*endpoint.Endpoint
|
||||||
for _, endpoints := range endpointsByNameType {
|
for _, ep := range endpointsByNameType {
|
||||||
dnsName := endpoints[0].DNSName
|
dnsName := ep[0].DNSName
|
||||||
recordType := endpoints[0].RecordType
|
recordType := ep[0].RecordType
|
||||||
recordTTL := endpoints[0].RecordTTL
|
recordTTL := ep[0].RecordTTL
|
||||||
|
|
||||||
targets := make([]string, len(endpoints))
|
targets := make([]string, len(ep))
|
||||||
for i, e := range endpoints {
|
for i, e := range ep {
|
||||||
targets[i] = e.Targets[0]
|
targets[i] = e.Targets[0]
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -324,10 +324,10 @@ func (p *OVHProvider) change(ctx context.Context, change ovhChange) error {
|
|||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
return p.client.PutWithContext(ctx, fmt.Sprintf("/domain/zone/%s/record/%d", url.PathEscape(change.Zone), change.ID), change.ovhRecordFieldUpdate, nil)
|
return p.client.PutWithContext(ctx, fmt.Sprintf("/domain/zone/%s/record/%d", url.PathEscape(change.Zone), change.ID), change.ovhRecordFieldUpdate, nil)
|
||||||
}
|
default:
|
||||||
|
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
func (p *OVHProvider) invalidateCache(zone string) {
|
func (p *OVHProvider) invalidateCache(zone string) {
|
||||||
p.cacheInstance.Delete(zone + "#soa")
|
p.cacheInstance.Delete(zone + "#soa")
|
||||||
@ -357,8 +357,8 @@ func (p *OVHProvider) zonesRecords(ctx context.Context) ([]string, []ovhRecord,
|
|||||||
}
|
}
|
||||||
|
|
||||||
func (p *OVHProvider) zones(ctx context.Context) ([]string, error) {
|
func (p *OVHProvider) zones(ctx context.Context) ([]string, error) {
|
||||||
zones := []string{}
|
var zones []string
|
||||||
filteredZones := []string{}
|
var filteredZones []string
|
||||||
|
|
||||||
p.apiRateLimiter.Take()
|
p.apiRateLimiter.Take()
|
||||||
if err := p.client.GetWithContext(ctx, "/domain/zone", &zones); err != nil {
|
if err := p.client.GetWithContext(ctx, "/domain/zone", &zones); err != nil {
|
||||||
@ -476,25 +476,25 @@ func ovhGroupByNameAndType(records []ovhRecord) []*endpoint.Endpoint {
|
|||||||
|
|
||||||
// create single endpoint with all the targets for each name/type
|
// create single endpoint with all the targets for each name/type
|
||||||
for _, records := range groups {
|
for _, records := range groups {
|
||||||
targets := []string{}
|
var targets []string
|
||||||
for _, record := range records {
|
for _, record := range records {
|
||||||
targets = append(targets, record.Target)
|
targets = append(targets, record.Target)
|
||||||
}
|
}
|
||||||
endpoint := endpoint.NewEndpointWithTTL(
|
ep := endpoint.NewEndpointWithTTL(
|
||||||
strings.TrimPrefix(records[0].SubDomain+"."+records[0].Zone, "."),
|
strings.TrimPrefix(records[0].SubDomain+"."+records[0].Zone, "."),
|
||||||
records[0].FieldType,
|
records[0].FieldType,
|
||||||
endpoint.TTL(records[0].TTL),
|
endpoint.TTL(records[0].TTL),
|
||||||
targets...,
|
targets...,
|
||||||
)
|
)
|
||||||
endpoints = append(endpoints, endpoint)
|
endpoints = append(endpoints, ep)
|
||||||
}
|
}
|
||||||
|
|
||||||
return endpoints
|
return endpoints
|
||||||
}
|
}
|
||||||
|
|
||||||
func (p OVHProvider) newOvhChangeCreateDelete(action int, endpoints []*endpoint.Endpoint, zone string, existingRecords []ovhRecord) ([]ovhChange, []ovhRecord) {
|
func (p OVHProvider) newOvhChangeCreateDelete(action int, endpoints []*endpoint.Endpoint, zone string, existingRecords []ovhRecord) ([]ovhChange, []ovhRecord) {
|
||||||
ovhChanges := []ovhChange{}
|
var ovhChanges []ovhChange
|
||||||
toDeleteIds := []int{}
|
var toDeleteIds []int
|
||||||
|
|
||||||
for _, e := range endpoints {
|
for _, e := range endpoints {
|
||||||
for _, target := range e.Targets {
|
for _, target := range e.Targets {
|
||||||
@ -579,13 +579,13 @@ func (p OVHProvider) newOvhChangeUpdate(endpointsOld []*endpoint.Endpoint, endpo
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
changes := []ovhChange{}
|
var changes []ovhChange
|
||||||
|
|
||||||
for id := range oldEndpointByTypeAndName {
|
for id := range oldEndpointByTypeAndName {
|
||||||
oldRecords := slices.Clone(oldRecordsInZone[id])
|
oldRecords := slices.Clone(oldRecordsInZone[id])
|
||||||
endpointsNew := newEndpointByTypeAndName[id]
|
endpointsNew := newEndpointByTypeAndName[id]
|
||||||
|
|
||||||
toInsertTarget := []string{}
|
var toInsertTarget []string
|
||||||
|
|
||||||
for _, target := range endpointsNew.Targets {
|
for _, target := range endpointsNew.Targets {
|
||||||
var toDelete = -1
|
var toDelete = -1
|
||||||
|
@ -45,7 +45,6 @@ type RecordChange struct {
|
|||||||
|
|
||||||
func NewPluralProvider(cluster, provider string) (*PluralProvider, error) {
|
func NewPluralProvider(cluster, provider string) (*PluralProvider, error) {
|
||||||
token := os.Getenv("PLURAL_ACCESS_TOKEN")
|
token := os.Getenv("PLURAL_ACCESS_TOKEN")
|
||||||
endpoint := os.Getenv("PLURAL_ENDPOINT")
|
|
||||||
|
|
||||||
if token == "" {
|
if token == "" {
|
||||||
return nil, fmt.Errorf("no plural access token provided, you must set the PLURAL_ACCESS_TOKEN env var")
|
return nil, fmt.Errorf("no plural access token provided, you must set the PLURAL_ACCESS_TOKEN env var")
|
||||||
@ -53,21 +52,19 @@ func NewPluralProvider(cluster, provider string) (*PluralProvider, error) {
|
|||||||
|
|
||||||
config := &Config{
|
config := &Config{
|
||||||
Token: token,
|
Token: token,
|
||||||
Endpoint: endpoint,
|
Endpoint: os.Getenv("PLURAL_ENDPOINT"),
|
||||||
Cluster: cluster,
|
Cluster: cluster,
|
||||||
Provider: provider,
|
Provider: provider,
|
||||||
}
|
}
|
||||||
|
|
||||||
client, err := NewClient(config)
|
cl, err := NewClient(config)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
|
|
||||||
prov := &PluralProvider{
|
return &PluralProvider{
|
||||||
Client: client,
|
Client: cl,
|
||||||
}
|
}, nil
|
||||||
|
|
||||||
return prov, nil
|
|
||||||
}
|
}
|
||||||
|
|
||||||
func (p *PluralProvider) Records(_ context.Context) (endpoints []*endpoint.Endpoint, err error) {
|
func (p *PluralProvider) Records(_ context.Context) (endpoints []*endpoint.Endpoint, err error) {
|
||||||
@ -89,8 +86,8 @@ func (p *PluralProvider) AdjustEndpoints(endpoints []*endpoint.Endpoint) ([]*end
|
|||||||
|
|
||||||
func (p *PluralProvider) ApplyChanges(_ context.Context, diffs *plan.Changes) error {
|
func (p *PluralProvider) ApplyChanges(_ context.Context, diffs *plan.Changes) error {
|
||||||
var changes []*RecordChange
|
var changes []*RecordChange
|
||||||
for _, endpoint := range diffs.Create {
|
for _, ep := range diffs.Create {
|
||||||
changes = append(changes, makeChange(CreateAction, endpoint.Targets, endpoint))
|
changes = append(changes, makeChange(CreateAction, ep.Targets, ep))
|
||||||
}
|
}
|
||||||
|
|
||||||
for _, desired := range diffs.UpdateNew {
|
for _, desired := range diffs.UpdateNew {
|
||||||
|
@ -32,8 +32,6 @@ import (
|
|||||||
|
|
||||||
func NewMockTencentCloudProvider(domainFilter endpoint.DomainFilter, zoneIDFilter provider.ZoneIDFilter, zoneType string) *TencentCloudProvider {
|
func NewMockTencentCloudProvider(domainFilter endpoint.DomainFilter, zoneIDFilter provider.ZoneIDFilter, zoneType string) *TencentCloudProvider {
|
||||||
cfg := tencentCloudConfig{
|
cfg := tencentCloudConfig{
|
||||||
// SecretId: "",
|
|
||||||
// SecretKey: "",
|
|
||||||
RegionId: "ap-shanghai",
|
RegionId: "ap-shanghai",
|
||||||
VPCId: "vpc-abcdefg",
|
VPCId: "vpc-abcdefg",
|
||||||
}
|
}
|
||||||
|
@ -39,22 +39,19 @@ const (
|
|||||||
rdPoolOrder = "ROUND_ROBIN"
|
rdPoolOrder = "ROUND_ROBIN"
|
||||||
)
|
)
|
||||||
|
|
||||||
// global variables
|
|
||||||
var sbPoolRunProbes = true
|
|
||||||
|
|
||||||
var (
|
var (
|
||||||
sbPoolActOnProbes = true
|
sbPoolActOnProbes = true
|
||||||
ultradnsPoolType = "rdpool"
|
ultradnsPoolType = "rdpool"
|
||||||
accountName string
|
accountName string
|
||||||
)
|
sbPoolRunProbes = true
|
||||||
|
|
||||||
// Setting custom headers for ultradns api calls
|
// Setting custom headers for ultradns api calls
|
||||||
var customHeader = []udnssdk.CustomHeader{
|
customHeader = []udnssdk.CustomHeader{
|
||||||
{
|
{
|
||||||
Key: "UltraClient",
|
Key: "UltraClient",
|
||||||
Value: "kube-client",
|
Value: "kube-client",
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
|
)
|
||||||
|
|
||||||
// UltraDNSProvider struct
|
// UltraDNSProvider struct
|
||||||
type UltraDNSProvider struct {
|
type UltraDNSProvider struct {
|
||||||
@ -128,13 +125,11 @@ func NewUltraDNSProvider(domainFilter endpoint.DomainFilter, dryRun bool) (*Ultr
|
|||||||
return nil, fmt.Errorf("connection cannot be established")
|
return nil, fmt.Errorf("connection cannot be established")
|
||||||
}
|
}
|
||||||
|
|
||||||
provider := &UltraDNSProvider{
|
return &UltraDNSProvider{
|
||||||
client: *client,
|
client: *client,
|
||||||
domainFilter: domainFilter,
|
domainFilter: domainFilter,
|
||||||
dryRun: dryRun,
|
dryRun: dryRun,
|
||||||
}
|
}, nil
|
||||||
|
|
||||||
return provider, nil
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// Zones returns list of hosted zones
|
// Zones returns list of hosted zones
|
||||||
@ -216,7 +211,7 @@ func (p *UltraDNSProvider) fetchRecords(ctx context.Context, k udnssdk.RRSetKey)
|
|||||||
maxerrs := 5
|
maxerrs := 5
|
||||||
waittime := 5 * time.Second
|
waittime := 5 * time.Second
|
||||||
|
|
||||||
rrsets := []udnssdk.RRSet{}
|
var rrsets []udnssdk.RRSet
|
||||||
errcnt := 0
|
errcnt := 0
|
||||||
offset := 0
|
offset := 0
|
||||||
limit := 1000
|
limit := 1000
|
||||||
|
Loading…
Reference in New Issue
Block a user