diff --git a/pkg/api-server/service_insight_endpoints.go b/pkg/api-server/service_insight_endpoints.go index 06f85192f999..31910a985f76 100644 --- a/pkg/api-server/service_insight_endpoints.go +++ b/pkg/api-server/service_insight_endpoints.go @@ -2,6 +2,7 @@ package api_server import ( "fmt" + "maps" "sort" "strconv" "strings" @@ -55,6 +56,7 @@ func (s *serviceInsightEndpoints) findResource(request *restful.Request, respons res := out.(*rest_unversioned.Resource) res.Meta.Name = service res.Spec = stat + removeDisplayNameLabel(res) if err := response.WriteAsJson(res); err != nil { core.Log.Error(err, "Could not write the response") } @@ -145,6 +147,7 @@ func (s *serviceInsightEndpoints) expandInsights(serviceInsightList *mesh.Servic res := out.(*rest_unversioned.Resource) res.Meta.Name = serviceName res.Spec = service + removeDisplayNameLabel(res) restItems = append(restItems, out) } } @@ -196,3 +199,13 @@ func (s *serviceInsightEndpoints) paginateResources(request *restful.Request, re restList.Next = nextLink(request, nextOffset) return nil } + +// Since the value of label "kuma.io/display-name" is same with the ServiceInsight resource name, +// in which it looks weird for the API to each service. Ref: https://github.com/kumahq/kuma/issues/9729 +func removeDisplayNameLabel(resource *rest_unversioned.Resource) { + tmpMeta := resource.GetMeta() + maps.DeleteFunc(tmpMeta.Labels, func(key string, val string) bool { + return key == v1alpha1.DisplayName + }) + resource.Meta = tmpMeta +} diff --git a/pkg/api-server/testdata/service-insights/get.input.yaml b/pkg/api-server/testdata/service-insights/get.input.yaml index a0af3a335df6..6e2f64c40e99 100644 --- a/pkg/api-server/testdata/service-insights/get.input.yaml +++ b/pkg/api-server/testdata/service-insights/get.input.yaml @@ -5,6 +5,8 @@ name: mesh-1 type: ServiceInsight mesh: mesh-1 name: all-services-mesh-1 +labels: + kuma.io/display-name: all-services-mesh-1 # add display name manually to test if it's removed in the response services: backend: status: partially_degraded diff --git a/pkg/api-server/testdata/service-insights/list-simple.input.yaml b/pkg/api-server/testdata/service-insights/list-simple.input.yaml index 49b07373c32c..d90bb5f6b13d 100644 --- a/pkg/api-server/testdata/service-insights/list-simple.input.yaml +++ b/pkg/api-server/testdata/service-insights/list-simple.input.yaml @@ -5,6 +5,8 @@ name: mesh-1 type: ServiceInsight mesh: mesh-1 name: all-services-mesh-1 +labels: + kuma.io/display-name: all-services-mesh-1 # add display name manually to test if it's removed in the response services: frontend: status: partially_degraded diff --git a/pkg/api-server/testdata/service-insights/pagination.input.yaml b/pkg/api-server/testdata/service-insights/pagination.input.yaml index d121bbb64c03..8e34db140350 100644 --- a/pkg/api-server/testdata/service-insights/pagination.input.yaml +++ b/pkg/api-server/testdata/service-insights/pagination.input.yaml @@ -6,6 +6,8 @@ name: mesh-1 type: ServiceInsight mesh: mesh-1 name: all-services-mesh-1 +labels: + kuma.io/display-name: all-services-mesh-1 # add display name manually to test if it's removed in the response services: frontend: status: partially_degraded