Сеть
При развертывании экземпляра ТестОпс, вам нужно решить:
- внешний адрес (хост и порт), который пользователи будут использовать для работы с ТестОпс в браузерах.
- порт, на котором ТестОпс будет принимать HTTP-запросы.
Производственное развертывание обычно использует обратный прокси-сервер или балансировщик нагрузки, который обеспечивает маршрутизацию пользовательских запросов на внешний адрес к порту приложения и обеспечивает безопасно е соединение.
По умолчанию, ТестОпс использует незашифрованный протокол HTTP. Однако, с обратным прокси-сервером или балансировщиком нагрузки, возможно включить HTTPS.
Обычно сервис ТестОпс прослушивает порт 8080, а обратный прокси-сервер или балансировщик нагрузки прослушивает порт 443. HTTPS-запросы на порт 443 переводятся в HTTP-запросы на порт 8080, затем ТестОпс обрабатывает их и отвечает на них. При необходимости он использует внешний адрес для генерации межстраничных ссылок.
Общие сетевые параметры
- Kubernetes
- Docker Compose
- DEB/RPM
В отличие от других методов развертывания, Kubernetes предоставляет интегрированный обратный прокси-сервер или балансировщик нагрузки (Ingress или Istio). Он прослушивает порт 80 (или порт 443, если включен HTTPS) и маршрутизирует запросы к порту прослушивания службы Gateway.
Параметры определяются в файле values.yaml:
instanceFqdn
— хост внешнего адреса.port
— порт прослушивания (по умолчанию 8080).proxy
— параметры использования прокси.network.ingress
— параметры использования Ingress, если требуется управлять предоставляемым чартом.network.istio
— параметры использования Istio, если требуется управлять предоставляемым чартом.
Обратите внимание, что необходимо включить либо Ingress, либо Istio, но не оба одновременно.
Например, с конфигурацией ниже пользователи будут получать доступ к экземпляру как “http://testops.example.com” (порт 80), где Ingress будет принимать запросы и отправлять их сервису ТестОпс (порт 8080).
instanceFqdn: testops.example.com
port: 8080
# ...
network:
ingress:
enabled: true
Для развертывания с помощью Docker Compose вы указываете хост и порты через параметры в файле .env:
TESTOPS_INSTANCE_URL
— адрес, по которому пользователи и интеграции обращаются к приложению.TESTOPS_INSTANCE_PORT
— внешний порт контейнера приложения.TESTOPS_CONTAINER_PORT
— порт на котором приложение работает внутри контейнера.
Например, с конфигурацией ниже пользователи будут получать доступ к экземпляру как “http://testops.example.com”, предполагая, что обратный прокси-сервер будет маршрутизировать запросы с порта по умолчанию 80 на порт 8080:
TESTOPS_INSTANCE_URL=testops.example.com
TESTOPS_INSTANCE_PORT=80
TESTOPS_CONTAINER_PORT=8080
Развертывание DEB или RPM всегда прослушивает порт 8080, в то время как внешний хост и порт определяются параметром в файле /opt/testops/conf/testops.conf:
ALLURE_ENDPOINT
— полный внешний URL.
Например, с конфигурацией ниже пользователи будут получать доступ к экземпляру как “http://testops.example.com”, предполагая, что обратный прокси-сервер будет маршрутизировать запросы с порта по умолчанию 80 на порт 8080:
ALLURE_ENDPOINT=http://testops.example.com
Параметры обратного прокси-сервера
При настройке обратного прокси-сервера для ТестОпс убедитесь, что следующие параметры настроены правильно.
-
Максимальный размер тела запроса
Например: client_max_body_size в nginx.Установите этот параметр на 300 MB или выше. Меньший лимит может предотвратить загрузку результатов тестов в ТестОпс.
-
Тайм-аут ответа сервера
Например: proxy_read_timeout в nginx.Установите этот параметр на 300 секунд или выше. Меньший тайм-аут может прерв ать загрузку результатов тестов в ТестОпс.
Включение HTTPS
- Kubernetes
- Docker Compose
- DEB/RPM
И Ingress, и Istio могут работать через протокол HTTPS при наличии действительного TLS-сертификата. Внешний обратный прокси-сервер не требуется.
Измените следующие параметры в файле values.yaml:
network.tls.enabled
—true
.network.tls.secretName
— имя секрета Kubernetes, который хранит TLS-сертификат.
Например:
host: testops.example.com
gateway:
service:
port: 8080
# ...
network:
ingress:
enabled: true
tls:
enabled: true
secretName: allure-tls
Чтобы включить HTTPS для установки Docker Compose, настройте обратный прокси-сервер, такой как nginx.
Затем откройте файл .env и измените TESTOPS_PROTO
с “http” на “https”. Также, измените TESTOPS_INSTANCE_PORT
с “80” на “443”.
Например:
TESTOPS_PROTO=https
TESTOPS_INSTANCE_URL=testops.example.com
TESTOPS_INSTANCE_PORT=443
TESTOPS_CONTAINER_PORT=8080