From b70a8d05489e64ea8aa148ba1eab1cb48a42141b Mon Sep 17 00:00:00 2001
From: Michael Bolot <michael.bolot@suse.com>
Date: Tue, 6 Dec 2022 09:04:31 -0600
Subject: [PATCH] Fixing view link for management crds

---
 pkg/resources/common/formatter.go | 37 ++++++++++++++++++++-----------
 1 file changed, 24 insertions(+), 13 deletions(-)

diff --git a/pkg/resources/common/formatter.go b/pkg/resources/common/formatter.go
index 06dd345..2922481 100644
--- a/pkg/resources/common/formatter.go
+++ b/pkg/resources/common/formatter.go
@@ -30,21 +30,32 @@ func DefaultTemplate(clientGetter proxy.ClientGetter,
 
 func selfLink(gvr schema2.GroupVersionResource, meta metav1.Object) (prefix string) {
 	buf := &strings.Builder{}
-	if gvr.Group == "" {
-		buf.WriteString("/api/v1/")
-	} else {
-		buf.WriteString("/apis/")
+	if gvr.Group == "management.cattle.io" && gvr.Version == "v3" {
+		buf.WriteString("/v1/")
 		buf.WriteString(gvr.Group)
-		buf.WriteString("/")
-		buf.WriteString(gvr.Version)
-		buf.WriteString("/")
+		buf.WriteString(".")
+		buf.WriteString(gvr.Resource)
+		if meta.GetNamespace() != "" {
+			buf.WriteString("/")
+			buf.WriteString(meta.GetNamespace())
+		}
+	} else {
+		if gvr.Group == "" {
+			buf.WriteString("/api/v1/")
+		} else {
+			buf.WriteString("/apis/")
+			buf.WriteString(gvr.Group)
+			buf.WriteString("/")
+			buf.WriteString(gvr.Version)
+			buf.WriteString("/")
+		}
+		if meta.GetNamespace() != "" {
+			buf.WriteString("namespaces/")
+			buf.WriteString(meta.GetNamespace())
+			buf.WriteString("/")
+		}
+		buf.WriteString(gvr.Resource)
 	}
-	if meta.GetNamespace() != "" {
-		buf.WriteString("namespaces/")
-		buf.WriteString(meta.GetNamespace())
-		buf.WriteString("/")
-	}
-	buf.WriteString(gvr.Resource)
 	buf.WriteString("/")
 	buf.WriteString(meta.GetName())
 	return buf.String()