I'm trying to replace the configMapGenerator env values by creating an overlay. The expected overlay values show up in the configmap, but not in the ExternalSecret trough the replacements. I have the following base/kustomization.yaml where I'm doing some replacements:
apiVersion: kustomize.config.k8s.io/v1beta1
kind: Kustomization
resources:
- ex-secret.yaml
configMapGenerator:
- name: test
envs:
- env.properties
replacements:
- source:
name: test
kind: ConfigMap
fieldPath: data.KEY
targets:
- select:
kind: ExternalSecret
name: prime-manager
fieldPaths:
- "spec.data.[secretKey=PRIME_MANAGER_CONSOLE_DB_password].remoteRef.key"
- source:
name: test
kind: ConfigMap
fieldPath: data.KEY2
targets:
- select:
kind: ExternalSecret
name: prime-manager
fieldPaths:
- "spec.data.[secretKey=PRIME_MANAGER_WEB_DB_password].remoteRef.key"
- source:
name: test
kind: ConfigMap
fieldPath: data.KEY3
targets:
- select:
kind: ExternalSecret
name: prime-manager
fieldPaths:
- "spec.data.[secretKey=PRIME_MANAGER_PARAMS_admin_password].remoteRef.key"
The base/env.properties file in the base contains the following properties and values:
KEY=test
KEY2=test2
KEY3=test3
base/ex-secret.yaml file for reproduce:
apiVersion: external-secrets.io/v1beta1
kind: ExternalSecret
metadata:
name: prime-manager
labels:
app.kubernetes.io/name: prime-manager
spec:
refreshInterval: 1h
secretStoreRef:
kind: ClusterSecretStore
name: keyvault-secret-store
data:
- secretKey: PRIME_MANAGER_CONSOLE_DB_password
remoteRef:
key: prime-manager-console-postgres-password-staging
- secretKey: PRIME_MANAGER_WEB_DB_password
remoteRef:
key: prime-manager-web-postgres-password-staging
- secretKey: PRIME_MANAGER_PARAMS_admin_password
remoteRef:
key: prime-manager-ferrontest-admin-password-staging
Now I have created an overlay overlay/kustomization.yaml to overwrite the values like
apiVersion: kustomize.config.k8s.io/v1beta1
kind: Kustomization
resources:
- ../base
configMapGenerator:
- name: test
behavior: replace
envs:
- env.properties
overlay/env.properties:
KEY=testen
KEY2=testen2
KEY3=testen3
File tree:
C:.
├───base
│ env.properties
│ ex-secret.yaml
│ kustomization.yaml
│
└───overlay
env.properties
kustomization.yaml
Expected output
I would expect testen, testen2 and testen3 to show up in the ExternalSecret output.
apiVersion: v1
data:
KEY: testen
KEY2: testen2
KEY3: testen3
kind: ConfigMap
metadata:
name: test-hbtgc5f7dm
---
apiVersion: external-secrets.io/v1beta1
kind: ExternalSecret
metadata:
labels:
app.kubernetes.io/name: prime-manager
name: prime-manager
spec:
data:
- remoteRef:
key: testen
secretKey: PRIME_MANAGER_CONSOLE_DB_password
- remoteRef:
key: testen2
secretKey: PRIME_MANAGER_WEB_DB_password
- remoteRef:
key: testen3
secretKey: PRIME_MANAGER_PARAMS_admin_password
refreshInterval: 1h
secretStoreRef:
kind: ClusterSecretStore
name: keyvault-secret-store
Actual output
But I'm still getting the base values in the ExternalSecret output.
apiVersion: v1
data:
KEY: testen
KEY2: testen2
KEY3: testen3
kind: ConfigMap
metadata:
name: test-hbtgc5f7dm
---
apiVersion: external-secrets.io/v1beta1
kind: ExternalSecret
metadata:
labels:
app.kubernetes.io/name: prime-manager
name: prime-manager
spec:
data:
- remoteRef:
key: test
secretKey: PRIME_MANAGER_CONSOLE_DB_password
- remoteRef:
key: test2
secretKey: PRIME_MANAGER_WEB_DB_password
- remoteRef:
key: test3
secretKey: PRIME_MANAGER_PARAMS_admin_password
refreshInterval: 1h
secretStoreRef:
kind: ClusterSecretStore
name: keyvault-secret-store
Kustomize version
v4.5.7
Platform
Windows