Создание пользовательского каталога
Содержание
ОбзорСтруктура каталогаТребуемая структура репозиторияКлючевые правила структурыТребования к валидацииTekton HubКритические требования (ресурс игнорируется при отсутствии)1. Обязательная метка2. Обязательные аннотации3. Обязательное поле spec4. Правило именования файлаРекомендуемые аннотации (улучшают обнаруживаемость)Стандартные категорииПолный пример TaskПолный пример PipelineНастройка вашего репозиторияИнициализация структуры репозиторияФайл OWNERS в корнеУправление версиямиПравила семантического версионированияУправление версиямиИспользование ресурсов из каталоговИспользование Hub resolver для TasksИспользование Hub resolver для PipelinesПараметры Hub resolverПример: разные каталогиИспользование Hub resolver в PipelinesСледующие шаги: добавление в Tekton HubКонтрольный список валидацииКритическая валидация (должна пройти)Рекомендуемая валидацияПроверьте ваш каталогПубликация вашего каталогаСледующие шагиОбзор
В этом руководстве вы узнаете, как создать репозиторий каталога с ресурсами Tekton (Tasks, Pipelines). Вы познакомитесь со структурой, стандартами метаданных и требованиями к валидации, которые обеспечивают корректную работу ваших ресурсов с Tekton Hub.
Чтобы настроить существующий каталог в Tekton Hub, см. Adding Custom Catalogs.
Структура каталога
Все каталоги 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 см. в Categories Configuration.
Полный пример Task
Ниже приведен полный пример Task, демонстрирующий все обязательные и рекомендуемые поля:
Важно: этот файл должен быть сохранен как task/echo-hello/0.1/echo-hello.yaml (имя файла совпадает с именем task).
Полный пример 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. Для разных каталогов используются разные конфигурации resolver.
Использование Hub resolver для Tasks
Использование Hub resolver для Pipelines
Параметры Hub resolver
Hub resolver поддерживает следующие параметры:
Примечание: для пользовательских каталогов обычно необходимо явно указывать параметры catalog и type: tekton.
Инструкции по настройке и конфигурации Hub resolver см. в Hub Resolver Configuration.
Пример: разные каталоги
Использование Hub resolver в Pipelines
Вы можете использовать Tasks из разных каталогов в одном и том же Pipeline:
Следующие шаги: добавление в Tekton Hub
После того как репозиторий вашего каталога будет готов, его необходимо настроить в Tekton Hub, прежде чем пользователи смогут получить к нему доступ через resolver.
Полные инструкции по следующим темам:
- добавление вашего каталога в конфигурацию
Tekton Hub - аутентификация
SSHдля закрытых репозиториев - тестирование и устранение неполадок при интеграции каталога
Контрольный список валидации
Перед публикацией каталога убедитесь, что каждый ресурс соответствует всем требованиям Tekton Hub:
Критическая валидация (должна пройти)
- Именование файла: шаблон
task/<name>/<version>/<name>.yamlсоблюден точно - Метка версии:
app.kubernetes.io/version: "0.1"соответствует версии каталога - Аннотация MinVersion: присутствует
tekton.dev/pipelines.minVersion: "0.17.0" - Поле description:
spec.description: "..."не пустое - Синтаксис
YAML: ресурс проходит валидацию сkubectl apply --dry-run
Рекомендуемая валидация
- Отображаемое имя: указано
tekton.dev/displayNameдля лучшего UX - Категории: указана допустимая категория из стандартного списка
- Теги: описательные теги, разделенные запятыми, без пробелов после запятых
- Документация: полный
README.mdдля каждого ресурса - Примеры: рабочие примеры в
samples/run.yaml
Проверьте ваш каталог
Публикация вашего каталога
- Отправьте в репозиторий
Git(GitHub,GitLabи т. д.) - Протестируйте локально — проверьте структуру и синтаксис
YAML - Добавьте в
Tekton Hub— см. Adding Custom Catalogs - Поделитесь с командой — теперь ваши ресурсы можно обнаружить через
Hub resolver
Следующие шаги
Теперь, когда вы понимаете структуру каталога и стандарты, перейдите к более глубокому изучению разработки ресурсов:
- Writing Custom Tasks — подробное руководство по созданию
Task - Writing Custom Pipelines — шаблоны оркестрации
Pipeline