mirror of
https://github.com/kubernetes-sigs/kustomize.git
synced 2026-07-16 17:33:14 +00:00
Compare commits
12 Commits
api/v0.11.
...
api/v0.11.
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
3006846d67 | ||
|
|
2f9617ff56 | ||
|
|
28b3e9fb9c | ||
|
|
32e13bdf66 | ||
|
|
fcfd30ca18 | ||
|
|
a86723c3a3 | ||
|
|
01d7fae382 | ||
|
|
39349c4fbc | ||
|
|
836a721a47 | ||
|
|
78e8d4318a | ||
|
|
67591762a6 | ||
|
|
f38648df34 |
2
Makefile
2
Makefile
@@ -12,7 +12,7 @@ MYGOBIN = $(shell go env GOPATH)/bin
|
|||||||
endif
|
endif
|
||||||
export PATH := $(MYGOBIN):$(PATH)
|
export PATH := $(MYGOBIN):$(PATH)
|
||||||
MODULES := '"cmd/config" "api/" "kustomize/" "kyaml/"'
|
MODULES := '"cmd/config" "api/" "kustomize/" "kyaml/"'
|
||||||
LATEST_V4_RELEASE=v4.4.1
|
LATEST_V4_RELEASE=v4.3.0
|
||||||
|
|
||||||
# Provide defaults for REPO_OWNER and REPO_NAME if not present.
|
# Provide defaults for REPO_OWNER and REPO_NAME if not present.
|
||||||
# Typically these values would be provided by Prow.
|
# Typically these values would be provided by Prow.
|
||||||
|
|||||||
@@ -11,6 +11,6 @@ require (
|
|||||||
github.com/stretchr/testify v1.7.0
|
github.com/stretchr/testify v1.7.0
|
||||||
gopkg.in/yaml.v2 v2.4.0
|
gopkg.in/yaml.v2 v2.4.0
|
||||||
k8s.io/kube-openapi v0.0.0-20210421082810-95288971da7e
|
k8s.io/kube-openapi v0.0.0-20210421082810-95288971da7e
|
||||||
sigs.k8s.io/kustomize/kyaml v0.13.2
|
sigs.k8s.io/kustomize/kyaml v0.13.3
|
||||||
sigs.k8s.io/yaml v1.2.0
|
sigs.k8s.io/yaml v1.2.0
|
||||||
)
|
)
|
||||||
|
|||||||
@@ -634,8 +634,8 @@ k8s.io/kube-openapi v0.0.0-20210421082810-95288971da7e/go.mod h1:vHXdDvt9+2spS2R
|
|||||||
rsc.io/binaryregexp v0.2.0/go.mod h1:qTv7/COck+e2FymRvadv62gMdZztPaShugOCi3I+8D8=
|
rsc.io/binaryregexp v0.2.0/go.mod h1:qTv7/COck+e2FymRvadv62gMdZztPaShugOCi3I+8D8=
|
||||||
rsc.io/quote/v3 v3.1.0/go.mod h1:yEA65RcK8LyAZtP9Kv3t0HmxON59tX3rD+tICJqUlj0=
|
rsc.io/quote/v3 v3.1.0/go.mod h1:yEA65RcK8LyAZtP9Kv3t0HmxON59tX3rD+tICJqUlj0=
|
||||||
rsc.io/sampler v1.3.0/go.mod h1:T1hPZKmBbMNahiBKFy5HrXp6adAjACjK9JXDnKaTXpA=
|
rsc.io/sampler v1.3.0/go.mod h1:T1hPZKmBbMNahiBKFy5HrXp6adAjACjK9JXDnKaTXpA=
|
||||||
sigs.k8s.io/kustomize/kyaml v0.13.2 h1:R3uST+eWe4sSj6STEAJWRJPM6BJc3vdFPl7rKtHacps=
|
sigs.k8s.io/kustomize/kyaml v0.13.3 h1:tNNQIC+8cc+aXFTVg+RtQAOsjwUdYBZRAgYOVI3RBc4=
|
||||||
sigs.k8s.io/kustomize/kyaml v0.13.2/go.mod h1:/ya3Gk4diiQzlE4mBh7wykyLRFZNvqlbh+JnwQ9Vhrc=
|
sigs.k8s.io/kustomize/kyaml v0.13.3/go.mod h1:/ya3Gk4diiQzlE4mBh7wykyLRFZNvqlbh+JnwQ9Vhrc=
|
||||||
sigs.k8s.io/structured-merge-diff/v4 v4.0.2/go.mod h1:bJZC9H9iH24zzfZ/41RGcq60oK1F7G282QMXDPYydCw=
|
sigs.k8s.io/structured-merge-diff/v4 v4.0.2/go.mod h1:bJZC9H9iH24zzfZ/41RGcq60oK1F7G282QMXDPYydCw=
|
||||||
sigs.k8s.io/yaml v1.2.0 h1:kr/MCeFWJWTwyaHoR9c8EjH9OumOmoF9YGiZd7lFm/Q=
|
sigs.k8s.io/yaml v1.2.0 h1:kr/MCeFWJWTwyaHoR9c8EjH9OumOmoF9YGiZd7lFm/Q=
|
||||||
sigs.k8s.io/yaml v1.2.0/go.mod h1:yfXDCHCao9+ENCvLSE62v9VSji2MKu5jeNfTrofGhJc=
|
sigs.k8s.io/yaml v1.2.0/go.mod h1:yfXDCHCao9+ENCvLSE62v9VSji2MKu5jeNfTrofGhJc=
|
||||||
|
|||||||
@@ -19,6 +19,7 @@ type PrefixTransformerPlugin struct {
|
|||||||
FieldSpecs types.FsSlice `json:"fieldSpecs,omitempty" yaml:"fieldSpecs,omitempty"`
|
FieldSpecs types.FsSlice `json:"fieldSpecs,omitempty" yaml:"fieldSpecs,omitempty"`
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// TODO: Make this gvk skip list part of the config.
|
||||||
var prefixFieldSpecsToSkip = types.FsSlice{
|
var prefixFieldSpecsToSkip = types.FsSlice{
|
||||||
{Gvk: resid.Gvk{Kind: "CustomResourceDefinition"}},
|
{Gvk: resid.Gvk{Kind: "CustomResourceDefinition"}},
|
||||||
{Gvk: resid.Gvk{Group: "apiregistration.k8s.io", Kind: "APIService"}},
|
{Gvk: resid.Gvk{Group: "apiregistration.k8s.io", Kind: "APIService"}},
|
||||||
|
|||||||
@@ -19,6 +19,7 @@ type SuffixTransformerPlugin struct {
|
|||||||
FieldSpecs types.FsSlice `json:"fieldSpecs,omitempty" yaml:"fieldSpecs,omitempty"`
|
FieldSpecs types.FsSlice `json:"fieldSpecs,omitempty" yaml:"fieldSpecs,omitempty"`
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// TODO: Make this gvk skip list part of the config.
|
||||||
var suffixFieldSpecsToSkip = types.FsSlice{
|
var suffixFieldSpecsToSkip = types.FsSlice{
|
||||||
{Gvk: resid.Gvk{Kind: "CustomResourceDefinition"}},
|
{Gvk: resid.Gvk{Kind: "CustomResourceDefinition"}},
|
||||||
{Gvk: resid.Gvk{Group: "apiregistration.k8s.io", Kind: "APIService"}},
|
{Gvk: resid.Gvk{Group: "apiregistration.k8s.io", Kind: "APIService"}},
|
||||||
|
|||||||
62
api/krusty/legacy_order_test.go
Normal file
62
api/krusty/legacy_order_test.go
Normal file
@@ -0,0 +1,62 @@
|
|||||||
|
package krusty_test
|
||||||
|
|
||||||
|
import (
|
||||||
|
"testing"
|
||||||
|
|
||||||
|
kusttest_test "sigs.k8s.io/kustomize/api/testutils/kusttest"
|
||||||
|
)
|
||||||
|
|
||||||
|
func TestIssue4388(t *testing.T) {
|
||||||
|
th := kusttest_test.MakeHarness(t)
|
||||||
|
th.WriteK(".", `
|
||||||
|
resources:
|
||||||
|
- resources.yaml
|
||||||
|
`)
|
||||||
|
th.WriteF("resources.yaml", `
|
||||||
|
apiVersion: v1
|
||||||
|
kind: ConfigMap
|
||||||
|
metadata:
|
||||||
|
name: testing
|
||||||
|
data:
|
||||||
|
key: value
|
||||||
|
---
|
||||||
|
apiVersion: v1
|
||||||
|
kind: ConfigMap
|
||||||
|
metadata:
|
||||||
|
name: testing-one
|
||||||
|
data:
|
||||||
|
key: value
|
||||||
|
---
|
||||||
|
apiVersion: v1
|
||||||
|
kind: ConfigMap
|
||||||
|
metadata:
|
||||||
|
name: testing-two
|
||||||
|
data:
|
||||||
|
key: value
|
||||||
|
`)
|
||||||
|
opts := th.MakeDefaultOptions()
|
||||||
|
opts.DoLegacyResourceSort = true
|
||||||
|
m := th.Run(".", opts)
|
||||||
|
th.AssertActualEqualsExpected(m, `
|
||||||
|
apiVersion: v1
|
||||||
|
data:
|
||||||
|
key: value
|
||||||
|
kind: ConfigMap
|
||||||
|
metadata:
|
||||||
|
name: testing
|
||||||
|
---
|
||||||
|
apiVersion: v1
|
||||||
|
data:
|
||||||
|
key: value
|
||||||
|
kind: ConfigMap
|
||||||
|
metadata:
|
||||||
|
name: testing-one
|
||||||
|
---
|
||||||
|
apiVersion: v1
|
||||||
|
data:
|
||||||
|
key: value
|
||||||
|
kind: ConfigMap
|
||||||
|
metadata:
|
||||||
|
name: testing-two
|
||||||
|
`)
|
||||||
|
}
|
||||||
@@ -33,5 +33,5 @@ func (a IdSlice) Less(i, j int) bool {
|
|||||||
if !a[i].Gvk.Equals(a[j].Gvk) {
|
if !a[i].Gvk.Equals(a[j].Gvk) {
|
||||||
return a[i].Gvk.IsLessThan(a[j].Gvk)
|
return a[i].Gvk.IsLessThan(a[j].Gvk)
|
||||||
}
|
}
|
||||||
return a[i].String() < a[j].String()
|
return a[i].LegacySortString() < a[j].LegacySortString()
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -12,5 +12,5 @@ require (
|
|||||||
gopkg.in/check.v1 v1.0.0-20200227125254-8fa46927fb4f // indirect
|
gopkg.in/check.v1 v1.0.0-20200227125254-8fa46927fb4f // indirect
|
||||||
gopkg.in/inf.v0 v0.9.1
|
gopkg.in/inf.v0 v0.9.1
|
||||||
k8s.io/kube-openapi v0.0.0-20210421082810-95288971da7e
|
k8s.io/kube-openapi v0.0.0-20210421082810-95288971da7e
|
||||||
sigs.k8s.io/kustomize/kyaml v0.13.2
|
sigs.k8s.io/kustomize/kyaml v0.13.3
|
||||||
)
|
)
|
||||||
|
|||||||
@@ -644,8 +644,8 @@ k8s.io/kube-openapi v0.0.0-20210421082810-95288971da7e/go.mod h1:vHXdDvt9+2spS2R
|
|||||||
rsc.io/binaryregexp v0.2.0/go.mod h1:qTv7/COck+e2FymRvadv62gMdZztPaShugOCi3I+8D8=
|
rsc.io/binaryregexp v0.2.0/go.mod h1:qTv7/COck+e2FymRvadv62gMdZztPaShugOCi3I+8D8=
|
||||||
rsc.io/quote/v3 v3.1.0/go.mod h1:yEA65RcK8LyAZtP9Kv3t0HmxON59tX3rD+tICJqUlj0=
|
rsc.io/quote/v3 v3.1.0/go.mod h1:yEA65RcK8LyAZtP9Kv3t0HmxON59tX3rD+tICJqUlj0=
|
||||||
rsc.io/sampler v1.3.0/go.mod h1:T1hPZKmBbMNahiBKFy5HrXp6adAjACjK9JXDnKaTXpA=
|
rsc.io/sampler v1.3.0/go.mod h1:T1hPZKmBbMNahiBKFy5HrXp6adAjACjK9JXDnKaTXpA=
|
||||||
sigs.k8s.io/kustomize/kyaml v0.13.2 h1:R3uST+eWe4sSj6STEAJWRJPM6BJc3vdFPl7rKtHacps=
|
sigs.k8s.io/kustomize/kyaml v0.13.3 h1:tNNQIC+8cc+aXFTVg+RtQAOsjwUdYBZRAgYOVI3RBc4=
|
||||||
sigs.k8s.io/kustomize/kyaml v0.13.2/go.mod h1:/ya3Gk4diiQzlE4mBh7wykyLRFZNvqlbh+JnwQ9Vhrc=
|
sigs.k8s.io/kustomize/kyaml v0.13.3/go.mod h1:/ya3Gk4diiQzlE4mBh7wykyLRFZNvqlbh+JnwQ9Vhrc=
|
||||||
sigs.k8s.io/structured-merge-diff/v4 v4.0.2/go.mod h1:bJZC9H9iH24zzfZ/41RGcq60oK1F7G282QMXDPYydCw=
|
sigs.k8s.io/structured-merge-diff/v4 v4.0.2/go.mod h1:bJZC9H9iH24zzfZ/41RGcq60oK1F7G282QMXDPYydCw=
|
||||||
sigs.k8s.io/yaml v1.2.0 h1:kr/MCeFWJWTwyaHoR9c8EjH9OumOmoF9YGiZd7lFm/Q=
|
sigs.k8s.io/yaml v1.2.0 h1:kr/MCeFWJWTwyaHoR9c8EjH9OumOmoF9YGiZd7lFm/Q=
|
||||||
sigs.k8s.io/yaml v1.2.0/go.mod h1:yfXDCHCao9+ENCvLSE62v9VSji2MKu5jeNfTrofGhJc=
|
sigs.k8s.io/yaml v1.2.0/go.mod h1:yfXDCHCao9+ENCvLSE62v9VSji2MKu5jeNfTrofGhJc=
|
||||||
|
|||||||
@@ -6,8 +6,8 @@ require (
|
|||||||
github.com/rakyll/statik v0.1.7
|
github.com/rakyll/statik v0.1.7
|
||||||
github.com/spf13/cobra v1.2.1
|
github.com/spf13/cobra v1.2.1
|
||||||
github.com/stretchr/testify v1.7.0
|
github.com/stretchr/testify v1.7.0
|
||||||
sigs.k8s.io/kustomize/api v0.10.1
|
sigs.k8s.io/kustomize/api v0.11.0
|
||||||
sigs.k8s.io/kustomize/kyaml v0.13.2
|
sigs.k8s.io/kustomize/kyaml v0.13.3
|
||||||
)
|
)
|
||||||
|
|
||||||
replace sigs.k8s.io/kustomize/api => ../../api
|
replace sigs.k8s.io/kustomize/api => ../../api
|
||||||
|
|||||||
@@ -639,8 +639,8 @@ k8s.io/kube-openapi v0.0.0-20210421082810-95288971da7e/go.mod h1:vHXdDvt9+2spS2R
|
|||||||
rsc.io/binaryregexp v0.2.0/go.mod h1:qTv7/COck+e2FymRvadv62gMdZztPaShugOCi3I+8D8=
|
rsc.io/binaryregexp v0.2.0/go.mod h1:qTv7/COck+e2FymRvadv62gMdZztPaShugOCi3I+8D8=
|
||||||
rsc.io/quote/v3 v3.1.0/go.mod h1:yEA65RcK8LyAZtP9Kv3t0HmxON59tX3rD+tICJqUlj0=
|
rsc.io/quote/v3 v3.1.0/go.mod h1:yEA65RcK8LyAZtP9Kv3t0HmxON59tX3rD+tICJqUlj0=
|
||||||
rsc.io/sampler v1.3.0/go.mod h1:T1hPZKmBbMNahiBKFy5HrXp6adAjACjK9JXDnKaTXpA=
|
rsc.io/sampler v1.3.0/go.mod h1:T1hPZKmBbMNahiBKFy5HrXp6adAjACjK9JXDnKaTXpA=
|
||||||
sigs.k8s.io/kustomize/kyaml v0.13.2 h1:R3uST+eWe4sSj6STEAJWRJPM6BJc3vdFPl7rKtHacps=
|
sigs.k8s.io/kustomize/kyaml v0.13.3 h1:tNNQIC+8cc+aXFTVg+RtQAOsjwUdYBZRAgYOVI3RBc4=
|
||||||
sigs.k8s.io/kustomize/kyaml v0.13.2/go.mod h1:/ya3Gk4diiQzlE4mBh7wykyLRFZNvqlbh+JnwQ9Vhrc=
|
sigs.k8s.io/kustomize/kyaml v0.13.3/go.mod h1:/ya3Gk4diiQzlE4mBh7wykyLRFZNvqlbh+JnwQ9Vhrc=
|
||||||
sigs.k8s.io/structured-merge-diff/v4 v4.0.2/go.mod h1:bJZC9H9iH24zzfZ/41RGcq60oK1F7G282QMXDPYydCw=
|
sigs.k8s.io/structured-merge-diff/v4 v4.0.2/go.mod h1:bJZC9H9iH24zzfZ/41RGcq60oK1F7G282QMXDPYydCw=
|
||||||
sigs.k8s.io/yaml v1.2.0 h1:kr/MCeFWJWTwyaHoR9c8EjH9OumOmoF9YGiZd7lFm/Q=
|
sigs.k8s.io/yaml v1.2.0 h1:kr/MCeFWJWTwyaHoR9c8EjH9OumOmoF9YGiZd7lFm/Q=
|
||||||
sigs.k8s.io/yaml v1.2.0/go.mod h1:yfXDCHCao9+ENCvLSE62v9VSji2MKu5jeNfTrofGhJc=
|
sigs.k8s.io/yaml v1.2.0/go.mod h1:yfXDCHCao9+ENCvLSE62v9VSji2MKu5jeNfTrofGhJc=
|
||||||
|
|||||||
@@ -8,9 +8,9 @@ require (
|
|||||||
github.com/spf13/cobra v1.2.1
|
github.com/spf13/cobra v1.2.1
|
||||||
github.com/spf13/pflag v1.0.5
|
github.com/spf13/pflag v1.0.5
|
||||||
github.com/stretchr/testify v1.7.0
|
github.com/stretchr/testify v1.7.0
|
||||||
sigs.k8s.io/kustomize/api v0.10.1
|
sigs.k8s.io/kustomize/api v0.11.0
|
||||||
sigs.k8s.io/kustomize/cmd/config v0.10.3
|
sigs.k8s.io/kustomize/cmd/config v0.10.4
|
||||||
sigs.k8s.io/kustomize/kyaml v0.13.2
|
sigs.k8s.io/kustomize/kyaml v0.13.3
|
||||||
sigs.k8s.io/yaml v1.2.0
|
sigs.k8s.io/yaml v1.2.0
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|||||||
@@ -651,10 +651,10 @@ k8s.io/kube-openapi v0.0.0-20210421082810-95288971da7e/go.mod h1:vHXdDvt9+2spS2R
|
|||||||
rsc.io/binaryregexp v0.2.0/go.mod h1:qTv7/COck+e2FymRvadv62gMdZztPaShugOCi3I+8D8=
|
rsc.io/binaryregexp v0.2.0/go.mod h1:qTv7/COck+e2FymRvadv62gMdZztPaShugOCi3I+8D8=
|
||||||
rsc.io/quote/v3 v3.1.0/go.mod h1:yEA65RcK8LyAZtP9Kv3t0HmxON59tX3rD+tICJqUlj0=
|
rsc.io/quote/v3 v3.1.0/go.mod h1:yEA65RcK8LyAZtP9Kv3t0HmxON59tX3rD+tICJqUlj0=
|
||||||
rsc.io/sampler v1.3.0/go.mod h1:T1hPZKmBbMNahiBKFy5HrXp6adAjACjK9JXDnKaTXpA=
|
rsc.io/sampler v1.3.0/go.mod h1:T1hPZKmBbMNahiBKFy5HrXp6adAjACjK9JXDnKaTXpA=
|
||||||
sigs.k8s.io/kustomize/cmd/config v0.10.3 h1:vLGN3W3Tz5q6Uy7eb52wSsatNdglY7Gb6w5ABeBMSqo=
|
sigs.k8s.io/kustomize/cmd/config v0.10.4 h1:gv8Jj8Yi82aeuCbg2GsbBxIJKxGmPf0YXaSN/gO+7go=
|
||||||
sigs.k8s.io/kustomize/cmd/config v0.10.3/go.mod h1:CeucGM+6RnCVSGyk71bp3XdweetyxhSLfJHPcjsWjeQ=
|
sigs.k8s.io/kustomize/cmd/config v0.10.4/go.mod h1:2woQTJo0oA4wr8G3F8ZFdH2YoaOoG27IGU4aPA9GPTo=
|
||||||
sigs.k8s.io/kustomize/kyaml v0.13.2 h1:R3uST+eWe4sSj6STEAJWRJPM6BJc3vdFPl7rKtHacps=
|
sigs.k8s.io/kustomize/kyaml v0.13.3 h1:tNNQIC+8cc+aXFTVg+RtQAOsjwUdYBZRAgYOVI3RBc4=
|
||||||
sigs.k8s.io/kustomize/kyaml v0.13.2/go.mod h1:/ya3Gk4diiQzlE4mBh7wykyLRFZNvqlbh+JnwQ9Vhrc=
|
sigs.k8s.io/kustomize/kyaml v0.13.3/go.mod h1:/ya3Gk4diiQzlE4mBh7wykyLRFZNvqlbh+JnwQ9Vhrc=
|
||||||
sigs.k8s.io/structured-merge-diff/v4 v4.0.2/go.mod h1:bJZC9H9iH24zzfZ/41RGcq60oK1F7G282QMXDPYydCw=
|
sigs.k8s.io/structured-merge-diff/v4 v4.0.2/go.mod h1:bJZC9H9iH24zzfZ/41RGcq60oK1F7G282QMXDPYydCw=
|
||||||
sigs.k8s.io/yaml v1.2.0 h1:kr/MCeFWJWTwyaHoR9c8EjH9OumOmoF9YGiZd7lFm/Q=
|
sigs.k8s.io/yaml v1.2.0 h1:kr/MCeFWJWTwyaHoR9c8EjH9OumOmoF9YGiZd7lFm/Q=
|
||||||
sigs.k8s.io/yaml v1.2.0/go.mod h1:yfXDCHCao9+ENCvLSE62v9VSji2MKu5jeNfTrofGhJc=
|
sigs.k8s.io/yaml v1.2.0/go.mod h1:yfXDCHCao9+ENCvLSE62v9VSji2MKu5jeNfTrofGhJc=
|
||||||
|
|||||||
@@ -97,6 +97,29 @@ func (x Gvk) String() string {
|
|||||||
return strings.Join([]string{k, v, g}, fieldSep)
|
return strings.Join([]string{k, v, g}, fieldSep)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// legacySortString returns an older version of String() that LegacyOrderTransformer depends on
|
||||||
|
// to keep its ordering stable across Kustomize versions
|
||||||
|
func (x Gvk) legacySortString() string {
|
||||||
|
legacyNoGroup := "~G"
|
||||||
|
legacyNoVersion := "~V"
|
||||||
|
legacyNoKind := "~K"
|
||||||
|
legacyFieldSeparator := "_"
|
||||||
|
|
||||||
|
g := x.Group
|
||||||
|
if g == "" {
|
||||||
|
g = legacyNoGroup
|
||||||
|
}
|
||||||
|
v := x.Version
|
||||||
|
if v == "" {
|
||||||
|
v = legacyNoVersion
|
||||||
|
}
|
||||||
|
k := x.Kind
|
||||||
|
if k == "" {
|
||||||
|
k = legacyNoKind
|
||||||
|
}
|
||||||
|
return strings.Join([]string{g, v, k}, legacyFieldSeparator)
|
||||||
|
}
|
||||||
|
|
||||||
// ApiVersion returns the combination of Group and Version
|
// ApiVersion returns the combination of Group and Version
|
||||||
func (x Gvk) ApiVersion() string {
|
func (x Gvk) ApiVersion() string {
|
||||||
var sb strings.Builder
|
var sb strings.Builder
|
||||||
@@ -180,7 +203,7 @@ func (x Gvk) IsLessThan(o Gvk) bool {
|
|||||||
if indexI != indexJ {
|
if indexI != indexJ {
|
||||||
return indexI < indexJ
|
return indexI < indexJ
|
||||||
}
|
}
|
||||||
return x.String() < o.String()
|
return x.legacySortString() < o.legacySortString()
|
||||||
}
|
}
|
||||||
|
|
||||||
// IsSelected returns true if `selector` selects `x`; otherwise, false.
|
// IsSelected returns true if `selector` selects `x`; otherwise, false.
|
||||||
|
|||||||
@@ -47,8 +47,8 @@ var lessThanTests = []struct {
|
|||||||
Gvk{Group: "a", Version: "c", Kind: "ClusterRole"}},
|
Gvk{Group: "a", Version: "c", Kind: "ClusterRole"}},
|
||||||
{Gvk{Group: "a", Version: "c", Kind: "Namespace"},
|
{Gvk{Group: "a", Version: "c", Kind: "Namespace"},
|
||||||
Gvk{Group: "a", Version: "b", Kind: "ClusterRole"}},
|
Gvk{Group: "a", Version: "b", Kind: "ClusterRole"}},
|
||||||
{Gvk{Group: "b", Version: "c", Kind: "Namespace"},
|
{Gvk{Group: "a", Version: "d", Kind: "Namespace"},
|
||||||
Gvk{Group: "a", Version: "d", 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: orderFirst[len(orderFirst)-1]},
|
||||||
Gvk{Group: "a", Version: "b", Kind: orderLast[0]}},
|
Gvk{Group: "a", Version: "b", Kind: orderLast[0]}},
|
||||||
{Gvk{Group: "a", Version: "b", Kind: orderFirst[len(orderFirst)-1]},
|
{Gvk{Group: "a", Version: "b", Kind: orderFirst[len(orderFirst)-1]},
|
||||||
|
|||||||
@@ -60,6 +60,25 @@ func (id ResId) String() string {
|
|||||||
[]string{id.Gvk.String(), strings.Join([]string{nm, ns}, fieldSep)}, separator)
|
[]string{id.Gvk.String(), strings.Join([]string{nm, ns}, fieldSep)}, separator)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// LegacySortString returns an older version of String() that LegacyOrderTransformer depends on
|
||||||
|
// to keep its ordering stable across Kustomize versions
|
||||||
|
func (id ResId) LegacySortString() string {
|
||||||
|
legacyNoNamespace := "~X"
|
||||||
|
legacyNoName := "~N"
|
||||||
|
legacySeparator := "|"
|
||||||
|
|
||||||
|
ns := id.Namespace
|
||||||
|
if ns == "" {
|
||||||
|
ns = legacyNoNamespace
|
||||||
|
}
|
||||||
|
nm := id.Name
|
||||||
|
if nm == "" {
|
||||||
|
nm = legacyNoName
|
||||||
|
}
|
||||||
|
return strings.Join(
|
||||||
|
[]string{id.Gvk.String(), ns, nm}, legacySeparator)
|
||||||
|
}
|
||||||
|
|
||||||
func FromString(s string) ResId {
|
func FromString(s string) ResId {
|
||||||
values := strings.Split(s, separator)
|
values := strings.Split(s, separator)
|
||||||
gvk := GvkFromString(values[0])
|
gvk := GvkFromString(values[0])
|
||||||
|
|||||||
@@ -6,7 +6,7 @@ require (
|
|||||||
github.com/evanphx/json-patch v4.11.0+incompatible
|
github.com/evanphx/json-patch v4.11.0+incompatible
|
||||||
github.com/pkg/errors v0.9.1
|
github.com/pkg/errors v0.9.1
|
||||||
sigs.k8s.io/kustomize/api v0.8.9
|
sigs.k8s.io/kustomize/api v0.8.9
|
||||||
sigs.k8s.io/kustomize/kyaml v0.13.2
|
sigs.k8s.io/kustomize/kyaml v0.13.3
|
||||||
sigs.k8s.io/yaml v1.2.0
|
sigs.k8s.io/yaml v1.2.0
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|||||||
@@ -5,7 +5,7 @@ go 1.16
|
|||||||
require (
|
require (
|
||||||
github.com/evanphx/json-patch v4.11.0+incompatible
|
github.com/evanphx/json-patch v4.11.0+incompatible
|
||||||
sigs.k8s.io/kustomize/api v0.8.9
|
sigs.k8s.io/kustomize/api v0.8.9
|
||||||
sigs.k8s.io/kustomize/kyaml v0.13.2
|
sigs.k8s.io/kustomize/kyaml v0.13.3
|
||||||
sigs.k8s.io/yaml v1.2.0
|
sigs.k8s.io/yaml v1.2.0
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|||||||
@@ -4,7 +4,7 @@ go 1.16
|
|||||||
|
|
||||||
require (
|
require (
|
||||||
sigs.k8s.io/kustomize/api v0.8.9
|
sigs.k8s.io/kustomize/api v0.8.9
|
||||||
sigs.k8s.io/kustomize/kyaml v0.13.2
|
sigs.k8s.io/kustomize/kyaml v0.13.3
|
||||||
)
|
)
|
||||||
|
|
||||||
replace sigs.k8s.io/kustomize/kyaml => ../../../kyaml
|
replace sigs.k8s.io/kustomize/kyaml => ../../../kyaml
|
||||||
|
|||||||
@@ -4,7 +4,7 @@ go 1.16
|
|||||||
|
|
||||||
require (
|
require (
|
||||||
sigs.k8s.io/kustomize/api v0.8.9
|
sigs.k8s.io/kustomize/api v0.8.9
|
||||||
sigs.k8s.io/kustomize/kyaml v0.13.2
|
sigs.k8s.io/kustomize/kyaml v0.13.3
|
||||||
sigs.k8s.io/yaml v1.2.0
|
sigs.k8s.io/yaml v1.2.0
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|||||||
@@ -4,7 +4,7 @@ go 1.16
|
|||||||
|
|
||||||
require (
|
require (
|
||||||
sigs.k8s.io/kustomize/api v0.8.9
|
sigs.k8s.io/kustomize/api v0.8.9
|
||||||
sigs.k8s.io/kustomize/kyaml v0.13.2
|
sigs.k8s.io/kustomize/kyaml v0.13.3
|
||||||
)
|
)
|
||||||
|
|
||||||
replace sigs.k8s.io/kustomize/kyaml => ../../../kyaml
|
replace sigs.k8s.io/kustomize/kyaml => ../../../kyaml
|
||||||
|
|||||||
Reference in New Issue
Block a user