Skip to content

Commit d68cd8a

Browse files
Ihar HrachyshkaIhar Hrachyshka
authored andcommitted
Expose object tracker for fake clientsets
Not every object kind can be registered via tracker .Add() called as part of SimpleClientset initialization. This is because .Add() relies on UnsafeGuessKindToResource to convert object kinds into resource type names, which is broken for some resources. An example of an affected kind is NetworkAttachmentDefinitions CRD that uses network-attachment-definitions as its resource type name. When UnsafeGuessKindToResource is called for this kind, it returns networkattachmentdefinitions (without dashes). As per the comment inside .Add, kinds affected by UnsafeGuessKindToResource deficiencies should instead register objects using tracker .Create() method. Problem is, current SimpleClientset struct definition doesn't expose the object tracker in any way, which makes it impossible to properly register these kinds at all. To address the issue, this change modifies the definition of SimpleClientset struct to expose the object tracker used via Tracker() method.
1 parent 66329fc commit d68cd8a

File tree

16 files changed

+96
-16
lines changed

16 files changed

+96
-16
lines changed

pkg/client/clientset_generated/internalclientset/fake/clientset_generated.go

Lines changed: 6 additions & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

staging/src/k8s.io/apiextensions-apiserver/examples/client-go/pkg/client/clientset/versioned/fake/clientset_generated.go

Lines changed: 6 additions & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

staging/src/k8s.io/apiextensions-apiserver/pkg/client/clientset/clientset/fake/clientset_generated.go

Lines changed: 6 additions & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

staging/src/k8s.io/apiextensions-apiserver/pkg/client/clientset/internalclientset/fake/clientset_generated.go

Lines changed: 6 additions & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

staging/src/k8s.io/client-go/kubernetes/fake/clientset_generated.go

Lines changed: 6 additions & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

staging/src/k8s.io/code-generator/_examples/MixedCase/clientset/versioned/fake/clientset_generated.go

Lines changed: 6 additions & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

staging/src/k8s.io/code-generator/_examples/apiserver/clientset/internalversion/fake/clientset_generated.go

Lines changed: 6 additions & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

staging/src/k8s.io/code-generator/_examples/apiserver/clientset/versioned/fake/clientset_generated.go

Lines changed: 6 additions & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

staging/src/k8s.io/code-generator/_examples/crd/clientset/versioned/fake/clientset_generated.go

Lines changed: 6 additions & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

staging/src/k8s.io/code-generator/cmd/client-gen/generators/fake/generator_fake_for_clientset.go

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -121,7 +121,7 @@ func NewSimpleClientset(objects ...runtime.Object) *Clientset {
121121
}
122122
}
123123
124-
cs := &Clientset{}
124+
cs := &Clientset{tracker: o}
125125
cs.discovery = &fakediscovery.FakeDiscovery{Fake: &cs.Fake}
126126
cs.AddReactor("*", "*", testing.ObjectReaction(o))
127127
cs.AddWatchReactor("*", func(action testing.Action) (handled bool, ret watch.Interface, err error) {
@@ -143,11 +143,16 @@ func NewSimpleClientset(objects ...runtime.Object) *Clientset {
143143
type Clientset struct {
144144
testing.Fake
145145
discovery *fakediscovery.FakeDiscovery
146+
tracker testing.ObjectTracker
146147
}
147148
148149
func (c *Clientset) Discovery() discovery.DiscoveryInterface {
149150
return c.discovery
150151
}
152+
153+
func (c *Clientset) Tracker() testing.ObjectTracker {
154+
return c.tracker
155+
}
151156
`
152157

153158
var checkImpl = `

0 commit comments

Comments
 (0)