I'm trying to use a PrefixSuffixTransformer
on specific resources using kustomize.
Let's say we have the following scenario :
.
├── base
│ ├── secrets.yaml
│ └── kustomization.yaml
└── dev
├── prefixer.yaml
└── kustomization.yaml
base/secrets.yaml
apiVersion: spv.no/v1
kind: AzureKeyVaultSecret
metadata:
name: my-secret-1
spec:
vault:
name: my-vault
object:
name: foo
type: secret
output:
secret:
name: foo
dataKey: foo
---
apiVersion: spv.no/v1
kind: AzureKeyVaultSecret
metadata:
name: my-secret-2
spec:
vault:
name: my-vault
object:
name: bar
type: secret
output:
secret:
name: bar
dataKey: bar
base/kustomization.yaml
apiVersion: kustomize.config.k8s.io/v1beta1
kind: Kustomization
resources:
- secrets.yaml
dev/kustomization.yaml
apiVersion: kustomize.config.k8s.io/v1beta1
kind: Kustomization
namespace: dev-namespace
commonLabels:
env: dev
bases:
- ../base/
transformers:
- prefixer.yaml
dev/prefixer.yaml
apiVersion: builtin
kind: PrefixSuffixTransformer
metadata:
name: envPrefixer
prefix: dev-
fieldSpecs:
- kind: AzureKeyVaultSecret
path: spec/vault/object/name
How could I only apply to transformation on my-secret-1
but not my-secret-2
?
I would like to generate all manifests in a single kustomize build
call and avoid patching every resources by their name as in real life I have way more resources than just 2 secrets.
I've tried to use component and different folder structure but no luck.
Expected output :
apiVersion: spv.no/v1
kind: AzureKeyVaultSecret
metadata:
name: my-secret-1
labels:
env: dev
namespace: dev-namespace
spec:
vault:
name: my-vault
object:
name: dev-foo
type: secret
output:
secret:
name: foo
dataKey: foo
---
apiVersion: spv.no/v1
kind: AzureKeyVaultSecret
metadata:
name: my-secret-2
labels:
env: dev
namespace: dev-namespace
spec:
vault:
name: my-vault
object:
name: bar
type: secret
output:
secret:
name: bar
dataKey: bar