Справочник по команде tkn pac
tkn pac — это официальный CLI-плагин для Pipelines-as-Code. Он автоматизирует разовые настройки, которые иначе выполняются вручную с помощью kubectl apply и веб-интерфейса Git-провайдера: создание ресурса Repository, регистрация webhook и генерация стартового файла .tekton/pipelinerun.yaml.
Эта страница представляет собой справочник по командам для пользователей, которые предпочитают рабочий процесс через CLI. Рекомендуемую сквозную процедуру с использованием обычных манифестов см. в разделах Настройка репозитория GitHub и Настройка репозитория GitLab.
Содержание
ТребованияУстановка плагина tkn pacПроверка установкиКоманды для репозиторияtkn pac create repositorytkn pac listtkn pac repo describeКоманда generatetkn pac generateКоманда resolvetkn pac resolveГлобальные параметрыРекомендации1. Управление репозиториями2. Генерация pipelineУстранение неполадокКоманда не найденаПроблемы с подключениемСледующие шагиТребования
- Установлен
tknCLI - Установлен плагин
tkn pac kubectlнастроен для доступа к вашему кластеру- Развернут компонент PAC
Установка плагина tkn pac
Скачайте tkn из Tekton CLI Releases, затем установите плагин pac из tkn pac Releases.
Установите tkn pac, используя один из способов, описанных в официальном руководстве по релизам проекта tkn pac, и убедитесь, что исполняемый файл доступен в вашем PATH.
Проверка установки
Пример вывода:
Пример вывода:
Команды для репозитория
tkn pac create repository
Создает новый репозиторий Pipelines as Code и namespace на основе шаблона PipelineRun.
Базовый синтаксис:
Интерактивный режим:
Команда запросит у вас:
- URL репозитория Git (автоматически определяется из текущего каталога)
- Namespace для pipelines (по умолчанию:
project-pipelines) - Специфичную для Git-провайдера информацию (например, ID проекта для GitLab)
- URL контроллера PAC (автоматически определяется)
- Секрет webhook (генерируется автоматически)
- Токен доступа к Git-провайдеру
- URL API Git-провайдера (зависит от провайдера)
Что делает команда:
- Создает CR
Repositoryв вашем кластере Kubernetes - Автоматически настраивает webhook Git-провайдера
- Создает Secret Kubernetes с учетными данными Git-провайдера
- Генерирует шаблон
.tekton/pipelinerun.yamlв вашем репозитории
Пример:
Пример вывода (интерактивные запросы):
Для сквозных процедур, специфичных для провайдера, см. Руководства.
tkn pac list
Выводит список всех репозиториев Pipelines as Code и отображает последний статус связанных запусков.
Базовый синтаксис:
Список в определенном namespace:
Формат вывода:
Параметры:
-n, --namespace <namespace>: Указывает namespace, в котором нужно вывести список репозиториев (по умолчанию: namespace текущего контекста kubectl)-A, --all-namespaces: Выводит список репозиториев во всех namespace-o, --output <format>: Формат вывода (default, json, yaml, wide)
Пример:
tkn pac repo describe
Выводит описание репозитория Pipelines as Code и связанных запусков.
Базовый синтаксис:
Параметры:
-n, --namespace <namespace>: Указывает namespace, в котором расположен репозиторий (по умолчанию: namespace текущего контекста kubectl)-o, --output <format>: Формат вывода (default, json, yaml)
Включает в вывод:
- Сведения о CR
Repository - Конфигурацию Git-провайдера
- Конфигурацию webhook
- Статус последних
PipelineRun - Информацию о последнем запуске
Пример:
Пример вывода:
Команда generate
tkn pac generate
Генерирует простой шаблон PipelineRun.
Базовый синтаксис:
Возможности:
- Автоматически определяет текущую информацию Git из каталога
- Использует базовую функцию определения языка
- Добавляет дополнительные задачи в зависимости от определенного языка
- Создает шаблон
.tekton/pipelinerun.yaml
Определение языка:
Команда определяет язык проекта и добавляет соответствующие задачи:
- Python: определяет
setup.pyилиrequirements.txt, добавляет задачуpylint - Go: определяет
go.mod, добавляет задачуgolangci-lint - Node.js: определяет
package.json, добавляет задачиnpm - Java: определяет
pom.xml, добавляет задачиmaven
Пример:
Пример вывода:
Пример сгенерированного шаблона:
Команда resolve
tkn pac resolve
Выполняет запуск pipeline так, как если бы он принадлежал сервису Pipelines as Code. Это полезно для локального тестирования определений pipeline без создания нового коммита.
Команда resolve обрабатывает определение PipelineRun и:
- Заменяет переменные PAC (например,
{{repo_url}},{{revision}}) фактическими значениями - Разрешает аннотации задач (при необходимости получает задачи из Tekton Hub)
- Проверяет структуру pipeline
- Показывает, как будет выглядеть итоговый
PipelineRun
Важно: Эта команда не создает PipelineRun в вашем кластере. Она только обрабатывает и проверяет определение pipeline локально.
Базовый синтаксис:
Параметры:
-f, --file: Путь к файлу или каталогу pipeline (обязательно)-p, --param: Переопределяет значения параметров (формат:key=value)-o, --output: Формат вывода (yaml, json или default)
Resolve из файла:
Resolve из каталога:
Команда обрабатывает все файлы .yaml и .yml в каталоге.
Переопределение параметров:
Можно переопределить значения параметров по умолчанию, полученные из репозитория Git:
Несколько файлов:
Можно использовать флаг -f несколько раз:
Автоопределение:
При запуске из репозитория исходного кода команда пытается:
- Определить текущую информацию Git
- Автоматически разрешить такие параметры, как:
- Текущая ревизия (commit SHA)
- Имя ветки
- URL репозитория
- Имя репозитория
Пример:
Пример вывода:
Формат вывода:
Команда выводит разрешенный YAML PipelineRun в stdout. Вы можете:
-
Сохранить его в файл:
tkn pac resolve -f .tekton/pipelinerun.yaml > resolved.yaml -
Просмотреть его напрямую:
tkn pac resolve -f .tekton/pipelinerun.yaml -
Использовать для проверки: убедиться, что переменные корректно разрешаются перед коммитом
Пример вывода:
Сценарии использования:
- Тестировать определения pipeline локально
- Отлаживать проблемы pipeline без создания коммитов
- Проверять синтаксис pipeline перед коммитом
- Тестировать разрешение параметров
Глобальные параметры
Все команды tkn pac поддерживают следующие глобальные параметры:
-h, --help: Показать справку по команде-v, --version: Показать информацию о версии--kubeconfig: Путь к файлу kubeconfig--context: Используемый контекст Kubernetes
Рекомендации
1. Управление репозиториями
- Используйте описательные имена: выбирайте понятные имена репозиториев
- Организуйте по namespace: группируйте связанные репозитории по namespace
- Регулярный мониторинг: используйте
tkn pac listдля отслеживания состояния репозиториев
2. Генерация pipeline
- Проверяйте сгенерированные шаблоны: всегда просматривайте и настраивайте сгенерированные pipeline
- Тестируйте локально: используйте
tkn pac resolveдля проверки pipeline перед коммитом - Контроль версий: фиксируйте определения pipeline в Git
Устранение неполадок
Команда не найдена
Если команда tkn pac не найдена:
-
Проверьте установку:
Пример вывода:
-
Проверьте PATH: убедитесь, что
tkn-pacнаходится в вашемPATH -
Переустановите: при необходимости переустановите плагин
Проблемы с подключением
Если команды не могут подключиться к кластеру:
- Проверьте kubectl: протестируйте подключение
kubectl - Проверьте контекст: убедитесь в правильности контекста Kubernetes
- Проверьте разрешения: убедитесь, что у вас есть необходимые права
Следующие шаги
- Руководства - Пошаговые инструкции по настройке репозитория
- Входящие webhook - Запуск pipeline через webhook
- Управление компонентом PAC - Управление компонентом PAC
- Распространенные проблемы - Руководство по устранению неполадок