Sobre o projeto
Este repositório é a configuração pública de GitOps para um único cluster Kubernetes doméstico. Ele é organizado de forma que cada diretório corresponda a um namespace, e a maioria dos aplicativos é implantada por meio de um Helm chart `app` compartilhado, mantido em um repositório de charts separado. O próprio cluster é executado no Talos, com sua configuração de máquinas publicada em um repositório complementar.
O que ele contém
- Um amplo índice de namespaces e das cargas de trabalho neles contidos, listando o tipo de recurso (principalmente HelmRelease, além de algumas entradas GitRepository e CronJob) e quaisquer serviços de apoio, como PostgreSQL, Redis/Valkey ou jobs de backup restic.
- Namespaces de aplicativos que abrangem várias áreas: mídia (Jellyfin, Immich, Tdarr, nginx-rtmp), documentos e conhecimento (Paperless-ngx, Atuin, Tandoor, sincronização KOReader), identidade e segredos (Authentik, Vaultwarden), colaboração (Mattermost, Gitea), monitoramento e observabilidade (Prometheus, metrics-server, json-exporter, ping-exporter, kromgo) e armazenamento (Longhorn, MinIO, CSI snapshotter).
- Namespaces de infraestrutura para a base do cluster: cert-manager, CloudNativePG, Envoy Gateway, external-dns, operador Tailscale e peer relay, aplicação de políticas Kyverno, descheduler, reloader, reflector e controladores de GitHub Actions runner com vários runner scale sets.
- Cargas de trabalho de rádio, aviação e meteorologia: serviços de malha AREDN, dump978, piaware, ultrafeeder, rtl-433, trunk-recorder, rdio-scanner, weewx e capturadores de imagens para dados de câmeras all-sky e mesonet.
- Backup e recuperação: um namespace backup-sync com vários jobs baseados em restic, CronJobs de backup e limpeza do etcd, e HelmReleases restic por aplicativo.
- Serviços de jogos e hobbies, como Minecraft, Mindustry e Path of Titans, além de utilitários diversos como CyberChef, GoLink, Healthchecks, iperf3 e OpenSpeedTest.
Como é usado
Trata-se de uma implantação pessoal e opinativa, não de um produto reutilizável. É mais útil como referência de como um amplo conjunto de serviços auto-hospedados pode ser estruturado como HelmReleases gerenciados pelo Flux, como os namespaces são separados entre aplicativos, serviços e infraestrutura, e como bancos de dados e backups de apoio são integrados a cada aplicativo. Adaptá-lo exigiria substituir nomes de host, segredos, classes de armazenamento e as fontes de charts Helm referenciadas pelos seus próprios.
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.