Установка ТестОпс версии 4.x в Kubernetes 
Внимание
В инструкции описана установка ТестОпс версии 4.x. Чтобы установить ТестОпс версии 5.x, см. Установка ТестОпс версии 5.x в Kubernetes.
Kubernetes - это лучший и рекомендуемый способ развертывания вашего экземпляра ТестОпс в производственной среде.
Единственно официально поддерживаемый вариант развертывания ТестОпс в Kubernetes - это развертывание с использованием нашего официального Helm-чарта.
Официальный Helm-чарт включает все необходимые зависимости и конфигурации для интеграции с существующей инфраструктурой.
Переход на ТестОпс с установки Allure TestOps 
Если вы переходите на ТестОпс с существующего инстанса Allure TestOps, см. Переход на ТестОпс с установки Allure Testops в Kubernetes.
Предварительные условия 
- Вам необходимо иметь развернутый и настроенный кластер Kubernetes. 
- У Вас должен установлен - Helm.
- Вам также понадобится пробная или коммерческая лицензия для ТестОпс. Чтобы ее получить: - Перейдите по адресу qatools.ru/pricing.
- Выберите нужный тип лицензии и заполните форму запроса.
 - После получения запроса с вами свяжется наш отдел продаж. 
- Вместе с лицензионным ключом вы получите имя пользователя и пароль для доступа к образу ТестОпс. 
Требования к ресурсам 
Чтобы быть уверенным, что развернутая система способна работать в условиях производственной нагрузки, мы рекомендуем использовать следующие ресурсы, необходимые для сервисов ТестОпс:
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
Выставьте данные реестра как указано ниже с учетом информации, которую вы получили от отдела продаж.
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 полученный через отдел продажверсия 
Пример
yaml
version: 4.22.0Значение: Это версия ПО ТестОпс, которую вы будете устанавливать в вашем окружении.
Рекомендация: Обновите версию ТестОпс до последней рекомендованной. Не устанавливайте другие релизы, кроме случаев, когда это прямо рекомендовано нашей службой поддержки.
Учетные данные администратора 
Пример:
yaml
username: admin
password: adminЗначение: имя пользователя admin, пароль пользователя admin
ТестОпс имеет учетную запись admin, которую необходимо создать и сохранить в системе.
Имя этого пользователя (по умолчанию admin) и пароль определены в конфигурационном файле, и он будет восстановлен до состояния, описанного в конфигурационном файле, чтобы вы не потеряли доступ к вашему инстансу ТестОпс, несмотря ни на что. Вы не можете отключить этого пользователя в пользовательском интерфейсе, вы не можете удалить его роль или изменить пароль через пользовательский интерфейс. Во время следующего запуска ТестОпс, он снова создаст пользователя admin со всеми доступными правами и с паролем, определенным в конфигурационном файле.
Если вы опустите предоставление начального пароля администратора, то будет создан пользователь по умолчанию admin и сильный пароль администратора будет сгенерирован системой, а затем сгенерированный пароль будет отправлен в журналы сервиса uaa.
Каждый раз, когда ТестОпс перезапускается, учетная запись пользователя admin восстанавливается в исходное состояние.
Рекомендация: Измените пароль админа в конфигурации перед развертыванием.
host 
Пример:
yaml
host: alure.host.nameЗначение: FQDN экземпляра ТестОпс, который будет использоваться пользователями для доступа к пользовательскому интерфейсу.
Рекомендации: Должно быть обновлено.
Остальные параметры 
Мы постарались и максимально подробно описали все параметры values.yaml внутри самого шаблона файла, чтобы вам было понятнее, какие параметры необходимо менять и для чего. Если у вас возникнут вопросы или замечания по правильному наполнению файла, то напишите нам через наш хелп-деск и мы постараемся вам помочь.
Развертывание инстанса ТестОпс 
Перед первым запуском ТестОпс отключите проверку сервисов со стороны kubernetes
Установите для сервисов report, uaa, gateway
yaml
probes:
  enabled: falseЭто небходимо так как ТестОпс при первом запуске выполняет инициализацию БД и последовательные изменения схемы БД для соответствия версии ПО, которую вы указали. Если оставить probes.enabled = true, Kubernetes может перезапустить сервисы и процесс инициализации будет прерван и приложение не сможет запуститься.
