...

Source file src/edge-infra.dev/pkg/k8s/runtime/client/object.go

Documentation: edge-infra.dev/pkg/k8s/runtime/client

     1  package client
     2  
     3  import (
     4  	"fmt"
     5  	"strings"
     6  
     7  	"sigs.k8s.io/controller-runtime/pkg/client"
     8  
     9  	"edge-infra.dev/pkg/k8s/meta"
    10  )
    11  
    12  // ObjectKeyFromRefStr creates an object reference that can be passed to
    13  // client operations such as Get() from a standard K8s namespaced reference string
    14  // in the format namespace/name
    15  func ObjectKeyFromRefStr(s string) (client.ObjectKey, error) {
    16  	tokens := strings.Split(s, "/")
    17  	if len(tokens) != 2 || tokens[0] == "" || tokens[1] == "" {
    18  		return client.ObjectKey{}, fmt.Errorf("invalid object ref string %s, should be in the format of name/namespace", s)
    19  	}
    20  	return client.ObjectKey{Namespace: tokens[0], Name: tokens[1]}, nil
    21  }
    22  
    23  // ObjectKeyFromRef is a convenience function for creating an object key from
    24  // a namespaced object reference.
    25  func ObjectKeyFromRef(ref meta.NamespacedObjectReference) client.ObjectKey {
    26  	return client.ObjectKey{Name: ref.Name, Namespace: ref.Namespace}
    27  }
    28  
    29  // ObjectKeyFromObject returns the ObjectKey given a runtime.Object.
    30  func ObjectKeyFromObject(obj client.Object) client.ObjectKey {
    31  	return client.ObjectKey{Namespace: obj.GetNamespace(), Name: obj.GetName()}
    32  }
    33  

View as plain text