まず、ドキュメントを読んで、このテキストを見つけました。これはかなり自明ですが、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