在Jenkins管道中运行kubectl修补程序statefulset
我需要用Jenkins更新statefulset。更准确地说,更新init容器中的主题。 这是我在Jenkins中使用的代码(在terminal中工作正常): 我得到的错误:应为'}',在第293行第192列找到'-'。 年龄“:“xxx.dkr.ecr.us-east-1.am 当我将双引号更改为单引号时: kubectl修补程序statefulset keydove作业部署-n ci环境开发-p'{'spec':{'template':{'spec':{'initContainers':[{'name':'theme','image':'837236160124.dkr.ecr.us-east-1.amazonaws.com/ci/keydove-theme-thermo-fisher-develop:develop-0.0.1-3'}}}} 我明白了: 服务器错误(BadRequest):查找对象键字符串开头的无效字符“s”在Jenkins管道中运行kubectl修补程序statefulset,jenkins,patch,kubectl,kubernetes-statefulset,Jenkins,Patch,Kubectl,Kubernetes Statefulset,我需要用Jenkins更新statefulset。更准确地说,更新init容器中的主题。 这是我在Jenkins中使用的代码(在terminal中工作正常): 我得到的错误:应为'}',在第293行第192列找到'-'。 年龄“:“xxx.dkr.ecr.us-east-1.am 当我将双引号更改为单引号时: kubectl修补程序statefulset keydove作业部署-n ci环境开发-p'{'spec':{'template':{'spec':{'initContainers':[{
你能帮我认识一下引号有什么问题吗?我应该用什么命令?我明白了。这与Groovy中的筛选有关。这是正确的版本:
kubectl patch statefulset test-deploy --namespace=${namespace} -p '{\"spec\": {\"template\": {\"spec\":{\"initContainers\":[{\"name\": \"theme\", \"image\": \"${theme}\"}]}}}}'
我发现使用
kubectl apply
比使用patch
kubectl patch statefulset test-deploy --namespace=${namespace} -p '{\"spec\": {\"template\": {\"spec\":{\"initContainers\":[{\"name\": \"theme\", \"image\": \"${theme}\"}]}}}}'