Credenciais do Firebase no cluster de staging
TLDR: Criar o Secret Kubernetes
firebase-credentialsvia Terraform com o JSON do Firebase Admin SDK, para que as notificações funcionem em staging.
Contexto
Os deployments web e worker já montam o volume firebase-credentials em /secrets/firebase/firebase-adminsdk.json e expõem FIREBASE_CREDENTIALS_PATH. No entanto, o Secret Kubernetes firebase-credentials nunca foi criado no Terraform — o arquivo JSON de credenciais não existe no cluster de staging, fazendo com que as notificações Firebase falhem silenciosamente.
Limitação conhecida: o conteúdo do JSON é armazenado inline no SOPS (staging.yaml). A manutenção exige re-encriptar o arquivo a cada rotação de credencial. Futuro: migrar para GCP Secret Manager ou AWS Secrets Manager.
Objetivos
- Criar o Secret Kubernetes
firebase-credentialsno namespaceonion-backend--staging - Armazenar o conteúdo do JSON encriptado via SOPS no
staging.yaml
Fora de escopo
Não alterar os manifests k8s — já estão corretos.
Mudanças
.infra/terraform/secrets/staging.yaml— adicionar o campofirebase_credentials_jsoncom o conteúdo do arquivoonion-firebase-adminsdk.json.infra/terraform/secrets/staging.enc.yml— re-encriptar com SOPS após editar o plaintext.infra/terraform/secrets.tf— adicionarresource "kubernetes_secret" "firebase_credentials"que lêlocal.secrets["firebase_credentials_json"]e cria o secret com a chavefirebase-adminsdk.json
Como verificar
- Após
terraform apply:kubectl get secret firebase-credentials -n onion-backend--staging - Checar que o conteúdo bate:
kubectl get secret firebase-credentials -n onion-backend--staging -o jsonpath='{.data.firebase-adminsdk\.json}' | base64 -d | jq . - Reiniciar um pod web/worker e verificar nos logs que o Firebase inicializa sem erro
Documentação
Nenhuma mudança de documentação necessária.