Summary
KindToResource in scrapers/kubernetes/informers.go pluralizes Kind to Resource by appending "s" (strings.ToLower(kind) + "s"). This produces incorrect resource names for Kubernetes types with irregular plurals, causing the dynamic informer to make requests to non-existent API endpoints and retry silently forever.
Affected Kinds
| Kind |
KindToResource output |
Correct resource |
Ingress |
ingresss |
ingresses |
IngressClass |
ingressclasss |
ingressclasses |
NetworkPolicy |
networkpolicys |
networkpolicies |
Endpoints |
endpointss |
endpoints |
StorageClass |
storageclasss |
storageclasses |
RuntimeClass |
runtimeclasss |
runtimeclasses |
PriorityClass |
priorityclasss |
priorityclasses |
IPAddress |
ipaddresss |
ipaddresses |
ComponentStatus |
componentstatuss |
componentstatuses |
CSIStorageCapacity |
csistoragecapacitys |
csistoragecapacities |
CRDs with non-standard plurals (defined in the CRD spec) are also affected.
References
KindToResource: scrapers/kubernetes/informers.go:354
- Upstream resource list:
k8s.io/client-go/informers/generic.go (ForResource switch)
Summary
KindToResourceinscrapers/kubernetes/informers.gopluralizes Kind to Resource by appending"s"(strings.ToLower(kind) + "s"). This produces incorrect resource names for Kubernetes types with irregular plurals, causing the dynamic informer to make requests to non-existent API endpoints and retry silently forever.Affected Kinds
KindToResourceoutputIngressingresssingressesIngressClassingressclasssingressclassesNetworkPolicynetworkpolicysnetworkpoliciesEndpointsendpointssendpointsStorageClassstorageclasssstorageclassesRuntimeClassruntimeclasssruntimeclassesPriorityClasspriorityclassspriorityclassesIPAddressipaddresssipaddressesComponentStatuscomponentstatusscomponentstatusesCSIStorageCapacitycsistoragecapacityscsistoragecapacitiesCRDs with non-standard plurals (defined in the CRD spec) are also affected.
References
KindToResource:scrapers/kubernetes/informers.go:354k8s.io/client-go/informers/generic.go(ForResourceswitch)