Написание Tasks для Tekton Hub
Содержание
ОбзорТребованияTekton HubTask vs ClusterTaskПереход с ClusterTaskМетаданные, специфичные для HubОбязательные LabelsОбязательные Annotations для HubСтандарты параметров HubТипы параметровСпецифичные требования Hub к параметрамРекомендации для HubТребования к Container ImageResults и Workspaces для HubКатегории и теги HubСтандартные категорииЭффективное тегированиеТребования к валидации HubСтандарты обработки ошибокБезопасность Hub TasksТребования безопасности HubТребования к тестированию HubОбязательные тестовые файлыКонтрольный список проверки HubШаблон Hub TaskТребования к документацииСтандарты документации HubКонтрольный список публикации Hub✅ Соответствие Hub✅ Стандарты качестваОбзор
Это руководство описывает конкретные требования и рекомендации по созданию Tasks, которые работают с каталогами Tekton Hub. В нем рассматриваются метаданные, специфичные для Hub, проверка и стандарты.
Требования Tekton Hub
Task vs ClusterTask
⚠️ ВАЖНО:
ClusterTaskУСТАРЕЛ И УДАЛЕН вTekton Pipelinesv1.0+. НЕ используйтеClusterTask.
Task: ЕДИНСТВЕННЫЙ поддерживаемый тип ресурса для каталоговHubClusterTask: ❌ УДАЛЕН вTektonv1.0+ — не будет работать
Переход с ClusterTask
Метаданные, специфичные для Hub
Обязательные Labels
Обязательные Annotations для Hub
Стандарты параметров Hub
Типы параметров
Tekton Hub поддерживает три типа параметров:
- string: Одно текстовое значение (по умолчанию)
- array: Список строковых значений
- object: JSON object с парами ключ-значение
Специфичные требования Hub к параметрам
- Понятные описания: У всех параметров должны быть осмысленные описания для UI
Hub - Разумные значения по умолчанию: По возможности задавайте значения по умолчанию для лучшего пользовательского опыта
- Типобезопасность: Используйте подходящие типы, чтобы предотвратить ошибки во время выполнения
Рекомендации для Hub
Требования к Container Image
- Используйте официальные, доверенные Container Image
- Фиксируйте конкретные версии вместо тегов
latest - Убедитесь, что изображения работают на поддерживаемых платформах (
linux/amd64,linux/arm64) - Регулярно обновляйте базовые образы в целях безопасности
Results и Workspaces для Hub
- Results: Должны иметь понятные описания для документации
Hub - Workspaces: Для необязательных workspaces указывайте
optional: true - Descriptions: Обязательны для всех workspaces и results
Категории и теги 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 - Используйте доверенные, официальные Container Image
- Фиксируйте конкретные версии образов (без тегов
latest) - Соблюдайте принципы минимально необходимого уровня привилегий
- Документируйте любые особые требования к безопасности
Требования к тестированию Hub
Обязательные тестовые файлы
- Предоставьте рабочий каталог
samples/с примерами TaskRun - Включите
run.yaml, демонстрирующий типичное использование - Проверьте все комбинации параметров
- Проверьте сценарии обработки ошибок
Контрольный список проверки Hub
- Присутствуют обязательные метаданные Hub
- Sample TaskRun работает корректно
- Все параметры документированы с описаниями
- Results и workspaces должным образом описаны
- Соблюдены рекомендации по безопасности
- Проверена совместимость с платформами
Шаблон Hub Task
Требования к документации
Стандарты документации Hub
- В каталоге задачи включите полный
README.md - Документируйте все параметры, workspaces и results
- Приведите примеры использования и типовые сценарии
- Включите сведения по устранению неполадок
Контрольный список публикации Hub
✅ Соответствие Hub
- Присутствуют обязательные метаданные Hub (labels и annotations)
- Task использует тип ресурса
Task(не ClusterTask) - Label версии соответствует структуре каталога
- Все параметры и results имеют описания
- Container Image используют закрепленные версии
- Указана совместимость с платформами
- Предоставлен рабочий пример TaskRun
- Подготовлен полный README с примерами использования
- Выполнены требования валидации Hub
✅ Стандарты качества
- Task идемпотентна и повторно используется
- Обработка ошибок выполняется с правильными кодами завершения
- Нет жестко заданных секретов или учетных данных
- Соблюдены рекомендации по безопасности
- Подтверждена кроссплатформенная совместимость
- Документация полная и точная