Написание Tasks для Tekton Hub
Содержание
OverviewТребованияTekton HubTask против ClusterTaskМиграция с ClusterTaskМетаданные, специфичные для HubОбязательные меткиОбязательные аннотации для HubСтандарты параметров HubТипы параметровТребования к параметрам, специфичные для HubЛучшие практики для HubТребования к контейнерным образамРезультаты и рабочие пространства для HubКатегории и теги HubСтандартные категорииЭффективное использование теговТребования к валидации HubСтандарты обработки ошибокБезопасность для Hub TasksТребования безопасности HubТребования к тестированию HubОбязательные тестовые файлыКонтрольный список валидации HubШаблон задачи HubТребования к документацииСтандарты документации HubКонтрольный список публикации Hub✅ Соответствие требованиям Hub✅ Стандарты качестваOverview
В этом руководстве рассматриваются конкретные требования и лучшие практики создания Tasks, которые работают с каталогами Tekton Hub. Основное внимание уделяется метаданным, валидации и стандартам, специфичным для Hub.
Требования Tekton Hub
Task против ClusterTask
⚠️ CRITICAL:
ClusterTaskУСТАРЕЛ и УДАЛЕН вTekton Pipelinesверсии 1.0 и выше. НЕ используйтеClusterTask.
Task: ЕДИНСТВЕННЫЙ поддерживаемый тип ресурса для каталоговHubClusterTask: ❌ УДАЛЕН вTektonверсии 1.0 и выше — не работает
Миграция с ClusterTask
Метаданные, специфичные для Hub
Обязательные метки
Обязательные аннотации для 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
- Включайте структурированное логирование для облегчения отладки
Безопасность для Hub Tasks
Требования безопасности Hub
- Не храните секреты в явном виде в определениях
Task - Используйте проверенные, официальные контейнерные образы
- Фиксируйте конкретные версии образов (без тегов
latest) - Следуйте принципам минимальных привилегий
- Документируйте любые особые требования безопасности
Требования к тестированию Hub
Обязательные тестовые файлы
- Предоставьте рабочую директорию
samples/с примерами TaskRun - Включите
run.yaml, демонстрирующий типичное использование - Тестируйте все комбинации параметров
- Проверяйте сценарии обработки ошибок
Контрольный список валидации Hub
- Присутствуют обязательные метаданные Hub
- Пример TaskRun работает корректно
- Все параметры задокументированы с описаниями
- Результаты и рабочие пространства правильно описаны
- Соблюдены лучшие практики безопасности
- Проверена совместимость с платформами
Шаблон задачи Hub
Требования к документации
Стандарты документации Hub
- Включайте полный
README.mdв директорию задачи - Документируйте все параметры, рабочие пространства и результаты
- Приводите примеры использования и типичные сценарии
- Включайте информацию по устранению неполадок
Контрольный список публикации Hub
✅ Соответствие требованиям Hub
- Присутствуют обязательные метаданные Hub (метки и аннотации)
- Задача использует ресурс типа
Task(неClusterTask) - Метка версии совпадает со структурой каталога
- Все параметры и результаты имеют описания
- Контейнерные образы используют зафиксированные версии
- Указана совместимость с платформами
- Предоставлен рабочий пример TaskRun
- Полный README с примерами использования
- Проходит требования валидации Hub
✅ Стандарты качества
- Задача идемпотентна и переиспользуема
- Обработка ошибок с правильными кодами выхода
- Отсутствие жестко заданных секретов или учетных данных
- Соблюдение лучших практик безопасности
- Проверена кроссплатформенная совместимость
- Документация полная и точная