From 4cf33421da55b8817d3e1bfa88bfd2c0ea8b3c28 Mon Sep 17 00:00:00 2001 From: Xun Jiang Date: Fri, 12 Jun 2026 14:57:26 +0800 Subject: [PATCH] Add log when resources are filtered out due to verbs or sub-resources. Signed-off-by: Xun Jiang --- pkg/discovery/helper.go | 29 ++++++++++++++++++++++++++++- 1 file changed, 28 insertions(+), 1 deletion(-) diff --git a/pkg/discovery/helper.go b/pkg/discovery/helper.go index 884455dc5..74e6f5f8a 100644 --- a/pkg/discovery/helper.go +++ b/pkg/discovery/helper.go @@ -171,7 +171,7 @@ func (h *helper) Refresh() error { } h.resources = discovery.FilteredBy( - And(filterByVerbs, skipSubresource), + And(h.filterByVerbsWithLogging, h.skipSubresourceWithLogging), serverResources, ) @@ -266,11 +266,38 @@ func filterByVerbs(groupVersion string, r *metav1.APIResource) bool { return discovery.SupportsAllVerbs{Verbs: []string{"list", "create", "get", "delete"}}.Match(groupVersion, r) } +func (h *helper) filterByVerbsWithLogging(groupVersion string, r *metav1.APIResource) bool { + if filterByVerbs(groupVersion, r) { + return true + } + + h.logger.WithFields(logrus.Fields{ + "groupVersion": groupVersion, + "resource": r.Name, + "verbs": r.Verbs, + }).Info("Skipping resource because it does not support required verbs") + + return false +} + func skipSubresource(_ string, r *metav1.APIResource) bool { // if we have a slash, then this is a subresource and we shouldn't include it. return !strings.Contains(r.Name, "/") } +func (h *helper) skipSubresourceWithLogging(groupVersion string, r *metav1.APIResource) bool { + if skipSubresource(groupVersion, r) { + return true + } + + h.logger.WithFields(logrus.Fields{ + "groupVersion": groupVersion, + "resource": r.Name, + }).Info("Skipping subresource") + + return false +} + // sortResources sources resources by moving extensions to the end of the slice. The order of all // the other resources is preserved. func sortResources(resources []*metav1.APIResourceList) {