Развертывание Manual Approval Gate
Содержание
Обзор функцииСценарии использованияПредварительные требованияШаги1. Создайте CRManualApprovalGate2. Проверьте состояние контроллера3. Измените конфигурацию или принудительно выполните rollout4. Удалите Manual Approval GateРезультаты работыУстранение неполадокДополнительные сведенияОбзор функции
Manual Approval Gate предоставляет контроллер с областью действия на уровне кластера и webhooks, которые поддерживают пользовательские задачи ApprovalTask. Администраторы должны создать и поддерживать пользовательский ресурс (CR) ManualApprovalGate, чтобы пользователи платформы могли добавлять ручные approvals в свои pipelines. В этом руководстве объясняется, как развернуть компонент Manual Approval Gate в tekton-pipelines, настроить параметры выполнения и безопасно удалить его.
Сценарии использования
- Включение ручных approvals для всех команд в кластере путем предоставления управляемого контроллера.
- Настройка развертываний контроллера (например, числа replicas, лимитов ресурсов или ConfigMaps) через контракт
optionsOperator вместо редактирования манифестов. - Очистка компонента, когда задачи approval больше не требуются.
Предварительные требования
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, а в tekton-pipelines должны быть запущены Deployments контроллера и webhook.
3. Измените конфигурацию или принудительно выполните rollout
-
Примените patch к CR, чтобы изменить число replicas или другие параметры; 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'ов или services с тем же label, а Operator прекращает синхронизировать ресурсы
ApprovalTaskдо тех пор, пока CR не будет создан снова.
Устранение неполадок
- CR
ManualApprovalGateзастрял в состоянииNotReady: выполнитеkubectl describe manualapprovalgate manual-approval-gate, чтобы проверить events, затем просмотрите логи 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. Если он был удален или работает с ошибкой, переустановите его перед повторным запуском pipelines пользователями.