Documentation ¶
Overview ¶
Package util implements utilities.
Index ¶
- Constants
- Variables
- func ClusterToInfrastructureMapFunc(gvk schema.GroupVersionKind) handler.MapFunc
- func ClusterToObjectsMapper(c client.Client, ro runtime.Object, scheme *runtime.Scheme) (handler.MapFunc, error)
- func EnsureOwnerRef(ownerReferences []metav1.OwnerReference, ref metav1.OwnerReference) []metav1.OwnerReference
- func GetCRDWithContract(ctx context.Context, c client.Client, gvk schema.GroupVersionKind, ...) (*apiextensionsv1.CustomResourceDefinition, error)
- func GetClusterByName(ctx context.Context, c client.Client, namespace, name string) (*clusterv1.Cluster, error)
- func GetClusterFromMetadata(ctx context.Context, c client.Client, obj metav1.ObjectMeta) (*clusterv1.Cluster, error)
- func GetGVKMetadata(ctx context.Context, c client.Client, gvk schema.GroupVersionKind) (*metav1.PartialObjectMetadata, error)
- func GetMachineByName(ctx context.Context, c client.Client, namespace, name string) (*clusterv1.Machine, error)
- func GetMachineIfExists(ctx context.Context, c client.Client, namespace, name string) (*clusterv1.Machine, error)
- func GetOwnerCluster(ctx context.Context, c client.Client, obj metav1.ObjectMeta) (*clusterv1.Cluster, error)
- func GetOwnerMachine(ctx context.Context, c client.Client, obj metav1.ObjectMeta) (*clusterv1.Machine, error)
- func HasOwner(refList []metav1.OwnerReference, apiVersion string, kinds []string) bool
- func HasOwnerRef(ownerReferences []metav1.OwnerReference, ref metav1.OwnerReference) bool
- func IsControlPlaneMachine(machine *clusterv1.Machine) bool
- func IsControlledBy(obj metav1.Object, owner client.Object) bool
- func IsExternalManagedControlPlane(controlPlane *unstructured.Unstructured) bool
- func IsNodeReady(node *corev1.Node) bool
- func IsOwnedByObject(obj metav1.Object, target client.Object) bool
- func IsSupportedVersionSkew(a, b semver.Version) bool
- func LowestNonZeroResult(i, j ctrl.Result) ctrl.Result
- func MachineToInfrastructureMapFunc(gvk schema.GroupVersionKind) handler.MapFunc
- func ObjectKey(object metav1.Object) client.ObjectKey
- func ObjectReferenceToUnstructured(in corev1.ObjectReference) *unstructured.Unstructured
- func Ordinalize(n int) string
- func Poll(interval, timeout time.Duration, condition wait.ConditionFunc) error
- func PollImmediate(interval, timeout time.Duration, condition wait.ConditionFunc) error
- 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 Retry(fn wait.ConditionFunc, initialBackoffSec int) error
- func UnstructuredUnmarshalField(obj *unstructured.Unstructured, v interface{}, fields ...string) error
- type KubeAwareAPIVersions
- type MachinesByCreationTimestamp
Constants ¶
const (
// CharSet defines the alphanumeric set for random string generation.
CharSet = "0123456789abcdefghijklmnopqrstuvwxyz"
)
Variables ¶
var ( // ErrNoCluster is returned when the cluster // label could not be found on the object passed in. ErrNoCluster = fmt.Errorf("no %q label present", clusterv1.ClusterLabelName) // ErrUnstructuredFieldNotFound determines that a field // in an unstructured object could not be found. ErrUnstructuredFieldNotFound = fmt.Errorf("field not found") )
Functions ¶
func ClusterToInfrastructureMapFunc ¶
func ClusterToInfrastructureMapFunc(gvk schema.GroupVersionKind) handler.MapFunc
ClusterToInfrastructureMapFunc returns a handler.ToRequestsFunc that watches for Cluster events and returns reconciliation requests for an infrastructure provider object.
func ClusterToObjectsMapper ¶ added in v0.3.3
func ClusterToObjectsMapper(c client.Client, ro runtime.Object, scheme *runtime.Scheme) (handler.MapFunc, error)
ClusterToObjectsMapper returns a mapper function that gets a cluster and lists all objects for the object passed in and returns a list of requests. NB: The objects are required to have `clusterv1.ClusterLabelName` applied.
func EnsureOwnerRef ¶
func EnsureOwnerRef(ownerReferences []metav1.OwnerReference, ref metav1.OwnerReference) []metav1.OwnerReference
EnsureOwnerRef makes sure the slice contains the OwnerReference.
func GetCRDWithContract ¶ added in v0.3.0
func GetCRDWithContract(ctx context.Context, c client.Client, gvk schema.GroupVersionKind, contract string) (*apiextensionsv1.CustomResourceDefinition, error)
GetCRDWithContract retrieves a list of CustomResourceDefinitions from using controller-runtime Client, filtering with the `contract` label passed in. Returns the first CRD in the list that matches the GroupVersionKind, otherwise returns an error.
func GetClusterByName ¶
func GetClusterByName(ctx context.Context, c client.Client, namespace, name string) (*clusterv1.Cluster, error)
GetClusterByName finds and return a Cluster object using the specified params.
func GetClusterFromMetadata ¶
func GetClusterFromMetadata(ctx context.Context, c client.Client, obj metav1.ObjectMeta) (*clusterv1.Cluster, error)
GetClusterFromMetadata returns the Cluster object (if present) using the object metadata.
func GetGVKMetadata ¶ added in v0.4.3
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 GetMachineByName ¶
func GetMachineByName(ctx context.Context, c client.Client, namespace, name string) (*clusterv1.Machine, error)
GetMachineByName finds and return a Machine object using the specified params.
func GetMachineIfExists ¶
func GetMachineIfExists(ctx context.Context, c client.Client, namespace, name string) (*clusterv1.Machine, error)
GetMachineIfExists gets a machine from the API server if it exists.
func GetOwnerCluster ¶
func GetOwnerCluster(ctx context.Context, c client.Client, obj metav1.ObjectMeta) (*clusterv1.Cluster, error)
GetOwnerCluster returns the Cluster object owning the current resource.
func GetOwnerMachine ¶
func GetOwnerMachine(ctx context.Context, c client.Client, obj metav1.ObjectMeta) (*clusterv1.Machine, error)
GetOwnerMachine returns the Machine 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.
func IsControlPlaneMachine ¶
IsControlPlaneMachine checks machine is a control plane node.
func IsControlledBy ¶ added in v0.3.7
IsControlledBy differs from metav1.IsControlledBy in that it checks the group (but not version), kind, and name vs uid.
func IsExternalManagedControlPlane ¶ added in v0.3.10
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 IsNodeReady ¶
IsNodeReady returns true if a node is ready.
func IsOwnedByObject ¶ added in v0.3.7
IsOwnedByObject returns true if any of the owner references point to the given target.
func IsSupportedVersionSkew ¶ added in v0.3.7
IsSupportedVersionSkew will return true if a and b are no more than one minor version off from each other.
func LowestNonZeroResult ¶ added in v0.3.9
LowestNonZeroResult compares two reconciliation results and returns the one with lowest requeue time.
func MachineToInfrastructureMapFunc ¶
func MachineToInfrastructureMapFunc(gvk schema.GroupVersionKind) handler.MapFunc
MachineToInfrastructureMapFunc returns a handler.ToRequestsFunc that watches for Machine events and returns reconciliation requests for an infrastructure provider object.
func ObjectReferenceToUnstructured ¶ added in v0.3.7
func ObjectReferenceToUnstructured(in corev1.ObjectReference) *unstructured.Unstructured
ObjectReferenceToUnstructured converts an object reference to an unstructured object.
func Ordinalize ¶ added in v0.3.3
Ordinalize takes an int and returns the ordinalized version of it. Eg. 1 --> 1st, 103 --> 103rd.
func Poll ¶
func Poll(interval, timeout time.Duration, condition wait.ConditionFunc) error
Poll tries a condition func until it returns true, an error, or the timeout is reached.
func PollImmediate ¶
func PollImmediate(interval, timeout time.Duration, condition wait.ConditionFunc) error
PollImmediate tries a condition func until it returns true, an error, or the timeout is reached.
func RandomString ¶
RandomString returns a random alphanumeric string.
func RemoveOwnerRef ¶ added in v0.3.7
func RemoveOwnerRef(ownerReferences []metav1.OwnerReference, inputRef metav1.OwnerReference) []metav1.OwnerReference
RemoveOwnerRef returns the slice of owner references after removing the supplied owner ref.
func ReplaceOwnerRef ¶ added in v0.3.7
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 Retry ¶
func Retry(fn wait.ConditionFunc, initialBackoffSec int) error
Retry retries a given function with exponential backoff.
func UnstructuredUnmarshalField ¶
func UnstructuredUnmarshalField(obj *unstructured.Unstructured, v interface{}, 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 ¶ added in v0.3.0
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 ¶ added in v0.3.0
func (k KubeAwareAPIVersions) Len() int
func (KubeAwareAPIVersions) Less ¶ added in v0.3.0
func (k KubeAwareAPIVersions) Less(i, j int) bool
func (KubeAwareAPIVersions) Swap ¶ added in v0.3.0
func (k KubeAwareAPIVersions) Swap(i, j int)
type MachinesByCreationTimestamp ¶ added in v0.3.0
MachinesByCreationTimestamp sorts a list of Machine by creation timestamp, using their names as a tie breaker.
func (MachinesByCreationTimestamp) Len ¶ added in v0.3.0
func (o MachinesByCreationTimestamp) Len() int
func (MachinesByCreationTimestamp) Less ¶ added in v0.3.0
func (o MachinesByCreationTimestamp) Less(i, j int) bool
func (MachinesByCreationTimestamp) Swap ¶ added in v0.3.0
func (o MachinesByCreationTimestamp) Swap(i, j int)
Directories ¶
Path | Synopsis |
---|---|
Package annotations implements annotation helper functions.
|
Package annotations implements annotation helper functions. |
Package certs implements cert handling utilities.
|
Package certs implements cert handling utilities. |
Package collections implements collection utilities.
|
Package collections implements collection utilities. |
Package conditions implements condition utilities.
|
Package conditions implements condition utilities. |
Package container implements container utility functionality.
|
Package container implements container utility functionality. |
Package conversion implements conversion utilities.
|
Package conversion implements conversion utilities. |
Package defaulting implements defaulting webook functionality.
|
Package defaulting implements defaulting webook functionality. |
Package failuredomains implements FailureDomain utility functions.
|
Package failuredomains implements FailureDomain utility functions. |
Package kubeconfig implements utilities for working with kubeconfigs.
|
Package kubeconfig implements utilities for working with kubeconfigs. |
Package labels implements label utility functions.
|
Package labels implements label utility functions. |
Package patch implements patch utilities.
|
Package patch implements patch utilities. |
Package predicates implements predicate utilities.
|
Package predicates implements predicate utilities. |
Package record implements recording functionality.
|
Package record implements recording functionality. |
Package resource implements resource utilites.
|
Package resource implements resource utilites. |
Package secret implements utilities for secret handling.
|
Package secret implements utilities for secret handling. |
Package version implements version handling.
|
Package version implements version handling. |
Package yaml implements yaml utility functions.
|
Package yaml implements yaml utility functions. |