Commands · MemphisLab Docs
MemphisLab Docs
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