AKS с Azure Key Vault - переменные env не загружаются

Я пытаюсь использовать секреты из Azure Key Vault в развертывании Kubernetes в качестве env-переменных и у меня не получается. Я использую Azure pod identity, и секреты монтируются в файл, и это работает, однако я хочу, чтобы они были доступны как переменные env.

Вот мой файл secrets.yml:

apiVersion: secrets-store.csi.x-k8s.io/v1alpha1
kind: SecretProviderClass
metadata:
  name: azure-kvname
spec:
  provider: azure
  secretObjects:
  - secretName: test-secret
    type: Opaque
    data:
    - objectName: test-db-user
      key: dbuser
    - objectName: test-db-pass
      key: dbpassword
  parameters:
    usePodIdentity: "true"
    keyvaultName: "test-keyvault"      
    cloudName: ""               
    objects:  |
      array:
        - |
          objectName: test-db-user
          objectType: secret
          objectVersion: ""
        - |
          objectName: test-db-pass
          objectType: secret
          objectVersion: ""
    tenantId: "<tenantID>"

И мой deployment.yml:

apiVersion: v1
kind: Pod
metadata:
  name: nginx-secrets-store-inline
  labels:
    aadpodidbinding: aadpodidbinding
spec:
  containers:
    - name: nginx
      image: nginx
      volumeMounts:
        - name: secrets-store-inline
          mountPath: "/mnt/secrets-store"
          readOnly: true
      env:
        - name: DB_USER
          valueFrom:
            secretKeyRef:
              name: test-secret
              key: dbuser
        - name: DB_PASSWORD
          valueFrom:
            secretKeyRef:
              name: test-secret
              key: dbpassword
  volumes:
    - name: secrets-store-inline
      csi:
        driver: secrets-store.csi.k8s.io
        readOnly: true
        volumeAttributes:
          secretProviderClass: azure-kvname

Я следовал примерам, предоставленным Azure: secret, deployment

Когда я применяю оба файла, я получаю CreateContainerConfigError: Error: secret "test-secret" not found

0
задан 20 August 2021 в 09:18
1 ответ

Оказывается, у меня не были включены правильные роли RBAC:

https://azure.github.io/secrets-store-csi-driver-provider-azure/troubleshooting/ #failed-to-create-kubernetes-secret-errsecrets-is-forbidden-user-systemserviceaccountdefaultsecrets-store-csi-driver-cannot-create-resource-secrets-in-api-group--in-the-namespace-default

После добавления их в мой кластер все работает отлично.

0
ответ дан 20 August 2021 в 14:34

Теги

Похожие вопросы