package service
import (
"sync"
"github.com/weibaohui/k8m/pkg/comm/utils"
"k8s.io/client-go/rest"
)
var localPodService = &podService{
podLabels: make(map[string][]*PodLabels),
}
var localNodeService = &nodeService{
nodeLabels: make(map[string][]*NodeLabels),
}
var localDeploymentService = &deployService{}
var localClusterService = newClusterService()
var localStorageClassService = &storageClassService{}
var localIngressClassService = &ingressClassService{}
var localPVCService = &pvcService{
CountList: []*pvcCount{},
}
var localPVService = &pvService{
CountList: []*pvCount{},
}
var localIngressService = &ingressService{
CountList: []*ingressCount{},
}
var localUserService = &userService{
cacheKeys: sync.Map{},
}
var localOperationLogService = NewOperationLogService()
var localShellLogService = &shellLogService{}
var localLeaderService = &leaderService{}
// init 中文函数注释:在 service 初始化时向 lease 包注入 ClusterID → RestConfig 的解析器,避免循环引入。
func init() {
utils.GetRestConfigByClusterID = func(clusterID string) *rest.Config {
c := localClusterService.GetClusterByID(clusterID)
if c == nil {
return nil
}
return c.GetRestConfig()
}
}
// LeaderService 中文函数注释:获取 Leader 服务实例。
func LeaderService() *leaderService {
return localLeaderService
}
func DeploymentService() *deployService {
return localDeploymentService
}
func PodService() *podService {
return localPodService
}
func NodeService() *nodeService {
return localNodeService
}
func ClusterService() *clusterService {
return localClusterService
}
func StorageClassService() *storageClassService {
return localStorageClassService
}
func IngressClassService() *ingressClassService {
return localIngressClassService
}
func PVCService() *pvcService {
return localPVCService
}
func PVService() *pvService {
return localPVService
}
func IngressService() *ingressService {
return localIngressService
}
func UserService() *userService {
return localUserService
}
func OperationLogService() *operationLogService {
return localOperationLogService
}
func ShellLogService() *shellLogService {
return localShellLogService
}
func ConfigService() *configService {
return NewConfigService()
}