#jenkins #patch #kubectl #kubernetes-statefulset
Вопрос:
Мне нужно обновить набор состояний с помощью Дженкинса. Точнее, обновить тему в контейнере инициализации. Это код, который я использую в Jenkins (он отлично работает в терминале):
kubectl patch statefulset test-deploy -n test -p '{"spec": {"template": {"spec":{"initContainers":[{"name": "theme", "image": "xxxx.dkr.ecr.us-east-1.amazonaws.com/testrepo:latest"}]}}}}'
Ошибка, которую я получил: ожидание ‘}’, найдено ‘-‘ @ строка 293, столбец 192. возраст»: «xxx.dkr.ecr.us-east-1.am
Когда я изменил двойные кавычки на одинарные кавычки: kubectl patch statefulset keycloak-задание-развертывание-n ci-среда-разработка-p ‘{‘спецификация’: {‘шаблон’: {‘спецификация’:{‘initContainers’:[{‘имя’: ‘тема’, ‘изображение’: ‘837236160124.dkr.ecr.us-east-1.amazonaws.com/ci/keycloak-theme-thermo-fisher-develop:develop-0.0.1-3′}]}}}}’
У меня есть это:
Ошибка сервера (BadRequest): недопустимый символ «s», ищущий начало строки ключа объекта
Не могли бы вы, пожалуйста, помочь мне понять, что не так с кавычками и какую команду я должен использовать?
Комментарии:
1. Я нахожу, что с ним гораздо проще работать,
kubectl apply
а неpatch
Ответ №1:
Я все понял. Это было связано с показом в Groovy. Это правильная версия:
kubectl patch statefulset test-deploy --namespace=${namespace} -p '{"spec": {"template": {"spec":{"initContainers":[{"name": "theme", "image": "${theme}"}]}}}}'