k3s Platform
Commands
Comandos de operação da plataforma k3s
Bootstrap da plataforma
export GRAFANA_PASSWORD=...
export MINIO_ROOT_USER=... MINIO_ROOT_PASSWORD=...
export ACME_EMAIL=devops@finatto.com.br
export CF_API_TOKEN=...
make ops-up # instala monitoring, traefik, cert-manager, sealed-secrets, loki, cnpg, minio, argocd, nessa ordem
make ops-dns INGRESS_IPS=<ip1,ip2>
make argocd-repo GIT_TOKEN=...
make argocd-appset
make secrets-backup-key > sealed-secrets-key.bak
A ordem do ops-up não é arbitrária: monitoring vai primeiro porque Traefik, MinIO, cert-manager, CNPG e sealed-secrets emitem ServiceMonitor e falham ao instalar sem os CRDs do Prometheus.
Provisionar um cliente
make client-new CLIENT=acme APP=checklist
git add clients/acme.yaml sealed/acme.yaml
git commit -m "feat(clients): add acme"
git push
APP decide quais chaves de secret são seladas: o provisionador lê extraSecretKeys de apps/<app>.yaml, gera valor aleatório para as listadas em generatedSecretKeys e deixa vazio o resto (contratos com algo fora do cluster).
Operação do dia a dia
make client-status CLIENT=acme # pods, HPA, PVCs, ingress, Postgres
make client-logs CLIENT=acme
make client-shell CLIENT=acme
make client-usage # CPU/memória de todos os clientes
make client-backup CLIENT=acme # backup de Postgres on-demand
make client-upgrade CLIENT=acme TAG=v1.4.3
make client-seal CLIENT=acme # rotaciona secrets
make client-remove CLIENT=acme # dupla confirmação
Build e release de aplicação
make app-list # aplicações registradas
make app-build APP=checklist REF=v0.3.0 # builda e publica, sem atualizar apps/<nome>.yaml
make app-release APP=checklist REF=v0.3.0 # builda, publica e grava source.ref/image.tag
make app-release builda o ref informado, publica <imagem>:<ref> e <imagem>:sha-<short>, e escreve source.ref/image.tag de volta em apps/<nome>.yaml. O commit desse arquivo é o que dispara o rollout — o ArgoCD sincroniza todo cliente daquela aplicação assim que vê a mudança.
make ops-buildkit GHCR_PUSH_TOKEN=<token com write:packages> # sobe os builders buildkitd
make ops-registry-auth GHCR_TOKEN=<token com read:packages> # credencial de pull em cada node
Validação (roda exatamente o que o CI roda, sem cluster)
make lint # helm lint --strict + yamllint
make validate # renderiza o chart em 5 cenários contra schemas reais
make validate-cluster # renderiza os values de cluster/ nas versões pinadas
make secrets-verify # guard de segredo em texto plano
Desenvolvimento local (k3d)
make cluster-create
make client-example # clients/exemplo.yaml, gitignored, secrets locais
make image-import IMAGE=finatto-checklist:local
make client-install CLIENT=exemplo