@@ -2242,6 +2242,26 @@ func validateExistingCRs(dynamicClient dynamic.Interface, gr schema.GroupResourc
2242
2242
return fmt .Errorf ("error creating validator for schema version %s: %s" , version , err )
2243
2243
}
2244
2244
gvr := schema.GroupVersionResource {Group : gr .Group , Version : version , Resource : gr .Resource }
2245
+
2246
+ results := make (map [string ]* unstructured.Unstructured )
2247
+
2248
+ crList , err := dynamicClient .Resource (gvr ).List (context .TODO (), metav1.ListOptions {})
2249
+ if err != nil {
2250
+ return fmt .Errorf ("error listing resources in GroupVersionResource %#v: %s" , gvr , err )
2251
+ }
2252
+ for _ , cr := range crList .Items {
2253
+ var namespacedName string
2254
+ if cr .GetNamespace () == "" {
2255
+ namespacedName = cr .GetName ()
2256
+ } else {
2257
+ namespacedName = fmt .Sprintf ("%s/%s" , cr .GetNamespace (), cr .GetName ())
2258
+ }
2259
+ if err := validation .ValidateCustomResource (field .NewPath ("" ), & cr , validator ).ToAggregate (); err != nil {
2260
+ return validationError {fmt .Errorf ("blocking lister: error validating %s %q: updated validation is too restrictive: %v" , cr .GroupVersionKind (), namespacedName , err )}
2261
+ }
2262
+ results [namespacedName ] = & cr
2263
+ }
2264
+
2245
2265
pager := pager .New (pager .SimplePageFunc (func (opts metav1.ListOptions ) (runtime.Object , error ) {
2246
2266
return dynamicClient .Resource (gvr ).List (context .TODO (), opts )
2247
2267
}))
@@ -2257,7 +2277,9 @@ func validateExistingCRs(dynamicClient dynamic.Interface, gr schema.GroupResourc
2257
2277
} else {
2258
2278
namespacedName = fmt .Sprintf ("%s/%s" , cr .GetNamespace (), cr .GetName ())
2259
2279
}
2260
- return validationError {fmt .Errorf ("error validating %s %q: updated validation is too restrictive: %v" , cr .GroupVersionKind (), namespacedName , err )}
2280
+ return validationError {fmt .Errorf ("error validating %s %q: simple list succeeded where paginated failed:\n simple:\n %#v\n paginated:\n %#v\n %v" ,
2281
+ gvr , namespacedName , results [namespacedName ], obj , err )}
2282
+ // return validationError{fmt.Errorf("error validating %s %q: updated validation is too restrictive: %v", cr.GroupVersionKind(), namespacedName, err)}
2261
2283
}
2262
2284
return nil
2263
2285
}
0 commit comments