mirror of
https://github.com/kubernetes-sigs/kustomize.git
synced 2026-07-17 09:49:13 +00:00
helper methods, types, and unit tests for transformer annotations
This commit is contained in:
@@ -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())
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user