From ad5ca54cc7953e60515c673f818b7e74c6d273e7 Mon Sep 17 00:00:00 2001 From: Daniel Wilson Date: Wed, 15 Nov 2023 10:05:43 +0000 Subject: [PATCH 1/5] add core api sort priority for NAmespace kind in gvkLessThan --- api/types/kustomization.go | 1 + .../SortOrderTransformer.go | 3 +++ .../SortOrderTransformer_test.go | 24 +++++++++++++++++++ 3 files changed, 28 insertions(+) diff --git a/api/types/kustomization.go b/api/types/kustomization.go index 41376bedd4..5c3237d5c4 100644 --- a/api/types/kustomization.go +++ b/api/types/kustomization.go @@ -22,6 +22,7 @@ const ( MetadataNamespacePath = "metadata/namespace" MetadataNamespaceApiVersion = "v1" MetadataNamePath = "metadata/name" + NamespaceKind = "Namespace" OriginAnnotations = "originAnnotations" TransformerAnnotations = "transformerAnnotations" diff --git a/plugin/builtin/sortordertransformer/SortOrderTransformer.go b/plugin/builtin/sortordertransformer/SortOrderTransformer.go index fefc810d78..b1e60d7898 100644 --- a/plugin/builtin/sortordertransformer/SortOrderTransformer.go +++ b/plugin/builtin/sortordertransformer/SortOrderTransformer.go @@ -163,6 +163,9 @@ func gvkLessThan(gvk1, gvk2 resid.Gvk, typeOrders map[string]int) bool { if index1 != index2 { return index1 < index2 } + if (index1 == types.NamespaceKind && index2 == types.NamespaceKind) && (gvk1.Group == "" || gvk2.Group == "") { + return legacyGVKSortString(gvk1) > legacyGVKSortString(gvk2) + } return legacyGVKSortString(gvk1) < legacyGVKSortString(gvk2) } diff --git a/plugin/builtin/sortordertransformer/SortOrderTransformer_test.go b/plugin/builtin/sortordertransformer/SortOrderTransformer_test.go index 77dffafa4d..64bd3b4b1c 100644 --- a/plugin/builtin/sortordertransformer/SortOrderTransformer_test.go +++ b/plugin/builtin/sortordertransformer/SortOrderTransformer_test.go @@ -69,6 +69,12 @@ kind: Namespace metadata: name: apple --- +apiVersion: servicebus.azure.com/v1api20210101preview +kind: Namespace +metadata: + name: aso-namespace + namespace: default +--- apiVersion: v1 kind: Secret metadata: @@ -108,6 +114,12 @@ kind: Namespace metadata: name: apple --- +apiVersion: servicebus.azure.com/v1api20210101preview +kind: Namespace +metadata: + name: aso-namespace + namespace: default +--- apiVersion: v1 kind: Role metadata: @@ -228,6 +240,12 @@ kind: Namespace metadata: name: apple --- +apiVersion: servicebus.azure.com/v1api20210101preview +kind: Namespace +metadata: + name: aso-namespace + namespace: default +--- apiVersion: v1 kind: Deployment metadata: @@ -306,6 +324,12 @@ kind: Namespace metadata: name: apple --- +apiVersion: servicebus.azure.com/v1api20210101preview +kind: Namespace +metadata: + name: aso-namespace + namespace: default +--- apiVersion: v1 kind: Deployment metadata: From cc96884e16e2bae6b0ab77f3b6dba460ef747e4c Mon Sep 17 00:00:00 2001 From: Daniel Wilson Date: Wed, 15 Nov 2023 10:20:02 +0000 Subject: [PATCH 2/5] fix logic --- plugin/builtin/sortordertransformer/SortOrderTransformer.go | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/plugin/builtin/sortordertransformer/SortOrderTransformer.go b/plugin/builtin/sortordertransformer/SortOrderTransformer.go index b1e60d7898..64cfa591e2 100644 --- a/plugin/builtin/sortordertransformer/SortOrderTransformer.go +++ b/plugin/builtin/sortordertransformer/SortOrderTransformer.go @@ -163,11 +163,10 @@ func gvkLessThan(gvk1, gvk2 resid.Gvk, typeOrders map[string]int) bool { if index1 != index2 { return index1 < index2 } - if (index1 == types.NamespaceKind && index2 == types.NamespaceKind) && (gvk1.Group == "" || gvk2.Group == "") { + if (gvk1.Kind == types.NamespaceKind && gvk2.Kind == types.NamespaceKind) && (gvk1.Group == "" || gvk2.Group == "") { return legacyGVKSortString(gvk1) > legacyGVKSortString(gvk2) } - return legacyGVKSortString(gvk1) < legacyGVKSortString(gvk2) -} + return legacyGVKSortString(gvk1) < legacyGVKSortString(gvk // legacyGVKSortString returns a string representation of given GVK used for // stable sorting. From a0985b122d5c3bef32c3d3fe1719f92beff49bda Mon Sep 17 00:00:00 2001 From: Daniel Wilson Date: Wed, 15 Nov 2023 10:23:53 +0000 Subject: [PATCH 3/5] fix syntax --- plugin/builtin/sortordertransformer/SortOrderTransformer.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/plugin/builtin/sortordertransformer/SortOrderTransformer.go b/plugin/builtin/sortordertransformer/SortOrderTransformer.go index 64cfa591e2..569edd8cdd 100644 --- a/plugin/builtin/sortordertransformer/SortOrderTransformer.go +++ b/plugin/builtin/sortordertransformer/SortOrderTransformer.go @@ -166,7 +166,7 @@ func gvkLessThan(gvk1, gvk2 resid.Gvk, typeOrders map[string]int) bool { if (gvk1.Kind == types.NamespaceKind && gvk2.Kind == types.NamespaceKind) && (gvk1.Group == "" || gvk2.Group == "") { return legacyGVKSortString(gvk1) > legacyGVKSortString(gvk2) } - return legacyGVKSortString(gvk1) < legacyGVKSortString(gvk + return legacyGVKSortString(gvk1) < legacyGVKSortString(gvk) // legacyGVKSortString returns a string representation of given GVK used for // stable sorting. From 149aad5866dab6809585922ac5ca3fe5ecf1702a Mon Sep 17 00:00:00 2001 From: Daniel Wilson Date: Wed, 15 Nov 2023 10:24:37 +0000 Subject: [PATCH 4/5] fix syntax --- plugin/builtin/sortordertransformer/SortOrderTransformer.go | 1 + 1 file changed, 1 insertion(+) diff --git a/plugin/builtin/sortordertransformer/SortOrderTransformer.go b/plugin/builtin/sortordertransformer/SortOrderTransformer.go index 569edd8cdd..2f3ef83ab5 100644 --- a/plugin/builtin/sortordertransformer/SortOrderTransformer.go +++ b/plugin/builtin/sortordertransformer/SortOrderTransformer.go @@ -167,6 +167,7 @@ func gvkLessThan(gvk1, gvk2 resid.Gvk, typeOrders map[string]int) bool { return legacyGVKSortString(gvk1) > legacyGVKSortString(gvk2) } return legacyGVKSortString(gvk1) < legacyGVKSortString(gvk) +} // legacyGVKSortString returns a string representation of given GVK used for // stable sorting. From 2beab4cc142d01938c836b67366696982d0e1d46 Mon Sep 17 00:00:00 2001 From: Daniel Wilson Date: Wed, 15 Nov 2023 10:25:31 +0000 Subject: [PATCH 5/5] fix logic --- plugin/builtin/sortordertransformer/SortOrderTransformer.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/plugin/builtin/sortordertransformer/SortOrderTransformer.go b/plugin/builtin/sortordertransformer/SortOrderTransformer.go index 2f3ef83ab5..61c62f29c9 100644 --- a/plugin/builtin/sortordertransformer/SortOrderTransformer.go +++ b/plugin/builtin/sortordertransformer/SortOrderTransformer.go @@ -166,7 +166,7 @@ func gvkLessThan(gvk1, gvk2 resid.Gvk, typeOrders map[string]int) bool { if (gvk1.Kind == types.NamespaceKind && gvk2.Kind == types.NamespaceKind) && (gvk1.Group == "" || gvk2.Group == "") { return legacyGVKSortString(gvk1) > legacyGVKSortString(gvk2) } - return legacyGVKSortString(gvk1) < legacyGVKSortString(gvk) + return legacyGVKSortString(gvk1) < legacyGVKSortString(gvk2) } // legacyGVKSortString returns a string representation of given GVK used for