Получение точного статуса развертывания модуля openshift - PullRequest
0 голосов
/ 19 сентября 2019

У меня есть этап развертывания в Jenkins, который выполняет команды "oc patch" и "oc rollout".Эти команды заменяют имя образа докера в DeploymentConfig и выдают изменения в openshift.Как вы можете себе представить, это асинхронный вызов.Это означает, что в Jenkins я не могу проверить, работает или нет недавно развернутый модуль.Дженкинс просто выполняет команды oc и переходит к выполнению следующего этапа.Мое требование - я хочу вернуть фактический статус pod в Jenkins, чтобы пометить конвейер как успешный / неудачный.

Я не смог найти ни одну команду oc или kubectl, которая бы предоставляла мне точный статус развертывания с использованием синхронного вызова.В качестве обходного пути я написал сценарий оболочки, который проверяет состояние pod (используя grep) в течение определенного периода времени после "oc rollout" и отправляет статус выхода обратно в оболочку Jenkins.Я чувствую, что это неправильный метод для проверки развертывания, так как время выполнения моего конвейера увеличивается.

Есть ли у нас стандартная утилита в openshift / kubernetes, которая может предоставить мне точное состояние после развертывания модуля, на которое я могу положитьсяи с помощью которого я могу отметить успешность / неудачу моего конвейера развертывания в Jenkins.

Обратите внимание, я открываю сеанс оболочки в конвейере и выполняю команды oc cli на агенте, на котором установлен oc cli.Этот агент не входит в кластер openshift, и Дженкинс сидит вне кластера openshift.

1 Ответ

0 голосов
/ 19 сентября 2019

Вы должны использовать oc rollout status

Синопсис

oc статус развертывания

Описание

Следите за состоянием последнего выпуска, пока он не будет завершен.

...