Основные концепции
В этом документе представлены фундаментальные концепции Tekton Results, которые помогут вам понять его назначение, компоненты и модель данных.
Содержание
Что такое Tekton Results?Ключевые компоненты1. API Server2. Watcher3. Retention Policy AgentМодель данныхResultsRecordsЖизненный цикл ResultСсылкиЧто такое Tekton Results?
Tekton Results — это компонент экосистемы Tekton CI/CD, обеспечивающий долгосрочное хранение и возможности запросов к данным выполнения Tekton. Он помогает пользователям логически группировать историю CI/CD нагрузок и отделять долгосрочное хранение результатов от контроллера Pipeline.
Основные преимущества Tekton Results включают:
- Постоянное хранение: хранение истории выполнения (TaskRuns, PipelineRuns, логи) в выделенной базе данных вместо Kubernetes etcd
- Группировка результатов: объединение связанных нагрузок вместе (например, объединение связанных TaskRuns и PipelineRuns в единый блок)
- Оптимизация ресурсов: освобождение ресурсов etcd за счёт перемещения завершённых запусков во внешнее хранилище
- Сохранение логов: хранение логов, созданных TaskRuns/PipelineRuns, чтобы завершённые запуски можно было очистить для экономии ресурсов кластера
Ключевые компоненты
Tekton Results состоит из трёх основных компонентов:
1. API Server
API сервер предоставляет интерфейс gRPC и REST с возможностью выполнения запросов, поддерживаемый постоянным хранилищем. Он позволяет пользователям:
- Сохранять и извлекать данные выполнения (TaskRuns, PipelineRuns, логи)
- Выполнять запросы и фильтрацию результатов по различным критериям
- Группировать связанные выполнения вместе
API сервер использует аутентификацию и авторизацию в стиле Kubernetes, что делает его знакомым пользователям экосистемы Kubernetes.
2. Watcher
Watcher — это контроллер Kubernetes, который:
- Отслеживает изменения TaskRun и PipelineRun в кластере
- Автоматически создаёт или обновляет соответствующие Records в базе данных Results
- Аннотирует исходные объекты TaskRun/PipelineRun идентификаторами Result
- Опционально удаляет завершённые запуски после их сохранения в базе данных
Watcher гарантирует автоматический сбор данных выполнения без необходимости изменять существующие рабочие процессы Tekton.
3. Retention Policy Agent
Retention Policy Agent управляет жизненным циклом сохранённых данных, выполняя:
- Удаление устаревших Results и связанных с ними Records из базы данных согласно настраиваемым политикам
- Запуск задач по очистке по расписанию
- Применение максимальных периодов хранения данных выполнения
Модель данных
Tekton Results использует иерархическую модель данных, состоящую из двух основных сущностей:
Results
Results — это агрегаторы верхнего уровня, которые группируют связанные Records вместе. Они представляют логическую единицу работы, например, выполнение CI/CD pipeline, вызванное определённым событием. Results содержат:
- Уникальный идентификатор
- Метаданные (время создания, время обновления)
- Аннотации (пары ключ-значение для пользовательских метаданных)
- Сводную информацию (статус, тип и т. д.)
Records
Records — это отдельные экземпляры данных, принадлежащие Result. Они представляют конкретные артефакты или события внутри CI/CD рабочего процесса, такие как:
- Выполнения TaskRun
- Выполнения PipelineRun
- Данные логов
- Данные событий
Records содержат:
- Уникальное имя
- Ссылку на родительский Result
- Идентификатор типа данных (например,
tekton.dev/v1.TaskRun,tekton.dev/v1.PipelineRun) - Собственно содержимое данных (хранится в виде сериализованного объекта)
Эта модель данных обеспечивает гибкую организацию данных выполнения CI/CD, облегчая отслеживание и запрос связанных действий.
Жизненный цикл Result
Типичный поток данных через Tekton Results выглядит следующим образом:
- Пользователь создаёт TaskRun или PipelineRun через Kubernetes API
- Result Watcher обнаруживает новый ресурс и отслеживает его изменения
- При обновлении TaskRun/PipelineRun Watcher создаёт или обновляет соответствующие Records в базе данных Results
- Watcher аннотирует исходный TaskRun/PipelineRun идентификаторами Result
- Пользователи могут выполнять запросы к API Results для получения данных выполнения
- После безопасного сохранения данных в базе Results исходные ресурсы Kubernetes могут быть безопасно удалены из кластера
Этот процесс гарантирует сохранность данных выполнения даже после удаления исходных ресурсов Kubernetes, обеспечивая полную историю CI/CD активностей.