你可以使用 kubectl patch 动态添加一个值吗

can you use kubectl patch to add a value dynamically

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

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

当我运行

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

它将图像修补为 'IMAGE_NAME' 而不是变量内的值 IMAGE_NAME,我如何动态修补图像?

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

因为JSON字符串需要双引号,所以需要用单引号将变量包起来。试试这个:

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

请尝试以下命令:

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

对我有用。