在Yaml文件中将连接字符串作为环境变量传递

时间:2019-10-14 17:41:23

标签: kubernetes yaml kubernetes-helm

我有SQL连接的密码作为密钥。我将此分配给了一个钥匙。我需要将SQL连接字符串作为环境变量传递,该变量在我的appsettings.json文件中分配值。当我通过团队城市变量作为密码时,它正在工作。但是,当我将密码更改为私钥时,我无法从API检索数据(已移至Kubernities)。它显示用户错误登录失败。如何在YAML文件中使用密码作为秘密密钥传递连接字符串?

我尝试以几种方式访问​​密钥,但结果是相同的。

env:
   - name: SECRET_USERNAME
     valueFrom:
          secretKeyRef:
            name: mysecret
            key: username
    - name: SECRET_PASSWORD
      valueFrom:
          secretKeyRef:
            name: mysecret
            key: password

  -name:ConnectionString
   Value: "server:172.168.0.1; username: ${SECRET_USERNAME};password:${SECRET_PASSWORD};....." 

请不要介意此处的缩进。我正确地在文件中。 如何在这里访问SECRET_PASSWORD

API希望返回成功消息。但是用户出现错误登录失败。

2 个答案:

答案 0 :(得分:0)

请参阅kubernetes文档,该文档讨论秘密使用密码并将您设置的路径作为文件安装。

答案 1 :(得分:0)

我认为您必须先解密秘密

kubectl get secret mysecret -o yaml
apiVersion: v1
kind: Secret 
metadata:
  creationTimestamp: 2016-01-22T18:41:56Z
  name: mysecret
  namespace: default
  resourceVersion: "164619"
  uid: cfee02d6-c137-11e5-8d73-42010af00002
type: Opaque
data:
  username: YWRtaW4=
  password: MWYyZDFlMmU2N2Rm

解码密码字段:

echo 'MWYyZDFlMmU2N2Rm' | base64 --decode

https://kubernetes.io/docs/concepts/configuration/secret/

如果我错了,请改正我,我是新来的人