ポッド上の Kubernetes からすべてのシークレットを取得する

ポッド上の Kubernetes からすべてのシークレットを取得する

まず、ドキュメントを読んで、このテキストを見つけました。これはかなり自明ですが、To use a secret, a pod needs to reference the secret.ポッドでそれぞれを定義せずに、シークレット定義からすべてのシークレットを取得できるかどうかを確認したいのです。つまり、次のようになります。

これが私が持っているものです

        env:
            - name: MY_FRST_SECRET
              valueFrom:
                secretKeyRef:
                  name: secret
                  key: MY_FRST_SECRET
            - name: MY_SECOND_SECRET
              valueFrom:
                secretKeyRef:
                  name: secret
                  key: MY_SECOND_SECRET

これが私が欲しいもの

        env:
            - name: *
              valueFrom:
                secretKeyRef:
                  name: secret
                  key: *

これは馬鹿げているように思われるかもしれませんが、私が言いたいのは、シークレット内のすべての変数を取得し、変数が定義されているのと同じ名前でインポートする方法があるかどうかを確認したいということです。つまり、

VarName = SecretName
VarValue = SecretValue

前もって感謝します!

答え1

設定マップを使えばこれを実現できることがわかりました。その方法についてはドキュメントのリンクをご覧ください。https://kubernetes.io/docs/tasks/configure-pod-container/configure-pod-configmap/#configure-all-key-value-pairs-in-a-configmap-as-container-environment-variables

将来URLが変更された場合、参照用のコードを以下に示します。

apiVersion: v1
   kind: Pod
   metadata:
     name: dapi-test-pod
   spec:
     containers:
       - name: test-container
         image: k8s.gcr.io/busybox
         command: [ "/bin/sh", "-c", "env" ]
         envFrom:
         - configMapRef:
             name: special-config
     restartPolicy: Never

関連情報