• Русский
  • Основные концепции

    В этом документе представлены фундаментальные концепции Tekton Results, которые помогут вам понять его назначение, компоненты и модель данных.

    Что такое 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 выглядит следующим образом:

    1. Пользователь создаёт TaskRun или PipelineRun через Kubernetes API
    2. Result Watcher обнаруживает новый ресурс и отслеживает его изменения
    3. При обновлении TaskRun/PipelineRun Watcher создаёт или обновляет соответствующие Records в базе данных Results
    4. Watcher аннотирует исходный TaskRun/PipelineRun идентификаторами Result
    5. Пользователи могут выполнять запросы к API Results для получения данных выполнения
    6. После безопасного сохранения данных в базе Results исходные ресурсы Kubernetes могут быть безопасно удалены из кластера

    Этот процесс гарантирует сохранность данных выполнения даже после удаления исходных ресурсов Kubernetes, обеспечивая полную историю CI/CD активностей.

    Ссылки