Создание пользовательского каталога
Содержание
ОбзорСтруктура каталогаТребуемая структура репозиторияОсновные правила структурыТребования к валидации вTekton HubКритические требования (ресурс игнорируется при отсутствии)1. Обязательная метка2. Обязательные аннотации3. Обязательное поле spec4. Правило именования файлаРекомендуемые аннотации (улучшают обнаруживаемость)Стандартные категорииПолный пример TaskПолный пример PipelineНастройка вашего репозиторияИнициализация структуры репозиторияКорневой файл OWNERSУправление версиямиПравила семантического версионированияУправление версиямиИспользование ресурсов из каталоговИспользование Hub Resolver для TasksИспользование Hub Resolver для PipelinesПараметры Hub ResolverПример: разные каталогиИспользование Hub Resolver в PipelineСледующие шаги: добавление в Tekton HubКонтрольный список валидацииКритическая валидация (обязательно пройти)Рекомендуемая валидацияТестирование вашего каталогаПубликация вашего каталогаСледующие шагиОбзор
В этом руководстве показано, как создать репозиторий каталога с ресурсами Tekton (Tasks, Pipelines). Вы узнаете структуру, стандарты метаданных и требования к валидации, которые обеспечивают корректную работу ваших ресурсов с Tekton Hub.
Для настройки существующего каталога в Tekton Hub смотрите Добавление пользовательских каталогов.
Структура каталога
Все каталоги Tekton должны соответствовать Tekton Catalog Organization Standard. Этот стандарт обеспечивает согласованность и совместимость с Tekton Hub.
Требуемая структура репозитория
Основные правила структуры
- Типы ресурсов: поддерживаются только каталоги
task/иpipeline/ - Версионирование: каждый ресурс использует семантическое версионирование (
0.1,0.2,1.0) - Несколько версий: разные версии сосуществуют в отдельных каталогах
- Обязательные файлы: каждая версия должна содержать определение в формате
YAML.READMEиOWNERS— необязательны, но рекомендуются. - Опциональные примеры: каталог
samples/для примеров использования
Требования к валидации в Tekton Hub
Tekton Hub предъявляет строгие правила валидации, определяющие, будут ли ваши ресурсы отображаться. Ресурсы, не прошедшие валидацию, полностью игнорируются.
Критические требования (ресурс игнорируется при отсутствии)
Эти поля абсолютно обязательны — отсутствие любого из них приведёт к полному игнорированию ресурса:
1. Обязательная метка
2. Обязательные аннотации
3. Обязательное поле spec
4. Правило именования файла
- Имя файла
YAMLДОЛЖНО совпадать с именем ресурса - Пример:
Taskс именемbuild-image→ файл должен называтьсяbuild-image.yaml - Шаблон:
task/<name>/<version>/<name>.yamlилиpipeline/<name>/<version>/<name>.yaml
Рекомендуемые аннотации (улучшают обнаруживаемость)
Стандартные категории
Выбирайте из этих стандартных категорий Tekton Hub:
- Automation, Build Tools, CLI, Cloud
- Code Quality, Continuous Integration
- Deployment, Developer Tools
- Image Build, Integration & Delivery
- Git, Kubernetes, Messaging
- Monitoring, Networking, Publishing
- Security, Storage, Testing
Важно: Ресурсы с категориями, не настроенными в вашей инстанции Tekton Hub, не будут отображаться, даже если используются корректные имена категорий.
Инструкции по добавлению пользовательских категорий в ваш Hub смотрите в разделе Настройка категорий.
Полный пример Task
Ниже приведён полный пример Task с всеми обязательными и рекомендуемыми полями:
Важно: Этот файл должен быть сохранён как task/echo-hello/0.1/echo-hello.yaml (имя файла совпадает с именем задачи).
Полный пример Pipeline
Ниже приведён полный пример Pipeline с всеми обязательными и рекомендуемыми полями:
Важно: Этот файл должен быть сохранён как pipeline/hello-pipeline/0.1/hello-pipeline.yaml (имя файла совпадает с именем pipeline).
Настройка вашего репозитория
Инициализация структуры репозитория
Корневой файл OWNERS
Определите ответственных за каталог:
Управление версиями
Правила семантического версионирования
- 0.1 → 0.2: исправления ошибок, улучшения
- 0.x → 1.0: новые функции, стабильный релиз
- 1.x → 2.0: несовместимые изменения
Управление версиями
- Каждая версия располагается в отдельном каталоге
- Несколько версий сосуществуют
- Несовместимые изменения документируются в
README
Использование ресурсов из каталогов
После настройки вашего каталога в Tekton Hub пользователи могут ссылаться на ваши ресурсы с помощью Hub resolver. Разные каталоги имеют разные настройки резолвера.
Использование Hub Resolver для Tasks
Использование Hub Resolver для Pipelines
Параметры Hub Resolver
Резолвер Hub поддерживает следующие параметры:
Примечание: Для пользовательских каталогов обычно необходимо явно указывать параметры catalog и type: tekton.
Для настройки и конфигурации резолвера Hub смотрите Настройка Hub Resolver.
Пример: разные каталоги
Использование Hub Resolver в Pipeline
Вы можете комбинировать задачи из разных каталогов в одном Pipeline:
Следующие шаги: добавление в Tekton Hub
После подготовки репозитория каталога его необходимо настроить в Tekton Hub, чтобы пользователи могли получить доступ к нему через резолвер.
Для полного руководства по:
- Добавлению каталога в конфигурацию
Tekton Hub - Аутентификации
SSHдля приватных репозиториев - Тестированию и устранению неполадок интеграции каталога
Смотрите Добавление пользовательских каталогов.
Контрольный список валидации
Перед публикацией каталога убедитесь, что каждый ресурс соответствует всем требованиям Tekton Hub:
Критическая валидация (обязательно пройти)
- Именование файлов: строго по шаблону
task/<name>/<version>/<name>.yaml - Метка версии:
app.kubernetes.io/version: "0.1"совпадает с версией каталога - Аннотация MinVersion:
tekton.dev/pipelines.minVersion: "0.17.0"присутствует - Поле описания:
spec.description: "..."не пустое - Синтаксис YAML: ресурс проходит валидацию с помощью
kubectl apply --dry-run
Рекомендуемая валидация
- Отображаемое имя: указано
tekton.dev/displayNameдля улучшения UX - Категории: валидная категория из стандартного списка
- Теги: описательные, через запятую без пробелов после запятых
- Документация: полный
README.mdдля каждого ресурса - Примеры: рабочие примеры в
samples/run.yaml
Тестирование вашего каталога
Публикация вашего каталога
- Отправьте в репозиторий
Git(GitHub,GitLabи т.д.) - Тестируйте локально — проверьте структуру и синтаксис
YAML - Добавьте в
Tekton Hub— смотрите Добавление пользовательских каталогов - Поделитесь с командой — ваши ресурсы теперь доступны через
Hub resolver
Следующие шаги
Теперь, когда вы знакомы со структурой и стандартами каталога, углубитесь в разработку ресурсов:
- Создание пользовательских задач — подробное руководство по созданию
Task - Создание пользовательских pipeline — шаблоны оркестрации
Pipeline