Чтобы настроить зеркалирование репозитория, на странице проекта перейдите в «Настройки» → «Репозиторий» → «Зеркалирование репозиториев».
Если репозиторий пуст, сначала выполните его импорт. При зеркалировании запускаются все хуки, и загрузка большого репозитория может существенно нагрузить систему.
Настройка pull-зеркалирования репозитория
Для одного проекта можно настроить только одну задачу pull-зеркалирования. Задач push-зеркалирования может быть несколько.
Чтобы настроить pull-зеркалирование репозитория, выполните следующие шаги:
-
Перейдите на страницу проекта:
- Откройте проект в интерфейсе Deckhouse Code.
- В левом меню выберите «Настройки» → «Репозиторий».
- Прокрутите до секции «Зеркалирование репозиториев».
-
Укажите URL-адрес репозитория. Учетные данные в URL-адресе игнорируются. Для авторизации используйте поля в блоке «Метод аутентификации» ниже.
-
Настройте аутентификацию:
- Если подключение осуществляется по HTTP(S), в поле «Метод аутентификации» выберите «Имя пользователя и пароль» и укажите:
- «Имя пользователя» — имя пользователя;
- «Пароль» — пароль или токен доступа.
- Если используется SSH-зеркалирование, укажите имя пользователя (обычно
git). После сохранения конфигурации Deckhouse Code сгенерирует SSH-ключ, который будет использоваться для доступа.
- Если подключение осуществляется по HTTP(S), в поле «Метод аутентификации» выберите «Имя пользователя и пароль» и укажите:
Работа расписания и обработка ошибок
- Назначение задач pull-зеркалирования выполняется один раз в час (
Projects::PullMirrorScheduleWorker). - Каждое зеркало обновляется не чаще одного раза в 6 часов.
- Если задача зеркалирования завершилась с ошибкой, следующая попытка будет выполнена при следующем запуске
Projects::PullMirrorScheduleWorker. Максимальное количество попыток при ошибках — 5. Нажатие кнопки “Обновить сейчас” сбрасывает счётчик неуспешных попыток. - Если задача Sidekiq завершилась аварийно (например, при перезапуске Sidekiq), её статус будет обновлён через 3 часа, после чего будет добавлена новая попытка синхронизации.
Особенности работы с LFS (Large File Storage)
При pull-зеркалировании LFS-объекты загружаются только в том случае, если LFS включён в целевом проекте Deckhouse Code.