Об этом проекте

fingerjoin выступает в качестве прокси-агрегатора WebFinger в Kubernetes, позволяя нескольким приложениям fediverse (например, Mastodon) использовать один общий домен. Он обрабатывает запросы к '/.well-known/webfinger', перенаправляя их на все зарегистрированные бэкенды, которые определяются через ресурсы Gateway API HTTPRoute с аннотацией 'fingerjoin.naktis.eu/webfinger: "true"', и объединяет их ответы JSON Resource Descriptor (JRD). Бэкенд-сервисы разрешаются в кластерные FQDN с помощью backendRefs в HTTPRoute. Запросы отправляются параллельно (максимум 10 одновременных, таймаут 5 секунд), при этом размер тела ответа ограничен 256 КиБ. При слиянии приоритет отдается бэкендам с более высоким приоритетом: сохраняется первый субъект, для свойств используется первое значение по ключу, алиасы объединяются и дедуплицируются, а ссылки дедуплицируются по парам (rel, href). Сервис придерживается кодов состояния RFC 7033: 200 (хотя бы один успех), 404 (все бэкенды не нашли ресурс), 410 (ресурс удален навсегда), 502 (сбой бэкенда без успешных ответов) и 503 (бэкенды не зарегистрированы). Дополнительные эндпоинты включают '/healthz' (liveness) и '/readyz' (readiness). Развертывание осуществляется через Helm-чарт и требует прав на уровне кластера для отслеживания ресурсов HTTPRoute.