Как использовать тест рулевого управления для проведения интеграционных тестов? - PullRequest
0 голосов
/ 11 января 2019

Я пытаюсь использовать его для запуска некоторых интеграционных тестов, поэтому для проверки кода службы, который я развертываю, на самом деле все правильно.

В основном, как я настраиваюсь (как описано здесь: https://docs.helm.sh/developing_charts/#chart-tests), создающий этот templates/tests/integration-test.yaml тестовый файл диаграммы, и внутри него укажите, чтобы запустить контейнер, который в основном представляет собой настроенное изображение maven с добавленным тестовым кодом и тестовый контейнер просто запускается командой «mvn test», которая выполняет простую проверку скручивания службы kube, которую развертывает весь этот релиз helm.

Таким образом, тест руля работает.

Однако проблема в том, что во время выполнения теста helm новая версия служебного кода уже подключена к сети и доступна для внешнего мира / пользователей. Конечно, я могу сразу же выполнить откат, если тест helm не пройден, но это не помешает мне временно разместить проблемную версию служебного кода во внешнем мире.

Есть ли способ, при котором можно запустить тест службы / интеграции на модуле, после запуска модуля, но до того, как он будет открыт для службы Kubernetes?

1 Ответ

0 голосов
/ 11 января 2019

В идеале вы сначала должны установить и протестировать в тестовой среде, либо выделенном тестовом кластере, либо пространстве имен. Для дополнительной проверки вы можете сначала установить диаграмму в новое пространство имен и позволить тестам запускаться там, а затем удалить это пространство имен, когда оно все пройдено. Это требует написания тестов таким образом, чтобы они могли обращаться к URL-адресам, специфичным для этого пространства имен. Внутренние URL-адреса кластера, основанные на именах служб, в любом случае будут относиться к пространству имен, но если вы будете использовать внешние тесты в тестах, вам придется либо переключить их на внутренние, либо использовать префикс.

...