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

This commit is contained in:
刘祥超
2022-07-14 09:49:09 +08:00
parent b2c2bd247b
commit 6c8ab7cb94
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设置 // DNS设置
op.DnsDomainId = dnsDomainId op.DnsDomainId = dnsDomainId
op.DnsName = dnsName op.DnsName = dnsName
dnsConfig := &dnsconfigs.ClusterDNSConfig{ var dnsConfig = &dnsconfigs.ClusterDNSConfig{
NodesAutoSync: true, NodesAutoSync: true,
ServersAutoSync: true, ServersAutoSync: true,
CNameRecords: []string{}, CNameRecords: []string{},
CNameAsDomain: true,
TTL: 0, TTL: 0,
} }
dnsJSON, err := json.Marshal(dnsConfig) dnsJSON, err := json.Marshal(dnsConfig)
@@ -463,7 +464,7 @@ func (this *NodeClusterDAO) ExistClusterDNSName(tx *dbs.Tx, dnsName string, excl
} }
// UpdateClusterDNS 修改集群DNS相关信息 // 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 { if clusterId <= 0 {
return errors.New("invalid clusterId") return errors.New("invalid clusterId")
} }
@@ -503,6 +504,7 @@ func (this *NodeClusterDAO) UpdateClusterDNS(tx *dbs.Tx, clusterId int64, dnsNam
ServersAutoSync: serversAutoSync, ServersAutoSync: serversAutoSync,
CNameRecords: cnameRecords, CNameRecords: cnameRecords,
TTL: ttl, TTL: ttl,
CNameAsDomain: cnameAsDomain,
} }
dnsJSON, err := json.Marshal(dnsConfig) dnsJSON, err := json.Marshal(dnsConfig)
if err != nil { if err != nil {

View File

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

View File

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

View File

@@ -429,7 +429,7 @@ func (this *NodeClusterService) FindEnabledNodeClusterDNS(ctx context.Context, r
return nil, err return nil, err
} }
tx := this.NullTx() var tx = this.NullTx()
dnsInfo, err := models.SharedNodeClusterDAO.FindClusterDNSInfo(tx, req.NodeClusterId, nil) dnsInfo, err := models.SharedNodeClusterDAO.FindClusterDNSInfo(tx, req.NodeClusterId, nil)
if err != nil { if err != nil {
@@ -457,6 +457,7 @@ func (this *NodeClusterService) FindEnabledNodeClusterDNS(ctx context.Context, r
ServersAutoSync: dnsConfig.ServersAutoSync, ServersAutoSync: dnsConfig.ServersAutoSync,
CnameRecords: dnsConfig.CNameRecords, CnameRecords: dnsConfig.CNameRecords,
Ttl: dnsConfig.TTL, Ttl: dnsConfig.TTL,
CnameAsDomain: dnsConfig.CNameAsDomain,
}, nil }, nil
} }
@@ -471,7 +472,7 @@ func (this *NodeClusterService) FindEnabledNodeClusterDNS(ctx context.Context, r
Provider: nil, Provider: nil,
}, nil }, nil
} }
pbDomain := &pb.DNSDomain{ var pbDomain = &pb.DNSDomain{
Id: int64(domain.Id), Id: int64(domain.Id),
Name: domain.Name, Name: domain.Name,
IsOn: domain.IsOn, IsOn: domain.IsOn,
@@ -515,6 +516,7 @@ func (this *NodeClusterService) FindEnabledNodeClusterDNS(ctx context.Context, r
ServersAutoSync: dnsConfig.ServersAutoSync, ServersAutoSync: dnsConfig.ServersAutoSync,
CnameRecords: dnsConfig.CNameRecords, CnameRecords: dnsConfig.CNameRecords,
Ttl: dnsConfig.TTL, Ttl: dnsConfig.TTL,
CnameAsDomain: dnsConfig.CNameAsDomain,
DefaultRoute: defaultRoute, DefaultRoute: defaultRoute,
}, nil }, nil
} }
@@ -527,7 +529,7 @@ func (this *NodeClusterService) CountAllEnabledNodeClustersWithDNSProviderId(ctx
return nil, err return nil, err
} }
tx := this.NullTx() var tx = this.NullTx()
count, err := models.SharedNodeClusterDAO.CountAllEnabledClustersWithDNSProviderId(tx, req.DnsProviderId) count, err := models.SharedNodeClusterDAO.CountAllEnabledClustersWithDNSProviderId(tx, req.DnsProviderId)
if err != nil { if err != nil {
@@ -544,7 +546,7 @@ func (this *NodeClusterService) CountAllEnabledNodeClustersWithDNSDomainId(ctx c
return nil, err return nil, err
} }
tx := this.NullTx() var tx = this.NullTx()
count, err := models.SharedNodeClusterDAO.CountAllEnabledClustersWithDNSDomainId(tx, req.DnsDomainId) count, err := models.SharedNodeClusterDAO.CountAllEnabledClustersWithDNSDomainId(tx, req.DnsDomainId)
if err != nil { if err != nil {
@@ -561,7 +563,7 @@ func (this *NodeClusterService) FindAllEnabledNodeClustersWithDNSDomainId(ctx co
return nil, err return nil, err
} }
tx := this.NullTx() var tx = this.NullTx()
clusters, err := models.SharedNodeClusterDAO.FindAllEnabledClustersWithDNSDomainId(tx, req.DnsDomainId) clusters, err := models.SharedNodeClusterDAO.FindAllEnabledClustersWithDNSDomainId(tx, req.DnsDomainId)
if err != nil { if err != nil {
@@ -589,7 +591,7 @@ func (this *NodeClusterService) CheckNodeClusterDNSName(ctx context.Context, req
return nil, err return nil, err
} }
tx := this.NullTx() var tx = this.NullTx()
exists, err := models.SharedNodeClusterDAO.ExistClusterDNSName(tx, req.DnsName, req.NodeClusterId) exists, err := models.SharedNodeClusterDAO.ExistClusterDNSName(tx, req.DnsName, req.NodeClusterId)
if err != nil { if err != nil {
@@ -606,9 +608,9 @@ func (this *NodeClusterService) UpdateNodeClusterDNS(ctx context.Context, req *p
return nil, err return nil, err
} }
tx := this.NullTx() var tx = this.NullTx()
err = models.SharedNodeClusterDAO.UpdateClusterDNS(tx, req.NodeClusterId, req.DnsName, req.DnsDomainId, req.NodesAutoSync, req.ServersAutoSync, req.CnameRecords, req.Ttl) err = models.SharedNodeClusterDAO.UpdateClusterDNS(tx, req.NodeClusterId, req.DnsName, req.DnsDomainId, req.NodesAutoSync, req.ServersAutoSync, req.CnameRecords, req.Ttl, req.CnameAsDomain)
if err != nil { if err != nil {
return nil, err return nil, err
} }