Skip to content

chore: remove infraestrutura do Prefect 0 - #150

Merged
Winzen merged 2 commits into
mainfrom
chore/remove-prefect0
Aug 4, 2026
Merged

chore: remove infraestrutura do Prefect 0#150
Winzen merged 2 commits into
mainfrom
chore/remove-prefect0

Conversation

@Winzen

@Winzen Winzen commented Aug 4, 2026

Copy link
Copy Markdown
Contributor

chore: remove infraestrutura do Prefect 0

Issue: #151
Issue principal: basedosdados/pipelines#1736

Contexto

O Prefect 0 (versão 0.15.9) foi totalmente substituído pelo Prefect 3. Todos os flows foram migrados. Os recursos do Prefect 0 já estavam com replicas: 0 desde o PR #139. Este PR remove completamente toda a infraestrutura do repositório IAC.

Os recursos foram deletados do cluster e do Cloud SQL antes do merge deste PR.


Organização de arquivos

k8s/prefect/                                         # removido — servidor Prefect 0
  chart/values.yaml                                  #   Helm values (hasura, graphql, apollo, ui, towel)
  ingress.yaml                                       #   ingress prefect.basedosdados.org
  issuer.yaml, db-service.yaml, namespace.yaml
  job_template/job_template.yaml
  secret-00 a secret-05 (sealed secrets)

k8s/prefect_agents/basedosdados/                     # removido — agente principal (16 secrets)
k8s/prefect_agents/basedosdados-dev-gcp-vertex/      # removido — agente Vertex AI (6 secrets)
k8s/prefect_agents/basedosdados-perguntas/           # removido — agente perguntas (5 secrets)
k8s/prefect_agents/basedosdados-projetos/            # removido — agente projetos (5 secrets)
k8s/prefect_agents/                                  # removido — pasta vazia após remoção dos agentes

terraform/cloud_sql/main.tf                          # removido google_sql_user.prefect e google_sql_database.prefect
terraform/cloud_sql/variables.tf                     # removido sql_prefect_user_name, sql_prefect_user_password, sql_prefect_db_name
terraform/main.tf                                    # removido repasse das 3 variáveis para o módulo cloud_sql
terraform/variables.tf                               # removido as 3 variáveis

k8s/website/django/prod/secret-09_sealed.yaml        # novo — api-prod-secrets sem API_KEY_PREFECT
k8s/website/django/staging/secret-10_sealed.yaml     # novo — api-staging-secrets sem API_KEY_PREFECT

O que foi executado antes do merge

K8s — desinstalação dos Helm releases e deleção dos namespaces

# Servidor
helm uninstall prefect -n prefect

# Agentes (basedosdados-dev-gcp-vertex não tinha release registrado)
helm uninstall prefect-agent -n prefect-agent-basedosdados
helm uninstall prefect-agent -n prefect-agent-basedosdados-perguntas
helm uninstall prefect-agent -n prefect-agent-basedosdados-projetos

# Deleção dos namespaces
kubectl delete namespace prefect \
  prefect-agent-basedosdados \
  prefect-agent-basedosdados-dev-gcp-vertex \
  prefect-agent-basedosdados-perguntas \
  prefect-agent-basedosdados-projetos

Cloud SQL — banco e usuário

Os recursos nunca foram importados no state do Terraform (terraform plan -target retornou "No changes"), então a remoção foi feita diretamente via gcloud.

O banco tinha conexões ativas após a deleção dos namespaces. O pod cloud-sql-proxy não tem shell, então foi usado o pod api-prod (namespace website) para terminar as conexões via psql antes de conseguir deletar o banco:

# Terminar conexões ativas
kubectl exec -n website api-prod-<hash> -- sh -c \
  'psql "host=cloud-sql-proxy port=5432 user=api dbname=prefect sslmode=disable password=$DB_PASSWORD" \
  -c "SELECT pg_terminate_backend(pid) FROM pg_stat_activity WHERE datname = '"'"'prefect'"'"' AND pid <> pg_backend_pid();"'

# Deletar usuário e banco
gcloud sql users delete prefect --instance=basedosdados-dev-438172e0 --project=basedosdados-dev --quiet
gcloud sql databases delete prefect --instance=basedosdados-dev-438172e0 --project=basedosdados-dev --quiet

Sealed secrets do Django — remoção do API_KEY_PREFECT

Seguindo o padrão da wiki de Sealed Secrets: novos secrets gerados a partir dos values atuais do cluster sem a chave API_KEY_PREFECT, selados com kubeseal e aplicados no cluster antes do merge.

# Gerado a partir do secret atual do cluster, removendo API_KEY_PREFECT
kubeseal --format yaml < prod-secret-new.yaml > secret-09_sealed.yaml
kubeseal --format yaml < staging-secret-new.yaml > secret-10_sealed.yaml

kubectl apply -f secret-09_sealed.yaml   # api-prod-secrets configurado
kubectl apply -f secret-10_sealed.yaml   # api-staging-secrets configurado

Validação pós-apply: API_KEY_PREFECT removida, PREFECT3_API_KEY mantida em ambos os ambientes.


O que não foi removido neste PR

  • k8s/observability/prometheus/prometheusrule-prefect-memory.yaml — usa label prefect.io/deployment-name, válido para o Prefect 3
  • Registro DNS prefect.basedosdados.org — remoção manual no Cloud DNS (pendente)

@github-actions

github-actions Bot commented Aug 4, 2026

Copy link
Copy Markdown

💰 Infracost report

Monthly estimate generated

This comment will be updated when code changes.

@mergify

mergify Bot commented Aug 4, 2026

Copy link
Copy Markdown

Tick the box to add this pull request to the merge queue (same as @mergifyio queue).

  • Queue this pull request

@Winzen Winzen linked an issue Aug 4, 2026 that may be closed by this pull request
@Winzen
Winzen merged commit a6cce19 into main Aug 4, 2026
3 checks passed
@Winzen
Winzen deleted the chore/remove-prefect0 branch August 4, 2026 21:55
Winzen added a commit to basedosdados/backend that referenced this pull request Aug 5, 2026
O Prefect 0 foi removido completamente da infraestrutura (basedosdados/iac#150). Este PR limpa as referências restantes no backend.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

chore: remover infraestrutura do Prefect 0 do cluster e Cloud SQL

1 participant