@@ -117,13 +117,21 @@ public static void addModelMap(String group, String version, String kind, Class<
117
117
* @param version the version
118
118
* @param kind the kind
119
119
* @param resourceNamePlural the resource name plural
120
- * @param clazz the clazz
120
+ * @param objClass the clazz
121
121
*/
122
122
public static void addModelMap (
123
- String group , String version , String kind , String resourceNamePlural , Class <?> clazz ) {
123
+ String group ,
124
+ String version ,
125
+ String kind ,
126
+ String resourceNamePlural ,
127
+ Class <? extends KubernetesObject > objClass ,
128
+ Class <? extends KubernetesListObject > objListClass ) {
124
129
// TODO(yue9944882): consistency between bi-directional maps
125
- classesByGVK .add (new GroupVersionKind (group , version , kind ), clazz );
126
- classesByGVR .add (new GroupVersionResource (group , version , resourceNamePlural ), clazz );
130
+ classesByGVK .add (new GroupVersionKind (group , version , kind ), objClass );
131
+ classesByGVR .add (new GroupVersionResource (group , version , resourceNamePlural ), objClass );
132
+ if (objListClass != null ) {
133
+ classesByGVK .add (new GroupVersionKind (group , version , kind + "List" ), objListClass );
134
+ }
127
135
}
128
136
129
137
/**
@@ -135,17 +143,29 @@ public static void addModelMap(
135
143
* @param kind the kind
136
144
* @param resourceNamePlural the resource name plural
137
145
* @param isNamespacedResource the is namespaced resource
138
- * @param clazz the clazz
146
+ * @param objClass the clazz
139
147
*/
140
148
public static void addModelMap (
141
149
String group ,
142
150
String version ,
143
151
String kind ,
144
152
String resourceNamePlural ,
145
153
Boolean isNamespacedResource ,
146
- Class <?> clazz ) {
147
- addModelMap (group , version , kind , resourceNamePlural , clazz );
148
- isNamespacedByClasses .put (clazz , isNamespacedResource );
154
+ Class <? extends KubernetesObject > objClass ) {
155
+ addModelMap (group , version , kind , resourceNamePlural , objClass , null );
156
+ isNamespacedByClasses .put (objClass , isNamespacedResource );
157
+ }
158
+
159
+ public static void addModelMap (
160
+ String group ,
161
+ String version ,
162
+ String kind ,
163
+ String resourceNamePlural ,
164
+ Boolean isNamespacedResource ,
165
+ Class <? extends KubernetesObject > objClass ,
166
+ Class <? extends KubernetesListObject > objListClass ) {
167
+ addModelMap (group , version , kind , resourceNamePlural , objClass , objListClass );
168
+ isNamespacedByClasses .put (objClass , isNamespacedResource );
149
169
}
150
170
151
171
/**
@@ -240,19 +260,25 @@ public static Set<Discovery.APIResource> refresh(Discovery discovery, Duration r
240
260
241
261
for (Discovery .APIResource apiResource : apiResources ) {
242
262
for (String version : apiResource .getVersions ()) {
243
- Class <?> clazz = getApiTypeClass (apiResource .getGroup (), version , apiResource .getKind ());
263
+ Class <? extends KubernetesObject > objClass =
264
+ (Class <? extends KubernetesObject >)
265
+ getApiTypeClass (apiResource .getGroup (), version , apiResource .getKind ());
244
266
// no such classes registered in the ModelMapper, ignoring
245
- if (clazz == null ) {
267
+ if (objClass == null ) {
246
268
continue ;
247
269
}
270
+ Class <? extends KubernetesListObject > objListClass =
271
+ (Class <? extends KubernetesListObject >)
272
+ getApiTypeClass (apiResource .getGroup (), version , apiResource .getKind () + "List" );
248
273
// sync up w/ the latest api discovery
249
274
addModelMap (
250
275
apiResource .getGroup (),
251
276
version ,
252
277
apiResource .getKind (),
253
278
apiResource .getResourcePlural (),
254
279
apiResource .getNamespaced (),
255
- clazz );
280
+ objClass ,
281
+ objListClass );
256
282
}
257
283
}
258
284
0 commit comments