Просто чтобы уточнить.
- Я не говорю о лучших практиках Хелма. Я могу прочитать их здесь: https://helm.sh/docs/chart_best_practices/
- Я не говорю о Терратесте.
Меня интересует Helm Test, вы можете прочитать об этом здесь https://helm.sh/docs/chart_tests/#chart-tests.
К сожалению, документация не предоставляет вам много информации иэто частично является причиной этого вопроса.
Что у нас есть:
- Мы можем иметь тест, определенный в диаграмме, следующим путем
our-app / templates / tests / test-our-app.yaml
Насколько я понимаю, согласно документации, это не модульный тест для диаграммы, а скорее тест на дым или интеграционный тест. Документация: «проверьте, что ваша диаграмма работает, как ожидалось, когда она установлена». Это именно то, что мне нужно. Чтобы запустить тест
https://helm.sh/docs/chart_tests/#steps-to-run-a-test-suite-on-a-release. Нам нужно установить наше приложение Chart
$ helm install our-app
и затем мы можем проверить это изображение
$ helm test release-with-our-app
Вещи, которые я хотел бы уточнить:
Если у нас есть два отдельных изображения докера илиодин для применения и испытаний? ...
а). В случае если это одно изображение как для кода приложения, так и для тестового кода, мы добавляем код для теста / тестов всего этого изображения, что делает его больше, и дополнительно нам нужно поместить зависимости, требуемые тестами для этого изображения. ,Мне это решение кажется неправильным.
b). Случай, когда у нас есть отдельное изображение для тестов, имеет больше смысла, потому что наш образ докера приложения свободен от любых ненужных зависимостей. Более того, во втором решении нас не очень заботит размер изображения докера с тестами, потому что предполагается, что это недолговечное изображение, которое отключается, когда тесты на нем заканчиваются.
Верно ли мое предположение, и у нас должно быть отдельное изображение для этих тестов?
В случае, если есть два отдельных изображения, одно для кода, другое для тестов. Как мы поженим их друг с другом? Означает ли это, что мы должны передать номер сборки / выпуска команде helm test, чтобы она могла вытащить правильный образ для тестов?
Также в случае, если у нас есть два отдельных изображения. Нужно ли указывать запуск теста в файле Docker для тестов? например:
CMD ["sh", "-c", "gradle test -Denvironment=$ENVIRONMENT"]
Или это должно быть внутри диаграммы
our-app/templates/tests/test-our-app.yaml
Например, test.yamlиз репозитория MySQL:
https://github.com/helm/charts/blob/master/stable/mysql/templates/tests/test-configmap.yaml
Похоже, среды вообще не упоминаются в документации. Мой вопрос заключается в том, каков наилучший / рекомендуемый способ передачи имени среды на диаграмму, чтобы тесты знали, какие конечные точки нужно использовать и т. Д. Должно ли это быть Chart args
Как передать динамические аргументы в рулевую диаграмму, которая выполняет задание ?