Основные Concepts
Этот документ представляет основные концепции Tekton Results, помогая вам понять его назначение, компоненты и модель данных.
Содержание
Что такое Tekton Results?Основные Компоненты1. API Сервер2. Наблюдатель3. Агент политики храненияМодель ДанныхРезультатыЗаписиЖизненный Цикл РезультатаСсылкиЧто такое 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 Сервер
API сервер предоставляет запрашиваемый интерфейс gRPC и REST, поддерживаемый постоянным хранилищем. Он позволяет пользователям:
- Хранить и извлекать данные выполнения (TaskRuns, PipelineRuns, журналы)
- Запрашивать и фильтровать результаты на основе различных критериев
- Группировать связанные выполнения вместе
API сервер использует аутентификацию и авторизацию в стиле Kubernetes, что делает его знакомым для пользователей экосистемы Kubernetes.
2. Наблюдатель
Наблюдатель — это контроллер Kubernetes, который:
- Следит за изменениями TaskRun и PipelineRun в кластере
- Автоматически создает или обновляет соответствующие записи в базе данных Results
- Аннотирует оригинальные объекты TaskRun/PipelineRun идентификаторами результата
- Опционально удаляет завершенные запуски после их хранения в базе данных
Наблюдатель обеспечивает автоматическое захватывание данных выполнения без необходимости изменения существующих рабочих процессов Tekton.
3. Агент политики хранения
Агент политики хранения управляет жизненным циклом сохраненных данных, выполняя следующие действия:
- Удаление старых результатов и их связанных записей из базы данных на основе настраиваемых политик
- Выполнение задач обрезки по расписанию
- Принуждение к максимальным срокам хранения данных выполнения
Модель Данных
Tekton Results использует иерархическую модель данных, состоящую из двух основных сущностей:
Результаты
Результаты — это агрегаторы верхнего уровня, которые группируют связанные записи вместе. Они представляют собой логическую единицу работы, такую как выполнение CI/CD пайплайна, вызванное определенным событием. Результаты содержат:
- Уникальный идентификатор
- Метаданные (время создания, время обновления)
- Аннотации (парные ключ-значение для пользовательских метаданных)
- Информацию о состоянии (статус, тип и др.)
Записи
Записи — это отдельные экземпляры данных, которые принадлежат результату. Они представляют собой конкретные артефакты или события в рамках рабочего процесса CI/CD, такие как:
- Выполнения TaskRun
- Выполнения PipelineRun
- Данные журналов
- Данные событий
Записи содержат:
- Уникальное имя
- Ссылку на родительский результат
- Идентификатор типа данных (например,
tekton.dev/v1.TaskRun,tekton.dev/v1.PipelineRun) - Фактическое содержание данных (хранится как сериализованный объект)
Эта модель данных позволяет гибко организовать данные выполнения CI/CD, облегчая отслеживание и запрос связанных действий.
Жизненный Цикл Результата
Типичный поток данных через Tekton Results выглядит следующим образом:
- Пользователь создает TaskRun или PipelineRun через API Kubernetes
- Наблюдатель результатов обнаруживает новый ресурс и отслеживает его изменения
- Когда TaskRun/PipelineRun обновляется, Наблюдатель создает или обновляет соответствующие записи в базе данных Results
- Наблюдатель аннотирует оригинальный TaskRun/PipelineRun идентификаторами результата
- Пользователи могут запрашивать API результатов для извлечения данных выполнения
- Как только данные безопасно хранятся в базе данных Results, оригинальные ресурсы Kubernetes могут быть безопасно удалены из кластера
Этот поток обеспечивает сохранение данных выполнения даже после удаления оригинальных ресурсов Kubernetes, обеспечивая полную историю действий CI/CD.