
Com Azure Vault e driver CSI, capaz de criar segredos e acessá-los como arquivos únicos em contêiner.
eu seguiesseabordagem para criar segredos básicos.
Pode acessar os segredos do contêiner como arquivos secretos dentro dele.
Mas, quando tentei criar um segredo a partir dele e usar o mesmo para o imagePull, não funcionou.
apiVersion: secrets-store.csi.x-k8s.io/v1alpha1
kind: SecretProviderClass
metadata:
name: azure-kvname
namespace: default
spec:
provider: azure
secretObjects:
- secretName: acr-test
type: kubernetes.io/dockerconfigjson
data:
- objectName: martrepo
key: .dockerconfigjson
parameters:
usePodIdentity: "false"
useVMManagedIdentity: "false"
userAssignedIdentityID: ""
keyvaultName: "secret-store-dummy"
objects: |
array:
- |
objectName: secret1
objectType: secret
objectVersion: ""
- |
objectName: martrepo
objectType: secret
objectVersion: ""
tenantId: "f33abe27-86cd-46d6-ae2b-b918362ab160"
---
kind: Pod
apiVersion: v1
metadata:
name: busybox-secrets-store-inline
spec:
containers:
- name: busybox
image: k8s.gcr.io/e2e-test-images/busybox:1.29
command:
- "/bin/sleep"
- "10000"
volumeMounts:
- name: secrets-store-inline
mountPath: "/mnt/secrets-store"
readOnly: true
volumes:
- name: secrets-store-inline
csi:
driver: secrets-store.csi.k8s.io
readOnly: true
volumeAttributes:
secretProviderClass: "azure-kvname"
nodePublishSecretRef: # Only required when using service principal mode
name: secrets-store-creds
O segredo do acr-test acima, tentei usar na implantação de um aplicativo em imagePullSecrets, mas não funcionou porque os eventos mostravam problemas ao extrair a imagem.
Por favor, me guie se a abordagem estiver errada.
E também, como usar esses segredos como parte do configmap existente?
Responder1
Não acredito que isso seja alcançável. O driver CSI monta o segredo dentro do contêiner como um volume, mas o segredo de extração da imagem é necessário antes da criação do contêiner e da montagem do volume, portanto, o segredo não estará disponível.
Você precisará configurar isso como segredo estático padrão do Kubernetes.