Установка ТестОпс версии 4.x в Kubernetes
В разделе описана установка ТестОпс версии 4.x. Чтобы установить ТестОпс версии 5.x, воспользуйтесь инструкцией.
Kubernetes - это лучший и рекомендуемый способ развертывания вашего экземпляра ТестОпс в производственной среде.
Единственно официально поддерживаемый вариант развертывания ТестОпс в Kubernetes - это развертывание с использованием нашего официального Helm чарта.
Официальный Helm чарт включает все необходимые зависимости и конфигурации для интеграции с существующей инфраструктурой.
Переход на ТестОпс с установки Allure TestOps
Если вы переходите на ТестОпс с существующего инстанса Allure TestOps, то воспользуйтесь вот этой инструкцией для изменения файлов конфигурации.
Предварительные условия
- Вам необходимо иметь развернутый и настроенный кластер Kubernetes.
- У Вас должен установлен
Helm
. - Учетные данные (логин, пароль) для скачивания образов ТестОпс предоставляются службой продаж при предоставлении ознакомительной или коммерческой лицензии. Учетные данные могут быть использованы для установки как пакетами, так и с помощью docker compose или Kubernetes. Особенности каждого вида установки описаны в соответствующих разделах документации.
- Чтобы начать работу с ТестОпс, Вам необходимо иметь пробную или коммерческую лицензию.
- Пробную лицензию можно получить, заполнив форму запроса на бесплатную пробную версию на нашем сайте.
- Коммерческую лицензию вам поможет приобрести наша команда продаж
Требования к ресурсам
Чтобы быть уверенным, что развернутая система способна работать в условиях производственной нагрузки, мы рекомендуем использовать следующие ресурсы, необходимые для сервисов ТестОпс:
Gateway
При развертывании в производственной среде сервис Gateway требует выделения следующих ресурсов:
Memory requests/limits: 512Mi CPU requests/limits: 1 CPU
Тем не менее, окончательные настройки ресурсов подлежат корректировке, основанной на профиле нагрузки. Мы рекомендуем использовать описанные выше ресурсы по умолчанию и никогда не опускаться ниже у казанных limits
.
UAA
При развертывании в производственной среде сервис UAA требует выделения следующих ресурсов:
Memory requests/limits: 1Gi CPU requests/limits: 1 CPU
Тем не менее, окончательные настройки ресурсов подлежат корректировке, основанной на профиле нагрузки. Мы рекомендуем использовать описанные выше ресурсы по умолчанию и никогда не опускаться ниже указанных limits
.
Report
При развертывании в производственной среде сервис report требует выделения следующих ресурсов:
Memory requests: 3Gi Memory limits: 4Gi CPU requests: 1 CPU CPU limits: 4 CPU
Тем не менее, окончательные настройки ресурсов подлежат корректировке, основанной на профиле нагрузки. Мы рекомендуем использовать описанные выше ресурсы по умолчанию и никогда не опускаться ниже указанных limits
.
Сервис report отвечает за обработку результатов тестов и при увеличении нагрузки на решение может понадобиться масштабирование сервиса report.
Конфигурация
Конфигурация развертывания с помощью нашего Helm-чарта выполняется в файле values.yaml
, который должен содержать параметры, специфичные для Вашей установки.
При работе с развертыванием с помощью нашего Helm чарта, пожалуйста, учитывайте следующее:
- Вам не требуется загружать весь чарт.
- Вы не должны изменять файлы чарта, эта часть находится под управлением только ООО "Инструменты Тестирования".
- Вам необходимо создать свою конфигурацию на базе
values.yaml
, который находится в архиве.- для скачивания архива вам понадобятся имя пользователя и пароль (те же, что и для скачивания образов), которые будут вам предоставлены при получении ознакомительной или коммерческой лицензии.
- Helm прочитает ваши настройки из
values.yaml
и применит их к чарту перед развертыванием ТестОпс.
Подготовьте файл конфигурации
Пожалуйста, возьмите за основу для развертывания файл шаблона, подготовленный нашей командой DevOps, который находится в архиве.
- Этот файл содержит все параметры, необходимые для настройки развертывания.
- Этот файл содержит комментарии к настройкам, которые могут потребоваться конечному пользователю для изменения.
В следующих разделах мы опишем основные параметры конфигурации, которые вы должны обновить перед развертыванием.
Сведения о реестре образов
Найдите раздел registry шаблона values.yaml
Выставьте данные реестра как указано ниже с учетом информации, которую вы получили от отдела продаж.
registry:
enabled: true
repo: reg.qatools.ru
name: allure-testops
imagePullSecret: qatools-secret # это просто название секрета
pullPolicy: IfNotPresent
auth:
username: уникальное имя пользователя для reg.qatools.ru полученное через отдел продаж
password: пароль для reg.qatools.ru полученный через отдел продаж
версия
Пример
version: 4.22.0
Значение: Это версия ПО ТестОпс, которую вы будете устанавливать в вашем окружении.
Рекомендация: Обновите версию ТестОпс до последней рекомендованной. Не устанавливайте другие релизы, кроме случаев, когда это прямо рекомендовано нашей службой поддержки.
Учетные данные администратора
Пример:
username: admin
password: admin
Значение: имя пользователя admin, пароль пользователя admin
ТестОпс имеет учетную запись admin, которую необходимо создать и сохранить в системе.
Имя этого пользователя (по умолчанию admin) и пароль определены в конфигурационном файле, и он будет восстановлен до состояния, описанного в конфигурационном файле, чтобы вы не потеряли доступ к вашему инстансу ТестОпс, несмотря ни на что. Вы не можете отключить этого пользователя в пользовательском интерфейсе, вы не можете удалить его роль или изменить пароль через пользовательский интерфейс. Во время следующего запуска ТестОпс, он снова создаст пользователя admin со всеми доступными правами и с паролем, определенным в конфигурационном файле.
Если вы опустите предоставление начального пароля администратора, то будет создан пользователь по умолчанию admin
и сильный пароль администратора будет сгенерирован системой, а затем сгенерированный пароль будет отправлен в журналы сервиса uaa.
Каждый раз, когда ТестОпс перезапускается, учетная запись пользователя admin
восстанавливается в исходное состояние.
Рекомендация: Измените пароль админа в конфигурации перед развертыванием.
host
Пример:
host: alure.host.name
Значение: FQDN экземпляра ТестОпс, который будет использоваться конечными пользователями для доступа к пользовательскому интерфейсу.
Рекомендации: Должно быть обновлено.
Остальные параметры
Мы постарались и максимально подробно описали все параметры values.yaml внутри самого шаблона файла, чтобы вам было понятнее, какие параметры необходимо менять и для чего. Если у вас возникнут вопросы или замечания по правильному наполнению файла, то напишите нам через наш хелп-деск и мы постараемся вам помочь.
Развертывание инстанса ТестОпс
Перед первым запуском ТестОпс отключите проверку сервисов со стороны kubernetes
Установите для сервисов report, uaa, gateway
probes:
enabled: false
Это небходимо так как ТестОпс при первом запуске выполняет инициализацию БД и последовательные изменения схемы БД для соответствия версии ПО, которую вы указали. Если оставить probes.enabled = true, Kubernetes может перезапустить сервисы и процесс инициализации будет прерван и приложение не сможет запуститься.
Таким же образом следует поступать если в информации о релизе указано, что переход к предыдущему релизу будет невозможен (будут применены изменения в схеме БД и происходить миграция, которая может занять много времени и прерваться при включенном probes).
Запуск ТестОпс
После того, как вы выполнили все настройки в файле values.yaml
, вы можете начать развертывание ТестОпс.
Добавление Helm чарта ТестОпс
helm repo add testops https://dl.qatools.ru/repository/helm --username <username> --password <password>
где username
и password
— это учетные данные для скачивания образов, предоставленные нашей командой продаж.
Обновление данных Helm репозиториев
helm repo update
Развертывание ТестОпс
helm upgrade --install allure-testops testops/allure-testops -f values.yaml
Доступ к веб-интерфейсу ТестОпс
Самый первый запуск системы может занять некоторое время, пожалуйста, подождите до 6-7 минут, прежде чем получить доступ к веб-интерфейсу.
Предварительные условия: ingress
Чтобы получить доступ к веб-интерфейсу, необходимо развернуть ingress контроллер, например nginx или istio.
Доступ к пользовательскому интерфейсу ТестОпс
ТестОпс будет доступен по URL, определенному в параметре host
вашего файла values.yaml
, например, чтобы экземпляр был доступен по адресу <http: allure.local="">
ваш файл values должен содержать следующее:</http:>
.
## your-domain.tld
## the real DNS name (FQDN) of the TestOps instance
host: alure.local
Первоначальный вход в систему
Если вы создали секрет для начального пароля admin
вручную, вы можете использовать его для входа в систему как пользователь admin
.
Если вы не указали пароль, Chart автоматически создаст случайный пароль для пользователя admin
. Найти его можно в логах сервиса uaa
.
Ввод лицензии для вашего инстанса ТестОпс
Следующее, что вы увидите, будет модальное окно, в котором вам нужно будет указать приобретенную лицензию.
После предоставления правильной лицензии вы сможете начать работу.
Обновление развертывания ТестОпс
После того, как вы развернули инстанс ТестОпс, все изменения конфигурации и обновления чарта должны быть выполнены с помощью обновления Helm.
Например, вы меняете настройки к серверу БД или другим элементам инфраструктуры, с которыми работает ТестОпс.
В приведенном ниже примере изменения, которые необходимо применить, находятся в файле с именем values.yaml
.
helm repo update
helm upgrade --install allure-testops testops/allure-testops -f values.yaml
Обновление релиза
Чтобы обновить релиз ТестОпс, вам нужно обновить одну строку в вашем values.yaml
.
Если в информации о релизе указано, что переход к предыдущему релизу будет невозможен (будут применены изменения в схеме БД и происходить миграция, которая может занять много времени), то на время обновления потребуется отключить probes.
probes:
enabled: false
В противном случае процесс миграции данных может быть прерван Kubernetes и решение может стать неработоспособным.
version: 4.22.0
И далее будут те же действия, что и при обновлении параметров конфигурации.
helm repo update
helm upgrade --install allure-testops testops/allure-testops -f values.yaml
Решение проблем
Для получения надлежащей отладочной информации необходимо выполнить следующий набор команд:
Получить список всех установленных компонентов
kubectl get all
Сохранение журналов для каждого компонента ТестОпс
kubectl logs -l app=allure-testops-uaa > uaa-log.txt
kubectl logs -l app=allure-testops-report > report-log.txt
kubectl logs -l app=allure-testops-gateway > gateway-log.txt
Непрерывное журналирование
kubectl logs -f -l app=allure-testops-uaa
kubectl logs -f -l app=allure-testops-report
kubectl logs -f -l app=allure-testops-gateway
Удаление деплоя ТестОпс
Чтобы удалить ТестОпс используя чарт, требуется выполнить
helm delete allure-testops
Изменение конфигурации
Данный раздел предназначен для предоставления рекомендаций по интеграции ТестОпс с существующей инфраструктурой конечного пользователя.
- Выделенный сервер БД PostgreSQL (вне контейнеров)
- Сервис RabbitMQ
- Сервис Redis
Общий принцип работы с Helm чартом
Мы используем Helm чарт для конфигурирования сервисов в k8s. В целом это работает следующим образом:
- Есть большой шаблон Helm чарта, содержащий всю информацию для конфигурации приложения для запуска в k8s.
- Есть
values.yaml
, содержащий настройки, специфичные для развертывания в инфраструктуре конечного пользователя. - Во время развертывания Helm берет настройки из
values.yaml
, указанные конечным пользователем, и применяет их к шаблону, заменяя настройки по умолчанию. - Когда шаблон сервиса обновляется, т.е. в сервис добавляе тся какой-либо новый параметр, это изменение будет внесено в установку конечного пользователя Helm при обновлении продукта развернутого экземпляра.
Эффект и ограничения
- Программное обеспечение ТестОпс управляется Helm чартом для развертывания ТестОпс, и конечным пользователям рекомендуется использовать стандартную диаграмму Helm.
- Если конечный пользователь предпочитает другой способ развертывания ТестОпс, это означает, что конечный пользователь способен настроить такую установку, имея достаточно знаний и опыта.
- При использовании альтернативных способов деплоя приложений в Kubernetes конечный пользователь несет ответственность за отслеживание всех изменений в оригинальном Helm чарте и внесение обновлений в свою конфигурацию без участия производителя решения ТестОпс.
- В случае если конечный пользователь предпочитает другой способ установки ТестОпс, то поддержка такого решения будет ограничена.
Изменение values.yaml
Файл с пользовательскими настройками, используемый в следующих примерах, называется values.yaml
.
Все сервисы, которые используются как внешние, должны быть явно отключены в файле values.yaml
(см. пример ниже).
redis:
enabled: false
rabbitmq:
enabled: false
postgresql:
enabled: false
Если вы установили для сервиса в values.yaml
значение enabled: false
, то вам необходимо указать параметры интеграции для сервиса/приложения в существующей инфраструктуре.
Пример:
В приведенном ниже примере мы будем использовать службу RabbitMQ, работающую как часть существующей инфраструктуры, и не будем использовать ее в рамках развертывания ТестОпс:
rabbitmq:
enabled: false # отключает RabbitMQ из чарта и берет данные для соединения из настроек ниже
host: mq.rabbit.internal
auth:
erlangCookie: <takefromdeployedrabbitmq></takefromdeployedrabbitmq>
username: allure
password: allure
resources: {}
ThОстал ьные сервисы будут иметь такой же подход к интеграции.
Подготовка к развертыванию в производственной среде
Под производственной средой мы понимаем включение ТестОпс в рабочие процессы конечного пользователя с большой нагрузкой на сервисы.
Для производственной среды обязательными условиями являются:
- Выделенный сервер БД PostgreSQL
- Выделенное решение S3, которое не использует ту же файловую систему, что и сервер базы данных
- Выделенное решение RabbitMQ