0

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
Will
  • 1,792
  • 2
  • 23
  • 44

0 Answers0