在集群中可以设置自动加入DNS的CNAME记录

This commit is contained in:
刘祥超
2021-09-20 16:37:48 +08:00
parent 7a1bd29f6f
commit d121bc86a0
5 changed files with 136 additions and 18 deletions

View File

@@ -402,6 +402,15 @@ func (this *DNSDomainService) findClusterDNSChanges(cluster *models.NodeCluster,
tx := this.NullTx()
// 自动设置的cname记录
var cnameRecords = []string{}
if len(cluster.Dns) > 0 {
dnsConfig, _ := cluster.DecodeDNSConfig()
if dnsConfig != nil {
cnameRecords = dnsConfig.CNameRecords
}
}
// 节点域名
nodes, err := models.SharedNodeDAO.FindAllEnabledNodesDNSWithClusterId(tx, clusterId, true)
if err != nil {
@@ -527,6 +536,27 @@ func (this *DNSDomainService) findClusterDNSChanges(cluster *models.NodeCluster,
}
}
// 自动设置的CNAME
for _, cnameRecord := range cnameRecords {
serverDNSNames = append(serverDNSNames, cnameRecord)
record, ok := serverRecordsMap[cnameRecord]
if !ok {
serversChanged = true
result = append(result, maps.Map{
"action": "create",
"record": &dnstypes.Record{
Id: "",
Name: cnameRecord,
Type: dnstypes.RecordTypeCNAME,
Value: clusterDomain + ".",
Route: "", // 注意这里为空,需要在执行过程中获取默认值
},
})
} else {
doneServerRecords = append(doneServerRecords, record)
}
}
// 多余的域名
for _, record := range serverRecords {
if !lists.ContainsString(serverDNSNames, record.Name) {