mirror of
https://github.com/kubernetes-sigs/kustomize.git
synced 2026-06-11 17:12:51 +00:00
Refactor the PrefixSuffixTransformer into separate prefix- and suffix transformers (#4318)
* Refactor prefix filter into its own filter, decoupled from the prefixsuffix filter * Refactor prefix transformer into its own transformer, decoupled from the prefixsuffix transformer * Refactor suffix filter into its own filter, decoupled from the prefixsuffix filter * Refactor suffix transformer into its own transformer, decoupled from the prefixsuffix transformer * Add a default nameSuffix field spec in addition to the namePrefix * Remove the PrefixSuffixTransformer from the list of builtin transformers * Add a multi-transformer to builtinhelpers.TransformFactories * Remove the implementation of the prefixsuffixtransformer.PrefixSuffixTransformer * Resolve style and format related feedback from the pull request * Add test to test the legacy PrefixSuffixTransformer for BC purposes
This commit is contained in:
166
plugin/builtin/prefixtransformer/PrefixTransformer_test.go
Normal file
166
plugin/builtin/prefixtransformer/PrefixTransformer_test.go
Normal file
@@ -0,0 +1,166 @@
|
||||
// Copyright 2021 The Kubernetes Authors.
|
||||
// SPDX-License-Identifier: Apache-2.0
|
||||
|
||||
package main_test
|
||||
|
||||
import (
|
||||
"testing"
|
||||
|
||||
kusttest_test "sigs.k8s.io/kustomize/api/testutils/kusttest"
|
||||
)
|
||||
|
||||
func TestPrefixTransformer(t *testing.T) {
|
||||
th := kusttest_test.MakeEnhancedHarness(t).
|
||||
PrepBuiltin("PrefixTransformer")
|
||||
defer th.Reset()
|
||||
|
||||
rm := th.LoadAndRunTransformer(`
|
||||
apiVersion: builtin
|
||||
kind: PrefixTransformer
|
||||
metadata:
|
||||
name: notImportantHere
|
||||
prefix: baked-
|
||||
fieldSpecs:
|
||||
- path: metadata/name
|
||||
`, `
|
||||
apiVersion: v1
|
||||
kind: Namespace
|
||||
metadata:
|
||||
name: apple
|
||||
---
|
||||
apiVersion: v1
|
||||
kind: Service
|
||||
metadata:
|
||||
name: apple
|
||||
spec:
|
||||
ports:
|
||||
- port: 7002
|
||||
---
|
||||
apiVersion: apiextensions.k8s.io/v1
|
||||
kind: CustomResourceDefinition
|
||||
metadata:
|
||||
name: crd
|
||||
---
|
||||
apiVersion: apiregistration.k8s.io/v1
|
||||
kind: APIService
|
||||
metadata:
|
||||
name: apiservice
|
||||
---
|
||||
apiVersion: v1
|
||||
kind: ConfigMap
|
||||
metadata:
|
||||
name: cm
|
||||
`)
|
||||
|
||||
th.AssertActualEqualsExpected(rm, `
|
||||
apiVersion: v1
|
||||
kind: Namespace
|
||||
metadata:
|
||||
name: apple
|
||||
---
|
||||
apiVersion: v1
|
||||
kind: Service
|
||||
metadata:
|
||||
annotations:
|
||||
internal.config.kubernetes.io/prefixes: baked-
|
||||
internal.config.kubernetes.io/previousKinds: Service
|
||||
internal.config.kubernetes.io/previousNames: apple
|
||||
internal.config.kubernetes.io/previousNamespaces: default
|
||||
name: baked-apple
|
||||
spec:
|
||||
ports:
|
||||
- port: 7002
|
||||
---
|
||||
apiVersion: apiextensions.k8s.io/v1
|
||||
kind: CustomResourceDefinition
|
||||
metadata:
|
||||
name: crd
|
||||
---
|
||||
apiVersion: apiregistration.k8s.io/v1
|
||||
kind: APIService
|
||||
metadata:
|
||||
name: apiservice
|
||||
---
|
||||
apiVersion: v1
|
||||
kind: ConfigMap
|
||||
metadata:
|
||||
annotations:
|
||||
internal.config.kubernetes.io/prefixes: baked-
|
||||
internal.config.kubernetes.io/previousKinds: ConfigMap
|
||||
internal.config.kubernetes.io/previousNames: cm
|
||||
internal.config.kubernetes.io/previousNamespaces: default
|
||||
name: baked-cm
|
||||
`)
|
||||
|
||||
rm = th.LoadAndRunTransformer(`
|
||||
apiVersion: builtin
|
||||
kind: PrefixTransformer
|
||||
metadata:
|
||||
name: notImportantHere
|
||||
prefix: test-
|
||||
fieldSpecs:
|
||||
- kind: Deployment
|
||||
path: metadata/name
|
||||
- kind: Deployment
|
||||
path: spec/template/spec/containers/name
|
||||
`, `
|
||||
apiVersion: apps/v1
|
||||
kind: Deployment
|
||||
metadata:
|
||||
name: deployment
|
||||
spec:
|
||||
template:
|
||||
spec:
|
||||
containers:
|
||||
- image: myapp
|
||||
name: main
|
||||
---
|
||||
apiVersion: apiextensions.k8s.io/v1
|
||||
kind: CustomResourceDefinition
|
||||
metadata:
|
||||
name: crd
|
||||
---
|
||||
apiVersion: apiregistration.k8s.io/v1
|
||||
kind: APIService
|
||||
metadata:
|
||||
name: apiservice
|
||||
---
|
||||
apiVersion: v1
|
||||
kind: ConfigMap
|
||||
metadata:
|
||||
name: cm
|
||||
`)
|
||||
|
||||
th.AssertActualEqualsExpected(rm, `
|
||||
apiVersion: apps/v1
|
||||
kind: Deployment
|
||||
metadata:
|
||||
annotations:
|
||||
internal.config.kubernetes.io/prefixes: test-
|
||||
internal.config.kubernetes.io/previousKinds: Deployment
|
||||
internal.config.kubernetes.io/previousNames: deployment
|
||||
internal.config.kubernetes.io/previousNamespaces: default
|
||||
name: test-deployment
|
||||
spec:
|
||||
template:
|
||||
spec:
|
||||
containers:
|
||||
- image: myapp
|
||||
name: test-main
|
||||
---
|
||||
apiVersion: apiextensions.k8s.io/v1
|
||||
kind: CustomResourceDefinition
|
||||
metadata:
|
||||
name: crd
|
||||
---
|
||||
apiVersion: apiregistration.k8s.io/v1
|
||||
kind: APIService
|
||||
metadata:
|
||||
name: apiservice
|
||||
---
|
||||
apiVersion: v1
|
||||
kind: ConfigMap
|
||||
metadata:
|
||||
name: cm
|
||||
`)
|
||||
}
|
||||
Reference in New Issue
Block a user