如何将密钥注入kube-prometheus-stack的values.yaml(SMTP配置)
从Kubernetes Secret注入Grafana SMTP密码到kube-prometheus-stack的values.yml
要将已存在的grafana-secrets Secret中的SENDGRID_API_KEY注入到Grafana的SMTP密码配置,你需要调整values.yml,让Grafana加载该Secret作为环境变量,再在grafana.ini中引用这个变量。
修改后的values.yml配置
grafana: # 加载指定Secret,将其中的键转为容器环境变量 envFrom: - secretRef: name: grafana-secrets grafana.ini: smtp: enabled: true host: smtp.sendgrid.net:587 user: apikey password: "${SENDGRID_API_KEY}" from_address: "my-from-address" from_name: Grafana skip_verify: false
关键说明
envFrom.secretRef.name指定要加载的Secret名称,这样Secret内的所有键值对都会被自动转为Grafana容器的环境变量,SENDGRID_API_KEY会被正确注入。- grafana.ini中的
password字段用双引号包裹${SENDGRID_API_KEY},确保Grafana能正确解析环境变量(避免因YAML语法解析问题导致变量失效)。
验证Secret格式(可选)
确保你的grafana-secrets是Opaque类型,且SENDGRID_API_KEY的值已正确base64编码。如果是用命令创建的,可参考:
kubectl create secret generic grafana-secrets --from-literal=SENDGRID_API_KEY="你的SendGrid API密钥" -n <你的命名空间>
更新部署
执行helm升级命令应用配置:
helm upgrade kube-prometheus-stack prometheus-community/kube-prometheus-stack -f values.yml -n <你的命名空间>
内容的提问来源于stack exchange,提问作者James McCorkindale
相关产品推荐
相关产品推荐

