helper methods, types, and unit tests for transformer annotations

This commit is contained in:
natasha41575
2021-12-29 15:13:04 -08:00
parent 77b1af2d91
commit 4f21d60045
10 changed files with 428 additions and 15 deletions

View File

@@ -14,6 +14,7 @@ import (
. "sigs.k8s.io/kustomize/api/resource"
"sigs.k8s.io/kustomize/api/types"
"sigs.k8s.io/kustomize/kyaml/resid"
kyaml "sigs.k8s.io/kustomize/kyaml/yaml"
)
var factory = provider.NewDefaultDepProvider().GetResourceFactory()
@@ -1427,3 +1428,129 @@ spec:
resid.FromString("knd2.ver2.gr2/name2.ns2"),
})
}
func TestOrigin(t *testing.T) {
r, err := factory.FromBytes([]byte(`
apiVersion: v1
kind: Deployment
metadata:
name: clown
spec:
numReplicas: 1
`))
assert.NoError(t, err)
origin := &Origin{
Path: "deployment.yaml",
Repo: "github.com/myrepo",
Ref: "master",
}
assert.NoError(t, r.SetOrigin(origin))
assert.Equal(t, `apiVersion: v1
kind: Deployment
metadata:
name: clown
annotations:
config.kubernetes.io/origin: |
path: deployment.yaml
repo: github.com/myrepo
ref: master
spec:
numReplicas: 1
`, r.MustString())
or, err := r.GetOrigin()
assert.NoError(t, err)
assert.Equal(t, origin, or)
}
func TestTransformations(t *testing.T) {
r, err := factory.FromBytes([]byte(`
apiVersion: v1
kind: Deployment
metadata:
name: clown
spec:
numReplicas: 1
`))
assert.NoError(t, err)
origin1 := &Origin{
Repo: "github.com/myrepo",
Ref: "master",
ConfiguredIn: "config.yaml",
ConfiguredBy: kyaml.ResourceIdentifier{
TypeMeta: kyaml.TypeMeta{
APIVersion: "builtin",
Kind: "Generator",
},
NameMeta: kyaml.NameMeta{
Name: "my-name",
Namespace: "my-namespace",
},
},
}
origin2 := &Origin{
ConfiguredIn: "../base/config.yaml",
ConfiguredBy: kyaml.ResourceIdentifier{
TypeMeta: kyaml.TypeMeta{
APIVersion: "builtin",
Kind: "Generator",
},
NameMeta: kyaml.NameMeta{
Name: "my-name",
Namespace: "my-namespace",
},
},
}
assert.NoError(t, r.AddTransformation(origin1))
assert.Equal(t, `apiVersion: v1
kind: Deployment
metadata:
name: clown
annotations:
config.kubernetes.io/transformations: |
- repo: github.com/myrepo
ref: master
configuredIn: config.yaml
configuredBy:
apiVersion: builtin
kind: Generator
name: my-name
namespace: my-namespace
spec:
numReplicas: 1
`, r.MustString())
assert.NoError(t, r.AddTransformation(origin2))
assert.Equal(t, `apiVersion: v1
kind: Deployment
metadata:
name: clown
annotations:
config.kubernetes.io/transformations: |
- repo: github.com/myrepo
ref: master
configuredIn: config.yaml
configuredBy:
apiVersion: builtin
kind: Generator
name: my-name
namespace: my-namespace
- configuredIn: ../base/config.yaml
configuredBy:
apiVersion: builtin
kind: Generator
name: my-name
namespace: my-namespace
spec:
numReplicas: 1
`, r.MustString())
transformations, err := r.GetTransformations()
assert.NoError(t, err)
assert.Equal(t, Transformations{origin1, origin2}, transformations)
assert.NoError(t, r.ClearTransformations())
assert.Equal(t, `apiVersion: v1
kind: Deployment
metadata:
name: clown
spec:
numReplicas: 1
`, r.MustString())
}