@@ -17,21 +17,27 @@ func AddObjectsToTemplate(template *Template, objects []runtime.Object, targetVe
17
17
return errors .New ("cannot add a nil object to a template" )
18
18
}
19
19
20
- kind , _ , err := kapi .Scheme .ObjectKind (obj )
20
+ // We currently add legacy types first to the scheme, followed by the types in the new api
21
+ // groups. We have to check all ObjectKinds and not just use the first one returned by
22
+ // ObjectKind().
23
+ gvks , _ , err := kapi .Scheme .ObjectKinds (obj )
21
24
if err != nil {
22
25
return err
23
26
}
24
27
25
28
var targetVersion * unversioned.GroupVersion
29
+ outerLoop:
26
30
for j := range targetVersions {
27
31
possibleVersion := targetVersions [j ]
28
- if kind .Group == possibleVersion .Group {
29
- targetVersion = & possibleVersion
30
- break
32
+ for _ , kind := range gvks {
33
+ if kind .Group == possibleVersion .Group {
34
+ targetVersion = & possibleVersion
35
+ break outerLoop
36
+ }
31
37
}
32
38
}
33
39
if targetVersion == nil {
34
- return fmt .Errorf ("no target version found for object[%d], kind %v in %v" , i , kind , targetVersions )
40
+ return fmt .Errorf ("no target version found for object[%d], gvks %v in %v" , i , gvks , targetVersions )
35
41
}
36
42
37
43
wrappedObject := runtime .NewEncodable (kapi .Codecs .LegacyCodec (* targetVersion ), obj )
0 commit comments