---
apiVersion: v1
kind: ConfigMap
metadata:
  name: q8
  labels:
    question.kontest.amsy.dev: "8"
data:
  question: |-
    機密情報を別リソースとして定義してPodから読み込むことができます。そのリソースがSecretです。
    CNDT/happyというキー/値ペアを含むcndt-secretというSecretがあります。Pod内部の環境変数名としてCNDT_VARIABLEを使用して、秘密鍵CNDTの値だけを公開するように以下のマニフェストファイルを変更してください。

    apiVersion: v1
    kind: Pod
    metadata:
      labels:
        run: nginx-secret
      name: nginx-secret
    spec:
      containers:
      - image: nginx
        name: nginx-secret
  hint: |-
    https://kubernetes.io/docs/concepts/configuration/secret/
  base_content.yaml: |-
    apiVersion: v1
    kind: Pod
    metadata:
      labels:
        run: nginx-secret
      name: nginx-secret
    spec:
      containers:
      - image: nginx
        name: nginx-secret
  answer.yaml: |-
    apiVersion: v1
    kind: Pod
    metadata:
      labels:
        run: nginx-secret
      name: nginx-secret
    spec:
      containers:
      - image: nginx
        name: nginx-secret
        env:
          - name: CNDT_VARIABLE
            valueFrom:
              secretKeyRef:
                name: cndt-secret
                key: CNDT
  comment: |-
    【解説 by カサレアル】 
    ConfigMapと同様、Secretに保存された設定値を利用する方法も、主に下記の2つです。
    1. コンテナの環境変数として利用する
    2. Secretをコンテナにボリュームとしてマウントする
    今回は1.の方法で利用します。この場合、 spec.containers[].env[].valueFrom.secretKeyRef の name にSecret名、 key に対象のキーを指定すればOKです。
    指定したSecret内の設定値をすべて環境変数として読み込む場合は、 spec.containers[].envFrom[].secretRef.name にSecret名を指定すればOKです。
  author: |-
    Yutaka Ichikawa (@cyberblack28)
