Skip to content

Commit 5c031c9

Browse files
authored
Merge pull request kosmos-io#195 from wuyingjun-lucky/main
modify leaf_resource_manager to singleton
2 parents e8026a2 + 1eef7d2 commit 5c031c9

File tree

2 files changed

+14
-5
lines changed

2 files changed

+14
-5
lines changed

cmd/clustertree/cluster-manager/app/manager.go

+1-1
Original file line numberDiff line numberDiff line change
@@ -58,7 +58,7 @@ func NewAgentCommand(ctx context.Context) *cobra.Command {
5858
}
5959

6060
func run(ctx context.Context, opts *options.Options) error {
61-
globalleafManager := leafUtils.NewLeafResourceManager()
61+
globalleafManager := leafUtils.GetGlobalLeafResourceManager()
6262

6363
config, err := clientcmd.BuildConfigFromFlags(opts.KubernetesOptions.Master, opts.KubernetesOptions.KubeConfig)
6464
if err != nil {

pkg/clustertree/cluster-manager/utils/leaf_resource_manager.go

+13-4
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,11 @@ import (
99
"sigs.k8s.io/controller-runtime/pkg/client"
1010
)
1111

12+
var (
13+
instance LeafResourceManager
14+
once sync.Once
15+
)
16+
1217
type LeafResource struct {
1318
Client client.Client
1419
DynamicClient dynamic.Interface
@@ -74,8 +79,12 @@ func (l *leafResourceManager) ListNodeNames() []string {
7479
return keys
7580
}
7681

77-
func NewLeafResourceManager() LeafResourceManager {
78-
return &leafResourceManager{
79-
resourceMap: make(map[string]*LeafResource),
80-
}
82+
func GetGlobalLeafResourceManager() LeafResourceManager {
83+
once.Do(func() {
84+
instance = &leafResourceManager{
85+
resourceMap: make(map[string]*LeafResource),
86+
}
87+
})
88+
89+
return instance
8190
}

0 commit comments

Comments
 (0)