diff --git a/internal/db/models/node_cluster_dao.go b/internal/db/models/node_cluster_dao.go index 22265f3c..d329b215 100644 --- a/internal/db/models/node_cluster_dao.go +++ b/internal/db/models/node_cluster_dao.go @@ -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 { diff --git a/internal/db/models/node_cluster_model_ext.go b/internal/db/models/node_cluster_model_ext.go index e4a3b930..2bae1f91 100644 --- a/internal/db/models/node_cluster_model_ext.go +++ b/internal/db/models/node_cluster_model_ext.go @@ -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 diff --git a/internal/db/models/server_dao.go b/internal/db/models/server_dao.go index a799b23c..77a332d9 100644 --- a/internal/db/models/server_dao.go +++ b/internal/db/models/server_dao.go @@ -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) + } } } } diff --git a/internal/rpc/services/service_node_cluster.go b/internal/rpc/services/service_node_cluster.go index a6f65e95..ef50e7a6 100644 --- a/internal/rpc/services/service_node_cluster.go +++ b/internal/rpc/services/service_node_cluster.go @@ -429,7 +429,7 @@ func (this *NodeClusterService) FindEnabledNodeClusterDNS(ctx context.Context, r return nil, err } - tx := this.NullTx() + var tx = this.NullTx() dnsInfo, err := models.SharedNodeClusterDAO.FindClusterDNSInfo(tx, req.NodeClusterId, nil) if err != nil { @@ -457,6 +457,7 @@ func (this *NodeClusterService) FindEnabledNodeClusterDNS(ctx context.Context, r ServersAutoSync: dnsConfig.ServersAutoSync, CnameRecords: dnsConfig.CNameRecords, Ttl: dnsConfig.TTL, + CnameAsDomain: dnsConfig.CNameAsDomain, }, nil } @@ -471,7 +472,7 @@ func (this *NodeClusterService) FindEnabledNodeClusterDNS(ctx context.Context, r Provider: nil, }, nil } - pbDomain := &pb.DNSDomain{ + var pbDomain = &pb.DNSDomain{ Id: int64(domain.Id), Name: domain.Name, IsOn: domain.IsOn, @@ -515,6 +516,7 @@ func (this *NodeClusterService) FindEnabledNodeClusterDNS(ctx context.Context, r ServersAutoSync: dnsConfig.ServersAutoSync, CnameRecords: dnsConfig.CNameRecords, Ttl: dnsConfig.TTL, + CnameAsDomain: dnsConfig.CNameAsDomain, DefaultRoute: defaultRoute, }, nil } @@ -527,7 +529,7 @@ func (this *NodeClusterService) CountAllEnabledNodeClustersWithDNSProviderId(ctx return nil, err } - tx := this.NullTx() + var tx = this.NullTx() count, err := models.SharedNodeClusterDAO.CountAllEnabledClustersWithDNSProviderId(tx, req.DnsProviderId) if err != nil { @@ -544,7 +546,7 @@ func (this *NodeClusterService) CountAllEnabledNodeClustersWithDNSDomainId(ctx c return nil, err } - tx := this.NullTx() + var tx = this.NullTx() count, err := models.SharedNodeClusterDAO.CountAllEnabledClustersWithDNSDomainId(tx, req.DnsDomainId) if err != nil { @@ -561,7 +563,7 @@ func (this *NodeClusterService) FindAllEnabledNodeClustersWithDNSDomainId(ctx co return nil, err } - tx := this.NullTx() + var tx = this.NullTx() clusters, err := models.SharedNodeClusterDAO.FindAllEnabledClustersWithDNSDomainId(tx, req.DnsDomainId) if err != nil { @@ -589,7 +591,7 @@ func (this *NodeClusterService) CheckNodeClusterDNSName(ctx context.Context, req return nil, err } - tx := this.NullTx() + var tx = this.NullTx() exists, err := models.SharedNodeClusterDAO.ExistClusterDNSName(tx, req.DnsName, req.NodeClusterId) if err != nil { @@ -606,9 +608,9 @@ func (this *NodeClusterService) UpdateNodeClusterDNS(ctx context.Context, req *p 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 { return nil, err }