kmesh-net / kmesh

High Performance ServiceMesh Data Plane Based on Programmable Kernel

Home Page:https://kmesh.net

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Removed resources in wds may contains both Workload and Service types

hzxuzhonghu opened this issue · comments

What happened:

Now we only consider the removed resources are only pod or only service. This is not right, more details we can see the controlplane istiod.

func handleDeleteResponse(rsp *service_discovery_v3.DeltaDiscoveryResponse) error {
var (
err error
)
if strings.Contains(strings.Join(rsp.RemovedResources, ""), "Kubernetes//Pod") {
// delete as a workload
if err = RemoveWorkloadResource(rsp.GetRemovedResources()); err != nil {
log.Errorf("RemoveWorkloadResource failed: %s", err)
}
} else {
// delete as a service
if err = RemoveServiceResource(rsp.GetRemovedResources()); err != nil {
log.Errorf("RemoveServiceResource failed: %s", err)
}
}
return err

What you expected to happen:

How to reproduce it (as minimally and precisely as possible):

Anything else we need to know?:

Environment:

  • Kmesh version:
  • Others:

Also we can have WorkloadEntry and ServiceEntry