It's alive!
Circa a maggio 2020 in mezzo ai lockdown del COVID ho iniziato a tirarmi su un mediaserver con un semplice docker-compose e oggi, dopo quasi 5 anni di smarmellamenti, ho deciso di provare a rendere pubblico il repository del mio homelab.
Sostanzialmente è diviso in due grosse parti:
- Ansible: per installare e configurare i servizi che stanno su delle VM o dei LXC sul cluster di Proxmox (Vault, Gitlab, PiHole)
- Kubernetes: con entrypoint root-applications.yaml gestito tutto in modalità Gitops tramite ArgoCD, sia la parte di infrastruttura (cert-manager, traefik, rancher), sia quella di applicazioni.
Visto che avevo key e password versionate dappertutto, nelle ultime settimane ho provato a spostare tutto su Hashicorp Vault usando una immagine docker custom con vault-agent per poter lanciare i playbook Ansible che uso per deployare e configurare tutto.
Su Kubernetes invece ho integrato External Secret Operator sempre per poter recuperare i secret dal Vault e mi sono "divertito" a trovare un modo per deployarlo e configurarlo in modalità GitOps con ArgoCD.
E' rimasto ancora qualcosa fuori, per cui per ora ho un job nel gitlab-ci di questo repository che dà una ripulita prima di committare e pushare il tutto su un nuovo repo "pulito" che poi fa mirroring su Github.
Come ultima novità ho introdotto MkDocs per cominciare a fare un po' di documentazione e gestire gli aggiornamenti di questo mini blog che verrà pubblicato sulle Github Pages da una Github Action sul repository mirrorato.
Di cose da fare ce ne sono un sacco...
- Voglio implementare Harbor per fare il caching delle immagini Docker di DockerHub in modo da non sforare i nuovi limiti di pull orari
- Vorrei approfondire Terraform e Packer per fare il provisioning delle vm su Proxmox in modo da poter collegare il tutto ai due playbook con cui faccio il setup del cluster Kubernetes e la sua configurazione iniziale
- Devo implementare il monitoring e le notifiche su tutti i servizi
- Vorrei un SSO centralizzato per tutto, tipo Autentik
- Mi piacerebbe scorporare dei roles Ansible per poterli distribuire in repository a sé stanti
- Vorrei documentare bene il tutto e magari provare a scrivere degli altri post su questo blog relativamente a problemi con cui mi scontro o cose che provo
- Vorrei man mano pulire bene il repository, sistemare le sync wave e gli hook di argocd, rivedere i roles di ansible, fare il linting di tutti gli yaml
Intanto rendere open questo repo è stata una bella sfida, adesso avanti con i prossimi step!