Написание Tasks для Tekton Hub
Содержание
OverviewТребованияTekton HubTask vs ClusterTaskМиграция с ClusterTaskМетаданные, специфичные для HubОбязательные метки (Labels)Обязательные аннотации для HubСтандарты параметров HubТипы параметровТребования к параметрам, специфичные для HubЛучшие практики для HubТребования к образам контейнеровРезультаты и рабочие пространства для HubКатегории и теги HubСтандартные категорииЭффективное использование теговТребования к валидации HubСтандарты обработки ошибокБезопасность Tasks для HubТребования безопасности HubТребования к тестированию HubОбязательные тестовые файлыКонтрольный список валидации HubШаблон задачи для HubТребования к документацииСтандарты документации HubКонтрольный список публикации Hub✅ Соответствие требованиям Hub✅ Стандарты качестваOverview
В этом руководстве рассматриваются конкретные требования и лучшие практики по созданию Tasks, которые работают с каталогами Tekton Hub. Основное внимание уделяется метаданным, валидации и стандартам, специфичным для Hub.
Требования Tekton Hub
Task vs ClusterTask
⚠️ CRITICAL:
ClusterTaskУСТАРЕЛ и УДАЛЕН вTekton Pipelinesверсии 1.0 и выше. НЕ используйтеClusterTask.
Task: ЕДИНСТВЕННЫЙ поддерживаемый тип ресурса для каталоговHubClusterTask: ❌ УДАЛЕН вTektonверсии 1.0 и выше — не работает
Миграция с ClusterTask
Метаданные, специфичные для Hub
Обязательные метки (Labels)
Обязательные аннотации для Hub
Стандарты параметров Hub
Типы параметров
Tekton Hub поддерживает три типа параметров:
- string: одиночное текстовое значение (по умолчанию)
- array: список строковых значений
- object: JSON-объект с парами ключ-значение
Требования к параметрам, специфичные для Hub
- Четкие описания: все параметры должны иметь осмысленные описания для UI
Hub - Разумные значения по умолчанию: предоставляйте значения по умолчанию для улучшения пользовательского опыта
- Безопасность типов: используйте подходящие типы для предотвращения ошибок во время выполнения
Лучшие практики для Hub
Требования к образам контейнеров
- Используйте официальные, проверенные образы контейнеров
- Указывайте конкретные версии вместо тегов
latest - Убедитесь, что образы работают на поддерживаемых платформах (
linux/amd64,linux/arm64) - Регулярно обновляйте базовые образы для обеспечения безопасности
Результаты и рабочие пространства для Hub
- Results: должны иметь четкие описания для документации Hub
- Workspaces: помечайте необязательные рабочие пространства как
optional: true - Описания: обязательны для всех рабочих пространств и результатов
Категории и теги Hub
Стандартные категории
- Build Tools
- Testing
- Deployment
- Security
- Integration & Delivery
- Developer Tools
- Code Quality
Эффективное использование тегов
- Используйте конкретные, удобные для поиска теги
- Включайте названия технологий (
podman,kubernetes,npmи др.) - Добавляйте теги по сценариям использования (ci, cd, build, test, deploy)
Требования к валидации Hub
Стандарты обработки ошибок
- Используйте корректные коды выхода (0 — успех, ненулевой — ошибка)
- Предоставляйте понятные сообщения об ошибках для пользователей Hub
- Включайте структурированное логирование для облегчения отладки
Безопасность Tasks для Hub
Требования безопасности Hub
- Не храните секреты в явном виде в определениях
Task - Используйте проверенные, официальные образы контейнеров
- Указывайте конкретные версии образов (без тегов
latest) - Следуйте принципам минимальных привилегий
- Документируйте любые особые требования по безопасности
Требования к тестированию Hub
Обязательные тестовые файлы
- Предоставьте рабочую директорию
samples/с примерами TaskRun - Включите
run.yaml, демонстрирующий типичное использование - Тестируйте все комбинации параметров
- Проверяйте сценарии обработки ошибок
Контрольный список валидации Hub
- Присутствуют обязательные метаданные Hub
- Пример TaskRun работает корректно
- Все параметры задокументированы с описаниями
- Результаты и рабочие пространства описаны должным образом
- Соблюдены лучшие практики безопасности
- Проверена совместимость с платформами
Шаблон задачи для Hub
Требования к документации
Стандарты документации Hub
- Включайте полный
README.mdв директорию задачи - Документируйте все параметры, рабочие пространства и результаты
- Приводите примеры использования и типичные сценарии
- Включайте информацию по устранению неполадок
Контрольный список публикации Hub
✅ Соответствие требованиям Hub
- Присутствуют обязательные метаданные Hub (метки и аннотации)
- Задача использует ресурс
Task(неClusterTask) - Метка версии совпадает со структурой каталога
- Все параметры и результаты имеют описания
- Образы контейнеров используют зафиксированные версии
- Указана совместимость с платформами
- Предоставлен рабочий пример TaskRun
- Полный README с примерами использования
- Проходит требования валидации Hub
✅ Стандарты качества
- Задача идемпотентна и переиспользуема
- Обработка ошибок с корректными кодами выхода
- Отсутствие жестко закодированных секретов или учетных данных
- Соблюдение лучших практик безопасности
- Проверена кроссплатформенная совместимость
- Документация полная и точная