集群DNS设置增加允许通过CNAME访问网站服务选项

This commit is contained in:
GoEdgeLab
2022-07-14 09:49:09 +08:00
parent 0afdb212be
commit 0e12740fd0
4 changed files with 28 additions and 15 deletions

View File

@@ -142,10 +142,11 @@ func (this *NodeClusterDAO) CreateCluster(tx *dbs.Tx, adminId int64, name string
// DNS设置
op.DnsDomainId = dnsDomainId
op.DnsName = dnsName
dnsConfig := &dnsconfigs.ClusterDNSConfig{
var dnsConfig = &dnsconfigs.ClusterDNSConfig{
NodesAutoSync: true,
ServersAutoSync: true,
CNameRecords: []string{},
CNameAsDomain: true,
TTL: 0,
}
dnsJSON, err := json.Marshal(dnsConfig)
@@ -463,7 +464,7 @@ func (this *NodeClusterDAO) ExistClusterDNSName(tx *dbs.Tx, dnsName string, excl
}
// UpdateClusterDNS 修改集群DNS相关信息
func (this *NodeClusterDAO) UpdateClusterDNS(tx *dbs.Tx, clusterId int64, dnsName string, dnsDomainId int64, nodesAutoSync bool, serversAutoSync bool, cnameRecords []string, ttl int32) error {
func (this *NodeClusterDAO) UpdateClusterDNS(tx *dbs.Tx, clusterId int64, dnsName string, dnsDomainId int64, nodesAutoSync bool, serversAutoSync bool, cnameRecords []string, ttl int32, cnameAsDomain bool) error {
if clusterId <= 0 {
return errors.New("invalid clusterId")
}
@@ -503,6 +504,7 @@ func (this *NodeClusterDAO) UpdateClusterDNS(tx *dbs.Tx, clusterId int64, dnsNam
ServersAutoSync: serversAutoSync,
CNameRecords: cnameRecords,
TTL: ttl,
CNameAsDomain: cnameAsDomain,
}
dnsJSON, err := json.Marshal(dnsConfig)
if err != nil {

View File

@@ -13,9 +13,12 @@ func (this *NodeCluster) DecodeDNSConfig() (*dnsconfigs.ClusterDNSConfig, error)
return &dnsconfigs.ClusterDNSConfig{
NodesAutoSync: false,
ServersAutoSync: false,
CNameAsDomain: true,
}, nil
}
dnsConfig := &dnsconfigs.ClusterDNSConfig{}
var dnsConfig = &dnsconfigs.ClusterDNSConfig{
CNameAsDomain: true,
}
err := json.Unmarshal(this.Dns, &dnsConfig)
if err != nil {
return nil, err

View File

@@ -1080,13 +1080,19 @@ func (this *ServerDAO) ComposeServerConfig(tx *dbs.Tx, server *Server, cacheMap
return nil, err
}
if clusterDNS != nil && clusterDNS.DnsDomainId > 0 {
domain, err := dns.SharedDNSDomainDAO.FindEnabledDNSDomain(tx, int64(clusterDNS.DnsDomainId), cacheMap)
clusterDNSConfig, err := clusterDNS.DecodeDNSConfig()
if err != nil {
return nil, err
}
if domain != nil {
cname := server.DnsName + "." + domain.Name
config.AliasServerNames = append(config.AliasServerNames, cname)
if clusterDNSConfig.CNameAsDomain {
domain, err := dns.SharedDNSDomainDAO.FindEnabledDNSDomain(tx, int64(clusterDNS.DnsDomainId), cacheMap)
if err != nil {
return nil, err
}
if domain != nil {
var cname = server.DnsName + "." + domain.Name
config.AliasServerNames = append(config.AliasServerNames, cname)
}
}
}
}