Por que Approval Workflows são Essenciais
Segurança
Previne que remediação automática cause impacto maior que o problema original (ex: rollback acidental em produção)
Compliance
Auditoria completa de quem aprovou, quando, e por que. Requisito para SOC2, PCI-DSS, HIPAA.
Confiança
Equipes adotam AIOps mais facilmente quando sabem que ações críticas requerem aprovação humana.
Visão Geral do Fluxo
ApprovalPolicy CRD
OApprovalPolicy define regras que determinam quais ações de remediação precisam de aprovação, em quais condições, e quem pode aprovar.
Campos do Spec
ApprovalRule
Cada regra define um par match + mode com configurações específicas.ApprovalMatch
Define quais remediações são cobertas por esta regra. A lógica é AND entre campos e OR dentro de cada campo.Quando múltiplas regras fazem match, a regra mais restritiva prevalece. A ordem de prioridade é:
manual > quorum > auto. Se uma regra exige quorum com 2 aprovadores e outra exige manual com 1, o sistema aplica quorum com 2.Três Modos de Aprovação
- auto
- manual
- quorum
Auto-approve: O sistema aprova automaticamente se todas as condições de Lógica de avaliação:
autoApproveConditions forem atendidas. Caso contrário, escala para manual.ChangeWindowSpec
Define janelas de mudança (change windows) que controlam quando remediação automática pode ser executada.ApprovalRequest CRD
OApprovalRequest é criado automaticamente pelo RemediationReconciler quando uma ação requer aprovação. Contém todas as informações necessárias para o aprovador tomar uma decisão informada.
Campos do Spec
Raiz
BlastRadiusAssessment
ApprovalEvidence
ApprovalDecision
Cada aprovação ou rejeição é registrada como uma decision no status:Estados do ApprovalRequest
Uma única rejeição é suficiente para bloquear a ação, independente do número de aprovações. Isso garante que qualquer membro da equipe pode vetar uma ação de risco.
Blast Radius Calculator
O blast radius calculator avalia o impacto potencial de uma ação de remediação antes de solicitar aprovação.Como Funciona
1
Consulta pods do deployment
O calculator lista todos os pods gerenciados pelo deployment alvo usando label selectors.
2
Encontra services que roteiam para os pods
Para cada Service no namespace, verifica se o selector faz match com as labels dos pods do deployment.
3
Encontra ingresses que expoe os services
Para cada Ingress no namespace, verifica se referência algum dos services afetados.
4
Calcula risk level
O risk level é determinado pelo número de pods afetados:
5
Estima downtime
Com base no tipo de ação:
Integração com RemediationReconciler
Fluxo Completo
Annotation de Controle
ORemediationReconciler usa a annotation platform.chatcli.io/approval-pending para controlar o fluxo:
- O reconciler não executa nenhuma ação
- Consulta o status do
ApprovalRequestreferenciado - Remove a annotation apenas quando o request é
Approved - Se
RejectedouExpired, marca o plan comoFailed
Como Aprovar
Via kubectl
A maneira mais direta de aprovar é usando annotations:ApprovalRequest detecta a annotation, registra a decision no status, e remove a annotation.
Via REST API
O operator expõe uma API REST para integrações:Via Slack (interativo)
Quando integrado com o canal Slack viaNotificationPolicy, o ApprovalRequest inclui botões interativos no Block Kit:
- Approve: Registra aprovação com o usuário Slack como aprovador
- Reject: Abre dialog para motivo de rejeição
- Details: Expande blast radius e evidências da IA
A integração Slack interativa requer configuração adicional de um Slack App com Interactive Components habilitado e endpoint de callback apontando para o operator.
Exemplos YAML Completos
Auto-approve para Low Severity + High Confidence
Quorum de 2 Approvers para Produção
Change Window Weekdays 9-18 UTC
Bloqueio de RollbackDeployment em Namespaces Críticos
Auditoria e Compliance
Todas as decisões de aprovação são registradas no status doApprovalRequest CR, criando um trail de auditoria completo:
Prometheus Metrics
O sistema de approval workflow expõe métricas para monitoramento:
Alertas Prometheus recomendados:
Próximo Passo
Notificações e Escalação
Sistema de notificações multi-canal e políticas de escalação
SLOs e SLAs
Gestão de Service Level Objectives com burn rate alerting
AIOps Platform
Deep-dive na arquitetura AIOps completa
K8s Operator
Configuração e CRDs do operator