Создание пользовательского каталога
Содержание
OverviewCatalog Directory StructureRequired Repository StructureKey Structure RulesTekton Hub Validation RequirementsCritical Requirements (Resource Ignored if Missing)1. Обязательная метка (label)2. Обязательные аннотации3. Обязательное поле spec4. Правило именования файловRecommended Annotations (Improves Discoverability)Standard CategoriesComplete Task ExampleComplete Pipeline ExampleSetting Up Your RepositoryInitialize Repository StructureRoot OWNERS FileVersion ManagementSemantic Versioning RulesManaging VersionsUsing Resources from CatalogsUsing Hub Resolver for TasksUsing Hub Resolver for PipelinesHub Resolver ParametersExample: Different CatalogsUsing Hub Resolver in PipelinesNext Steps: Adding to Tekton HubValidation ChecklistCritical Validation (Must Pass)Recommended ValidationTest Your CatalogPublishing Your CatalogNext StepsOverview
В этом руководстве вы узнаете, как создать репозиторий каталога с ресурсами Tekton (Tasks, Pipelines). Вы познакомитесь со структурой, стандартами метаданных и требованиями к валидации, которые обеспечивают корректную работу ваших ресурсов с Tekton Hub.
Для настройки существующего каталога в Tekton Hub смотрите раздел Adding Custom Catalogs.
Catalog Directory Structure
Все каталоги Tekton должны соответствовать Tekton Catalog Organization Standard. Этот стандарт гарантирует согласованность и совместимость с Tekton Hub.
Required Repository Structure
Key Structure Rules
- Типы ресурсов: поддерживаются только каталоги
task/иpipeline/ - Версионирование: каждый ресурс использует семантическое версионирование (
0.1,0.2,1.0) - Несколько версий: разные версии сосуществуют в отдельных каталогах
- Обязательные файлы: для каждой версии должен быть
YAML-файл с определением.READMEиOWNERS— опциональны, но рекомендуются. - Опциональные примеры: каталог
samples/для примеров использования
Tekton Hub Validation Requirements
Tekton Hub предъявляет строгие правила валидации, которые определяют, будут ли ваши ресурсы отображаться. Ресурсы, не прошедшие валидацию, полностью игнорируются.
Critical Requirements (Resource Ignored if Missing)
Эти поля являются абсолютно обязательными — отсутствие любого из них приведёт к полному игнорированию ресурса:
1. Обязательная метка (label)
2. Обязательные аннотации
3. Обязательное поле spec
4. Правило именования файлов
- Имя файла
YAMLДОЛЖНО совпадать с именем ресурса - Пример:
Taskс именемbuild-image→ файл должен называтьсяbuild-image.yaml - Шаблон:
task/<name>/<version>/<name>.yamlилиpipeline/<name>/<version>/<name>.yaml
Recommended Annotations (Improves Discoverability)
Standard Categories
Выбирайте из этих стандартных категорий 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 смотрите Categories Configuration.
Complete Task Example
Ниже приведён полный пример Task с всеми обязательными и рекомендуемыми полями:
Важно: Этот файл должен быть сохранён как task/echo-hello/0.1/echo-hello.yaml (имя файла совпадает с именем task).
Complete Pipeline Example
Ниже приведён полный пример Pipeline с всеми обязательными и рекомендуемыми полями:
Важно: Этот файл должен быть сохранён как pipeline/hello-pipeline/0.1/hello-pipeline.yaml (имя файла совпадает с именем pipeline).
Setting Up Your Repository
Initialize Repository Structure
Root OWNERS File
Определите ответственных за каталог:
Version Management
Semantic Versioning Rules
- 0.1 → 0.2: исправления ошибок, улучшения
- 0.x → 1.0: новые функции, стабильный релиз
- 1.x → 2.0: несовместимые изменения
Managing Versions
- Каждая версия располагается в отдельном каталоге
- Несколько версий сосуществуют
- Несовместимые изменения документируются в
README
Using Resources from Catalogs
После настройки вашего каталога в Tekton Hub пользователи смогут ссылаться на ваши ресурсы с помощью Hub resolver. Разные каталоги имеют разные настройки резолвера.
Using Hub Resolver for Tasks
Using Hub Resolver for Pipelines
Hub Resolver Parameters
Резолвер Hub поддерживает следующие параметры:
Примечание: Для пользовательских каталогов обычно требуется явно указывать параметры catalog и type: tekton.
Для настройки и конфигурации резолвера Hub смотрите Hub Resolver Configuration.
Example: Different Catalogs
Using Hub Resolver in Pipelines
Вы можете использовать задачи из разных каталогов в одном Pipeline:
Next Steps: Adding to Tekton Hub
После того, как ваш репозиторий каталога готов, его необходимо настроить в Tekton Hub, чтобы пользователи могли получать доступ к ресурсам через резолвер.
Для полного руководства по:
- Добавлению вашего каталога в конфигурацию
Tekton Hub - Аутентификации
SSHдля приватных репозиториев - Тестированию и устранению неполадок интеграции каталога
Смотрите Adding Custom Catalogs.
Validation Checklist
Перед публикацией каталога убедитесь, что каждый ресурс соответствует всем требованиям Tekton Hub:
Critical Validation (Must Pass)
- Именование файлов: шаблон
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
Recommended Validation
- Отображаемое имя: задано
tekton.dev/displayNameдля улучшения UX - Категории: валидная категория из стандартного списка
- Теги: описательные, через запятую, без пробелов после запятых
- Документация: полный
README.mdдля каждого ресурса - Примеры: рабочие примеры в
samples/run.yaml
Test Your Catalog
Publishing Your Catalog
- Отправьте в репозиторий
Git(GitHub,GitLabи т.д.) - Проверьте локально — валидируйте структуру и синтаксис
YAML - Добавьте в
Tekton Hub— смотрите Adding Custom Catalogs - Поделитесь с командой — ваши ресурсы теперь доступны через
Hub resolver
Next Steps
Теперь, когда вы знакомы со структурой и стандартами каталога, углубитесь в разработку ресурсов:
- Writing Custom Tasks — подробное руководство по созданию
Task - Writing Custom Pipelines — шаблоны оркестрации
Pipeline