kubectl从秘密配置中使用env var运行

时间:2018-09-24 22:44:15

标签: kubernetes

如何发布kubectl run来从k8s秘密configmap中提取环境变量?

目前,我有:

kubectl run oneoff -i --rm NAME --image=IMAGE --env SECRET=foo

2 个答案:

答案 0 :(得分:2)

查看overrides命令的run标志...其内容为:

  

对生成的对象的内联JSON覆盖。如果这是非空的,则用于覆盖生成的对象。要求对象提供有效的apiVersion字段。

https://kubernetes.io/docs/reference/generated/kubectl/kubectl-commands#run

因此,在您的情况下,我想它会是这样的:

kubectl run oneoff -i --rm --overrides='
{
  "spec": {
    "containers": [
      {
        "name": "oneoff",
        "image": "IMAGE",
        "env": [
          {
            "name": "ENV_NAME"
            "valueFrom": {
              "secretKeyRef": {
                "name": "SECRET_NAME",
                "key": "SECRET_KEY"
              }
            }
          }
        ]
      }
    ]
  }
}
'  --image= IMAGE

答案 1 :(得分:0)

这是另一种实现技巧的方法:

 kubectl run oneoff -i --rm NAME --image=IMAGE --env SECRET=$(kubectl get secret your-secret -o=jsonpath="{.server['secret\.yml']}")