Documentation ¶
Overview ¶
Package core implements core utilities.
Index ¶
- Constants
- Variables
- func ChainToTypedObjectsMapper(c client.Client, ro client.ObjectList, scheme *runtime.Scheme) (handler.MapFunc, error)
- func EnsureOwnerRef(ownerReferences []metav1.OwnerReference, ref metav1.OwnerReference) []metav1.OwnerReference
- func GetChainByName(ctx context.Context, c client.Client, namespace, name string) (*v1beta1.Chain, error)
- func GetChainFromMetadata(ctx context.Context, c client.Client, obj metav1.ObjectMeta) (*v1beta1.Chain, error)
- func GetGVKMetadata(ctx context.Context, c client.Client, gvk schema.GroupVersionKind) (*metav1.PartialObjectMetadata, error)
- func GetMinerByName(ctx context.Context, c client.Client, namespace, name string) (*v1beta1.Miner, error)
- func GetMinerIfExists(ctx context.Context, c client.Client, namespace, name string) (*v1beta1.Miner, error)
- func GetOwnerChain(ctx context.Context, c client.Client, obj metav1.ObjectMeta) (*v1beta1.Chain, error)
- func GetOwnerMiner(ctx context.Context, c client.Client, obj metav1.ObjectMeta) (*v1beta1.Miner, error)
- func HasOwner(refList []metav1.OwnerReference, apiVersion string, kinds []string) bool
- func HasOwnerRef(ownerReferences []metav1.OwnerReference, ref metav1.OwnerReference) bool
- func IsControlledBy(obj metav1.Object, owner client.Object) bool
- func IsExternalManagedControlPlane(controlPlane *unstructured.Unstructured) bool
- func IsNil(i any) bool
- func IsNodeReady(node *corev1.Node) bool
- func IsOwnedByObject(obj metav1.Object, target client.Object) bool
- func IsSupportedVersionSkew(a, b semver.Version) bool
- func LowestNonZeroInt32(i, j int32) int32
- func LowestNonZeroResult(i, j ctrl.Result) ctrl.Result
- func MergeMap(maps ...map[string]string) map[string]string
- func ObjectKey(object metav1.Object) client.ObjectKey
- func ObjectReferenceToUnstructured(in corev1.ObjectReference) *unstructured.Unstructured
- func Ordinalize(n int) string
- func RandomString(n int) string
- func RemoveOwnerRef(ownerReferences []metav1.OwnerReference, inputRef metav1.OwnerReference) []metav1.OwnerReference
- func ReplaceOwnerRef(ownerReferences []metav1.OwnerReference, source metav1.Object, ...) []metav1.OwnerReference
- func UnstructuredUnmarshalField(obj *unstructured.Unstructured, v any, fields ...string) error
- type KubeAwareAPIVersions
Constants ¶
const (
// CharSet defines the alphanumeric set for random string generation.
CharSet = "0123456789abcdefghijklmnopqrstuvwxyz"
)
Variables ¶
var ( // ErrNoChain is returned when the cluster // label could not be found on the object passed in. ErrNoChain = fmt.Errorf("no %q label present", v1beta1.ChainNameLabel) // ErrUnstructuredFieldNotFound determines that a field // in an unstructured object could not be found. ErrUnstructuredFieldNotFound = fmt.Errorf("field not found") )
Functions ¶
func ChainToTypedObjectsMapper ¶
func ChainToTypedObjectsMapper(c client.Client, ro client.ObjectList, scheme *runtime.Scheme) (handler.MapFunc, error)
ChainToTypedObjectsMapper returns a mapper function that gets a cluster and lists all objects for the object passed in and returns a list of requests. Note: This function uses the passed in typed ObjectList and thus with the default client configuration all list calls will be cached. NB: The objects are required to have `v1beta1.ChainNameLabel` applied.
func EnsureOwnerRef ¶
func EnsureOwnerRef(ownerReferences []metav1.OwnerReference, ref metav1.OwnerReference) []metav1.OwnerReference
EnsureOwnerRef makes sure the slice contains the OwnerReference. Note: EnsureOwnerRef will update the version of the OwnerReference fi it exists with a different version. It will also update the UID.
func GetChainByName ¶
func GetChainByName(ctx context.Context, c client.Client, namespace, name string) (*v1beta1.Chain, error)
GetChainByName finds and return a Chain object using the specified params.
func GetChainFromMetadata ¶
func GetChainFromMetadata(ctx context.Context, c client.Client, obj metav1.ObjectMeta) (*v1beta1.Chain, error)
GetChainFromMetadata returns the Chain object (if present) using the object metadata.
func GetGVKMetadata ¶
func GetGVKMetadata(ctx context.Context, c client.Client, gvk schema.GroupVersionKind) (*metav1.PartialObjectMetadata, error)
GetGVKMetadata retrieves a CustomResourceDefinition metadata from the API server using partial object metadata.
This function is greatly more efficient than GetCRDWithContract and should be preferred in most cases.
func GetMinerByName ¶
func GetMinerByName(ctx context.Context, c client.Client, namespace, name string) (*v1beta1.Miner, error)
GetMinerByName finds and return a Miner object using the specified params.
func GetMinerIfExists ¶
func GetMinerIfExists(ctx context.Context, c client.Client, namespace, name string) (*v1beta1.Miner, error)
GetMinerIfExists gets a miner from the API server if it exists.
func GetOwnerChain ¶
func GetOwnerChain(ctx context.Context, c client.Client, obj metav1.ObjectMeta) (*v1beta1.Chain, error)
GetOwnerChain returns the Chain object owning the current resource.
func GetOwnerMiner ¶
func GetOwnerMiner(ctx context.Context, c client.Client, obj metav1.ObjectMeta) (*v1beta1.Miner, error)
GetOwnerMiner returns the Miner object owning the current resource.
func HasOwner ¶
func HasOwner(refList []metav1.OwnerReference, apiVersion string, kinds []string) bool
HasOwner checks if any of the references in the passed list match the given group from apiVersion and one of the given kinds.
func HasOwnerRef ¶
func HasOwnerRef(ownerReferences []metav1.OwnerReference, ref metav1.OwnerReference) bool
HasOwnerRef returns true if the OwnerReference is already in the slice. It matches based on Group, Kind and Name.
func IsControlledBy ¶
IsControlledBy differs from metav1.IsControlledBy. This function matches on Group, Kind and Name. The metav1.IsControlledBy function matches on UID only.
func IsExternalManagedControlPlane ¶
func IsExternalManagedControlPlane(controlPlane *unstructured.Unstructured) bool
IsExternalManagedControlPlane returns a bool indicating whether the control plane referenced in the passed Unstructured resource is an externally managed control plane such as AKS, EKS, GKE, etc.
func IsNil ¶
IsNil returns an error if the passed interface is equal to nil or if it has an interface value of nil.
func IsNodeReady ¶
IsNodeReady returns true if a node is ready.
func IsOwnedByObject ¶
IsOwnedByObject returns true if any of the owner references point to the given target. It matches the object based on the Group, Kind and Name.
func IsSupportedVersionSkew ¶
func IsSupportedVersionSkew(a, b semver.Version) bool
IsSupportedVersionSkew will return true if a and b are no more than one minor version off from each other.
func LowestNonZeroInt32 ¶
LowestNonZeroInt32 returns the lowest non-zero value of the two provided values.
func LowestNonZeroResult ¶
LowestNonZeroResult compares two reconciliation results and returns the one with lowest requeue time.
func MergeMap ¶
MergeMap merges maps. NOTE: In case a key exists in multiple maps, the value of the first map is preserved.
func ObjectReferenceToUnstructured ¶
func ObjectReferenceToUnstructured(in corev1.ObjectReference) *unstructured.Unstructured
ObjectReferenceToUnstructured converts an object reference to an unstructured object.
func Ordinalize ¶
Ordinalize takes an int and returns the ordinalized version of it. Eg. 1 --> 1st, 103 --> 103rd.
func RandomString ¶
RandomString returns a random alphanumeric string.
func RemoveOwnerRef ¶
func RemoveOwnerRef(ownerReferences []metav1.OwnerReference, inputRef metav1.OwnerReference) []metav1.OwnerReference
RemoveOwnerRef returns the slice of owner references after removing the supplied owner ref. Note: RemoveOwnerRef ignores apiVersion and UID. It will remove the passed ownerReference where it matches Name, Group and Kind.
func ReplaceOwnerRef ¶
func ReplaceOwnerRef(ownerReferences []metav1.OwnerReference, source metav1.Object, target metav1.OwnerReference) []metav1.OwnerReference
ReplaceOwnerRef re-parents an object from one OwnerReference to another It compares strictly based on UID to avoid reparenting across an intentional deletion: if an object is deleted and re-created with the same name and namespace, the only way to tell there was an in-progress deletion is by comparing the UIDs.
func UnstructuredUnmarshalField ¶
func UnstructuredUnmarshalField(obj *unstructured.Unstructured, v any, fields ...string) error
UnstructuredUnmarshalField is a wrapper around json and unstructured objects to decode and copy a specific field value into an object.
Types ¶
type KubeAwareAPIVersions ¶
type KubeAwareAPIVersions []string
KubeAwareAPIVersions is a sortable slice of kube-like version strings.
Kube-like version strings are starting with a v, followed by a major version, optional "alpha" or "beta" strings followed by a minor version (e.g. v1, v2beta1). Versions will be sorted based on GA/alpha/beta first and then major and minor versions. e.g. v2, v1, v1beta2, v1beta1, v1alpha1.
func (KubeAwareAPIVersions) Len ¶
func (k KubeAwareAPIVersions) Len() int
func (KubeAwareAPIVersions) Less ¶
func (k KubeAwareAPIVersions) Less(i, j int) bool
func (KubeAwareAPIVersions) Swap ¶
func (k KubeAwareAPIVersions) Swap(i, j int)