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