Conversation
docs: execucao e entrada de trafego no cluster
feat: postgres, config por variavel de ambiente e migrate no servidor
feat: componente pulumi, stacks e smoke da stack dev em kind
chore: publica a imagem do servidor no ghcr
…nente fix: desce o grpc do componente pulumi para a versao corrigida
chore: govulncheck no pre-push e no ci para todos os modulos
NicolasArthurDev
self-requested a review
October 5, 2026 23:49
| container := serverContainer(args, names) | ||
| container.Ports = corev1.ContainerPortArray{corev1.ContainerPortArgs{ContainerPort: pulumi.Int(apiPort)}} | ||
| container.ReadinessProbe = healthzProbe() | ||
| container.LivenessProbe = healthzProbe() |
Contributor
There was a problem hiding this comment.
A sonda de liveness usa o /healthz, que faz ping no PostgreSQL (internal/api/health.go). Se o banco ficar fora do ar (por exemplo, o pod único do StatefulSet reiniciando por drain de nó ou troca de imagem), todas as réplicas da API falham a liveness e o kubelet as reinicia. Na volta, serve() chama OpenPool, que faz ping e encerra o processo se o banco ainda não responde, então os pods entram em CrashLoopBackOff e a API pode levar minutos para voltar depois que o banco já voltou. Sugestão: deixar só a readiness no /healthz e usar na liveness uma sonda que não dependa do banco (por exemplo, tcpSocket na porta 8080).
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
O que mudou
Consolidação da Sprint 2 da disciplina ISN, 84 commits, fechando o milestone "Sprint 2: infraestrutura como código", que espelha a Sprint 2 de ederson-torresini/isn20262.
Ambiente IaC (#30) e projeto e stacks no Pulumi (#31). Componente Pulumi em Go em
deploy/pulumi, que cria PostgreSQL no namespace, Job de migração, API e entrada por Gateway API, com Gateway próprio ou pendurado num Gateway existente. Projeto emdeploy/stackscom as stacks dev e prod. Ambiente kind emdeploy/kindcom os requisitos do cluster de produção, commake smoke-kind,make kind-upe painel Headlamp. (#28, #34)Servidor. SQLite trocado por PostgreSQL com pgx/v5, testes contra Postgres real com testcontainers, configuração só por variável de ambiente com validação de faixa, e a migração saindo do boot para o subcomando
markupp migrate. Compose sobe Postgres, migração e servidor. (#32)Arquitetura. ADR-0032 (escala a zero com KEDA, Proposta), com a reserva por cofre com
SKIP LOCKED. ADR-0033 recuperando o indexador como função pura. ADRs 0025 e 0027 revistos para Kubernetes com Pulumi, Gateway API e Postgres no namespace. Diagrama de implantação em draw.io. (#24, #28)CI e entrega. Smoke da stack dev num kind quando muda servidor ou deploy, testes do componente Pulumi, govulncheck em todos os módulos no CI e no pre-push, e a imagem passando a ser publicada no GHCR da organização. (#28, #29, #33)
Por quê
Fecha o milestone Sprint 2, que vence em 01/10 e pede infraestrutura como código: ambiente IaC e projeto Pulumi com stacks dev e prod.
O que fica de fora
v*Como testar
make test(Go e Docker)make rune os curl da seção Validar do docs/DEPLOY.mdmake smoke-kind(Docker, kind, helm, kubectl e Pulumi)cd deploy/pulumi && go test ./...Auto-review (checklist)