mirror of
https://github.com/kubernetes-sigs/kustomize.git
synced 2026-06-13 18:10:59 +00:00
Merge pull request #1165 from monopole/hoser
Add test for ordered transformers.
This commit is contained in:
@@ -100,6 +100,7 @@ func (l *Loader) absolutePluginPath(id resid.ResId) string {
|
|||||||
return AbsolutePluginPath(l.pc, id)
|
return AbsolutePluginPath(l.pc, id)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// TODO: https://github.com/kubernetes-sigs/kustomize/issues/1164
|
||||||
func (l *Loader) loadAndConfigurePlugin(
|
func (l *Loader) loadAndConfigurePlugin(
|
||||||
ldr ifc.Loader, res *resource.Resource) (c Configurable, err error) {
|
ldr ifc.Loader, res *resource.Resource) (c Configurable, err error) {
|
||||||
if !l.pc.Enabled {
|
if !l.pc.Enabled {
|
||||||
|
|||||||
@@ -29,21 +29,23 @@ spec:
|
|||||||
`)
|
`)
|
||||||
}
|
}
|
||||||
|
|
||||||
func writeStringPrefixer(th *kusttest_test.KustTestHarness, path string) {
|
func writeStringPrefixer(
|
||||||
|
th *kusttest_test.KustTestHarness, path, name string) {
|
||||||
th.WriteF(path, `
|
th.WriteF(path, `
|
||||||
apiVersion: someteam.example.com/v1
|
apiVersion: someteam.example.com/v1
|
||||||
kind: StringPrefixer
|
kind: StringPrefixer
|
||||||
metadata:
|
metadata:
|
||||||
name: apple
|
name: `+name+`
|
||||||
`)
|
`)
|
||||||
}
|
}
|
||||||
|
|
||||||
func writeDatePrefixer(th *kusttest_test.KustTestHarness, path string) {
|
func writeDatePrefixer(
|
||||||
|
th *kusttest_test.KustTestHarness, path, name string) {
|
||||||
th.WriteF(path, `
|
th.WriteF(path, `
|
||||||
apiVersion: someteam.example.com/v1
|
apiVersion: someteam.example.com/v1
|
||||||
kind: DatePrefixer
|
kind: DatePrefixer
|
||||||
metadata:
|
metadata:
|
||||||
name: irrelevant
|
name: `+name+`
|
||||||
`)
|
`)
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -62,24 +64,27 @@ func TestOrderedTransformers(t *testing.T) {
|
|||||||
resources:
|
resources:
|
||||||
- deployment.yaml
|
- deployment.yaml
|
||||||
transformers:
|
transformers:
|
||||||
- stringPrefixer.yaml
|
- peachPrefixer.yaml
|
||||||
# - datePrefixer.yaml
|
- date1Prefixer.yaml
|
||||||
|
- applePrefixer.yaml
|
||||||
|
- date2Prefixer.yaml
|
||||||
`)
|
`)
|
||||||
// TODO(monopole): assure ordering of loaded
|
|
||||||
// transformers and this will work - the trouble
|
|
||||||
// is we load into a map (ResMap), not a list.
|
|
||||||
writeDeployment(th, "/app/deployment.yaml")
|
writeDeployment(th, "/app/deployment.yaml")
|
||||||
writeStringPrefixer(th, "/app/stringPrefixer.yaml")
|
writeStringPrefixer(th, "/app/applePrefixer.yaml", "apple")
|
||||||
writeDatePrefixer(th, "/app/datePrefixer.yaml")
|
writeStringPrefixer(th, "/app/peachPrefixer.yaml", "peach")
|
||||||
|
writeDatePrefixer(th, "/app/date1Prefixer.yaml", "date1")
|
||||||
|
writeDatePrefixer(th, "/app/date2Prefixer.yaml", "date2")
|
||||||
m, err := th.MakeKustTarget().MakeCustomizedResMap()
|
m, err := th.MakeKustTarget().MakeCustomizedResMap()
|
||||||
if err != nil {
|
if err != nil {
|
||||||
t.Fatalf("Err: %v", err)
|
t.Fatalf("Err: %v", err)
|
||||||
}
|
}
|
||||||
|
// TODO: Fix #1164; the value of the name: field below
|
||||||
|
// should be: 2018-05-11-peach-2018-05-11-apple-myDeployment
|
||||||
th.AssertActualEqualsExpected(m, `
|
th.AssertActualEqualsExpected(m, `
|
||||||
apiVersion: apps/v1
|
apiVersion: apps/v1
|
||||||
kind: Deployment
|
kind: Deployment
|
||||||
metadata:
|
metadata:
|
||||||
name: apple-myDeployment
|
name: 2018-05-11-apple-2018-05-11-apple-myDeployment
|
||||||
spec:
|
spec:
|
||||||
template:
|
template:
|
||||||
metadata:
|
metadata:
|
||||||
@@ -104,7 +109,7 @@ func TestPluginsNotEnabled(t *testing.T) {
|
|||||||
transformers:
|
transformers:
|
||||||
- stringPrefixer.yaml
|
- stringPrefixer.yaml
|
||||||
`)
|
`)
|
||||||
writeStringPrefixer(th, "/app/stringPrefixer.yaml")
|
writeStringPrefixer(th, "/app/stringPrefixer.yaml", "apple")
|
||||||
|
|
||||||
_, err := th.MakeKustTarget().MakeCustomizedResMap()
|
_, err := th.MakeKustTarget().MakeCustomizedResMap()
|
||||||
if err == nil {
|
if err == nil {
|
||||||
@@ -202,8 +207,8 @@ resources:
|
|||||||
transformers:
|
transformers:
|
||||||
- datePrefixer.yaml
|
- datePrefixer.yaml
|
||||||
`)
|
`)
|
||||||
writeStringPrefixer(th, "/app/base/stringPrefixer.yaml")
|
writeStringPrefixer(th, "/app/base/stringPrefixer.yaml", "apple")
|
||||||
writeDatePrefixer(th, "/app/base/datePrefixer.yaml")
|
writeDatePrefixer(th, "/app/base/datePrefixer.yaml", "date")
|
||||||
|
|
||||||
th.WriteK("/app/overlay", `
|
th.WriteK("/app/overlay", `
|
||||||
resources:
|
resources:
|
||||||
|
|||||||
@@ -2,9 +2,9 @@
|
|||||||
package builtin
|
package builtin
|
||||||
|
|
||||||
import (
|
import (
|
||||||
|
"sigs.k8s.io/kustomize/pkg/ifc"
|
||||||
"sigs.k8s.io/kustomize/pkg/resmap"
|
"sigs.k8s.io/kustomize/pkg/resmap"
|
||||||
"sigs.k8s.io/kustomize/pkg/resource"
|
"sigs.k8s.io/kustomize/pkg/resource"
|
||||||
"sigs.k8s.io/kustomize/pkg/transformers/config"
|
|
||||||
"sort"
|
"sort"
|
||||||
)
|
)
|
||||||
|
|
||||||
@@ -13,22 +13,18 @@ import (
|
|||||||
// dependencies (like Namespace, StorageClass, etc.)
|
// dependencies (like Namespace, StorageClass, etc.)
|
||||||
// first, and resources with a high number of dependencies
|
// first, and resources with a high number of dependencies
|
||||||
// (like ValidatingWebhookConfiguration) last.
|
// (like ValidatingWebhookConfiguration) last.
|
||||||
type PreferredOrderTransformerPlugin struct {
|
type PreferredOrderTransformerPlugin struct{}
|
||||||
Prefix string `json:"prefix,omitempty" yaml:"prefix,omitempty"`
|
|
||||||
Suffix string `json:"suffix,omitempty" yaml:"suffix,omitempty"`
|
|
||||||
FieldSpecs []config.FieldSpec `json:"fieldSpecs,omitempty" yaml:"fieldSpecs,omitempty"`
|
|
||||||
}
|
|
||||||
|
|
||||||
func NewPreferredOrderTransformerPlugin() *PreferredOrderTransformerPlugin {
|
func NewPreferredOrderTransformerPlugin() *PreferredOrderTransformerPlugin {
|
||||||
return &PreferredOrderTransformerPlugin{}
|
return &PreferredOrderTransformerPlugin{}
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
// Nothing needed for configuration.
|
||||||
func (p *PreferredOrderTransformerPlugin) Config(
|
func (p *PreferredOrderTransformerPlugin) Config(
|
||||||
ldr ifc.Loader, rf *resmap.Factory, c []byte) (err error) {
|
ldr ifc.Loader, rf *resmap.Factory, c []byte) (err error) {
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
*/
|
|
||||||
func (p *PreferredOrderTransformerPlugin) Transform(m resmap.ResMap) error {
|
func (p *PreferredOrderTransformerPlugin) Transform(m resmap.ResMap) error {
|
||||||
resources := make([]*resource.Resource, m.Size())
|
resources := make([]*resource.Resource, m.Size())
|
||||||
ids := m.AllIds()
|
ids := m.AllIds()
|
||||||
|
|||||||
@@ -16,7 +16,7 @@ import (
|
|||||||
// dependencies (like Namespace, StorageClass, etc.)
|
// dependencies (like Namespace, StorageClass, etc.)
|
||||||
// first, and resources with a high number of dependencies
|
// first, and resources with a high number of dependencies
|
||||||
// (like ValidatingWebhookConfiguration) last.
|
// (like ValidatingWebhookConfiguration) last.
|
||||||
type plugin struct {}
|
type plugin struct{}
|
||||||
|
|
||||||
var KustomizePlugin plugin
|
var KustomizePlugin plugin
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user