Создание пользовательского каталога
Содержание
ОбзорСтруктура каталогаОбязательная структура репозиторияОсновные правила структурыТребования к проверкеTekton HubКритические требования (ресурс игнорируется при отсутствии)1. Обязательная метка2. Обязательные аннотации3. Обязательное поле Spec4. Правило именования файлаРекомендуемые аннотации (улучшают обнаруживаемость)Стандартные категорииПолный пример TaskПолный пример PipelineНастройка репозиторияИнициализация структуры репозиторияФайл OWNERS в корнеУправление версиямиПравила semantic versioningУправление версиямиИспользование ресурсов из каталоговИспользование Hub resolver для TasksИспользование Hub resolver для PipelinesПараметры Hub resolverПример: разные каталогиИспользование Hub resolver в PipelinesСледующие шаги: добавление в Tekton HubКонтрольный список проверкиКритическая проверка (обязательно должна пройти)Рекомендуемая проверкаПроверьте свой каталогПубликация каталогаСледующие шагиОбзор
Этот учебник поможет вам создать репозиторий каталога с ресурсами Tekton (Tasks, Pipelines). Вы узнаете о структуре, стандартах метаданных и требованиях к проверке, которые обеспечивают корректную работу ваших ресурсов с Tekton Hub.
Чтобы настроить существующий каталог в Tekton Hub, см. Добавление пользовательских каталогов.
Структура каталога
Все каталоги Tekton должны соответствовать Tekton Catalog Organization Standard. Этот стандарт обеспечивает единообразие и совместимость с Tekton Hub.
Обязательная структура репозитория
Основные правила структуры
- Типы ресурсов: Поддерживаются только каталоги
task/иpipeline/ - Версионирование: Каждый ресурс использует semantic versioning (
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 (имя файла совпадает с именем task).
Полный пример Pipeline
Ниже приведен полный пример Pipeline, показывающий все обязательные и рекомендуемые поля:
Важно: Этот файл должен быть сохранен как pipeline/hello-pipeline/0.1/hello-pipeline.yaml (имя файла совпадает с именем pipeline).
Настройка репозитория
Инициализация структуры репозитория
Файл OWNERS в корне
Определите сопровождающих каталога:
Управление версиями
Правила semantic versioning
- 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.
Пример: разные каталоги
Использование Hub resolver в Pipelines
Вы можете смешивать Tasks из разных каталогов в одном Pipeline:
Следующие шаги: добавление в Tekton Hub
После того как репозиторий каталога будет готов, его необходимо настроить в Tekton Hub, прежде чем пользователи смогут обращаться к нему через resolver.
Полные инструкции по следующим темам:
- Добавление вашего каталога в конфигурацию
Tekton Hub SSH-аутентификация для private repositories- Тестирование и устранение неполадок при интеграции каталога
См. Добавление пользовательских каталогов.
Контрольный список проверки
Перед публикацией каталога убедитесь, что каждый ресурс соответствует всем требованиям 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
Рекомендуемая проверка
- Display name: указан
tekton.dev/displayNameдля лучшего UX - Категории: используется допустимая категория из стандартного списка
- Теги: описательные теги через запятую, без пробелов после запятых
- Документация: полный
README.mdдля каждого ресурса - Примеры: рабочие примеры в
samples/run.yaml
Проверьте свой каталог
Публикация каталога
- Отправьте в репозиторий
Git(GitHub,GitLabи т. д.) - Проведите локальную проверку — проверьте структуру и синтаксис
YAML - Добавьте в
Tekton Hub— см. Добавление пользовательских каталогов - Поделитесь с командой — теперь ваши ресурсы можно находить через
Hub resolver
Следующие шаги
Теперь, когда вы понимаете структуру каталога и стандарты, переходите к более глубокому изучению разработки ресурсов:
- Написание пользовательских Tasks — подробное руководство по созданию
Task - Написание пользовательских Pipelines — шаблоны оркестрации
Pipeline