Allow CNAME records when specified as MINIO_PUBLIC_IPS (#8662)

This is necessary for `m3` global bucket support
This commit is contained in:
Harshavardhana 2019-12-17 21:32:45 -08:00 committed by Nitish Tiwari
parent 63c3114657
commit c9c0d5eec2
3 changed files with 16 additions and 9 deletions

View file

@ -188,7 +188,6 @@ func handleCommonEnvVars() {
for _, addr := range addrs {
domainIPs.Add(addr)
}
continue
}
domainIPs.Add(endpoint)
}

View file

@ -154,6 +154,8 @@ func (c *CoreDNS) list(key string) ([]SrvRecord, error) {
// Put - Adds DNS entries into etcd endpoint in CoreDNS etcd message format.
func (c *CoreDNS) Put(bucket string) error {
c.Delete(bucket) // delete any existing entries.
for ip := range c.domainIPs {
bucketMsg, err := newCoreDNSMsg(ip, c.domainPort, defaultTTL)
if err != nil {

View file

@ -694,17 +694,23 @@ func updateDomainIPs(endPoints set.StringSet) {
continue
}
}
IPs, err := getHostIP(host)
if err != nil {
continue
if net.ParseIP(host) == nil {
IPs, err := getHostIP(host)
if err != nil {
continue
}
IPsWithPort := IPs.ApplyFunc(func(ip string) string {
return net.JoinHostPort(ip, port)
})
ipList = ipList.Union(IPsWithPort)
}
IPsWithPort := IPs.ApplyFunc(func(ip string) string {
return net.JoinHostPort(ip, port)
})
ipList = ipList.Union(IPsWithPort)
ipList.Add(net.JoinHostPort(host, port))
}
globalDomainIPs = ipList.FuncMatch(func(ip string, matchString string) bool {
host, _, err := net.SplitHostPort(ip)
if err != nil {