Конфигурация Go¶
Миграция прокси для Go¶
Сценарий использования: миграция Go для использования OSA Proxy вместо прямого доступа или внешних публичных прокси.
Следующая таблица содержит сводку по перенаправлению URL для прокси Go. Параметры аутентификации и другие настройки (если применимы, например, для частных репозиториев, требующих специфических учетных данных) должны быть настроены отдельно в соответствии с вашими корпоративными политиками (например, через .netrc или SSH-ключи).
| Источник модулей / Репозиторий | GOPROXY до миграции |
GOPROXY после миграции |
|---|---|---|
| Nexus | https://nexus.host.ru/repository/go-remote |
https://{osa-proxy-url}/nexus-go |
| Artifactor | https://jfrog.host.ru/artifactory/api/go/go-virt |
https://{osa-proxy-url}/arti-go |
| Официальный прокси Go | https://proxy.golang.org |
https://{osa-proxy-url}/inet-go |
Checksum Database (sum.golang.org)
Checksum DB не является отдельным GOPROXY-эндпоинтом. Вместо этого он настраивается через переменную GOSUMDB. Подробнее — в разделе ниже.
Детали миграции прокси Go¶
Настройка окружения до миграции¶
До миграции ваш GOPROXY мог быть установлен на публичный прокси Go (https://proxy.golang.org) или не задан вовсе, что приводило к использованию proxy.golang.org по умолчанию.
Следующее определение репозитория необходимо добавить в YAML-конфигурацию сервиса (файл application.yml) в секцию go. Для применения изменений требуется перезапуск сервиса.
Конфигурация в файле application.yml
go:
enabled: true
repository:
- name: inet-go
scan-package: true
scan-manifest: true
registry: https://proxy.golang.org
sumdb-registry: https://sum.golang.org
Пример текущей конфигурации переменных окружения (например, в файле .bashrc, .zshrc или в CI/CD пайплайне):
Настройка Checksum Database¶
Для проксирования запросов к sum.golang.org через OSA Proxy используется переменная GOSUMDB. Её значение задаётся в формате <имя-базы> <url-прокси>, где URL строится как {osa-proxy-url}/{repo-name}/sumdb/sum.golang.org:
Полный пример запуска:
GOPROXY="https://{osa-proxy-url}/inet-go" \
GOSUMDB="sum.golang.org https://{osa-proxy-url}/inet-go/sumdb/sum.golang.org" \
go get github.com/example/module@v1.0.0