Updated minTTL variable type from int64 to Duration

This commit is contained in:
Oguz Kilcan 2020-02-12 12:18:18 +01:00
parent b6111b9768
commit 21275c9aa0
No known key found for this signature in database
GPG Key ID: BB7FDDACE61E23C1
6 changed files with 19 additions and 18 deletions

View File

@ -240,7 +240,7 @@ func main() {
p, err = provider.NewOCIProvider(*config, domainFilter, zoneIDFilter, cfg.DryRun) p, err = provider.NewOCIProvider(*config, domainFilter, zoneIDFilter, cfg.DryRun)
} }
case "rfc2136": case "rfc2136":
p, err = provider.NewRfc2136Provider(cfg.RFC2136Host, cfg.RFC2136Port, cfg.RFC2136Zone, cfg.RFC2136Insecure, cfg.RFC2136TSIGKeyName, cfg.RFC2136TSIGSecret, cfg.RFC2136TSIGSecretAlg, cfg.RFC2136TAXFR, domainFilter, cfg.DryRun, cfg.RFC2136MinTTLSeconds, nil) p, err = provider.NewRfc2136Provider(cfg.RFC2136Host, cfg.RFC2136Port, cfg.RFC2136Zone, cfg.RFC2136Insecure, cfg.RFC2136TSIGKeyName, cfg.RFC2136TSIGSecret, cfg.RFC2136TSIGSecretAlg, cfg.RFC2136TAXFR, domainFilter, cfg.DryRun, cfg.RFC2136MinTTL, nil)
case "ns1": case "ns1":
p, err = provider.NewNS1Provider( p, err = provider.NewNS1Provider(
provider.NS1Config{ provider.NS1Config{

View File

@ -130,7 +130,7 @@ type Config struct {
RFC2136TSIGSecret string `secure:"yes"` RFC2136TSIGSecret string `secure:"yes"`
RFC2136TSIGSecretAlg string RFC2136TSIGSecretAlg string
RFC2136TAXFR bool RFC2136TAXFR bool
RFC2136MinTTLSeconds int64 RFC2136MinTTL time.Duration
NS1Endpoint string NS1Endpoint string
NS1IgnoreSSL bool NS1IgnoreSSL bool
TransIPAccountName string TransIPAccountName string
@ -224,7 +224,7 @@ var defaultConfig = &Config{
RFC2136TSIGSecret: "", RFC2136TSIGSecret: "",
RFC2136TSIGSecretAlg: "", RFC2136TSIGSecretAlg: "",
RFC2136TAXFR: true, RFC2136TAXFR: true,
RFC2136MinTTLSeconds: 0, RFC2136MinTTL: 0,
NS1Endpoint: "", NS1Endpoint: "",
NS1IgnoreSSL: false, NS1IgnoreSSL: false,
TransIPAccountName: "", TransIPAccountName: "",
@ -368,7 +368,7 @@ func (cfg *Config) ParseFlags(args []string) error {
app.Flag("rfc2136-tsig-secret", "When using the RFC2136 provider, specify the TSIG (base64) value to attached to DNS messages (required when --rfc2136-insecure=false)").Default(defaultConfig.RFC2136TSIGSecret).StringVar(&cfg.RFC2136TSIGSecret) app.Flag("rfc2136-tsig-secret", "When using the RFC2136 provider, specify the TSIG (base64) value to attached to DNS messages (required when --rfc2136-insecure=false)").Default(defaultConfig.RFC2136TSIGSecret).StringVar(&cfg.RFC2136TSIGSecret)
app.Flag("rfc2136-tsig-secret-alg", "When using the RFC2136 provider, specify the TSIG (base64) value to attached to DNS messages (required when --rfc2136-insecure=false)").Default(defaultConfig.RFC2136TSIGSecretAlg).StringVar(&cfg.RFC2136TSIGSecretAlg) app.Flag("rfc2136-tsig-secret-alg", "When using the RFC2136 provider, specify the TSIG (base64) value to attached to DNS messages (required when --rfc2136-insecure=false)").Default(defaultConfig.RFC2136TSIGSecretAlg).StringVar(&cfg.RFC2136TSIGSecretAlg)
app.Flag("rfc2136-tsig-axfr", "When using the RFC2136 provider, specify the TSIG (base64) value to attached to DNS messages (required when --rfc2136-insecure=false)").BoolVar(&cfg.RFC2136TAXFR) app.Flag("rfc2136-tsig-axfr", "When using the RFC2136 provider, specify the TSIG (base64) value to attached to DNS messages (required when --rfc2136-insecure=false)").BoolVar(&cfg.RFC2136TAXFR)
app.Flag("rfc2136-min-ttl", "When using the RFC2136 provider, specify minimal TTL (in seconds) for records. This value will be used if the provided TTL for a service/ingress is lower than this").Default(strconv.FormatInt(defaultConfig.RFC2136MinTTLSeconds, 10)).Int64Var(&cfg.RFC2136MinTTLSeconds) app.Flag("rfc2136-min-ttl", "When using the RFC2136 provider, specify minimal TTL (in duration format) for records. This value will be used if the provided TTL for a service/ingress is lower than this").Default(defaultConfig.RFC2136MinTTL.String()).DurationVar(&cfg.RFC2136MinTTL)
// Flags related to TransIP provider // Flags related to TransIP provider
app.Flag("transip-account", "When using the TransIP provider, specify the account name (required when --provider=transip)").Default(defaultConfig.TransIPAccountName).StringVar(&cfg.TransIPAccountName) app.Flag("transip-account", "When using the TransIP provider, specify the account name (required when --provider=transip)").Default(defaultConfig.TransIPAccountName).StringVar(&cfg.TransIPAccountName)

View File

@ -83,7 +83,7 @@ func ValidateConfig(cfg *externaldns.Config) error {
} }
if cfg.Provider == "rfc2136" { if cfg.Provider == "rfc2136" {
if cfg.RFC2136MinTTLSeconds < 0 { if cfg.RFC2136MinTTL < 0 {
return errors.New("TTL specified for rfc2136 is negative") return errors.New("TTL specified for rfc2136 is negative")
} }
} }

View File

@ -131,7 +131,7 @@ func TestValidateBadRfc2136Config(t *testing.T) {
cfg.LogFormat = "json" cfg.LogFormat = "json"
cfg.Sources = []string{"test-source"} cfg.Sources = []string{"test-source"}
cfg.Provider = "rfc2136" cfg.Provider = "rfc2136"
cfg.RFC2136MinTTLSeconds = -1 cfg.RFC2136MinTTL = -1
err := ValidateConfig(cfg) err := ValidateConfig(cfg)
@ -144,7 +144,7 @@ func TestValidateGoodRfc2136Config(t *testing.T) {
cfg.LogFormat = "json" cfg.LogFormat = "json"
cfg.Sources = []string{"test-source"} cfg.Sources = []string{"test-source"}
cfg.Provider = "rfc2136" cfg.Provider = "rfc2136"
cfg.RFC2136MinTTLSeconds = 3600 cfg.RFC2136MinTTL = 3600
err := ValidateConfig(cfg) err := ValidateConfig(cfg)

View File

@ -41,7 +41,7 @@ type rfc2136Provider struct {
tsigSecretAlg string tsigSecretAlg string
insecure bool insecure bool
axfr bool axfr bool
minTTLSeconds int64 minTTL time.Duration
// only consider hosted zones managing domains ending in this suffix // only consider hosted zones managing domains ending in this suffix
domainFilter DomainFilter domainFilter DomainFilter
@ -65,7 +65,7 @@ type rfc2136Actions interface {
} }
// NewRfc2136Provider is a factory function for OpenStack rfc2136 providers // NewRfc2136Provider is a factory function for OpenStack rfc2136 providers
func NewRfc2136Provider(host string, port int, zoneName string, insecure bool, keyName string, secret string, secretAlg string, axfr bool, domainFilter DomainFilter, dryRun bool, minTTLSeconds int64, actions rfc2136Actions) (Provider, error) { func NewRfc2136Provider(host string, port int, zoneName string, insecure bool, keyName string, secret string, secretAlg string, axfr bool, domainFilter DomainFilter, dryRun bool, minTTL time.Duration, actions rfc2136Actions) (Provider, error) {
secretAlgChecked, ok := tsigAlgs[secretAlg] secretAlgChecked, ok := tsigAlgs[secretAlg]
if !ok && !insecure { if !ok && !insecure {
return nil, errors.Errorf("%s is not supported TSIG algorithm", secretAlg) return nil, errors.Errorf("%s is not supported TSIG algorithm", secretAlg)
@ -78,7 +78,7 @@ func NewRfc2136Provider(host string, port int, zoneName string, insecure bool, k
domainFilter: domainFilter, domainFilter: domainFilter,
dryRun: dryRun, dryRun: dryRun,
axfr: axfr, axfr: axfr,
minTTLSeconds: minTTLSeconds, minTTL: minTTL,
} }
if actions != nil { if actions != nil {
r.actions = actions r.actions = actions
@ -256,7 +256,7 @@ func (r rfc2136Provider) UpdateRecord(m *dns.Msg, ep *endpoint.Endpoint) error {
func (r rfc2136Provider) AddRecord(m *dns.Msg, ep *endpoint.Endpoint) error { func (r rfc2136Provider) AddRecord(m *dns.Msg, ep *endpoint.Endpoint) error {
log.Debugf("AddRecord.ep=%s", ep) log.Debugf("AddRecord.ep=%s", ep)
var ttl = r.minTTLSeconds var ttl = int64(r.minTTL.Seconds())
if ep.RecordTTL.IsConfigured() && int64(ep.RecordTTL) > ttl { if ep.RecordTTL.IsConfigured() && int64(ep.RecordTTL) > ttl {
ttl = int64(ep.RecordTTL) ttl = int64(ep.RecordTTL)
} }

View File

@ -21,6 +21,7 @@ import (
"fmt" "fmt"
"strings" "strings"
"testing" "testing"
"time"
"github.com/miekg/dns" "github.com/miekg/dns"
log "github.com/sirupsen/logrus" log "github.com/sirupsen/logrus"
@ -93,7 +94,7 @@ func (r *rfc2136Stub) IncomeTransfer(m *dns.Msg, a string) (env chan *dns.Envelo
} }
func createRfc2136StubProvider(stub *rfc2136Stub) (Provider, error) { func createRfc2136StubProvider(stub *rfc2136Stub) (Provider, error) {
return NewRfc2136Provider("", 0, "", false, "key", "secret", "hmac-sha512", true, DomainFilter{}, false, 300, stub) return NewRfc2136Provider("", 0, "", false, "key", "secret", "hmac-sha512", true, DomainFilter{}, false, 300*time.Second, stub)
} }
func extractAuthoritySectionFromMessage(msg fmt.Stringer) []string { func extractAuthoritySectionFromMessage(msg fmt.Stringer) []string {