Таким же образом следует поступать если в информации о релизе указано, что переход к предыдущему релизу будет невозможен (будут применены изменения в схеме БД и происходить миграция, которая может занять много времени и прерваться при включенном probes).
Запуск ТестОпс 
После того, как вы выполнили все настройки в файле values.yaml, вы можете начать развертывание ТестОпс.
Добавление Helm-чарта ТестОпс 
bash
helm repo add testops https://dl.qatools.ru/repository/helm --username <username> --password <password>где username и password — это учетные данные для скачивания образов, предоставленные нашим отделом продаж.
Обновление данных Helm репозиториев 
bash
helm repo updateРазвертывание ТестОпс 
bash
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:>.
yaml
## your-domain.tld
## the real DNS name (FQDN) of the TestOps instance
host: alure.localПервоначальный вход в систему 
Если вы создали секрет для начального пароля admin вручную, вы можете использовать его для входа в систему как пользователь admin.
Если вы не указали пароль, Chart автоматически создаст случайный пароль для пользователя admin. Найти его можно в логах сервиса uaa.
Ввод лицензии для вашего инстанса ТестОпс 
Следующее, что вы увидите, будет модальное окно, в котором вам нужно будет указать приобретенную лицензию.
После предоставления правильной лицензии вы сможете начать работу.
Обновление развертывания ТестОпс 
После того, как вы развернули инстанс ТестОпс, все изменения конфигурации и обновления чарта должны быть выполнены с помощью обновления Helm.
Например, вы меняете настройки к серверу БД или другим элементам инфраструктуры, с которыми работает ТестОпс.
В приведенном ниже примере изменения, которые необходимо применить, находятся в файле с именем values.yaml.
bash
helm repo update
helm upgrade --install allure-testops testops/allure-testops -f values.yamlОбновление релиза 
Чтобы обновить релиз ТестОпс, вам нужно обновить одну строку в вашем values.yaml.
Если в информации о релизе указано, что переход к предыдущему релизу будет невозможен (будут применены изменения в схеме БД и происходить миграция, которая может занять много времени), то на время обновления потребуется отключить probes.
yaml
probes:
  enabled: falseВ противном случае процесс миграции данных может быть прерван Kubernetes и решение может стать неработоспособным.
yaml
version: 4.22.0И далее будут те же действия, что и при обновлении параметров конфигурации.
bash
helm repo update
helm upgrade --install allure-testops testops/allure-testops -f values.yamlРешение проблем 
Для получения надлежащей отладочной информации необходимо выполнить следующий набор команд:
Получить список всех установленных компонентов 
bash
kubectl get allСохранение журналов для каждого компонента ТестОпс 
bash
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Непрерывное журналирование 
bash
kubectl logs -f -l app=allure-testops-uaa
kubectl logs -f -l app=allure-testops-report
kubectl logs -f -l app=allure-testops-gatewayУдаление деплоя ТестОпс 
Чтобы удалить ТестОпс используя чарт, требуется выполнить
bash
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 (см. пример ниже).
yaml
redis:
  enabled: false
rabbitmq:
  enabled: false
postgresql:
  enabled: falseЕсли вы установили для сервиса в values.yaml значение enabled: false, то вам необходимо указать параметры интеграции для сервиса/приложения в существующей инфраструктуре.
Пример:
В приведенном ниже примере мы будем использовать службу RabbitMQ, работающую как часть существующей инфраструктуры, и не будем использовать ее в рамках развертывания ТестОпс:
yaml
rabbitmq:
  enabled: false # отключает RabbitMQ из чарта и берет данные для соединения из настроек ниже
  host: mq.rabbit.internal
  auth:
    erlangCookie: <takefromdeployedrabbitmq></takefromdeployedrabbitmq>
    username: allure
    password: allure
  resources: {}ThОстальные сервисы будут иметь такой же подход к интеграции.
Подготовка к развертыванию в производственной среде 
Под производственной средой мы понимаем включение ТестОпс в рабочие процессы пользователя с большой нагрузкой на сервисы.
Для производственной среды обязательными условиями являются:
- Выделенный сервер БД PostgreSQL
- Выделенное решение S3, которое не использует ту же файловую систему, что и сервер базы данных
- Выделенное решение RabbitMQ

