mirror of
https://github.com/TeaOSLab/EdgeAPI.git
synced 2025-11-07 18:50:26 +08:00
集群DNS设置增加允许通过CNAME访问网站服务选项
This commit is contained in:
@@ -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 {
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
@@ -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) {
|
||||||
|
|||||||
@@ -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
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user