【问题标题】:can you use kubectl patch to add a value dynamically您可以使用 kubectl 补丁动态添加值吗
【发布时间】:2019-01-12 08:37:51
【问题描述】:
我要将图像修补到初始化容器上
我的图像存储在一个名为 $IMAGE_NAME 的变量中
当我跑步时
kubectl 补丁部署 production-art-backend -p {"spec":{"template":{"spec":{"initContainers":[{"name":"run-migrations","image":" $IMAGE_NAME"}]}}}}
它将图像修补为“IMAGE_NAME”而不是变量 IMAGE_NAME 中的值,如何动态修补图像?
【问题讨论】:
标签:
kubernetes
patch
kubectl
kubernetes-helm
【解决方案1】:
这是一个 bash 问题,不一定是 kubectl 问题!
由于 JSON 字符串需要双引号,因此您需要将变量包裹在单引号内。试试这个:
kubectl patch deployment production-art-backend -p {"spec":{"template":{"spec":{"initContainers":[{"name":"run-migrations","image":"'${IMAGE_NAME}'"}]}}}}
【解决方案2】:
请尝试以下命令:
kubectl patch deployment production-art-backend --patch="{\"spec\":{\"template\":{\"spec\":{\"initContainers\":[{\"name\":\"run-migrations\",\"image\":\"$IMAGE_NAME\"}]}}}}"
它对我有用。