fix: #8051 so that stale DNS entries are cleaned-up (#8053)

This commit is contained in:
maihde
2019-08-13 11:49:26 -04:00
committed by Harshavardhana
parent e96f19c867
commit 0ed6daab59
3 changed files with 61 additions and 1 deletions

View File

@@ -197,6 +197,21 @@ func (c *coreDNS) Delete(bucket string) error {
return nil
}
// Removes a specific DNS entry
func (c *coreDNS) DeleteRecord(record SrvRecord) error {
for _, domainName := range c.domainNames {
key := msg.Path(fmt.Sprintf("%s.%s.", record.Key, domainName), defaultPrefixPath)
dctx, dcancel := context.WithTimeout(context.Background(), defaultContextTimeout)
if _, err := c.etcdClient.Delete(dctx, key+etcdPathSeparator+record.Host); err != nil {
dcancel()
return err
}
dcancel()
}
return nil
}
// CoreDNS - represents dns config for coredns server.
type coreDNS struct {
domainNames []string

View File

@@ -62,4 +62,5 @@ type Config interface {
List() ([]SrvRecord, error)
Get(key string) ([]SrvRecord, error)
Delete(key string) error
DeleteRecord(record SrvRecord) error
}