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

    Этот документ представляет основные концепции 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 Сервер

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

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

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

    Ссылки