metautils

package
v0.8.3 Latest Latest
Warning

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

Go to latest
Published: Nov 14, 2023 License: Apache-2.0 Imports: 12 Imported by: 15

Documentation

Overview

Package metautils provides utilities to work with objects on the meta layer.

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func ConvertAndSetList

func ConvertAndSetList(scheme *runtime.Scheme, list runtime.Object, objs []runtime.Object) error

ConvertAndSetList converts the given runtime.Objects into the item type of the list and sets the list items to be the converted items.

func DeleteAnnotation added in v0.6.4

func DeleteAnnotation(obj ObjectAnnotations, key string)

DeleteAnnotation deletes the annotation with the given key from the object.

func DeleteAnnotations added in v0.6.4

func DeleteAnnotations(obj ObjectAnnotations, keys []string)

DeleteAnnotations deletes the annotations with the given keys from the object.

func DeleteLabel added in v0.6.4

func DeleteLabel(obj ObjectLabels, key string)

DeleteLabel deletes the label with the given key from the object.

func DeleteLabels added in v0.6.4

func DeleteLabels(obj ObjectLabels, keys []string)

DeleteLabels deletes the labels with the given keys from the object.

func EachListItem added in v0.6.1

func EachListItem(list client.ObjectList, f func(obj client.Object) error) error

EachListItem traverses over all items of the client.ObjectList.

func ExtractList added in v0.3.5

func ExtractList(obj client.ObjectList) ([]client.Object, error)

ExtractList extracts the items of a list into a slice of client.Object.

func ExtractObjectSlice added in v0.3.5

func ExtractObjectSlice(slice interface{}) ([]client.Object, error)

ExtractObjectSlice extracts client.Object from a given slice.

func ExtractObjectSlicePointer added in v0.3.5

func ExtractObjectSlicePointer(slicePtr interface{}) ([]client.Object, error)

ExtractObjectSlicePointer extracts client.Object from a given slice pointer.

func FilterControlledBy added in v0.3.5

func FilterControlledBy(scheme *runtime.Scheme, owner client.Object, objects []client.Object) ([]client.Object, error)

FilterControlledBy filters multiple objects by using IsControlledBy on each item.

func FilterList added in v0.6.3

func FilterList(list client.ObjectList, f func(obj client.Object) bool) error

FilterList filters the list with the given function, mutating it in-place with the filtered objects.

func GVKForList

func GVKForList(scheme *runtime.Scheme, list runtime.Object) (schema.GroupVersionKind, error)

GVKForList determines the schema.GroupVersionKind for the given list. Effectively, this strips a 'List' suffix from the kind, if it exists.

func HasAnnotation added in v0.6.4

func HasAnnotation(obj ObjectAnnotations, key string) bool

HasAnnotation checks if the object has an annotation with the given key.

func HasLabel added in v0.6.4

func HasLabel(obj ObjectLabels, key string) bool

HasLabel checks if the object has a label with the given key.

func IsControlledBy added in v0.3.3

func IsControlledBy(scheme *runtime.Scheme, owner, controlled client.Object) (bool, error)

IsControlledBy checks if controlled is controlled by owner. An object is considered to be controlled if there is a controller (via metav1.GetControllerOf) whose GVK, name and UID match with the controller object.

func ListElementType

func ListElementType(list runtime.Object) (reflect.Type, error)

ListElementType returns the element type of the list. For instance, for an appsv1.DeploymentList, the element type is appsv1.Deployment.

func MustExtractList added in v0.5.4

func MustExtractList(obj client.ObjectList) []client.Object

MustExtractList extracts the items of a list into a slice of client.Object. It panics if it cannot extract the list.

func MustExtractObjectSlice added in v0.5.4

func MustExtractObjectSlice(slice interface{}) []client.Object

MustExtractObjectSlice extracts client.Object from a given slice. It panics if it cannot extract the objects from the slice.

func MustExtractObjectSlicePointer added in v0.5.4

func MustExtractObjectSlicePointer(slicePtr interface{}) []client.Object

MustExtractObjectSlicePointer extracts client.Object from a given slice pointer. It panics if it cannot extract the objects from the slice pointer.

func MustSetList added in v0.5.4

func MustSetList(list client.ObjectList, objects []client.Object)

MustSetList sets the items in a client.ObjectList to the given objects. It panics if it cannot set the items in the client.ObjectList.

func MustSetObjectSlice added in v0.5.4

func MustSetObjectSlice(slicePtr interface{}, objects []client.Object)

MustSetObjectSlice sets a slice pointer's values to the given objects. It panics if it cannot set the slice pointer values to the given objects.

func NewListForGVK added in v0.6.1

func NewListForGVK(scheme *runtime.Scheme, gvk schema.GroupVersionKind) (client.ObjectList, error)

NewListForGVK creates a new client.ObjectList for the given singular schema.GroupVersionKind.

func NewListForObject added in v0.6.1

func NewListForObject(scheme *runtime.Scheme, obj client.Object) (schema.GroupVersionKind, client.ObjectList, error)

NewListForObject creates a new client.ObjectList for the given singular client.Object.

This method disambiguates depending on the type of the given object: * If the given object is *unstructured.Unstructured, an *unstructured.UnstructuredList will be returned. * If the given object is *metav1.PartialObjectMetadata, a *metav1.PartialObjectMetadataList will be returned. * For all other cases, a new object with the corresponding kind will be created using scheme.New().

func SetAnnotation added in v0.6.1

func SetAnnotation(obj ObjectAnnotations, key, value string)

SetAnnotation sets the given annotation on the object.

func SetAnnotations added in v0.6.1

func SetAnnotations(obj ObjectAnnotations, set map[string]string)

SetAnnotations sets the given annotations on the object.

func SetLabel added in v0.6.1

func SetLabel(obj ObjectLabels, key, value string)

SetLabel sets the given label on the object.

func SetLabels added in v0.6.1

func SetLabels(obj ObjectLabels, set map[string]string)

SetLabels sets the given labels on the object.

func SetList added in v0.3.5

func SetList(list client.ObjectList, objects []client.Object) error

SetList sets the items in a client.ObjectList to the given objects.

func SetObjectSlice added in v0.3.5

func SetObjectSlice(slicePtr interface{}, objects []client.Object) error

SetObjectSlice sets a slice pointer's values to the given objects.

Types

type ObjectAnnotations added in v0.8.0

type ObjectAnnotations interface {
	GetAnnotations() map[string]string
	SetAnnotations(annotations map[string]string)
}

type ObjectLabels added in v0.8.0

type ObjectLabels interface {
	GetLabels() map[string]string
	SetLabels(labels map[string]string)
}

Jump to

Keyboard shortcuts

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