mirror of
https://github.com/kubernetes-sigs/kustomize.git
synced 2026-06-11 17:12:51 +00:00
Order ValidatingWebhookConfig last.
Fixes the cert-manager example of #821.
This commit is contained in:
@@ -92,12 +92,11 @@ func (x Gvk) Equals(o Gvk) bool {
|
|||||||
// a Service should come before things that refer to it.
|
// a Service should come before things that refer to it.
|
||||||
// Namespace should be first.
|
// Namespace should be first.
|
||||||
// In some cases order just specified to provide determinism.
|
// In some cases order just specified to provide determinism.
|
||||||
var order = []string{
|
var orderFirst = []string{
|
||||||
"Namespace",
|
"Namespace",
|
||||||
"StorageClass",
|
"StorageClass",
|
||||||
"CustomResourceDefinition",
|
"CustomResourceDefinition",
|
||||||
"MutatingWebhookConfiguration",
|
"MutatingWebhookConfiguration",
|
||||||
"ValidatingWebhookConfiguration",
|
|
||||||
"ServiceAccount",
|
"ServiceAccount",
|
||||||
"PodSecurityPolicy",
|
"PodSecurityPolicy",
|
||||||
"Role",
|
"Role",
|
||||||
@@ -113,28 +112,26 @@ var order = []string{
|
|||||||
"CronJob",
|
"CronJob",
|
||||||
"PodDisruptionBudget",
|
"PodDisruptionBudget",
|
||||||
}
|
}
|
||||||
|
var orderLast = []string{
|
||||||
|
"ValidatingWebhookConfiguration",
|
||||||
|
}
|
||||||
var typeOrders = func() map[string]int {
|
var typeOrders = func() map[string]int {
|
||||||
m := map[string]int{}
|
m := map[string]int{}
|
||||||
for i, n := range order {
|
for i, n := range orderFirst {
|
||||||
m[n] = i
|
m[n] = -len(orderFirst) + i
|
||||||
|
}
|
||||||
|
for i, n := range orderLast {
|
||||||
|
m[n] = 1 + i
|
||||||
}
|
}
|
||||||
return m
|
return m
|
||||||
}()
|
}()
|
||||||
|
|
||||||
// IsLessThan returns true if self is less than the argument.
|
// IsLessThan returns true if self is less than the argument.
|
||||||
func (x Gvk) IsLessThan(o Gvk) bool {
|
func (x Gvk) IsLessThan(o Gvk) bool {
|
||||||
indexI, foundI := typeOrders[x.Kind]
|
indexI := typeOrders[x.Kind]
|
||||||
indexJ, foundJ := typeOrders[o.Kind]
|
indexJ := typeOrders[o.Kind]
|
||||||
if foundI && foundJ {
|
if indexI != indexJ {
|
||||||
if indexI != indexJ {
|
return indexI < indexJ
|
||||||
return indexI < indexJ
|
|
||||||
}
|
|
||||||
}
|
|
||||||
if foundI && !foundJ {
|
|
||||||
return true
|
|
||||||
}
|
|
||||||
if !foundI && foundJ {
|
|
||||||
return false
|
|
||||||
}
|
}
|
||||||
return x.String() < o.String()
|
return x.String() < o.String()
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -58,6 +58,20 @@ var lessThanTests = []struct {
|
|||||||
Gvk{Group: "a", Version: "b", Kind: "ClusterRole"}},
|
Gvk{Group: "a", Version: "b", Kind: "ClusterRole"}},
|
||||||
{Gvk{Group: "a", Version: "d", Kind: "Namespace"},
|
{Gvk{Group: "a", Version: "d", Kind: "Namespace"},
|
||||||
Gvk{Group: "b", Version: "c", Kind: "Namespace"}},
|
Gvk{Group: "b", Version: "c", Kind: "Namespace"}},
|
||||||
|
{Gvk{Group: "a", Version: "b", Kind: orderFirst[len(orderFirst)-1]},
|
||||||
|
Gvk{Group: "a", Version: "b", Kind: orderLast[0]}},
|
||||||
|
{Gvk{Group: "a", Version: "b", Kind: orderFirst[len(orderFirst)-1]},
|
||||||
|
Gvk{Group: "a", Version: "b", Kind: "CustomKindX"}},
|
||||||
|
{Gvk{Group: "a", Version: "b", Kind: "CustomKindX"},
|
||||||
|
Gvk{Group: "a", Version: "b", Kind: orderLast[0]}},
|
||||||
|
{Gvk{Group: "a", Version: "b", Kind: "CustomKindA"},
|
||||||
|
Gvk{Group: "a", Version: "b", Kind: "CustomKindB"}},
|
||||||
|
{Gvk{Group: "a", Version: "b", Kind: "CustomKindX"},
|
||||||
|
Gvk{Group: "a", Version: "b", Kind: "ValidatingWebhookConfiguration"}},
|
||||||
|
{Gvk{Group: "a", Version: "b", Kind: "APIService"},
|
||||||
|
Gvk{Group: "a", Version: "b", Kind: "ValidatingWebhookConfiguration"}},
|
||||||
|
{Gvk{Group: "a", Version: "b", Kind: "Service"},
|
||||||
|
Gvk{Group: "a", Version: "b", Kind: "APIService"}},
|
||||||
}
|
}
|
||||||
|
|
||||||
func TestIsLessThan1(t *testing.T) {
|
func TestIsLessThan1(t *testing.T) {
|
||||||
|
|||||||
Reference in New Issue
Block a user