controller-runtimesigs.k8s.io/controller-runtime/pkg/client/fake Index | Files

package fake

import "sigs.k8s.io/controller-runtime/pkg/client/fake"

Package fake provides a fake client for testing.

A fake client is backed by its simple object store indexed by GroupVersionResource. You can create a fake client with optional objects.

client := NewClientBuilder().WithScheme(scheme).WithObjects(initObjs...).Build()

You can invoke the methods defined in the Client interface.

When in doubt, it's almost always better not to use this package and instead use envtest.Environment with a real client and API server.

WARNING: ⚠️ Current Limitations / Known Issues with the fake Client ⚠️

Index

Functions

func AddIndex

func AddIndex(c client.Client, obj runtime.Object, field string, extractValue client.IndexerFunc) error

AddIndex adds an index to a fake client. It will panic if used with a client that is not a fake client. It will error if there is already an index for given object with the same name as field.

It can be used to test code that adds indexes to the cache at runtime.

func NewFakeClient

func NewFakeClient(initObjs ...runtime.Object) client.WithWatch

NewFakeClient creates a new fake client for testing. You can choose to initialize it with a slice of runtime.Object.

Types

type ClientBuilder

type ClientBuilder struct {
	// contains filtered or unexported fields
}

ClientBuilder builds a fake client.

func NewClientBuilder

func NewClientBuilder() *ClientBuilder

NewClientBuilder returns a new builder to create a fake client.

func (*ClientBuilder) Build

func (f *ClientBuilder) Build() client.WithWatch

Build builds and returns a new fake client.

func (*ClientBuilder) WithIndex

func (f *ClientBuilder) WithIndex(obj runtime.Object, field string, extractValue client.IndexerFunc) *ClientBuilder

WithIndex can be optionally used to register an index with name `field` and indexer `extractValue` for API objects of the same GroupVersionKind (GVK) as `obj` in the fake client. It can be invoked multiple times, both with objects of the same GVK or different ones. Invoking WithIndex twice with the same `field` and GVK (via `obj`) arguments will panic. WithIndex retrieves the GVK of `obj` using the scheme registered via WithScheme if WithScheme was previously invoked, the default scheme otherwise.

func (*ClientBuilder) WithInterceptorFuncs

func (f *ClientBuilder) WithInterceptorFuncs(interceptorFuncs interceptor.Funcs) *ClientBuilder

WithInterceptorFuncs configures the client methods to be intercepted using the provided interceptor.Funcs.

func (*ClientBuilder) WithLists

func (f *ClientBuilder) WithLists(initLists ...client.ObjectList) *ClientBuilder

WithLists can be optionally used to initialize this fake client with client.ObjectList(s).

func (*ClientBuilder) WithObjectTracker

func (f *ClientBuilder) WithObjectTracker(ot testing.ObjectTracker) *ClientBuilder

WithObjectTracker can be optionally used to initialize this fake client with testing.ObjectTracker.

func (*ClientBuilder) WithObjects

func (f *ClientBuilder) WithObjects(initObjs ...client.Object) *ClientBuilder

WithObjects can be optionally used to initialize this fake client with client.Object(s).

func (*ClientBuilder) WithRESTMapper

func (f *ClientBuilder) WithRESTMapper(restMapper meta.RESTMapper) *ClientBuilder

WithRESTMapper sets this builder's restMapper. The restMapper is directly set as mapper in the Client. This can be used for example with a meta.DefaultRESTMapper to provide a static rest mapping. If not set, defaults to an empty meta.DefaultRESTMapper.

func (*ClientBuilder) WithRuntimeObjects

func (f *ClientBuilder) WithRuntimeObjects(initRuntimeObjs ...runtime.Object) *ClientBuilder

WithRuntimeObjects can be optionally used to initialize this fake client with runtime.Object(s).

func (*ClientBuilder) WithScheme

func (f *ClientBuilder) WithScheme(scheme *runtime.Scheme) *ClientBuilder

WithScheme sets this builder's internal scheme. If not set, defaults to client-go's global scheme.Scheme.

func (*ClientBuilder) WithStatusSubresource

func (f *ClientBuilder) WithStatusSubresource(o ...client.Object) *ClientBuilder

WithStatusSubresource configures the passed object with a status subresource, which means calls to Update and Patch will not alter its status.

Source Files

client.go doc.go

Version
v0.21.0 (latest)
Published
May 20, 2025
Platform
linux/amd64
Imports
40 packages
Last checked
9 hours ago

Tools for package owners.