如何发布kubectl run
来从k8s秘密configmap中提取环境变量?
目前,我有:
kubectl run oneoff -i --rm NAME --image=IMAGE --env SECRET=foo
答案 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']}")