INNER CODE UNIT · Go
func
getseabird/seabird · api/cluster.go:176
func (cluster *Cluster) GetReference(ctx context.Context, ref corev1.ObjectReference) (client.Object, error) {
var object client.Object
gvk := schema.FromAPIVersionAndKind(ref.APIVersion, ref.Kind).String()
for key, t := range cluster.Scheme.AllKnownTypes() {
if key.String() == gvk {
object = reflect.New(t).Interface().(client.Object)
break
}
}
if err := cluster.Get(ctx, types.NamespacedName{Namespace: ref.Namespace, Name: ref.Name}, object); err != nil {
return nil, err
}
if err := cluster.SetObjectGVK(object); err != nil {
klog.Infof("Cluster/SetObjectGVK: %s", err)
}