Vault — Workflows de Tenant¶
Visão Geral¶
O Vault faz parte do caminho crítico dos workflows:
.github/workflows/tenant-create.yml.github/workflows/tenant-create-dedicated.yml
Sem a criação ou clonagem correta dos secrets, o tenant é criado só parcialmente: a configuração pode existir em código, mas as aplicações não recebem secrets válidos no cluster.
Workflow de tenant comum¶
No tenant-create.yml, a sequência relevante é:
check-vault-secretsvault-secrets-managementpr-managementvault-secrets-metadata
O workflow recebe VAULT_ADDR e VAULT_TOKEN por secrets do GitHub Actions, instala o Vault CLI e depois verifica se o tenant já possui secrets.
O que cada ação faz¶
check-vault-secrets¶
- usa
scripts/vault/vault-backup.sh -l - verifica se já existe conteúdo em
secret/{ENV}/tenants/{tenant} - evita recriação acidental de secrets
vault-secrets-management¶
- usa
vault-backup.shevault-update-value.sh - copia secrets de um tenant de origem, normalmente
template - filtra e cria apenas as aplicações solicitadas no workflow comum
- transforma referências internas como URLs, pool names e paths
vault-secrets-metadata¶
- grava metadados de rastreabilidade nos secrets após criação da PR
- vincula a operação ao número da pull request
Workflow de tenant dedicado¶
No tenant-create-dedicated.yml, a cadeia é equivalente, mas o foco é um tenant com DATABASE_TYPE=dedicated.
As diferenças mais relevantes são:
- o workflow inclui parâmetros de infraestrutura de banco e sizing
create-tenant-configroda comoperation: infra_config- a criação dos secrets ocorre sem a lista explícita de aplicações do workflow comum
Por que isso importa para a documentação operacional¶
Ao documentar onboarding de tenant, é obrigatório explicar que:
- criar o arquivo HCL do tenant não basta
- o Vault precisa ser verificado e populado
- ESO depende desses secrets para materializar a configuração no cluster
- sem isso, ArgoCD aplica manifests, mas os pods falham ou ficam incompletos
Cadeia resumida¶
flowchart LR
WF[Workflow de tenant] --> CHECK[check-vault-secrets]
CHECK --> COPY[vault-secrets-management]
COPY --> PR[PR Management]
PR --> META[vault-secrets-metadata]
META --> ESO[ESO sincroniza no cluster]
ESO --> POD[Pods recebem env/config]