Flux не может получить репозиторий Git
Ошибка Flux «Reconciler error ... failed to checkout and determine revision: unable to list remote for '...'» у GitRepository: source-controller не достучался до сервера Git. Сеть, DNS, сертификат или учётные данные, и почему изменения перестают доезжать до кластера.
Что это значит
source-controller Flux периодически опрашивает репозиторий Git и забирает новые версии. Если сервер Git недоступен или отказал в доступе, ресурс GitRepository переходит в состояние ошибки с этим текстом. Кластер продолжает работать с последней полученной версией, но новые изменения перестают применяться.
После текста unable to list remote идёт причина: таймаут или no such host (сеть или DNS), x509 (сертификат сервера Git не доверен), authentication required или 403 (истёк токен или ключ доступа).
Как проверить
flux get sources git -A
kubectl describe gitrepository <имя> -n flux-system
kubectl logs -n flux-system deploy/source-controller --tail=50
Что сделать
- Сеть или DNS: проверить, что с узлов кластера открывается адрес сервера Git.
- Сертификат: добавить сертификат удостоверяющего центра в секрет, на который ссылается
GitRepository(certSecretRef). - Учётные данные: обновить токен или ключ развёртывания в секрете и выполнить
flux reconcile source git <имя>. - Поставить тревогу на источники Flux в состоянии ошибки: иначе можно неделю не замечать, что изменения не доезжают.
Ошибка повторяется?
Запустите Диагностика: за полминуты он покажет состояние базы, брокера, поиска и сервера. С отчётом разберём причину за 30 минут бесплатного созвона.
Написать