Установка сервиса
Эта страница относится к текущей реализации OSA Proxy. Архивная Java/Spring-реализация доступна в разделе Архивная Java/Spring-реализация.
OSA Proxy использует конфигурационный файл osa-proxy.yml. По умолчанию сервис ищет его в рабочей директории, но путь можно передать первым аргументом запуска или через переменную окружения OSA_PROXY_CONFIG_PATH.
Перед запуском текущего OSA Proxy с CodeScoring версии ниже 2026.20.0 укажите codescoring.legacy-judge: true в osa-proxy.yml. В версиях до 2026.20.0 используется legacy API Judge, а OSA Proxy по умолчанию работает с текущим API Judge.
Docker
Пример запуска контейнера с внешним конфигурационным файлом:
Проверка доступности:
Docker Compose
Если включен Redis-кэш вердиктов, добавьте Redis в Compose-файл и укажите его адрес в cache.redis.address.
.env файл
При запуске через Docker Compose файл .env передается в контейнер только если он указан в env_file. Эти переменные можно использовать:
- напрямую как переменные окружения процесса;
- в
osa-proxy.ymlчерез плейсхолдеры вида${VAR_NAME:default_value}.
В примере Compose путь к конфигурации задается отдельно через environment.OSA_PROXY_CONFIG_PATH, поэтому не дублируйте его в .env.
Пример .env:
Пример использования переменных в osa-proxy.yml:
cache.redis.sentinel.addresses — обычный YAML-список. Укажите в нем любое необходимое количество Sentinel endpoints. Если адреса должны задаваться через окружение, для каждого элемента списка можно использовать собственный плейсхолдер ${VAR_NAME}.
Для секретов используйте .env, а не literal-значения в osa-proxy.yml.
Прокси для исходящих HTTP-запросов
OSA Proxy использует стандартные HTTP-клиенты Go. Они автоматически учитывают переменные окружения HTTP_PROXY, HTTPS_PROXY и NO_PROXY; также можно задавать lowercase-варианты http_proxy, https_proxy, no_proxy.
Пример .env для корпоративного proxy:
NO_PROXY должен включать адреса, к которым сервис должен ходить напрямую: локальные адреса, Redis, внутренние Kubernetes/Docker DNS-имена, внутренние домены CodeScoring или package registry, если они не должны проходить через корпоративный proxy.
Дополнительные CA-сертификаты
Если OSA Proxy должен подключаться к ресурсам с самоподписанными или корпоративными root CA, примонтируйте дополнительные CA-сертификаты в контейнер и укажите их директорию в SSL_CERT_DIR.
Значение SSL_CERT_DIR должно включать как системные CA внутри контейнера, так и директорию с дополнительными сертификатами:
Где:
/etc/ssl/certs— системные CA внутри контейнера;/etc/osa-proxy/certs— директория с дополнительными самоподписанными или корпоративными root CA в PEM/CRT формате.
Пример для Docker Compose:
При cache.redis.tls.enabled: true и пустом cache.redis.tls.ca-file Redis-клиент использует это же системное хранилище вместе с каталогом из SSL_CERT_DIR. Для отдельного PEM bundle примонтируйте файл и укажите путь внутри контейнера в cache.redis.tls.ca-file. Полные примеры приведены в разделе TLS для Redis.
Helm
Минимальный пример values.yaml:
Для Redis с корпоративным CA используйте certificates.caDirectory и включите cache.redis.tls внутри config.content. См. корпоративный CA в Helm.
Чтобы маршрутизировать Admin API и Swagger UI через общий Ingress, включите admin.enabled: true, задайте admin.tokenHash и укажите параметр admin: true для административных путей (например, /api/v1, /swagger/, /openapi.json) в списке ingress.hosts[*].paths. Helm-чарт автоматически направит этот трафик на выделенный Service администрирования (порт 8081).
После установки проверьте endpoints:
