fix: jump to namespaceless owner reference (#2718)

mine
gitolicious 2024-05-26 16:56:00 +02:00 committed by GitHub
parent 0afea245b7
commit 9594065f41
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
2 changed files with 12 additions and 5 deletions

View File

@ -125,17 +125,17 @@ func (m *Meta) AllGVRs() client.GVRs {
}
// GVK2GVR convert gvk to gvr
func (m *Meta) GVK2GVR(gv schema.GroupVersion, kind string) (client.GVR, bool) {
func (m *Meta) GVK2GVR(gv schema.GroupVersion, kind string) (client.GVR, bool, bool) {
m.mx.RLock()
defer m.mx.RUnlock()
for gvr, meta := range m.resMetas {
if gv.Group == meta.Group && gv.Version == meta.Version && kind == meta.Kind {
return gvr, true
return gvr, meta.Namespaced, true
}
}
return client.NoGVR, false
return client.NoGVR, false, false
}
// IsCRD checks if resource represents a CRD

View File

@ -93,12 +93,19 @@ func (v *OwnerExtender) jumpOwner(ns string, owner metav1.OwnerReference) error
return err
}
gvr, found := dao.MetaAccess.GVK2GVR(gv, owner.Kind)
gvr, namespaced, found := dao.MetaAccess.GVK2GVR(gv, owner.Kind)
if !found {
return errors.Errorf("unsupported GVK: %s/%s", owner.APIVersion, owner.Kind)
}
v.App().gotoResource(gvr.String(), client.FQN(ns, owner.Name), false)
var ownerFQN string
if namespaced {
ownerFQN = client.FQN(ns, owner.Name)
} else {
ownerFQN = owner.Name
}
v.App().gotoResource(gvr.String(), ownerFQN, false)
return nil
}