mirror of
https://github.com/kubernetes-sigs/kustomize.git
synced 2026-05-17 18:25:26 +00:00
Raise error for external generators or transformers (#4565)
* Raise error if duplicate orgids for external transformers or external generators are configured * Remove output of resources in error message * Remove trailing newline
This commit is contained in:
committed by
GitHub
parent
4fc02497ae
commit
7888aef305
@@ -304,7 +304,9 @@ func (kt *KustTarget) configureExternalGenerators() (
|
||||
rm.Replace(r)
|
||||
}
|
||||
}
|
||||
ra.AppendAll(rm)
|
||||
if err = ra.AppendAll(rm); err != nil {
|
||||
return nil, errors.Wrapf(err, "configuring external generator")
|
||||
}
|
||||
}
|
||||
ra, err := kt.accumulateResources(ra, generatorPaths)
|
||||
if err != nil {
|
||||
@@ -348,7 +350,10 @@ func (kt *KustTarget) configureExternalTransformers(transformers []string) ([]*r
|
||||
rm.Replace(r)
|
||||
}
|
||||
}
|
||||
ra.AppendAll(rm)
|
||||
|
||||
if err = ra.AppendAll(rm); err != nil {
|
||||
return nil, errors.Wrapf(err, "configuring external transformer")
|
||||
}
|
||||
}
|
||||
ra, err := kt.accumulateResources(ra, transformerPaths)
|
||||
if err != nil {
|
||||
|
||||
@@ -257,3 +257,71 @@ metadata:
|
||||
assert.NoError(t, err)
|
||||
assert.Equal(t, string(expYaml), string(actYaml))
|
||||
}
|
||||
|
||||
func TestDuplicateExternalGeneratorsForbidden(t *testing.T) {
|
||||
th := kusttest_test.MakeHarness(t)
|
||||
th.WriteK("/generator", `
|
||||
apiVersion: kustomize.config.k8s.io/v1beta1
|
||||
kind: Kustomization
|
||||
generators:
|
||||
- |-
|
||||
apiVersion: generators.example/v1
|
||||
kind: ManifestGenerator
|
||||
metadata:
|
||||
name: ManifestGenerator
|
||||
annotations:
|
||||
config.kubernetes.io/function: |
|
||||
container:
|
||||
image: ManifestGenerator:latest
|
||||
spec:
|
||||
image: 'someimage:12345'
|
||||
configPath: config.json
|
||||
- |-
|
||||
apiVersion: generators.example/v1
|
||||
kind: ManifestGenerator
|
||||
metadata:
|
||||
name: ManifestGenerator
|
||||
annotations:
|
||||
config.kubernetes.io/function: |
|
||||
container:
|
||||
image: ManifestGenerator:latest
|
||||
spec:
|
||||
image: 'someimage:12345'
|
||||
configPath: another_config.json
|
||||
`)
|
||||
_, err := makeAndLoadKustTarget(t, th.GetFSys(), "/generator").AccumulateTarget()
|
||||
assert.Error(t, err)
|
||||
assert.Contains(t, err.Error(), "may not add resource with an already registered id: ManifestGenerator.v1.generators.example/ManifestGenerator")
|
||||
}
|
||||
|
||||
func TestDuplicateExternalTransformersForbidden(t *testing.T) {
|
||||
th := kusttest_test.MakeHarness(t)
|
||||
th.WriteK("/transformer", `
|
||||
apiVersion: kustomize.config.k8s.io/v1beta1
|
||||
kind: Kustomization
|
||||
transformers:
|
||||
- |-
|
||||
apiVersion: transformers.example.co/v1
|
||||
kind: ValueAnnotator
|
||||
metadata:
|
||||
name: notImportantHere
|
||||
annotations:
|
||||
config.kubernetes.io/function: |
|
||||
container:
|
||||
image: example.docker.com/my-functions/valueannotator:1.0.0
|
||||
value: 'pass'
|
||||
- |-
|
||||
apiVersion: transformers.example.co/v1
|
||||
kind: ValueAnnotator
|
||||
metadata:
|
||||
name: notImportantHere
|
||||
annotations:
|
||||
config.kubernetes.io/function: |
|
||||
container:
|
||||
image: example.docker.com/my-functions/valueannotator:1.0.0
|
||||
value: 'fail'
|
||||
`)
|
||||
_, err := makeAndLoadKustTarget(t, th.GetFSys(), "/transformer").AccumulateTarget()
|
||||
assert.Error(t, err)
|
||||
assert.Contains(t, err.Error(), "may not add resource with an already registered id: ValueAnnotator.v1.transformers.example.co/notImportantHere")
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user