@@ -58,14 +58,14 @@ func main() {
58
58
}
59
59
60
60
// AddTopologyConfig could be called multiple times for different relations
61
- if err = topoManager .AddTopologyConfig (* buildVirtualSymptomTopology ()); err != nil {
61
+ if err = topoManager .AddTopologyConfig (* buildVirtualAppTopology ()); err != nil {
62
62
klog .Fatal (err .Error ())
63
63
}
64
64
65
65
if err = topoManager .AddNodeHandler (podMeta , & podEventhandler {}); err != nil {
66
66
klog .Fatal (err .Error ())
67
67
}
68
- if err = topoManager .AddRelationHandler (virtualSymptomMeta , podMeta , & symptomPodRelationEventHandler {}); err != nil {
68
+ if err = topoManager .AddRelationHandler (virtualAppMeta , podMeta , & appPodRelationEventHandler {}); err != nil {
69
69
klog .Fatal (err .Error ())
70
70
}
71
71
92
92
Kind : "Service" ,
93
93
APIVersion : "core/v1" ,
94
94
}
95
- virtualSymptomMeta = metav1.TypeMeta {
96
- Kind : "Symptom " ,
97
- APIVersion : "inspect.kusionstack .io/v1alpha1 " ,
95
+ virtualAppMeta = metav1.TypeMeta {
96
+ Kind : "App " ,
97
+ APIVersion : "virtual.kubernetes .io/v1 " ,
98
98
}
99
99
)
100
100
@@ -167,37 +167,31 @@ func buildExampleTopologyConfig() *resourcetopo.TopologyConfig {
167
167
}
168
168
}
169
169
170
- func buildVirtualSymptomTopology () * resourcetopo.TopologyConfig {
170
+ func buildVirtualAppTopology () * resourcetopo.TopologyConfig {
171
171
return & resourcetopo.TopologyConfig {
172
172
GetInformer : getInformer ,
173
173
Discoverers : []resourcetopo.VirtualResourceDiscoverer {
174
174
{
175
- // assume we want to know the relations among pods and symptoms
176
- // and symptoms will be added to pod's annotation separated by ',' .
177
- PreMeta : virtualSymptomMeta ,
175
+ // assume we want to know the relations among pods and apps
176
+ // and app name will be added to pod's labels .
177
+ PreMeta : virtualAppMeta ,
178
178
PostMeta : podMeta ,
179
179
Discover : func (preObject resourcetopo.Object ) []types.NamespacedName {
180
180
podObj , ok := preObject .(* corev1.Pod )
181
181
if ! ok {
182
182
return nil
183
183
}
184
- podAnno := podObj .ObjectMeta .Annotations
185
- if len (podAnno ) == 0 {
184
+ podLabels := podObj .ObjectMeta .Labels
185
+ if len (podLabels ) == 0 {
186
186
return nil
187
187
}
188
- symptoms := strings .Split (podAnno ["symptom.diagnose.kusionstack.io" ], "," )
189
- symptomNames := make ([]types.NamespacedName , 0 , len (symptoms ))
190
- for _ , symptom := range symptoms {
191
- if len (symptom ) == 0 {
192
- continue
193
- }
194
- symptomNames = append (symptomNames , types.NamespacedName {
195
- Namespace : podObj .Namespace ,
196
- Name : symptom ,
197
- })
188
+ if app := podLabels ["app.kubernetes.io/name" ]; len (app ) > 0 {
189
+ return []types.NamespacedName {{
190
+ Name : app ,
191
+ }}
192
+ } else {
193
+ return nil
198
194
}
199
-
200
- return symptomNames
201
195
},
202
196
},
203
197
},
@@ -249,15 +243,15 @@ func (p *podEventhandler) OnRelatedUpdate(info resourcetopo.NodeInfo) {
249
243
klog .Infof ("related post nodes are %s" , nodes2Str (info .GetPostOrders ()))
250
244
}
251
245
252
- var _ resourcetopo.RelationHandler = & symptomPodRelationEventHandler {}
246
+ var _ resourcetopo.RelationHandler = & appPodRelationEventHandler {}
253
247
254
- type symptomPodRelationEventHandler struct {}
248
+ type appPodRelationEventHandler struct {}
255
249
256
- func (s * symptomPodRelationEventHandler ) OnAdd (preOrder resourcetopo.NodeInfo , postOrder resourcetopo.NodeInfo ) {
250
+ func (s * appPodRelationEventHandler ) OnAdd (preOrder resourcetopo.NodeInfo , postOrder resourcetopo.NodeInfo ) {
257
251
klog .Infof ("received relation add event for %s -> %s" , preOrder .NodeInfo ().String (), postOrder .NodeInfo ().String ())
258
252
}
259
253
260
- func (s * symptomPodRelationEventHandler ) OnDelete (preOrder resourcetopo.NodeInfo , postOrder resourcetopo.NodeInfo ) {
254
+ func (s * appPodRelationEventHandler ) OnDelete (preOrder resourcetopo.NodeInfo , postOrder resourcetopo.NodeInfo ) {
261
255
klog .Infof ("received relation delete event for %s -> %s" , preOrder .NodeInfo ().String (), postOrder .NodeInfo ().String ())
262
256
}
263
257
0 commit comments