Архитектура
Содержание
Tekton Operator Architecture OverviewОсновные компоненты1. Custom Resource Definitions (CRDs)2. Controller3. WebhookРабочий процессАрхитектура развертыванияБазовые компонентыВзаимосвязи компонентовАрхитектура безопасностиДизайн расширяемостиReferencesTekton Operator Architecture Overview
Tekton Operator — это расширение Kubernetes, которое устанавливает, обновляет и управляет компонентами TektonCD в любом кластере Kubernetes. Он следует паттерну Kubernetes Operator для обеспечения управления жизненным циклом компонентов Tekton.
Основные компоненты
1. Custom Resource Definitions (CRDs)
Tekton Operator определяет несколько кастомных ресурсов для управления различными компонентами Tekton:
- TektonConfig: верхнеуровневый ресурс, который оркестрирует установку других компонентов
- TektonPipeline: управляет компонентом Tekton Pipelines
- TektonTrigger: управляет компонентом Tekton Triggers
- TektonResult: управляет компонентом Tekton Results
- TektonChain: управляет компонентом Tekton Chains
- OpenShiftPipelinesAsCode: управляет компонентом Pipelines as Code
2. Controller
Контроллер оператора отслеживает изменения этих кастомных ресурсов и приводит фактическое состояние в соответствие с желаемым:
- Обнаруживает изменения в кастомных ресурсах
- Устанавливает или обновляет соответствующие компоненты Tekton
- Управляет зависимостями между компонентами
- Обрабатывает изменения конфигурации
- Выполняет проверки состояния и восстановление после ошибок
3. Webhook
Компонент webhook обеспечивает валидацию и установку значений по умолчанию для кастомных ресурсов:
- Валидирует конфигурации кастомных ресурсов
- Устанавливает значения по умолчанию при необходимости
- Предотвращает некорректные конфигурации
Рабочий процесс
-
Установка оператора
- Оператор может быть установлен через Operator Hub, файлы релизов или из исходного кода
- Создаются необходимые CRD и RBAC-разрешения
-
Создание ресурсов
- Пользователь создаёт ресурс TektonConfig (или отдельные ресурсы компонентов)
- Определяет желаемое состояние и конфигурацию
-
Установка компонентов
- Оператор обнаруживает кастомный ресурс
- Устанавливает указанные компоненты Tekton
- Конфигурирует их согласно спецификациям
-
Управление жизненным циклом
- Управляет обновлениями и апгрейдами
- Обрабатывает изменения конфигурации
- Восстанавливается после сбоев
Архитектура развертывания
Базовые компоненты
-
Развертывание оператора
- Содержит контроллер и webhook
- Требует разрешений на уровне кластера
- Отслеживает кастомные ресурсы
-
Кастомные ресурсы
- Определяют желаемое состояние
- Хранят конфигурацию
- Представляют компоненты Tekton
Взаимосвязи компонентов
Ресурс TektonConfig оркестрирует создание других ресурсов:
-
Управление зависимостями
- Обеспечивает установку компонентов в правильном порядке
- Управляет общими ресурсами
- Обрабатывает взаимозависимости компонентов
-
Пропаганда конфигурации
- Передаёт общие настройки ресурсам, специфичным для компонентов
- Обеспечивает согласованность между компонентами
Архитектура безопасности
-
Разрешения RBAC
- Оператор требует разрешений на уровне кластера
- Компоненты используют разрешения на уровне namespace
- Следует принципу наименьших привилегий
-
Изоляция ресурсов
- Компоненты могут быть установлены в разных namespace
- Поддерживает мультиарендные развертывания
Дизайн расширяемости
- Опции конфигурации
- Широкие возможности конфигурации для каждого компонента
- Поддержка пользовательских настроек и профилей