• Русский
  • TektonConfig

    TektonConfig — это верхний уровень настраиваемого ресурса, предоставляемого Tekton Operator, который позволяет пользователям устанавливать, настраивать и управлять всеми компонентами Tekton из единой контрольной точки. Он предоставляет единый подход к управлению экосистемой Tekton в рамках кластера Kubernetes.

    Объяснение терминологии

    ТерминОписание
    TektonConfigОсновной настраиваемый ресурс для управления всеми компонентами Tekton через Operator.
    TektonPipelineКомпонент, предоставляющий основную функциональность конвейера для определения и запуска CI/CD рабочих процессов.
    TektonTriggerКомпонент, который позволяет событиям запускать выполнение конвейера.
    TektonChainКомпонент, который предоставляет функции безопасности поставок, такие как подписание и проверка.
    TektonHubКомпонент, который размещает каталог повторно используемых задач и конвейеров.
    TektonResultКомпонент, который хранит и позволяет запрашивать результаты TaskRun и PipelineRun.
    ПрофильОпция конфигурации, определяющая, какие компоненты установить.
    Целевое пространство именПространство имен, в котором будут установлены компоненты Tekton.
    УдалениеФункция, которая очищает завершенные TaskRuns и PipelineRuns для управления ресурсами кластера.

    Почему нам нужен TektonConfig

    Проблема управления компонентами Tekton

    Без TektonConfig управление компонентами Tekton в кластере Kubernetes требует:

    • Ручной установки и настройки каждого компонента отдельно
    • Индивидуального управления версиями компонентов и совместимостью
    • Пользовательского сценарирования для обработки обновлений и изменений конфигурации
    • Отдельного обслуживания конфигурации каждого компонента
    • Сложной координации зависимостей между компонентами

    Этот подход приводит к:

    • Увеличению операционной сложности
    • Более высокому риску ошибок конфигурации
    • Трудностям в поддержании совместимости версий
    • Времязатратным обновлениям и изменениям
    • Непоследовательной конфигурации в разных средах

    Как TektonConfig решает эти проблемы

    TektonConfig предоставляет единый декларативный подход к:

    1. Установке нескольких компонентов: Разворачивайте конвейеры, триггеры и другие компоненты из единого ресурса
    2. Обеспечению совместимости: Оператор управляет совместимостью версий между компонентами
    3. Централизации конфигурации: Настраивайте все компоненты через одну спецификацию
    4. Упрощению обновлений: Обновляйте версии компонентов, изменяя один ресурс
    5. Стандартизации управления: Используйте единообразные шаблоны для всех компонентов
    6. Включению функций, специфичных для платформы: Настраивайте функции, специфичные для Kubernetes или OpenShift, без усилий

    Этот централизованный подход значительно уменьшает операционную сложность и обеспечивает последовательную конфигурацию в разных средах.

    Преимущества

    • Упрощенное управление: Управляйте всеми компонентами Tekton через единый ресурс
    • Сниженные операционные затраты: Оператор обрабатывает установку, конфигурацию и обновления
    • Последовательность: Обеспечение последовательной конфигурации для всех компонентов
    • Совместимость версий: Оператор обеспечивает совместимость версий компонентов
    • Осведомленность о платформе: Предоставляет функции, специфичные для платформы, для Kubernetes и OpenShift
    • Декларативная конфигурация: Используйте подходы, специфичные для Kubernetes, для управления всем стеком Tekton
    • Сниженный риск ошибок: Централизованная проверка предотвратит неправильные конфигурации
    • Очистка ресурсов: Встроенная функция удаления для управления ресурсами кластера

    Применимые сценарии

    TektonConfig имеет решающее значение в следующих сценариях:

    1. Производственные CI/CD среды: Упростите управление установленными Tekton в производственной среде.
    2. Многопользовательские кластеры: Настройте и изолируйте компоненты Tekton в общей среде.
    3. Корпоративные развертывания: Обеспечьте последовательную конфигурацию в нескольких кластерах.
    4. Регулируемые среды: Поддерживайте и проверяйте конкретные настройки для соблюдения регуляторных требований.
    5. Автоматизированная инфраструктура: Используйте подходы GitOps для управления компонентами Tekton.
    6. Сложные CI/CD рабочие процессы: Координируйте несколько компонентов Tekton для комплексных конвейеров.

    Ограничения и ограничения

    • Требуются разрешения на уровне кластера для установки и управления компонентами
    • Некоторые конфигурации могут быть специфичными для платформы (Kubernetes против OpenShift)
    • Изменения в ресурсе TektonConfig могут вызвать повторные развертывания компонентов
    • Некоторые сложные конфигурации могут все же потребовать прямого взаимодействия с ресурсами, специфичными для компонентов
    • Обновления между основными версиями могут потребовать дополнительных шагов

    Принципы

    Структура TektonConfig

    Ресурс TektonConfig имеет следующую структуру:

    apiVersion: operator.tekton.dev/v1alpha1
    kind: TektonConfig
    metadata:
      name: config
    spec:
      # Профиль определяет, какие компоненты устанавливать
      profile: all  # Опции: lite, basic, all
    
      # Целевое пространство имен для компонентов Tekton
      targetNamespace: tekton-pipelines
    
      config:
        nodeSelector:
          ключ: значение
        tolerations:
        - key: "key1"
          operator: "Equal"
          value: "value1"
          effect: "NoSchedule"
        priorityClassName: system-node-critical
    
      # Специфические конфигурации компонентов
      pipeline:
        disable-affinity-assistant: false
        disable-creds-init: false
        enable-api-fields: alpha
        enable-tekton-oci-bundles: true
        performance:
          disable-ha: false
          buckets: 1
          threads-per-controller: 2
        pruner:
          resources:
            - taskrun
            - pipelinerun
          schedule: "0 8 * * *"
          keep: 100
          keep-since: 43200
    
      trigger:
        enable-api-fields: stable
    
      hub:
        params:
          - name: enable-devconsole-integration
            value: "false"
    
      results:
        enable: false
    
      chain:
        enable: false

    Ключевые компоненты и их взаимосвязи

    1. Профиль: Определяет, какие компоненты устанавливать

      • lite: Устанавливает только основной контроллер конвейера
      • basic: Устанавливает контроллеры конвейеров и триггеров
      • all: Устанавливает все доступные компоненты
    2. targetNamespace: Пространство имен, в котором будут установлены компоненты

      • По умолчанию это обычно tekton-pipelines
      • Все компоненты устанавливаются в это пространство имен
    3. Конфигурации компонентов: Специфические настройки для каждого компонента

      • pipeline: Конфигурация для контроллера конвейера
      • trigger: Конфигурация для контроллера триггеров
      • hub: Конфигурация для Tekton Hub
      • results: Конфигурация для Tekton Results
      • chain: Конфигурация для Tekton Chains
    4. Удаление: Конфигурация для автоматической очистки ресурсов

      • resources: Какие ресурсы нужно очищать (TaskRuns, PipelineRuns)
      • schedule: Расписание cron для задач очистки
      • keep: Количество ресурсов для сохранения
      • keep-since: Период времени в секундах для сохранения ресурсов

    Примеры конфигурации

    Минимальная конфигурация

    apiVersion: operator.tekton.dev/v1alpha1
    kind: TektonConfig
    metadata:
      name: config
    spec:
      profile: basic
      targetNamespace: tekton-pipelines

    Конфигурация производства со всеми компонентами

    apiVersion: operator.tekton.dev/v1alpha1
    kind: TektonConfig
    metadata:
      name: config
    spec:
      profile: all
      targetNamespace: tekton-pipelines
    
      pipeline:
        enable-api-fields: stable
        performance:
          disable-ha: false
          buckets: 3
          threads-per-controller: 2
        pruner:
          resources:
            - taskrun
            - pipelinerun
          schedule: "0 1 * * *"
          keep: 500
          keep-since: 172800  # 48 часов
    
      trigger:
        enable-api-fields: stable
    
      hub:
        enable: true
    
      results:
        enable: true
    
      chain:
        enable: true

    Важные объяснения параметров

    Конфигурация конвейера

    Раздел конвейера настраивает основной контроллер конвейера.

    Применимые сценарии

    • Контроль высокой доступности для производственных сред
    • Управление использованием ресурсов в ограниченных средах
    • Включение экспериментальных функций для тестирования
    • Настройка автоматической очистки завершенных запусков

    Ограничения и ограничения

    • Некоторые функции могут быть специфичными для определенных платформ Kubernetes
    • Изменения в настройках высокой доступности могут вызвать временные сбои
    • Параметры API уровня alfa могут изменяться между версиями

    Принципы/Разъяснения параметров

    Ключевые параметры включают:

    • disable-affinity-assistant: Контролирует помощника по привязке для рабочих пространств
    • disable-creds-init: Контролирует инициализацию учетных данных
    • enable-api-fields: Контролирует границы функций (стабильные, альфа, бета)
    • performance: Настройки для производительности контроллера и масштабирования
    • pruner: Конфигурация для автоматической очистки ресурсов

    Конфигурация удалений

    Удаление автоматически очищает завершенные TaskRuns и PipelineRuns для управления ресурсами кластера.

    Применимые сценарии

    • Долгосрочные кластеры с множеством запусков конвейеров
    • CI/CD системы с высокой частотой исполнения
    • Среды с ограниченными ресурсами хранения
    • Сценарии соблюдения нормативных требований, требующие политики хранения

    Примеры конфигураций

    pruner:
      resources:
        - taskrun
        - pipelinerun
      schedule: "0 1 * * *"  # Запустить в 1:00 AM ежедневно
      keep: 100  # Сохраняйте 100 самых недавних запусков
      keep-since: 43200  # Сохраняйте запуски за последние 12 часов (в секундах)

    Справочные материалы