Implemented automatic fetching secrets from Azure KeyVault

This commit is contained in:
Marcin-Ramotowski 2025-05-06 21:57:43 +00:00
parent fc1d4f5154
commit b85a5dfd9a
3 changed files with 66 additions and 6 deletions

View File

@ -1,10 +1,4 @@
---
# Namespace (opcjonalnie)
apiVersion: v1
kind: Namespace
metadata:
name: user-microservice
---
# MySQL Deployment
apiVersion: apps/v1
kind: Deployment
@ -44,9 +38,18 @@ spec:
volumeMounts:
- name: mysql-pv
mountPath: /var/lib/mysql
- name: secrets-store
mountPath: "/mnt/secrets"
readOnly: true
volumes:
- name: mysql-pv
emptyDir: {}
- name: secrets-store
csi:
driver: secrets-store.csi.k8s.io
readOnly: true
volumeAttributes:
secretProviderClass: "azure-kvname"
---
# MySQL Service
apiVersion: v1
@ -87,6 +90,17 @@ spec:
secretKeyRef:
name: sqlalchemy-database-uri
key: SQLALCHEMY_DATABASE_URI
volumeMounts:
- name: secrets-store
mountPath: "/mnt/secrets"
readOnly: true
volumes:
- name: secrets-store
csi:
driver: secrets-store.csi.k8s.io
readOnly: true
volumeAttributes:
secretProviderClass: "azure-kvname"
---
# API Service
apiVersion: v1

5
namespace.yaml Normal file
View File

@ -0,0 +1,5 @@
# Namespace (opcjonalnie)
apiVersion: v1
kind: Namespace
metadata:
name: user-microservice

41
secret-store.yaml Normal file
View File

@ -0,0 +1,41 @@
apiVersion: secrets-store.csi.x-k8s.io/v1
kind: SecretProviderClass
metadata:
name: azure-kvname
namespace: user-microservice
spec:
provider: azure
secretObjects:
- secretName: sqlalchemy-database-uri
type: Opaque
data:
- objectName: sqlalchemy-database-uri
key: SQLALCHEMY_DATABASE_URI
- secretName: mysql-password
type: Opaque
data:
- objectName: mysql-password
key: MYSQL_PASSWORD
- secretName: mysql-root-password
type: Opaque
data:
- objectName: mysql-root-password
key: MYSQL_ROOT_PASSWORD
parameters:
usePodIdentity: "false"
useVMManagedIdentity: "true"
userAssignedIdentityID: "0c2780e4-8594-4aab-8f1a-8a19f71924bd" # client_id of the user-assigned managed identity
clientID: "0c2780e4-8594-4aab-8f1a-8a19f71924bd" # client_id of the user-assigned managed identity
keyvaultName: "dev-aks"
objects: |
array:
- |
objectName: sqlalchemy-database-uri
objectType: secret
- |
objectName: mysql-password
objectType: secret
- |
objectName: mysql-root-password
objectType: secret
tenantID: "f4e3e6f7-d21c-460e-b201-2192174e7f41"