Add json6902 patch filter based on kyaml libraries

This commit is contained in:
Morten Torkildsen
2020-04-05 16:24:34 -07:00
parent ea807fcdcc
commit d051588789
11 changed files with 441 additions and 69 deletions

View File

@@ -32,7 +32,7 @@ func TestPatchJson6902TransformerMissingFile(t *testing.T) {
PrepBuiltin("PatchJson6902Transformer")
defer th.Reset()
_, err := th.RunTransformer(`
th.RunTransformerAndCheckError(`
apiVersion: builtin
kind: PatchJson6902Transformer
metadata:
@@ -43,13 +43,14 @@ target:
kind: Deployment
name: myDeploy
path: jsonpatch.json
`, target)
if err == nil {
t.Fatalf("expected error")
}
if !strings.Contains(err.Error(), "'/jsonpatch.json' doesn't exist") {
t.Fatalf("unexpected err: %v", err)
}
`, target, func(t *testing.T, err error) {
if err == nil {
t.Fatalf("expected error")
}
if !strings.Contains(err.Error(), "'/jsonpatch.json' doesn't exist") {
t.Fatalf("unexpected err: %v", err)
}
})
}
func TestBadPatchJson6902Transformer(t *testing.T) {
@@ -57,7 +58,7 @@ func TestBadPatchJson6902Transformer(t *testing.T) {
PrepBuiltin("PatchJson6902Transformer")
defer th.Reset()
_, err := th.RunTransformer(`
th.RunTransformerAndCheckError(`
apiVersion: builtin
kind: PatchJson6902Transformer
metadata:
@@ -68,13 +69,14 @@ target:
kind: Deployment
name: myDeploy
jsonOp: 'thisIsNotAPatch'
`, target)
if err == nil {
t.Fatalf("expected error")
}
if !strings.Contains(err.Error(), "cannot unmarshal string into Go value of type jsonpatch") {
t.Fatalf("unexpected err: %v", err)
}
`, target, func(t *testing.T, err error) {
if err == nil {
t.Fatalf("expected error")
}
if !strings.Contains(err.Error(), "cannot unmarshal string into Go value of type jsonpatch") {
t.Fatalf("unexpected err: %v", err)
}
})
}
func TestBothEmptyJson6902Transformer(t *testing.T) {
@@ -82,7 +84,7 @@ func TestBothEmptyJson6902Transformer(t *testing.T) {
PrepBuiltin("PatchJson6902Transformer")
defer th.Reset()
_, err := th.RunTransformer(`
th.RunTransformerAndCheckError(`
apiVersion: builtin
kind: PatchJson6902Transformer
metadata:
@@ -92,13 +94,14 @@ target:
version: v1
kind: Deployment
name: myDeploy
`, target)
if err == nil {
t.Fatalf("expected error")
}
if !strings.Contains(err.Error(), "empty file path and empty jsonOp") {
t.Fatalf("unexpected err: %v", err)
}
`, target, func(t *testing.T, err error) {
if err == nil {
t.Fatalf("expected error")
}
if !strings.Contains(err.Error(), "empty file path and empty jsonOp") {
t.Fatalf("unexpected err: %v", err)
}
})
}
func TestBothSpecifiedJson6902Transformer(t *testing.T) {
@@ -112,7 +115,7 @@ func TestBothSpecifiedJson6902Transformer(t *testing.T) {
{"op": "add", "path": "/spec/template/spec/containers/0/command", "value": ["arg1", "arg2", "arg3"]}
]`)
_, err := th.RunTransformer(`
th.RunTransformerAndCheckError(`
apiVersion: builtin
kind: PatchJson6902Transformer
metadata:
@@ -124,13 +127,14 @@ target:
name: myDeploy
path: jsonpatch.json
jsonOp: '[{"op": "add", "path": "/spec/template/spec/dnsPolicy", "value": "ClusterFirst"}]'
`, target)
if err == nil {
t.Fatalf("expected error")
}
if !strings.Contains(err.Error(), "must specify a file path or jsonOp, not both") {
t.Fatalf("unexpected err: %v", err)
}
`, target, func(t *testing.T, err error) {
if err == nil {
t.Fatalf("expected error")
}
if !strings.Contains(err.Error(), "must specify a file path or jsonOp, not both") {
t.Fatalf("unexpected err: %v", err)
}
})
}
func TestPatchJson6902TransformerFromJsonFile(t *testing.T) {
@@ -144,7 +148,7 @@ func TestPatchJson6902TransformerFromJsonFile(t *testing.T) {
{"op": "add", "path": "/spec/template/spec/containers/0/command", "value": ["arg1", "arg2", "arg3"]}
]`)
rm := th.LoadAndRunTransformer(`
th.RunTransformerAndCheckResult(`
apiVersion: builtin
kind: PatchJson6902Transformer
metadata:
@@ -155,9 +159,9 @@ target:
kind: Deployment
name: myDeploy
path: jsonpatch.json
`, target)
th.AssertActualEqualsExpected(rm, `
`,
target,
`
apiVersion: apps/v1
kind: Deployment
metadata:
@@ -190,7 +194,7 @@ func TestPatchJson6902TransformerFromYamlFile(t *testing.T) {
value: ["arg1", "arg2", "arg3"]
`)
rm := th.LoadAndRunTransformer(`
th.RunTransformerAndCheckResult(`
apiVersion: builtin
kind: PatchJson6902Transformer
metadata:
@@ -201,9 +205,9 @@ target:
kind: Deployment
name: myDeploy
path: jsonpatch.json
`, target)
th.AssertActualEqualsExpected(rm, `
`,
target,
`
apiVersion: apps/v1
kind: Deployment
metadata:
@@ -230,7 +234,7 @@ func TestPatchJson6902TransformerWithInlineJSON(t *testing.T) {
PrepBuiltin("PatchJson6902Transformer")
defer th.Reset()
rm := th.LoadAndRunTransformer(`
th.RunTransformerAndCheckResult(`
apiVersion: builtin
kind: PatchJson6902Transformer
metadata:
@@ -241,9 +245,9 @@ target:
kind: Deployment
name: myDeploy
jsonOp: '[{"op": "add", "path": "/spec/template/spec/dnsPolicy", "value": "ClusterFirst"}]'
`, target)
th.AssertActualEqualsExpected(rm, `
`,
target,
`
apiVersion: apps/v1
kind: Deployment
metadata:
@@ -267,7 +271,7 @@ func TestPatchJson6902TransformerWithInlineYAML(t *testing.T) {
PrepBuiltin("PatchJson6902Transformer")
defer th.Reset()
rm := th.LoadAndRunTransformer(`
th.RunTransformerAndCheckResult(`
apiVersion: builtin
kind: PatchJson6902Transformer
metadata:
@@ -281,9 +285,9 @@ jsonOp: |-
- op: add
path: /spec/template/spec/dnsPolicy
value: ClusterFirst
`, target)
th.AssertActualEqualsExpected(rm, `
`,
target,
`
apiVersion: apps/v1
kind: Deployment
metadata: