Ресолверы
Ресолвер — это компонент в Tekton, который позволяет удалённо разрешать ресурсы, такие как Задачи и Конвейеры. Ресолверы позволяют ссылаться на ресурсы и получать их из внешних местоположений, а не определять их непосредственно в вашем кластере Kubernetes.
Содержание
Зачем нужны ресолверыПроблемы традиционного управления ресурсамиРешение TektonПреимуществаСценарииОграничения и ограниченияПринципыПроцесс разрешенияСсылки на ресурсыПримеры конфигурацииПример Git резолвераПример Hub резолвераПример HTTP резолвераВстроенные резолверыGit резолверСценарии использованияПринципыHub резолверСценарии использованияПринципыHTTP резолверСценарии использованияПринципыСсылкиЗачем нужны ресолверы
Проблемы традиционного управления ресурсами
В системах CI/CD управление и обмен ресурсами между командами и проектами представляет собой несколько проблем:
- Контроль версий: Сложность в отслеживании и управлении версиями ресурсов CI/CD
- Обмен: Ограниченные возможности для обмена ресурсами между командами и организациями
- Обслуживание: Проблемы с обновлением и обслуживанием ресурсов, используемых несколькими конвейерами
- Обнаружимость: Сложности в обнаружении и использовании ресурсов, созданных другими
- Согласованность: Обеспечение согласованных определений ресурсов на разных средах
Решение Tekton
Ресолверы Tekton решают эти проблемы следующим образом:
- Удалённое разрешение: Получение ресурсов из внешних местоположений во время выполнения
- Управление версиями: Позволяет ссылаться на конкретные версии ресурсов
- Централизованное хранение: Позволяет хранить ресурсы в централизованных репозиториях
- Динамическое получение: Получение последней версии ресурсов по мере необходимости
- Гибкие источники: Поддержка множественных источников ресурсов (Git, Пакеты, HTTP и т.д.)
Преимущества
- Повторное использование: Ресурсы можно легко делиться и повторно использовать между командами и проектами
- Контроль версий: Ресурсы можно версионировать и отслеживать в системе управления версиями
- Снижение дублирования: Исключает необходимость дублирования определений ресурсов
- Упрощённые обновления: Ресурсы можно обновлять в одном месте, и они автоматически используются всеми потребителями
- Улучшенная обнаружимость: Ресурсы можно организовать и обнаруживать в централизованных репозиториях
- Согласованность: Обеспечивает согласованные определения ресурсов на разных средах
Сценарии
Ресолверы полезны в различных сценариях, включая:
- Общие библиотеки задач: Поддержка центрального репозитория общих задач
- Шаблоны CI/CD: Предоставление стандартизированных шаблонов конвейеров для команд
- Согласованность между средами: Обеспечение согласованных определений ресурсов между разработкой, тестированием и производством
- Стандарты организации: Принуждение к соблюдению организационных стандартов для процессов CI/CD
- Интеграция с третьими сторонами: Использование задач и конвейеров, разработанных сообществом
- Замена ClusterTasks: Предоставление общих задач без необходимости использования ресурсов с широкими правами доступа
Ограничения и ограничения
- Ресолверы требуют сетевого доступа к внешним местоположениям ресурсов
- Разрешение происходит во время создания TaskRun/PipelineRun, а не во время выполнения
- Некоторые ресолверы могут требовать дополнительной конфигурации для аутентификации
- Проблемы с сетью могут повлиять на доступность удалённо разрешённых ресурсов
- Необходимость учитывать вопросы безопасности при использовании внешних ресурсов
Принципы
Процесс разрешения
Когда ссылка на ресурс разрешена:
- Tekton определяет тип ресолвера по ссылке на ресурс
- Вызывается соответствующий ресолвер для получения ресурса
- Ресолвер получает ресурс из внешнего местоположения
- Ресурс проверяется и преобразуется в соответствующий ресурс Tekton
- Разрешённый ресурс используется в TaskRun или PipelineRun
Ссылки на ресурсы
Ссылки на ресурсы указывают:
- Тип ресолвера, который будет использоваться (git, bundle, hub и т.д.)
- Местоположение ресурса
- Необязательные параметры, такие как версия, ветка или путь
- Информацию об аутентификации, если это необходимо
Примеры конфигурации
Пример Git резолвера
Пример Hub резолвера
Пример HTTP резолвера
Встроенные резолверы
Git резолвер
Git резолвер получает ресурсы из Git-репозиториев.
Сценарии использования
- Хранение задач и конвейеров в том же репозитории, что и код приложения
- Версионирование ресурсов CI/CD вместе с кодом приложения
- Обмен ресурсами между командами через Git-репозитории
Принципы
Git резолвер:
- Клонирует указанный Git-репозиторий
- Переключается на указанную ревизию (ветка, тег или коммит)
- Получает ресурс из указанного пути
- Поддерживает аутентификацию через Kubernetes секреты
Hub резолвер
Hub резолвер получает ресурсы из Tekton Hub.
Сценарии использования
- Обнаружение и использование задач и конвейеров, созданных сообществом
- Доступ к кураторскому каталогу ресурсов CI/CD
- Стандартизация на хорошо протестированных и поддерживаемых ресурсах
Принципы
Hub резолвер:
- Подключается к API Tekton Hub
- Получает указанный ресурс по имени и версии
- Поддерживает различные каталоги и версии
- Предоставляет доступ к ресурсам, созданным сообществом
HTTP резолвер
HTTP резолвер получает ресурсы с удалённого HTTP-сервера.
Сценарии использования
- Получение ресурсов с удалённого сервера
- Доступ к пользовательским или частным ресурсам
- Использование существующих веб-служб для разрешения ресурсов
Принципы
HTTP резолвер:
- Получает указанный ресурс с удалённого сервера
- Предоставляет доступ к пользовательским или частным ресурсам