Documentação da Infraestrutura da Junta de Freguesia
1. Arquitetura e Recursos Globais
- **01. Objetivo e Visão Geral da Arquitetura**
- Objetivo, diagrama da infraestrutura e a separação entre serviços Privados e Públicos via Cloudflare.
- 02. Recursos e Infraestrutura Física
- Alocação de Recursos e Mapeamento de IPs.
2. Instalação e Configuração (Passo a Passo)
- Configuração do TrueNAS e Shares NFS
- Aprovisionamento dos datasets gitlab e k8s-pvc com ACLs.
- Deploy do GitLab CE (VM)
- Configuração da VM cloud-init, mount NFS e parâmetros do Omnibus.
- Construção do Cluster K3s em HA
- Iniciação dos 3 Masters (etcd) com kube-vip, agregação dos Workers, e deploy do MetalLB e Traefik Duplo (Público .41 e Privado .40).
- Instalação do ArgoCD (GitOps)
- Automação de deploymentse repósitorios Git.
- Authentik SSO e Identidade Centralizada
- Implementação do IdP, integração OIDC no GitLab e ArgoCD, e políticas rigorosas de bloqueio de rede pública.
- Observabilidade Centralizada
- Prometheus, Grafana, Loki no Kubernetes, e injeção do Promtail na VM do GitLab via NodePort 30100.
- Configuração do GitLab Runner no K3s
- Runners escaláveis a correr no Kubernetes para pipelines de CI/CD.
- Acesso Remoto via Cloudflare Tunnel
- Exposição do GitLab Público e Authentik à internet sem NAT/Port Forwarding.
- Exemplo de Deploy Manual (Webhook)
- Criação de um manifesto prático para expor e testar apps publicamente.
3. Scripts e Templates Automáticos
- Script de Autojoin: Adicionar Novo Worker ao K3s
- Como expandir a capacidade de computação criando rapidamente uma nova VM k3s-w3.
- Script de Registo: Novo Runner para Pipelines
- Adição de runners específicos (ex: para builds pesadas ou deploy shells).
- Exemplo de Pipeline Completo (.gitlab-ci.yml)
- Template para compilação de código, geração de imagens e sync com o ArgoCD.
4. Exemplos e Manifestos Práticos
- Pasta de Exemplos
- Contém deployment.yaml e kustomization.yaml.