您可以使用kubectl补丁动态添加值吗

时间:2018-08-04 21:47:07

标签: kubernetes patch kubectl kubernetes-helm

我要将图像修补到初始化容器上

我的图像存储在名为$ IMAGE_NAME的变量中

我跑步时

  

kubectl修补程序部署production-art-backend -p {“ spec”:{“ template”:{“ spec”:{“ initContainers”:[{“ name”:“ run-migrations”,“ image”:“ $ IMAGE_NAME“}]}}}}

它将映像修补为“ IMAGE_NAME”,而不是变量IMAGE_NAME中的值,如何动态修补映像?

2 个答案:

答案 0 :(得分:3)

这是一个bash问题,不一定是kubectl问题!

由于JSON字符串需要双引号,因此您需要将变量包装在单引号内。试试这个:

kubectl patch deployment production-art-backend -p {"spec":{"template":{"spec":{"initContainers":[{"name":"run-migrations","image":"'${IMAGE_NAME}'"}]}}}}

答案 1 :(得分:0)

请尝试以下命令:

kubectl patch deployment production-art-backend --patch="{\"spec\":{\"template\":{\"spec\":{\"initContainers\":[{\"name\":\"run-migrations\",\"image\":\"$IMAGE_NAME\"}]}}}}"

对我有用。