Skip to content

Commit 3b0376c

Browse files
authored
Merge pull request #2246 from joelanford/preserve-unstructured-gvk-cache-options
🐛 Preserve unstructured object GVKs in cache.Options.ByObject
2 parents c3c1f05 + db28b04 commit 3b0376c

File tree

2 files changed

+18
-0
lines changed

2 files changed

+18
-0
lines changed

pkg/cache/cache.go

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -481,6 +481,7 @@ func convertToByObject(in map[schema.GroupVersionKind]internal.InformersOptsByGV
481481
if !ok {
482482
return nil, fmt.Errorf("object %T for GVK %q does not implement client.Object", obj, gvk)
483483
}
484+
cObj.GetObjectKind().SetGroupVersionKind(gvk)
484485
out[cObj] = ByObject{
485486
Field: opts.Selector.Field,
486487
Label: opts.Selector.Label,

pkg/cache/cache_unit_test.go

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -126,6 +126,23 @@ var _ = Describe("cache.inheritFrom", func() {
126126
Expect(checkError(specified.inheritFrom(inherited)).Namespaces).To(Equal(specified.Namespaces))
127127
})
128128
})
129+
Context("ByObject", func() {
130+
It("maintains GVKs of unstructured ByObject keys", func() {
131+
gvk := gv.WithKind("Unstructured")
132+
obj := &unstructured.Unstructured{}
133+
obj.SetGroupVersionKind(gvk)
134+
specified.Scheme = coreScheme
135+
specified.Scheme.AddKnownTypeWithName(gvk, obj)
136+
specified.ByObject = map[client.Object]ByObject{
137+
obj: {},
138+
}
139+
byObject := checkError(specified.inheritFrom(inherited)).ByObject
140+
Expect(byObject).To(HaveLen(1))
141+
for obj := range byObject {
142+
Expect(obj.GetObjectKind().GroupVersionKind()).To(Equal(gvk))
143+
}
144+
})
145+
})
129146
Context("SelectorsByObject", func() {
130147
It("is unchanged when specified and inherited are unset", func() {
131148
Expect(checkError(specified.inheritFrom(inherited)).ByObject).To(HaveLen(0))

0 commit comments

Comments
 (0)