Развертывание Manual Approval Gate
Содержание
Обзор функцииСценарии использованияПредварительные требованияШаги1. Создайте CRManualApprovalGate2. Проверьте состояние контроллера3. Переconfigureйте или принудительно выполните rollout4. Удалите Manual Approval GateРезультаты работыУстранение неполадокПодробнееОбзор функции
Manual Approval Gate предоставляет контроллер уровня кластера и webhooks, которые поддерживают пользовательские задачи ApprovalTask. Администраторы должны создать и поддерживать пользовательский ресурс (CR) ManualApprovalGate, чтобы пользователи платформы могли добавлять ручные утверждения в свои pipeline. В этом руководстве объясняется, как развернуть компонент Manual Approval Gate в tekton-pipelines, настроить параметры выполнения и безопасно удалить его.
Сценарии использования
- Включение ручных утверждений для всех команд в кластере путем предоставления управляемого контроллера.
- Настройка развертываний контроллера (например, количества реплик, лимитов ресурсов или ConfigMaps) через контракт
optionsOperator вместо редактирования манифестов. - Очистка функций, когда задачи утверждения больше не требуются.
Предварительные требования
Alauda DevOps Pipelinesv4.6.0 или более поздней версии с доступом cluster-admin.kubectl, настроенный для целевого кластера.
Шаги
1. Создайте CR ManualApprovalGate
Сохраните манифест как manual-approval-gate.yaml и примените его:
spec.targetNamespaceопределяет, где будут создаваться развертывания контроллера, webhooks и ConfigMaps. Мы рекомендуемtekton-pipelines, чтобы компонент оставался рядом с другими службами Tekton, но вы можете указать любой namespace, если он существует (или будет создан) до применения CR.- Используйте
spec.options, чтобы переопределять Deployments, ConfigMaps или поля image без редактирования сгенерированного YAML. Подробный синтаксис см. в Настройка необязательных параметров конфигурации подкомпонентов.
2. Проверьте состояние контроллера
Условие READY для CR должно иметь значение True, и вы должны видеть работающие Deployments контроллера и webhook в tekton-pipelines.
3. Переconfigureйте или принудительно выполните rollout
-
Примените patch к CR, чтобы изменить количество реплик или другие параметры; Operator автоматически выполнит rollout рабочих нагрузок:
4. Удалите Manual Approval Gate
CRD останется установленным, чтобы вы могли позже создать CR заново, но Deployments, Services и Webhooks должны исчезнуть.
Результаты работы
kubectl get manualapprovalgatesпоказывает экземпляр со значениемREADY=True,VERSION=<release>, аREASONпустым илиInstalled.kubectl get pods -n tekton-pipelines | grep manual-approval-gateвыводит pod'ы контроллера и webhook в состоянииRunning.- После удаления не остается pod'ов или сервисов с тем же label, а Operator прекращает согласование ресурсов
ApprovalTaskдо тех пор, пока CR не будет создан заново.
Устранение неполадок
- CR
ManualApprovalGateзавис в состоянииNotReady: выполнитеkubectl describe manualapprovalgate manual-approval-gate, чтобы проверить события, затем просмотрите логи Operator (kubectl logs -n tekton-operator deploy/tekton-operator). Наиболее частые причины — ошибки в именах полей вspec.optionsили недостаточные привилегии. - Pod'ы контроллера/webhook постоянно перезапускаются: выполните describe для проблемных pod'ов в
tekton-pipelines, чтобы проверить, отсутствуют ли TLS secrets или configuration maps. Повторное применение CR обычно автоматически пересоздает эти ресурсы. - Ресурсы
ApprovalTaskне создаются: убедитесь, что CRManualApprovalGateвсе еще существует и имеетREADY=True. Если он был удален или находится в состоянии сбоя, переустановите его перед повторным запуском pipeline пользователями.