Padrões de infraestrutura Kubernetes, secrets, clusters e operações GitOps no Yby CLI
Dois modos suportados: local (k3d) e remote (VPS via SSH). A lógica de orquestração fica em pkg/services/environment/ usando as interfaces ClusterManager e MirrorService.
Nunca acessar kubectl/k3d diretamente — sempre via shared.Runner para permitir mocks em testes.
Duas estratégias suportadas via flag --strategy:
sealed-secrets (padrão) — usa Sealed Secrets do Kubernetessops — integra com o binário sops para encriptação via age/KMSPermissões de arquivos sensíveis (.envrc, YAMLs de secrets): sempre 0600, nunca 0644.
if err := os.WriteFile(path, data, 0600); err != nil {
return errors.Wrap(err, errors.ERR_IO, "falha ao escrever secret")
}
O pacote pkg/services/bootstrap/ gerencia instalação de Argo CD, configuração de secrets e outros recursos de cluster. Usa K8sClient interface — nunca instanciar cliente K8s diretamente nos testes.
Port-forward e credenciais ficam em pkg/services/network/. Usa ClusterNetworkManager e LocalContainerManager — mockáveis via interfaces.
Git mirror server (pkg/mirror/) roda no cluster com túnel e sync loop. Não modificar sem entender o protocolo de sincronização bidirecional.
Configurações em .yby/environments.yaml. Nunca hardcodar nomes de ambiente — usar pkg/context para resolver o ambiente ativo (--context flag ou YBY_ENV).
O engine em pkg/scaffold/ filtra templates por topology (single/multi), workflow e features. O ambiente padrão para topologia single é local (não prod).
0600[REDACTED] se necessáriopkg/executor/)