Încerc să folosesc secretele din Azure Key Vault în implementarea mea Kubernetes ca variabile de mediu și mă străduiesc să fac asta. Folosesc identitatea pod Azure și secretele sunt montate în fișier și asta funcționează, totuși vreau să fie accesibile ca variabile env.
Iată fișierul meu secrets.yml:
apiVersion: secrets-store.csi.x-k8s.io/v1alpha1
fel: SecretProviderClass
metadate:
nume: azure-kvname
specificație:
furnizor: azur
secretObjects:
- secretName: test-secret
tip: Opac
date:
- objectName: test-db-user
cheie: dbuser
- objectName: test-db-pass
cheie: dbpassword
parametri:
usePodIdentity: „adevărat”
keyvaultName: „test-keyvault”
cloudName: ""
obiecte: |
matrice:
- |
objectName: test-db-user
objectType: secret
objectVersion: ""
- |
objectName: test-db-pass
objectType: secret
objectVersion: ""
tenantId: „<tenantID>”
Și deployment.yml meu:
apiVersion: v1
fel: Pod
metadate:
nume: nginx-secrets-store-inline
etichete:
aadpodidbinding: aadpodidbinding
specificație:
containere:
- nume: nginx
imagine: nginx
volumMonturi:
- nume: secrets-store-inline
mountPath: „/mnt/secrets-store”
readOnly: adevărat
env:
- nume: DB_USER
valoareDe la:
secretKeyRef:
nume: test-secret
cheie: dbuser
- nume: DB_PASSWORD
valoareDe la:
secretKeyRef:
nume: test-secret
cheie: dbpassword
volume:
- nume: secrets-store-inline
csi:
driver: secrets-store.csi.k8s.io
readOnly: adevărat
volumAtribute:
secretProviderClass: azure-kvname
Am urmat exemplele oferite de Azure: secret, implementare
Când aplic ambele fișiere, primesc CreateContainerConfigError
: Eroare: secretul „test-secret” nu a fost găsit