Configurar TZ nos pods e no banco de staging

TLDR: Definir o timezone America/Sao_Paulo em todos os pods k8s do onion-backend (staging) e no PostgreSQL de staging.

Contexto

Todos os pods do onion-backend rodam em UTC porque nenhuma variável TZ é definida. O cluster PostgreSQL de staging também usa UTC por padrão. Isso causa comportamento incorreto de agendamento nas tasks do Celery beat e timestamps desalinhados em logs e registros do banco em relação ao BRT (UTC-3).

Production ainda não é afetado — não existe.

Objetivos

  • Todos os pods de staging interpretam o tempo como America/Sao_Paulo (BRT, UTC-3)
  • O banco PostgreSQL de staging usa America/Sao_Paulo como timezone padrão

Fora de escopo

A mudança é aplicada apenas em staging — production está fora de escopo.

Mudanças

.infra/k8s/base/specs/ — adicionar a env var TZ: America/Sao_Paulo em: - web-deployment.yaml - worker-deployment.yaml - worker-habits-deployment.yaml - beat-deployment.yaml - migrate-job.yaml

.infra/terraform/ — configurar o timezone do PostgreSQL via provider cyrilgdn/postgresql (já instalado): - Adicionar o provider postgresql em versions.tf - Adicionar recurso postgresql_configuration (ou postgresql_extension + role setting) em database.tf para definir TimeZone = 'America/Sao_Paulo' no cluster de staging

Como verificar

  1. Após o deploy, kubectl exec -it <pod> -- date → deve mostrar horário BRT
  2. No banco: SELECT current_setting('TimeZone'); → deve retornar America/Sao_Paulo
  3. Confirmar que os agendamentos do Celery beat disparam nos horários BRT esperados

Documentação

Nenhuma mudança de documentação necessária.