clientutils

package
v0.3.2 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Feb 17, 2022 License: Apache-2.0 Imports: 12 Imported by: 14

Documentation

Overview

Package clientutils provides utilities for working with the client package of controller-runtime.

Index

Constants

This section is empty.

Variables

View Source
var ApplyAll = apply{}

ApplyAll provides client.Apply for any given object.

Functions

func CreateMultiple

func CreateMultiple(ctx context.Context, c client.Client, objs []client.Object, opts ...client.CreateOption) error

CreateMultiple creates multiple objects using the given client and options.

func CreateMultipleFromFile

func CreateMultipleFromFile(ctx context.Context, c client.Client, filename string, opts ...client.CreateOption) ([]unstructured.Unstructured, error)

CreateMultipleFromFile creates multiple objects by reading the given file as unstructured objects and then creating the read objects using the given client and options.

func DeleteMultiple

func DeleteMultiple(ctx context.Context, c client.Client, objs []client.Object, opts ...client.DeleteOption) error

DeleteMultiple deletes multiple given client.Object objects using the given client.DeleteOption options.

func DeleteMultipleFromFile

func DeleteMultipleFromFile(ctx context.Context, c client.Client, filename string, opts ...client.DeleteOption) error

DeleteMultipleFromFile deletes all client.Object objects from the given file with the given client.DeleteOption options.

func GetMultiple

func GetMultiple(ctx context.Context, c client.Client, reqs []GetRequest) error

GetMultiple gets multiple objects using the given client. The results are written back into the given GetRequest.

func GetMultipleFromFile

func GetMultipleFromFile(ctx context.Context, c client.Client, filename string) ([]unstructured.Unstructured, error)

GetMultipleFromFile creates multiple objects by reading the given file as unstructured objects and then creating the read objects using the given client and options.

func IgnoreAlreadyExists

func IgnoreAlreadyExists(err error) error

IgnoreAlreadyExists returns nil if the given error matches apierrors.IsAlreadyExists.

func ObjectRefSetReferencesGetRequest

func ObjectRefSetReferencesGetRequest(scheme *runtime.Scheme, s ObjectRefSet, req GetRequest) (bool, error)

ObjectRefSetReferencesGetRequest is a utility function to determine whether an ObjectRefSet contains a GetRequest.

func ObjectRefSetReferencesObject

func ObjectRefSetReferencesObject(scheme *runtime.Scheme, s ObjectRefSet, obj client.Object) (bool, error)

ObjectRefSetReferencesObject is a utility function to determine whether an ObjectRefSet contains a client.Object.

func ObjectsFromGetRequests

func ObjectsFromGetRequests(reqs []GetRequest) []client.Object

ObjectsFromGetRequests retrieves all client.Object objects from the given slice of GetRequest.

func ObjectsFromPatchRequests

func ObjectsFromPatchRequests(reqs []PatchRequest) []client.Object

ObjectsFromPatchRequests extracts all client.Object objects from the given slice of PatchRequest.

func PatchMultiple

func PatchMultiple(ctx context.Context, c client.Client, reqs []PatchRequest, opts ...client.PatchOption) error

PatchMultiple executes multiple PatchRequest with the given client.PatchOption.

func PatchMultipleFromFile

func PatchMultipleFromFile(
	ctx context.Context,
	c client.Client,
	filename string,
	patchProvider PatchProvider,
	opts ...client.PatchOption,
) ([]unstructured.Unstructured, error)

PatchMultipleFromFile patches all objects from the given filename using the patchFor function. The returned unstructured.Unstructured objects contain the result of applying them.

Types

type GetRequest

type GetRequest struct {
	Key    client.ObjectKey
	Object client.Object
}

GetRequest is a request to get an object with the given key and object (that is later used to write the result into).

func GetRequestFromObject

func GetRequestFromObject(obj client.Object) GetRequest

GetRequestFromObject converts the given client.Object to a GetRequest. Namespace and name should be present on the object.

func GetRequestsFromObjects

func GetRequestsFromObjects(objs []client.Object) []GetRequest

GetRequestsFromObjects converts each client.Object into a GetRequest using GetRequestFromObject.

type GetRequestSet

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

GetRequestSet is a set of GetRequest.

Internally, the objects are differentiated by either being typed or unstructured. For unstructured objects, the group version kind they supply alongside their client.ObjectKey is used as identity. For typed objects, their element type (all typed objects *have* to be pointers to structs) alongside their client.ObjectKey is used as identity. If a typed object is *not* a pointer to a struct, a panic will happen.

func NewGetRequestSet

func NewGetRequestSet(items ...GetRequest) *GetRequestSet

NewGetRequestSet creates a new set of GetRequest.

Internally, the objects are differentiated by either being typed or unstructured. For unstructured objects, the group version kind they supply alongside their client.ObjectKey is used as identity. For typed objects, their element type (all typed objects *have* to be pointers to structs) alongside their client.ObjectKey is used as identity. If a typed object is *not* a pointer to a struct, a panic will happen.

func (*GetRequestSet) Delete

func (s *GetRequestSet) Delete(items ...GetRequest)

Delete deletes the given items from the set, if they were present.

func (*GetRequestSet) Has

