mirror of
https://github.com/kubernetes-sigs/kustomize.git
synced 2026-06-13 10:00:56 +00:00
Refactor config annotate
This commit is contained in:
@@ -63,7 +63,8 @@ func (r *AnnotateRunner) runE(c *cobra.Command, args []string) error {
|
|||||||
return handleError(c, kio.Pipeline{
|
return handleError(c, kio.Pipeline{
|
||||||
Inputs: input,
|
Inputs: input,
|
||||||
Filters: []kio.Filter{r},
|
Filters: []kio.Filter{r},
|
||||||
Outputs: output}.Execute())
|
Outputs: output,
|
||||||
|
}.Execute())
|
||||||
}
|
}
|
||||||
|
|
||||||
func (r *AnnotateRunner) Filter(nodes []*yaml.RNode) ([]*yaml.RNode, error) {
|
func (r *AnnotateRunner) Filter(nodes []*yaml.RNode) ([]*yaml.RNode, error) {
|
||||||
|
|||||||
@@ -22,362 +22,40 @@ func TestAnnotateCommand(t *testing.T) {
|
|||||||
expected string
|
expected string
|
||||||
}{
|
}{
|
||||||
{
|
{
|
||||||
name: "single value",
|
name: "single value",
|
||||||
args: []string{"--kv", "a=b"},
|
args: []string{"--kv", "a=b"},
|
||||||
expected: `kind: Deployment
|
expected: expectedSingleValue,
|
||||||
metadata:
|
|
||||||
labels:
|
|
||||||
app: nginx2
|
|
||||||
name: foo
|
|
||||||
annotations:
|
|
||||||
app: nginx2
|
|
||||||
a: 'b'
|
|
||||||
config.kubernetes.io/index: '0'
|
|
||||||
config.kubernetes.io/path: 'f1.yaml'
|
|
||||||
spec:
|
|
||||||
replicas: 1
|
|
||||||
---
|
|
||||||
kind: Service
|
|
||||||
metadata:
|
|
||||||
name: foo
|
|
||||||
annotations:
|
|
||||||
app: nginx
|
|
||||||
a: 'b'
|
|
||||||
config.kubernetes.io/index: '1'
|
|
||||||
config.kubernetes.io/path: 'f1.yaml'
|
|
||||||
spec:
|
|
||||||
selector:
|
|
||||||
app: nginx
|
|
||||||
---
|
|
||||||
apiVersion: v1
|
|
||||||
kind: Abstraction
|
|
||||||
metadata:
|
|
||||||
name: foo
|
|
||||||
configFn:
|
|
||||||
container:
|
|
||||||
image: gcr.io/example/reconciler:v1
|
|
||||||
annotations:
|
|
||||||
config.kubernetes.io/local-config: "true"
|
|
||||||
a: 'b'
|
|
||||||
config.kubernetes.io/index: '0'
|
|
||||||
config.kubernetes.io/path: 'f2.yaml'
|
|
||||||
namespace: bar
|
|
||||||
spec:
|
|
||||||
replicas: 3
|
|
||||||
---
|
|
||||||
apiVersion: apps/v1
|
|
||||||
kind: Deployment
|
|
||||||
metadata:
|
|
||||||
labels:
|
|
||||||
app: nginx
|
|
||||||
name: bar
|
|
||||||
annotations:
|
|
||||||
app: nginx
|
|
||||||
a: 'b'
|
|
||||||
config.kubernetes.io/index: '1'
|
|
||||||
config.kubernetes.io/path: 'f2.yaml'
|
|
||||||
namespace: foo
|
|
||||||
spec:
|
|
||||||
replicas: 3
|
|
||||||
`,
|
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name: "multi value",
|
name: "multi value",
|
||||||
args: []string{"--kv", "a=b", "--kv", "c=d"},
|
args: []string{"--kv", "a=b", "--kv", "c=d"},
|
||||||
expected: `kind: Deployment
|
expected: expectedMultiValue,
|
||||||
metadata:
|
|
||||||
labels:
|
|
||||||
app: nginx2
|
|
||||||
name: foo
|
|
||||||
annotations:
|
|
||||||
app: nginx2
|
|
||||||
a: 'b'
|
|
||||||
c: 'd'
|
|
||||||
config.kubernetes.io/index: '0'
|
|
||||||
config.kubernetes.io/path: 'f1.yaml'
|
|
||||||
spec:
|
|
||||||
replicas: 1
|
|
||||||
---
|
|
||||||
kind: Service
|
|
||||||
metadata:
|
|
||||||
name: foo
|
|
||||||
annotations:
|
|
||||||
app: nginx
|
|
||||||
a: 'b'
|
|
||||||
c: 'd'
|
|
||||||
config.kubernetes.io/index: '1'
|
|
||||||
config.kubernetes.io/path: 'f1.yaml'
|
|
||||||
spec:
|
|
||||||
selector:
|
|
||||||
app: nginx
|
|
||||||
---
|
|
||||||
apiVersion: v1
|
|
||||||
kind: Abstraction
|
|
||||||
metadata:
|
|
||||||
name: foo
|
|
||||||
configFn:
|
|
||||||
container:
|
|
||||||
image: gcr.io/example/reconciler:v1
|
|
||||||
annotations:
|
|
||||||
config.kubernetes.io/local-config: "true"
|
|
||||||
a: 'b'
|
|
||||||
c: 'd'
|
|
||||||
config.kubernetes.io/index: '0'
|
|
||||||
config.kubernetes.io/path: 'f2.yaml'
|
|
||||||
namespace: bar
|
|
||||||
spec:
|
|
||||||
replicas: 3
|
|
||||||
---
|
|
||||||
apiVersion: apps/v1
|
|
||||||
kind: Deployment
|
|
||||||
metadata:
|
|
||||||
labels:
|
|
||||||
app: nginx
|
|
||||||
name: bar
|
|
||||||
annotations:
|
|
||||||
app: nginx
|
|
||||||
a: 'b'
|
|
||||||
c: 'd'
|
|
||||||
config.kubernetes.io/index: '1'
|
|
||||||
config.kubernetes.io/path: 'f2.yaml'
|
|
||||||
namespace: foo
|
|
||||||
spec:
|
|
||||||
replicas: 3
|
|
||||||
`,
|
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name: "filter kind",
|
name: "filter kind",
|
||||||
args: []string{"--kv", "a=b", "--kind", "Service"},
|
args: []string{"--kv", "a=b", "--kind", "Service"},
|
||||||
expected: `kind: Deployment
|
expected: expectedFilterKindService,
|
||||||
metadata:
|
|
||||||
labels:
|
|
||||||
app: nginx2
|
|
||||||
name: foo
|
|
||||||
annotations:
|
|
||||||
app: nginx2
|
|
||||||
config.kubernetes.io/index: '0'
|
|
||||||
config.kubernetes.io/path: 'f1.yaml'
|
|
||||||
spec:
|
|
||||||
replicas: 1
|
|
||||||
---
|
|
||||||
kind: Service
|
|
||||||
metadata:
|
|
||||||
name: foo
|
|
||||||
annotations:
|
|
||||||
app: nginx
|
|
||||||
a: 'b'
|
|
||||||
config.kubernetes.io/index: '1'
|
|
||||||
config.kubernetes.io/path: 'f1.yaml'
|
|
||||||
spec:
|
|
||||||
selector:
|
|
||||||
app: nginx
|
|
||||||
---
|
|
||||||
apiVersion: v1
|
|
||||||
kind: Abstraction
|
|
||||||
metadata:
|
|
||||||
name: foo
|
|
||||||
configFn:
|
|
||||||
container:
|
|
||||||
image: gcr.io/example/reconciler:v1
|
|
||||||
annotations:
|
|
||||||
config.kubernetes.io/local-config: "true"
|
|
||||||
config.kubernetes.io/index: '0'
|
|
||||||
config.kubernetes.io/path: 'f2.yaml'
|
|
||||||
namespace: bar
|
|
||||||
spec:
|
|
||||||
replicas: 3
|
|
||||||
---
|
|
||||||
apiVersion: apps/v1
|
|
||||||
kind: Deployment
|
|
||||||
metadata:
|
|
||||||
labels:
|
|
||||||
app: nginx
|
|
||||||
name: bar
|
|
||||||
annotations:
|
|
||||||
app: nginx
|
|
||||||
config.kubernetes.io/index: '1'
|
|
||||||
config.kubernetes.io/path: 'f2.yaml'
|
|
||||||
namespace: foo
|
|
||||||
spec:
|
|
||||||
replicas: 3
|
|
||||||
`,
|
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name: "filter apiVersion",
|
name: "filter apiVersion",
|
||||||
args: []string{"--kv", "a=b", "--apiVersion", "v1"},
|
args: []string{"--kv", "a=b", "--apiVersion", "v1"},
|
||||||
expected: `kind: Deployment
|
expected: expectedFilterApiVersionV1,
|
||||||
metadata:
|
|
||||||
labels:
|
|
||||||
app: nginx2
|
|
||||||
name: foo
|
|
||||||
annotations:
|
|
||||||
app: nginx2
|
|
||||||
config.kubernetes.io/index: '0'
|
|
||||||
config.kubernetes.io/path: 'f1.yaml'
|
|
||||||
spec:
|
|
||||||
replicas: 1
|
|
||||||
---
|
|
||||||
kind: Service
|
|
||||||
metadata:
|
|
||||||
name: foo
|
|
||||||
annotations:
|
|
||||||
app: nginx
|
|
||||||
config.kubernetes.io/index: '1'
|
|
||||||
config.kubernetes.io/path: 'f1.yaml'
|
|
||||||
spec:
|
|
||||||
selector:
|
|
||||||
app: nginx
|
|
||||||
---
|
|
||||||
apiVersion: v1
|
|
||||||
kind: Abstraction
|
|
||||||
metadata:
|
|
||||||
name: foo
|
|
||||||
configFn:
|
|
||||||
container:
|
|
||||||
image: gcr.io/example/reconciler:v1
|
|
||||||
annotations:
|
|
||||||
config.kubernetes.io/local-config: "true"
|
|
||||||
a: 'b'
|
|
||||||
config.kubernetes.io/index: '0'
|
|
||||||
config.kubernetes.io/path: 'f2.yaml'
|
|
||||||
namespace: bar
|
|
||||||
spec:
|
|
||||||
replicas: 3
|
|
||||||
---
|
|
||||||
apiVersion: apps/v1
|
|
||||||
kind: Deployment
|
|
||||||
metadata:
|
|
||||||
labels:
|
|
||||||
app: nginx
|
|
||||||
name: bar
|
|
||||||
annotations:
|
|
||||||
app: nginx
|
|
||||||
config.kubernetes.io/index: '1'
|
|
||||||
config.kubernetes.io/path: 'f2.yaml'
|
|
||||||
namespace: foo
|
|
||||||
spec:
|
|
||||||
replicas: 3
|
|
||||||
`,
|
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name: "filter name",
|
name: "filter name",
|
||||||
args: []string{"--kv", "a=b", "--name", "bar"},
|
args: []string{"--kv", "a=b", "--name", "bar"},
|
||||||
expected: `kind: Deployment
|
expected: expectedFilterNameBar,
|
||||||
metadata:
|
|
||||||
labels:
|
|
||||||
app: nginx2
|
|
||||||
name: foo
|
|
||||||
annotations:
|
|
||||||
app: nginx2
|
|
||||||
config.kubernetes.io/index: '0'
|
|
||||||
config.kubernetes.io/path: 'f1.yaml'
|
|
||||||
spec:
|
|
||||||
replicas: 1
|
|
||||||
---
|
|
||||||
kind: Service
|
|
||||||
metadata:
|
|
||||||
name: foo
|
|
||||||
annotations:
|
|
||||||
app: nginx
|
|
||||||
config.kubernetes.io/index: '1'
|
|
||||||
config.kubernetes.io/path: 'f1.yaml'
|
|
||||||
spec:
|
|
||||||
selector:
|
|
||||||
app: nginx
|
|
||||||
---
|
|
||||||
apiVersion: v1
|
|
||||||
kind: Abstraction
|
|
||||||
metadata:
|
|
||||||
name: foo
|
|
||||||
configFn:
|
|
||||||
container:
|
|
||||||
image: gcr.io/example/reconciler:v1
|
|
||||||
annotations:
|
|
||||||
config.kubernetes.io/local-config: "true"
|
|
||||||
config.kubernetes.io/index: '0'
|
|
||||||
config.kubernetes.io/path: 'f2.yaml'
|
|
||||||
namespace: bar
|
|
||||||
spec:
|
|
||||||
replicas: 3
|
|
||||||
---
|
|
||||||
apiVersion: apps/v1
|
|
||||||
kind: Deployment
|
|
||||||
metadata:
|
|
||||||
labels:
|
|
||||||
app: nginx
|
|
||||||
name: bar
|
|
||||||
annotations:
|
|
||||||
app: nginx
|
|
||||||
a: 'b'
|
|
||||||
config.kubernetes.io/index: '1'
|
|
||||||
config.kubernetes.io/path: 'f2.yaml'
|
|
||||||
namespace: foo
|
|
||||||
spec:
|
|
||||||
replicas: 3
|
|
||||||
`,
|
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name: "filter namespace",
|
name: "filter namespace",
|
||||||
args: []string{"--kv", "a=b", "--namespace", "bar"},
|
args: []string{"--kv", "a=b", "--namespace", "bar"},
|
||||||
expected: `kind: Deployment
|
expected: expectedFilterNamespaceBar,
|
||||||
metadata:
|
|
||||||
labels:
|
|
||||||
app: nginx2
|
|
||||||
name: foo
|
|
||||||
annotations:
|
|
||||||
app: nginx2
|
|
||||||
config.kubernetes.io/index: '0'
|
|
||||||
config.kubernetes.io/path: 'f1.yaml'
|
|
||||||
spec:
|
|
||||||
replicas: 1
|
|
||||||
---
|
|
||||||
kind: Service
|
|
||||||
metadata:
|
|
||||||
name: foo
|
|
||||||
annotations:
|
|
||||||
app: nginx
|
|
||||||
config.kubernetes.io/index: '1'
|
|
||||||
config.kubernetes.io/path: 'f1.yaml'
|
|
||||||
spec:
|
|
||||||
selector:
|
|
||||||
app: nginx
|
|
||||||
---
|
|
||||||
apiVersion: v1
|
|
||||||
kind: Abstraction
|
|
||||||
metadata:
|
|
||||||
name: foo
|
|
||||||
configFn:
|
|
||||||
container:
|
|
||||||
image: gcr.io/example/reconciler:v1
|
|
||||||
annotations:
|
|
||||||
config.kubernetes.io/local-config: "true"
|
|
||||||
a: 'b'
|
|
||||||
config.kubernetes.io/index: '0'
|
|
||||||
config.kubernetes.io/path: 'f2.yaml'
|
|
||||||
namespace: bar
|
|
||||||
spec:
|
|
||||||
replicas: 3
|
|
||||||
---
|
|
||||||
apiVersion: apps/v1
|
|
||||||
kind: Deployment
|
|
||||||
metadata:
|
|
||||||
labels:
|
|
||||||
app: nginx
|
|
||||||
name: bar
|
|
||||||
annotations:
|
|
||||||
app: nginx
|
|
||||||
config.kubernetes.io/index: '1'
|
|
||||||
config.kubernetes.io/path: 'f2.yaml'
|
|
||||||
namespace: foo
|
|
||||||
spec:
|
|
||||||
replicas: 3
|
|
||||||
`,
|
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
for i := range tests {
|
for i := range tests {
|
||||||
tt := tests[i]
|
tt := tests[i]
|
||||||
t.Run(tt.name, func(t *testing.T) {
|
t.Run(tt.name, func(t *testing.T) {
|
||||||
d := setTestFiles(t)
|
d := initTestDir(t)
|
||||||
defer os.RemoveAll(d)
|
defer os.RemoveAll(d)
|
||||||
|
|
||||||
a := NewAnnotateRunner("")
|
a := NewAnnotateRunner("")
|
||||||
@@ -398,20 +76,35 @@ spec:
|
|||||||
if !assert.NoError(t, err) {
|
if !assert.NoError(t, err) {
|
||||||
t.FailNow()
|
t.FailNow()
|
||||||
}
|
}
|
||||||
|
if !assert.Equal(t,
|
||||||
if !assert.Equal(t, strings.TrimSpace(tt.expected), strings.TrimSpace(actual.String())) {
|
strings.TrimSpace(tt.expected),
|
||||||
|
strings.TrimSpace(actual.String())) {
|
||||||
t.FailNow()
|
t.FailNow()
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
func setTestFiles(t *testing.T) string {
|
func initTestDir(t *testing.T) string {
|
||||||
d, err := ioutil.TempDir("", "kustomize-cat-test")
|
d, err := ioutil.TempDir("", "kustomize-annotate-test")
|
||||||
if !assert.NoError(t, err) {
|
if !assert.NoError(t, err) {
|
||||||
t.FailNow()
|
t.FailNow()
|
||||||
}
|
}
|
||||||
err = ioutil.WriteFile(filepath.Join(d, "f1.yaml"), []byte(`
|
err = ioutil.WriteFile(filepath.Join(d, "f1.yaml"), []byte(f1Input), 0600)
|
||||||
|
if !assert.NoError(t, err) {
|
||||||
|
defer os.RemoveAll(d)
|
||||||
|
t.FailNow()
|
||||||
|
}
|
||||||
|
err = ioutil.WriteFile(filepath.Join(d, "f2.yaml"), []byte(f2Input), 0600)
|
||||||
|
if !assert.NoError(t, err) {
|
||||||
|
defer os.RemoveAll(d)
|
||||||
|
t.FailNow()
|
||||||
|
}
|
||||||
|
return d
|
||||||
|
}
|
||||||
|
|
||||||
|
var (
|
||||||
|
f1Input = `
|
||||||
kind: Deployment
|
kind: Deployment
|
||||||
metadata:
|
metadata:
|
||||||
labels:
|
labels:
|
||||||
@@ -430,12 +123,9 @@ metadata:
|
|||||||
spec:
|
spec:
|
||||||
selector:
|
selector:
|
||||||
app: nginx
|
app: nginx
|
||||||
`), 0600)
|
`
|
||||||
if !assert.NoError(t, err) {
|
|
||||||
defer os.RemoveAll(d)
|
f2Input = `
|
||||||
t.FailNow()
|
|
||||||
}
|
|
||||||
err = ioutil.WriteFile(filepath.Join(d, "f2.yaml"), []byte(`
|
|
||||||
apiVersion: v1
|
apiVersion: v1
|
||||||
kind: Abstraction
|
kind: Abstraction
|
||||||
metadata:
|
metadata:
|
||||||
@@ -460,10 +150,339 @@ metadata:
|
|||||||
namespace: foo
|
namespace: foo
|
||||||
spec:
|
spec:
|
||||||
replicas: 3
|
replicas: 3
|
||||||
`), 0600)
|
`
|
||||||
if !assert.NoError(t, err) {
|
|
||||||
defer os.RemoveAll(d)
|
expectedSingleValue = `kind: Deployment
|
||||||
t.FailNow()
|
metadata:
|
||||||
}
|
labels:
|
||||||
return d
|
app: nginx2
|
||||||
}
|
name: foo
|
||||||
|
annotations:
|
||||||
|
app: nginx2
|
||||||
|
a: 'b'
|
||||||
|
config.kubernetes.io/index: '0'
|
||||||
|
config.kubernetes.io/path: 'f1.yaml'
|
||||||
|
spec:
|
||||||
|
replicas: 1
|
||||||
|
---
|
||||||
|
kind: Service
|
||||||
|
metadata:
|
||||||
|
name: foo
|
||||||
|
annotations:
|
||||||
|
app: nginx
|
||||||
|
a: 'b'
|
||||||
|
config.kubernetes.io/index: '1'
|
||||||
|
config.kubernetes.io/path: 'f1.yaml'
|
||||||
|
spec:
|
||||||
|
selector:
|
||||||
|
app: nginx
|
||||||
|
---
|
||||||
|
apiVersion: v1
|
||||||
|
kind: Abstraction
|
||||||
|
metadata:
|
||||||
|
name: foo
|
||||||
|
configFn:
|
||||||
|
container:
|
||||||
|
image: gcr.io/example/reconciler:v1
|
||||||
|
annotations:
|
||||||
|
config.kubernetes.io/local-config: "true"
|
||||||
|
a: 'b'
|
||||||
|
config.kubernetes.io/index: '0'
|
||||||
|
config.kubernetes.io/path: 'f2.yaml'
|
||||||
|
namespace: bar
|
||||||
|
spec:
|
||||||
|
replicas: 3
|
||||||
|
---
|
||||||
|
apiVersion: apps/v1
|
||||||
|
kind: Deployment
|
||||||
|
metadata:
|
||||||
|
labels:
|
||||||
|
app: nginx
|
||||||
|
name: bar
|
||||||
|
annotations:
|
||||||
|
app: nginx
|
||||||
|
a: 'b'
|
||||||
|
config.kubernetes.io/index: '1'
|
||||||
|
config.kubernetes.io/path: 'f2.yaml'
|
||||||
|
namespace: foo
|
||||||
|
spec:
|
||||||
|
replicas: 3
|
||||||
|
`
|
||||||
|
|
||||||
|
expectedMultiValue = `kind: Deployment
|
||||||
|
metadata:
|
||||||
|
labels:
|
||||||
|
app: nginx2
|
||||||
|
name: foo
|
||||||
|
annotations:
|
||||||
|
app: nginx2
|
||||||
|
a: 'b'
|
||||||
|
c: 'd'
|
||||||
|
config.kubernetes.io/index: '0'
|
||||||
|
config.kubernetes.io/path: 'f1.yaml'
|
||||||
|
spec:
|
||||||
|
replicas: 1
|
||||||
|
---
|
||||||
|
kind: Service
|
||||||
|
metadata:
|
||||||
|
name: foo
|
||||||
|
annotations:
|
||||||
|
app: nginx
|
||||||
|
a: 'b'
|
||||||
|
c: 'd'
|
||||||
|
config.kubernetes.io/index: '1'
|
||||||
|
config.kubernetes.io/path: 'f1.yaml'
|
||||||
|
spec:
|
||||||
|
selector:
|
||||||
|
app: nginx
|
||||||
|
---
|
||||||
|
apiVersion: v1
|
||||||
|
kind: Abstraction
|
||||||
|
metadata:
|
||||||
|
name: foo
|
||||||
|
configFn:
|
||||||
|
container:
|
||||||
|
image: gcr.io/example/reconciler:v1
|
||||||
|
annotations:
|
||||||
|
config.kubernetes.io/local-config: "true"
|
||||||
|
a: 'b'
|
||||||
|
c: 'd'
|
||||||
|
config.kubernetes.io/index: '0'
|
||||||
|
config.kubernetes.io/path: 'f2.yaml'
|
||||||
|
namespace: bar
|
||||||
|
spec:
|
||||||
|
replicas: 3
|
||||||
|
---
|
||||||
|
apiVersion: apps/v1
|
||||||
|
kind: Deployment
|
||||||
|
metadata:
|
||||||
|
labels:
|
||||||
|
app: nginx
|
||||||
|
name: bar
|
||||||
|
annotations:
|
||||||
|
app: nginx
|
||||||
|
a: 'b'
|
||||||
|
c: 'd'
|
||||||
|
config.kubernetes.io/index: '1'
|
||||||
|
config.kubernetes.io/path: 'f2.yaml'
|
||||||
|
namespace: foo
|
||||||
|
spec:
|
||||||
|
replicas: 3
|
||||||
|
`
|
||||||
|
|
||||||
|
expectedFilterKindService = `kind: Deployment
|
||||||
|
metadata:
|
||||||
|
labels:
|
||||||
|
app: nginx2
|
||||||
|
name: foo
|
||||||
|
annotations:
|
||||||
|
app: nginx2
|
||||||
|
config.kubernetes.io/index: '0'
|
||||||
|
config.kubernetes.io/path: 'f1.yaml'
|
||||||
|
spec:
|
||||||
|
replicas: 1
|
||||||
|
---
|
||||||
|
kind: Service
|
||||||
|
metadata:
|
||||||
|
name: foo
|
||||||
|
annotations:
|
||||||
|
app: nginx
|
||||||
|
a: 'b'
|
||||||
|
config.kubernetes.io/index: '1'
|
||||||
|
config.kubernetes.io/path: 'f1.yaml'
|
||||||
|
spec:
|
||||||
|
selector:
|
||||||
|
app: nginx
|
||||||
|
---
|
||||||
|
apiVersion: v1
|
||||||
|
kind: Abstraction
|
||||||
|
metadata:
|
||||||
|
name: foo
|
||||||
|
configFn:
|
||||||
|
container:
|
||||||
|
image: gcr.io/example/reconciler:v1
|
||||||
|
annotations:
|
||||||
|
config.kubernetes.io/local-config: "true"
|
||||||
|
config.kubernetes.io/index: '0'
|
||||||
|
config.kubernetes.io/path: 'f2.yaml'
|
||||||
|
namespace: bar
|
||||||
|
spec:
|
||||||
|
replicas: 3
|
||||||
|
---
|
||||||
|
apiVersion: apps/v1
|
||||||
|
kind: Deployment
|
||||||
|
metadata:
|
||||||
|
labels:
|
||||||
|
app: nginx
|
||||||
|
name: bar
|
||||||
|
annotations:
|
||||||
|
app: nginx
|
||||||
|
config.kubernetes.io/index: '1'
|
||||||
|
config.kubernetes.io/path: 'f2.yaml'
|
||||||
|
namespace: foo
|
||||||
|
spec:
|
||||||
|
replicas: 3
|
||||||
|
`
|
||||||
|
|
||||||
|
expectedFilterApiVersionV1 = `kind: Deployment
|
||||||
|
metadata:
|
||||||
|
labels:
|
||||||
|
app: nginx2
|
||||||
|
name: foo
|
||||||
|
annotations:
|
||||||
|
app: nginx2
|
||||||
|
config.kubernetes.io/index: '0'
|
||||||
|
config.kubernetes.io/path: 'f1.yaml'
|
||||||
|
spec:
|
||||||
|
replicas: 1
|
||||||
|
---
|
||||||
|
kind: Service
|
||||||
|
metadata:
|
||||||
|
name: foo
|
||||||
|
annotations:
|
||||||
|
app: nginx
|
||||||
|
config.kubernetes.io/index: '1'
|
||||||
|
config.kubernetes.io/path: 'f1.yaml'
|
||||||
|
spec:
|
||||||
|
selector:
|
||||||
|
app: nginx
|
||||||
|
---
|
||||||
|
apiVersion: v1
|
||||||
|
kind: Abstraction
|
||||||
|
metadata:
|
||||||
|
name: foo
|
||||||
|
configFn:
|
||||||
|
container:
|
||||||
|
image: gcr.io/example/reconciler:v1
|
||||||
|
annotations:
|
||||||
|
config.kubernetes.io/local-config: "true"
|
||||||
|
a: 'b'
|
||||||
|
config.kubernetes.io/index: '0'
|
||||||
|
config.kubernetes.io/path: 'f2.yaml'
|
||||||
|
namespace: bar
|
||||||
|
spec:
|
||||||
|
replicas: 3
|
||||||
|
---
|
||||||
|
apiVersion: apps/v1
|
||||||
|
kind: Deployment
|
||||||
|
metadata:
|
||||||
|
labels:
|
||||||
|
app: nginx
|
||||||
|
name: bar
|
||||||
|
annotations:
|
||||||
|
app: nginx
|
||||||
|
config.kubernetes.io/index: '1'
|
||||||
|
config.kubernetes.io/path: 'f2.yaml'
|
||||||
|
namespace: foo
|
||||||
|
spec:
|
||||||
|
replicas: 3
|
||||||
|
`
|
||||||
|
|
||||||
|
expectedFilterNameBar = `kind: Deployment
|
||||||
|
metadata:
|
||||||
|
labels:
|
||||||
|
app: nginx2
|
||||||
|
name: foo
|
||||||
|
annotations:
|
||||||
|
app: nginx2
|
||||||
|
config.kubernetes.io/index: '0'
|
||||||
|
config.kubernetes.io/path: 'f1.yaml'
|
||||||
|
spec:
|
||||||
|
replicas: 1
|
||||||
|
---
|
||||||
|
kind: Service
|
||||||
|
metadata:
|
||||||
|
name: foo
|
||||||
|
annotations:
|
||||||
|
app: nginx
|
||||||
|
config.kubernetes.io/index: '1'
|
||||||
|
config.kubernetes.io/path: 'f1.yaml'
|
||||||
|
spec:
|
||||||
|
selector:
|
||||||
|
app: nginx
|
||||||
|
---
|
||||||
|
apiVersion: v1
|
||||||
|
kind: Abstraction
|
||||||
|
metadata:
|
||||||
|
name: foo
|
||||||
|
configFn:
|
||||||
|
container:
|
||||||
|
image: gcr.io/example/reconciler:v1
|
||||||
|
annotations:
|
||||||
|
config.kubernetes.io/local-config: "true"
|
||||||
|
config.kubernetes.io/index: '0'
|
||||||
|
config.kubernetes.io/path: 'f2.yaml'
|
||||||
|
namespace: bar
|
||||||
|
spec:
|
||||||
|
replicas: 3
|
||||||
|
---
|
||||||
|
apiVersion: apps/v1
|
||||||
|
kind: Deployment
|
||||||
|
metadata:
|
||||||
|
labels:
|
||||||
|
app: nginx
|
||||||
|
name: bar
|
||||||
|
annotations:
|
||||||
|
app: nginx
|
||||||
|
a: 'b'
|
||||||
|
config.kubernetes.io/index: '1'
|
||||||
|
config.kubernetes.io/path: 'f2.yaml'
|
||||||
|
namespace: foo
|
||||||
|
spec:
|
||||||
|
replicas: 3
|
||||||
|
`
|
||||||
|
|
||||||
|
expectedFilterNamespaceBar = `kind: Deployment
|
||||||
|
metadata:
|
||||||
|
labels:
|
||||||
|
app: nginx2
|
||||||
|
name: foo
|
||||||
|
annotations:
|
||||||
|
app: nginx2
|
||||||
|
config.kubernetes.io/index: '0'
|
||||||
|
config.kubernetes.io/path: 'f1.yaml'
|
||||||
|
spec:
|
||||||
|
replicas: 1
|
||||||
|
---
|
||||||
|
kind: Service
|
||||||
|
metadata:
|
||||||
|
name: foo
|
||||||
|
annotations:
|
||||||
|
app: nginx
|
||||||
|
config.kubernetes.io/index: '1'
|
||||||
|
config.kubernetes.io/path: 'f1.yaml'
|
||||||
|
spec:
|
||||||
|
selector:
|
||||||
|
app: nginx
|
||||||
|
---
|
||||||
|
apiVersion: v1
|
||||||
|
kind: Abstraction
|
||||||
|
metadata:
|
||||||
|
name: foo
|
||||||
|
configFn:
|
||||||
|
container:
|
||||||
|
image: gcr.io/example/reconciler:v1
|
||||||
|
annotations:
|
||||||
|
config.kubernetes.io/local-config: "true"
|
||||||
|
a: 'b'
|
||||||
|
config.kubernetes.io/index: '0'
|
||||||
|
config.kubernetes.io/path: 'f2.yaml'
|
||||||
|
namespace: bar
|
||||||
|
spec:
|
||||||
|
replicas: 3
|
||||||
|
---
|
||||||
|
apiVersion: apps/v1
|
||||||
|
kind: Deployment
|
||||||
|
metadata:
|
||||||
|
labels:
|
||||||
|
app: nginx
|
||||||
|
name: bar
|
||||||
|
annotations:
|
||||||
|
app: nginx
|
||||||
|
config.kubernetes.io/index: '1'
|
||||||
|
config.kubernetes.io/path: 'f2.yaml'
|
||||||
|
namespace: foo
|
||||||
|
spec:
|
||||||
|
replicas: 3
|
||||||
|
`
|
||||||
|
)
|
||||||
|
|||||||
Reference in New Issue
Block a user