Добавление пользовательских образов задач в селектор
В этом руководстве объясняется, как настроить параметры селектора для параметра образа в форме Task в UI, рассматривая два сценария:
- Добавление образов для hub Tasks
- Добавление образов для Tasks в собственном namespace.
Содержание
Обзор функцииСценарии использованияПредварительные требованияСценарий A: Добавление образов в селектор Hub Task1. Найдите селектор меток в дескрипторе Task2. Создайте ConfigMap в kube-public3. Примените и проверьтеСценарий B: Добавление образов в ваш собственный селектор Task1. Настройтеstyle.tekton.dev/descriptors для Task2. Создайте соответствующий ConfigMap в kube-public3. Примените и проверьтеРекомендации по сопровождениюОбзор функции
- Каждый параметр селектора берется из
ConfigMapсdata.name(метка) иdata.image(значение). - Метки, специфичные для
Task(например,catalog.tekton.dev/tool-image-python), позволяют UI сопоставлятьConfigMapс нужным параметромTask. - UI запрашивает namespace, указанный в аннотации
Task(например,kube-public), с использованием селектора меток, определенного в дескриптореTask, а затем отображает селектор с результатами.
Сценарии использования
- Добавить пользовательское image mirror для селектора
Task. - Ввести новую minor-версию runtime наряду с существующими параметрами селектора.
- Предоставить hardened image option для пользовательского
Task.
Предварительные требования
- Tekton Pipelines установлен.
- Вы можете создавать
ConfigMapвkube-public. - Вы можете задать
style.tekton.dev/descriptorsдля целевогоTask(Hub Tasksуже предоставляют его; для пользовательскихTasksего нужно добавить).
Сценарий A: Добавление образов в селектор Hub Task
Используйте этот путь, если вы расширяете селектор Hub Task.
1. Найдите селектор меток в дескрипторе Task
Найдите аннотацию style.tekton.dev/descriptors в Task и найдите запись, у которой path указывает на параметр образа.
Дескриптор, оканчивающийся на urn:alm:descriptor:expression:props.options:api, содержит запрос labelSelector=...; ключ
метки в нем должен присутствовать в вашем ConfigMap.
В следующем примере нужно создать ConfigMap с меткой catalog.tekton.dev/tool-image-python в namespace
kube-public.
Дополнительные сведения о style.tekton.dev/descriptors см. в разделе Как настроить динамические формы.
2. Создайте ConfigMap в kube-public
Создайте ConfigMap с этим ключом метки.
Default Tasks поставляются с
ConfigMap, помеченнымиcatalog.tekton.dev/source: system, чтобы обозначить записи, предоставленные платформой. Не изменяйте и не удаляйте их, а ваши пользовательскиеConfigMapне должны включать эту метку.
3. Примените и проверьте
Откройте форму Task; селектор должен теперь включать Python 3.10 и задавать image как
registry.example.com/tekton/python:3.10.
Сценарий B: Добавление образов в ваш собственный селектор Task
Используйте этот путь, если вы управляете определением Task и вам нужно настроить дескрипторы и ConfigMap.
1. Настройте style.tekton.dev/descriptors для Task
Пример дескриптора Task для селектора образа:
Элементы дескриптора и их значение:
Дополнительные сведения о style.tekton.dev/descriptors см. в разделе Как настроить динамические формы.
2. Создайте соответствующий ConfigMap в kube-public
Используйте тот же ключ метки, который запрашивает ваш дескриптор. Для пользовательских Tasks рекомендуется выбирать ключ метки, который не конфликтует с
селекторами Task по умолчанию, чтобы избежать случайного отображения в Hub Tasks.
Default Tasks поставляются с
ConfigMap, помеченнымиcatalog.tekton.dev/source: system, чтобы обозначить записи, предоставленные платформой. Не изменяйте и не удаляйте их, а ваши пользовательскиеConfigMapне должны включать эту метку.
Вы также можете разместить ConfigMap в любом другом предпочитаемом namespace; вам лишь нужно убедиться, что namespace ConfigMap совпадает с namespace, указанным в аннотации style.tekton.dev/descriptors Task.
Например, вы можете задать аннотацию Task так, как показано ниже, при этом замените <NAMESPACE> на ваш namespace.
3. Примените и проверьте
Откройте форму вашего Task; селектор должен вывести Python 3.13 (Team Edition) и задать image как
registry.example.com/internal/python:3.13.
Рекомендации по сопровождению
- Обновляйте пользовательский параметр, редактируя и повторно применяя его
ConfigMap. - Выводите параметр из эксплуатации, удаляя только свой пользовательский
ConfigMap; не трогайтеConfigMapсcatalog.tekton.dev/source: system.