func (s *GetRequestSet) Has(item GetRequest) bool

Has checks if the given item is present in the set.

func (*GetRequestSet) Insert

func (s *GetRequestSet) Insert(items ...GetRequest)

Insert inserts the given items into the set.

func (*GetRequestSet) Iterate

func (s *GetRequestSet) Iterate(f func(GetRequest) (cont bool))

Iterate iterates through the get requests of this set using the given function. If the function returns true (i.e. stop), the iteration is canceled.

func (*GetRequestSet) Len

func (s *GetRequestSet) Len() int

Len returns the length of the set.

func (*GetRequestSet) List

func (s *GetRequestSet) List() []GetRequest

List returns all GetRequests of this set.

type ObjectRef

type ObjectRef struct {
	GroupKind schema.GroupKind
	Key       client.ObjectKey
}

ObjectRef references an object regardless of its version.

func ObjectRefFromGetRequest

func ObjectRefFromGetRequest(scheme *runtime.Scheme, req GetRequest) (ObjectRef, error)

ObjectRefFromGetRequest creates a new ObjectRef from the given GetRequest.

func ObjectRefFromObject

func ObjectRefFromObject(scheme *runtime.Scheme, obj client.Object) (ObjectRef, error)

ObjectRefFromObject creates a new ObjectRef from the given client.Object.

func ObjectRefsFromGetRequests

func ObjectRefsFromGetRequests(scheme *runtime.Scheme, reqs []GetRequest) ([]ObjectRef, error)

ObjectRefsFromGetRequests creates a list of ObjectRef from the given list of GetRequest.

func ObjectRefsFromObjects

func ObjectRefsFromObjects(scheme *runtime.Scheme, objs []client.Object) ([]ObjectRef, error)

ObjectRefsFromObjects creates a list of ObjectRef from a list of client.Object.

type ObjectRefSet

type ObjectRefSet map[ObjectRef]struct{}

ObjectRefSet is a set of ObjectRef references.

func NewObjectRefSet

func NewObjectRefSet(items ...ObjectRef) ObjectRefSet

NewObjectRefSet creates a new ObjectRefSet with the given set.

func ObjectRefSetFromGetRequestSet

func ObjectRefSetFromGetRequestSet(scheme *runtime.Scheme, s2 *GetRequestSet) (ObjectRefSet, error)

ObjectRefSetFromGetRequestSet creates a new ObjectRefSet from the given GetRequestSet.

func ObjectRefSetFromObjects

func ObjectRefSetFromObjects(scheme *runtime.Scheme, objs []client.Object) (ObjectRefSet, error)

ObjectRefSetFromObjects creates a new ObjectRefSet from the given list of client.Object.

func (ObjectRefSet) Delete

func (s ObjectRefSet) Delete(items ...ObjectRef)

Delete deletes the given items from the set, if present.

func (ObjectRefSet) Has

func (s ObjectRefSet) Has(item ObjectRef) bool

Has checks if the given item is present in the set.

func (ObjectRefSet) Insert

func (s ObjectRefSet) Insert(items ...ObjectRef)

Insert inserts the given items into the set.

func (ObjectRefSet) Len

func (s ObjectRefSet) Len() int

Len returns the length of the set.

type PatchProvider

type PatchProvider interface {
	PatchFor(obj client.Object) client.Patch
}

PatchProvider retrieves a patch for any given object.

type PatchRequest

type PatchRequest struct {
	Object client.Object
	Patch  client.Patch
}

PatchRequest is the request to patch an object with a patch.

func PatchRequestFromObjectAndProvider

func PatchRequestFromObjectAndProvider(obj client.Object, provider PatchProvider) PatchRequest

PatchRequestFromObjectAndProvider is a shorthand to create a PatchRequest using a client.Object and PatchProvider.

func PatchRequestsFromObjectsAndProvider

func PatchRequestsFromObjectsAndProvider(objs []client.Object, provider PatchProvider) []PatchRequest

PatchRequestsFromObjectsAndProvider converts all client.Object objects to PatchRequest using PatchRequestFromObjectAndProvider.

type SharedFieldIndexer added in v0.3.2

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

SharedFieldIndexer allows registering and calling field index functions shared by different users.

func NewSharedFieldIndexer added in v0.3.2

func NewSharedFieldIndexer(indexer client.FieldIndexer, scheme *runtime.Scheme) *SharedFieldIndexer

NewSharedFieldIndexer creates a new SharedFieldIndexer.

func (*SharedFieldIndexer) IndexField added in v0.3.2

func (s *SharedFieldIndexer) IndexField(ctx context.Context, obj client.Object, field string) error

IndexField calls a registered client.IndexerFunc for the given client.Object and field. If the object / field is unknown or its GVK could not be determined, it errors.

func (*SharedFieldIndexer) MustRegister added in v0.3.2

func (s *SharedFieldIndexer) MustRegister(obj client.Object, field string, extractValue client.IndexerFunc)

MustRegister registers the client.IndexerFunc for the given client.Object and field.

func (*SharedFieldIndexer) Register added in v0.3.2

func (s *SharedFieldIndexer) Register(obj client.Object, field string, extractValue client.IndexerFunc) error

Register registers the client.IndexerFunc for the given client.Object and field.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL