Skip to content

Commit 296e196

Browse files
AnnaYueshaofan-hs
authored andcommitted
change virtual demo from symptom to k8s app.
1 parent 87c45c6 commit 296e196

File tree

2 files changed

+22
-28
lines changed

2 files changed

+22
-28
lines changed

resourcetopo/README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -67,7 +67,7 @@ func main() {
6767
err = topoManager.AddRelationHandler(virtualSymptomMeta, podMeta, &symptomPodRelationEventHandler{})
6868
}
6969

70-
// podEventHandler is an impl of preDefined NodeHandler, included function to handler add/update/delete Event.
70+
// podEventHandler is an implementation of the interface NodeHandler, which is designed to handle add/update/delete events of resources.
7171
// Specially, we define the OnRelatedUpdate function, to handle event when the related node has been modified.
7272
// For example, if a new pod has been added, except for a pod add event, a deployment related update event will
7373
// also be generated and call the registered handler.

resourcetopo/examples/base_example.go

Lines changed: 21 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -58,14 +58,14 @@ func main() {
5858
}
5959

6060
// 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 {
6262
klog.Fatal(err.Error())
6363
}
6464

6565
if err = topoManager.AddNodeHandler(podMeta, &podEventhandler{}); err != nil {
6666
klog.Fatal(err.Error())
6767
}
68-
if err = topoManager.AddRelationHandler(virtualSymptomMeta, podMeta, &symptomPodRelationEventHandler{}); err != nil {
68+
if err = topoManager.AddRelationHandler(virtualAppMeta, podMeta, &appPodRelationEventHandler{}); err != nil {
6969
klog.Fatal(err.Error())
7070
}
7171

@@ -92,9 +92,9 @@ var (
9292
Kind: "Service",
9393
APIVersion: "core/v1",
9494
}
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",
9898
}
9999
)
100100

@@ -167,37 +167,31 @@ func buildExampleTopologyConfig() *resourcetopo.TopologyConfig {
167167
}
168168
}
169169

170-
func buildVirtualSymptomTopology() *resourcetopo.TopologyConfig {
170+
func buildVirtualAppTopology() *resourcetopo.TopologyConfig {
171171
return &resourcetopo.TopologyConfig{
172172
GetInformer: getInformer,
173173
Discoverers: []resourcetopo.VirtualResourceDiscoverer{
174174
{
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,
178178
PostMeta: podMeta,
179179
Discover: func(preObject resourcetopo.Object) []types.NamespacedName {
180180
podObj, ok := preObject.(*corev1.Pod)
181181
if !ok {
182182
return nil
183183
}
184-
podAnno := podObj.ObjectMeta.Annotations
185-
if len(podAnno) == 0 {
184+
podLabels := podObj.ObjectMeta.Labels
185+
if len(podLabels) == 0 {
186186
return nil
187187
}
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
198194
}
199-
200-
return symptomNames
201195
},
202196
},
203197
},
@@ -249,15 +243,15 @@ func (p *podEventhandler) OnRelatedUpdate(info resourcetopo.NodeInfo) {
249243
klog.Infof("related post nodes are %s", nodes2Str(info.GetPostOrders()))
250244
}
251245

252-
var _ resourcetopo.RelationHandler = &symptomPodRelationEventHandler{}
246+
var _ resourcetopo.RelationHandler = &appPodRelationEventHandler{}
253247

254-
type symptomPodRelationEventHandler struct{}
248+
type appPodRelationEventHandler struct{}
255249

256-
func (s *symptomPodRelationEventHandler) OnAdd(preOrder resourcetopo.NodeInfo, postOrder resourcetopo.NodeInfo) {
250+
func (s *appPodRelationEventHandler) OnAdd(preOrder resourcetopo.NodeInfo, postOrder resourcetopo.NodeInfo) {
257251
klog.Infof("received relation add event for %s -> %s", preOrder.NodeInfo().String(), postOrder.NodeInfo().String())
258252
}
259253

260-
func (s *symptomPodRelationEventHandler) OnDelete(preOrder resourcetopo.NodeInfo, postOrder resourcetopo.NodeInfo) {
254+
func (s *appPodRelationEventHandler) OnDelete(preOrder resourcetopo.NodeInfo, postOrder resourcetopo.NodeInfo) {
261255
klog.Infof("received relation delete event for %s -> %s", preOrder.NodeInfo().String(), postOrder.NodeInfo().String())
262256
}
263257

0 commit comments

Comments
 (0)