Спасибо за фидбек! NORA_DOCKER_PROXY_TIMEOUT=300 (или выше) решает проблему уже прямо сейчас. А вот Default 60s, действительно, маловато для больших образов, подниму в следующем релизе.
Еще хардкод timeout в nora mirror - баг, поправлю.
Идея с warmup интересная, записал в roadmap. Скорее всего будет в формате nora warmup image1 image2 --from-compose compose.yml
Обновление: оба формата перенесены с v0.8 на v0.7, выйдут вместе с security-фичами. Terraform Registry (providers + modules) и Ansible Galaxy (collections) будут за cargo features, так что можно будет отключить при сборке, если не нужны. Issues: #133, #134.
Обновление: APT и RPM запланировал на v0.8. Сложность на порядок выше остальных форматов (GPG-подпись, InRelease/repomd.xml, специфичные ожидания apt/yum), поэтому выделил в отдельный релиз после security-фич. Issue: https://github.com/getnora-io/nora/issues/128
Спасибо за запрос! NuGet proxy будет в v0.7, ближайшем security-релизе. Появится кэширование пакетов с nuget.org через NuGet V3 API (Service Index, Package Content, Registration).
Issue: https://github.com/getnora-io/nora/issues/140
Gitea - отличный выбор, если команда уже на нём сидит и форматы совпадают. Для вашего кейса (уйти от JFrog и не платить) совершенно логичное решение.
NORA про другой сценарий: отдельный реестр без Git-сервера вокруг. Пара вещей, которые в Gitea пока не завезли: - Проксирование upstream-реестров - NORA кэширует пакеты из Docker Hub, npmjs, PyPI локально. В Gitea это открытый тикет https://github.com/go-gitea/gitea/issues/21223 с 2022 года до сих пор не реализовано.
- Большие образы - в Gitea пуш образов больше 800 МБ падает с ошибкой 500, и это актуально для свежей v1.25.5 (https://github.com/go-gitea/gitea/issues/36945). В NORA ограничение только по диску.
Вишенка - архитектурное решение. Реестр в Gitea - это плагин внутри монолита. Авторизация через токен в CI до сих пор ломается (https://github.com/go-gitea/gitea/issues/23642). Контейнерный реестр нельзя сделать приватным (https://github.com/go-gitea/gitea/issues/24174). В отдельном реестре этих проблем нет по определению,соответственно, падение реестра не утащит за собой Git-сервер.
Если Gitea у вас для кода и пакеты не нагружают, тогда нет вопросов, всё ок. Но если реестр под нагрузкой в CI, закономерно, что стоит держать его отдельно. NORA стартует за 3 секунды, ест 12 МБ памяти и не роняет ваш Git-сервер.
По остальным из списка: Cloudsmith и Buildkite - облачные сервисы, другая категория. ProGet - больше Windows/.NET мир. RepoFlow - 2 тысячи убитых енотов в год.
Всё верно. Нужный механизм уже реализовывал, правда, с Нексусом, перед которым отлавливали все обращения и сличали с тем, что есть в разрешенных списках, только после этого давали возможность скачать. В этом софте такая фича будет, но чуть позже.
Спасибо за фидбек!
NORA_DOCKER_PROXY_TIMEOUT=300 (или выше) решает проблему уже прямо сейчас. А вот Default 60s, действительно, маловато для больших образов, подниму в следующем релизе.
Еще хардкод timeout в nora mirror - баг, поправлю.
Идея с warmup интересная, записал в roadmap.
Скорее всего будет в формате nora warmup image1 image2 --from-compose compose.yml
Обновление: оба формата перенесены с v0.8 на v0.7, выйдут вместе с security-фичами. Terraform Registry (providers + modules) и Ansible Galaxy (collections) будут за cargo features, так что можно будет отключить при сборке, если не нужны. Issues: #133, #134.
Обе фичи в плане на v0.8:
- deb/APT https://github.com/getnora-io/nora/issues/128
- Conan (C/C++) https://github.com/getnora-io/nora/issues/142
Обновление: APT и RPM запланировал на v0.8. Сложность на порядок выше остальных форматов (GPG-подпись, InRelease/repomd.xml, специфичные ожидания apt/yum), поэтому выделил в отдельный релиз после security-фич. Issue: https://github.com/getnora-io/nora/issues/128
Спасибо за запрос! NuGet proxy будет в v0.7, ближайшем security-релизе. Появится кэширование пакетов с nuget.org через NuGet V3 API (Service Index, Package Content, Registration). Issue: https://github.com/getnora-io/nora/issues/140
Спасибо за дополнение, справедливое замечание.
Gitea - отличный выбор, если команда уже на нём сидит и форматы совпадают. Для вашего кейса (уйти от JFrog и не платить) совершенно логичное решение.
NORA про другой сценарий: отдельный реестр без Git-сервера вокруг.
Пара вещей, которые в Gitea пока не завезли:
- Проксирование upstream-реестров - NORA кэширует пакеты из Docker Hub, npmjs, PyPI локально. В Gitea это открытый тикет https://github.com/go-gitea/gitea/issues/21223 с 2022 года до сих пор не реализовано.
- Большие образы - в Gitea пуш образов больше 800 МБ падает с ошибкой 500, и это актуально для свежей v1.25.5 (https://github.com/go-gitea/gitea/issues/36945).
В NORA ограничение только по диску.
- Очистка мусора - multi-arch образы в Gitea никогда не удаляются, пользователи сообщают о терабайтах мусора (https://github.com/go-gitea/gitea/issues/32053). Автоочистка без тегов - открытый тикет с 2022 года (https://github.com/go-gitea/gitea/issues/21673).
Вишенка - архитектурное решение. Реестр в Gitea - это плагин внутри монолита. Авторизация через токен в CI до сих пор ломается (https://github.com/go-gitea/gitea/issues/23642). Контейнерный реестр нельзя сделать приватным (https://github.com/go-gitea/gitea/issues/24174). В отдельном реестре этих проблем нет по определению,соответственно, падение реестра не утащит за собой Git-сервер.
Если Gitea у вас для кода и пакеты не нагружают, тогда нет вопросов, всё ок. Но если реестр под нагрузкой в CI, закономерно, что стоит держать его отдельно. NORA стартует за 3 секунды, ест 12 МБ памяти и не роняет ваш Git-сервер.
По остальным из списка: Cloudsmith и Buildkite - облачные сервисы, другая категория. ProGet - больше Windows/.NET мир. RepoFlow - 2 тысячи убитых енотов в год.
Добавлю Gitea в сравнение, спасибо за наводку.
https://alternativeto.net/software/nora-registry/
Спасибо за обратную связь!
Будут, скорее всего, но чуть позже.
Всё верно вот посмотрите описание конкретного функционала
https://getnora.dev/ru/configuration/docker-proxy/
По mise - пока сложно сказать, посмотрите в сторону Raw.
Да, оба формата в планах.
github.com/getnora-io/nora/issues/133
github.com/getnora-io/nora/issues/134
Формального нагрузочного тестирования пока не проводил, вот завёл ишуйку: https://github.com/getnora-io/nora/issues/130
Спасибо за обратную связь. Вот здесь описал то, что у вас, скорее всего, было и как настроить https://getnora.dev/ru/configuration/s3-storage/
RWM с несколькими инстансами не поддерживается, можете попробовать пока масштабирование чтения через S3 + CDN/кэш перед NORA.
HA в roadmap.
Спасибо!
Добавил в роудмапу.
Всё верно. Нужный механизм уже реализовывал, правда, с Нексусом, перед которым отлавливали все обращения и сличали с тем, что есть в разрешенных списках, только после этого давали возможность скачать. В этом софте такая фича будет, но чуть позже.