Skip to content

Commit ee1fd67

Browse files
authored
Merge pull request kosmos-io#189 from wangyizhi1/main
fix: clusterlink ignore kosmos nodes
2 parents 14ff486 + f031371 commit ee1fd67

File tree

4 files changed

+67
-80
lines changed

4 files changed

+67
-80
lines changed
+56
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,56 @@
1+
apiVersion: v1
2+
kind: ServiceAccount
3+
metadata:
4+
name: clustertree
5+
namespace: kosmos-system
6+
---
7+
apiVersion: rbac.authorization.k8s.io/v1
8+
kind: ClusterRole
9+
metadata:
10+
name: clustertree
11+
rules:
12+
- apiGroups: ['*']
13+
resources: ['*']
14+
verbs: ["*"]
15+
- nonResourceURLs: ['*']
16+
verbs: ["get"]
17+
---
18+
apiVersion: rbac.authorization.k8s.io/v1
19+
kind: ClusterRoleBinding
20+
metadata:
21+
name: clustertree
22+
roleRef:
23+
apiGroup: rbac.authorization.k8s.io
24+
kind: ClusterRole
25+
name: clustertree
26+
subjects:
27+
- kind: ServiceAccount
28+
name: clustertree
29+
namespace: kosmos-system
30+
---
31+
apiVersion: apps/v1
32+
kind: Deployment
33+
metadata:
34+
name: clustertree-cluster-manager
35+
namespace: kosmos-system
36+
labels:
37+
app: clustertree-cluster-manager
38+
spec:
39+
replicas: 1
40+
selector:
41+
matchLabels:
42+
app: clustertree-cluster-manager
43+
template:
44+
metadata:
45+
labels:
46+
app: clustertree-cluster-manager
47+
spec:
48+
serviceAccountName: clustertree
49+
containers:
50+
- name: clustertree-cluster-manager
51+
image: ghcr.io/kosmos-io/clustertree-cluster-manager:__VERSION__
52+
imagePullPolicy: Always
53+
command:
54+
- clustertree-cluster-manager
55+
- --multi-cluster-service=true
56+
- --v=4

deploy/clustertree-knode-controllers.yml

-73
This file was deleted.

pkg/clusterlink/controllers/node/node_controller.go

+8-4
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,7 @@ import (
2323

2424
clusterlinkv1alpha1 "github.com/kosmos.io/kosmos/pkg/apis/kosmos/v1alpha1"
2525
"github.com/kosmos.io/kosmos/pkg/generated/clientset/versioned"
26+
"github.com/kosmos.io/kosmos/pkg/utils"
2627
interfacepolicy "github.com/kosmos.io/kosmos/pkg/utils/interface-policy"
2728
)
2829

@@ -41,16 +42,19 @@ type Reconciler struct {
4142

4243
var predicatesFunc = predicate.Funcs{
4344
CreateFunc: func(createEvent event.CreateEvent) bool {
44-
return true
45+
node := createEvent.Object.(*corev1.Node)
46+
return !utils.IsKosmosNode(node)
4547
},
4648
UpdateFunc: func(updateEvent event.UpdateEvent) bool {
47-
return true
49+
node := updateEvent.ObjectNew.(*corev1.Node)
50+
return !utils.IsKosmosNode(node)
4851
},
4952
DeleteFunc: func(deleteEvent event.DeleteEvent) bool {
50-
return true
53+
node := deleteEvent.Object.(*corev1.Node)
54+
return !utils.IsKosmosNode(node)
5155
},
5256
GenericFunc: func(genericEvent event.GenericEvent) bool {
53-
return true
57+
return false
5458
},
5559
}
5660

pkg/utils/k8s.go

+3-3
Original file line numberDiff line numberDiff line change
@@ -315,15 +315,15 @@ func NewMetricClientFromByte(kubeConfig []byte, opts ...Opts) (versioned.Interfa
315315
return metricClient, nil
316316
}
317317

318-
func IsVirtualNode(node *corev1.Node) bool {
318+
func IsKosmosNode(node *corev1.Node) bool {
319319
if node == nil {
320320
return false
321321
}
322-
valStr, exist := node.ObjectMeta.Labels[KosmosNodeLabel]
322+
labelVal, exist := node.ObjectMeta.Labels[KosmosNodeLabel]
323323
if !exist {
324324
return false
325325
}
326-
return valStr == KosmosNodeValue
326+
return labelVal == KosmosNodeValue
327327
}
328328

329329
func IsVirtualPod(pod *corev1.Pod) bool {

0 commit comments

Comments
 (0)