...
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
13
14
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
24
25 func ObjectKeyFromRef(ref meta.NamespacedObjectReference) client.ObjectKey {
26 return client.ObjectKey{Name: ref.Name, Namespace: ref.Namespace}
27 }
28
29
30 func ObjectKeyFromObject(obj client.Object) client.ObjectKey {
31 return client.ObjectKey{Namespace: obj.GetNamespace(), Name: obj.GetName()}
32 }
33
View as plain text