Razvijatelji slobodne PaaS platforme Cozystack pripremili su projekt Talm, koji ima za cilj pojednostaviti konfiguraciju bare-metal servera za Talos Linux, operacijski sustav za pokretanje Kubernetes-a, koji ima Kubernetes-sličan API i može se konfigurirati jednim Yaml manifestom. Iako je Talm stvoren za opis deklarativne instalacije Cozystack, nije vezan isključivo za ovu platformu i može se koristiti za upravljanje svim konfiguracijama Talos Linux-a. Projekt se razvija pod MPL licencom.
Potrebа za razvojem još jednog managera konfiguracija za Talos Linux proizlazi iz orijentacije na bare-metal servere. Razvijatelji su nastojali stvoriti najjednostavnije sučelje, slično Helm-u i kubectl-u, dobro poznatim alatima administratore Kubernetes-a.
S obzirom na to da svaki fizički server ima različite konfiguracije (MAC adrese, sučelja i diskove), potreban je zaseban konfiguracijski datoteka za svaku nodu. Treba jednostavan manager koji omogućuje generiranje takvih konfiguracijskih datoteka na temelju prikupljenih informacija i deklarativno ažuriranje.
Za to se koristi dinamička generacija konfiguracijskih datoteka prema zadanom predlošku. Postoje gotovi presetovi „generic“ i „cozystack“. Talm može prilikom generiranja prikupljati informacije iz Talos API-ija i koristiti ih za rezultantne konfiguracije. Ove konfiguracijske datoteke ne sadrže tajne, već samo promjene, što omogućuje njihovo praktično čuvanje u Git-u i upravljanje njima deklarativno.
U većini Talm ponavlja strukturu Helm-a, operirajući pojmom charta, u kojem se opisuju predlošci za generaciju konfiguracije. Podržane su Helm-slične funkcije lookup za izravno upitivanje Talos API-ija i prikupljanje dodatnih metapodataka za generiranje konfiguracijskih datoteka koristeći „go templates“ i sprig biblioteku.
Tim: talm template -t templates/controlplane.yaml -e 1.2.3.4 -n 1.2.3.4 > nodes/srv1.yaml
Upit za nodu „1.2.3.4“ putem API-ja, generira novu konfiguracijsku datoteku iz predloška, umetajući potrebne podatke. Dobivena konfiguracijska datoteka može se odmah primijeniti samo jednom naredbom: talm apply -f nodes/srv1.yaml
Talm također postavlja svoj modeline u svakom konfiguracijskom datoteci, u kojem pamti krajnje točke čvora i predloške iz kojih je dobiven, kako bi ih bilo lako primijeniti i ažurirati bez potrebe za dodatnim opcijama. Talm podržava sve iste naredbe kao i upstream alat talosctl, ali omogućava prijenos konfiguracijske datoteke čvora, na primjer: talm dashboard -f nodes/srv1.yaml -f nodes/srv2.yaml -f nodes/srv3.yaml
će prikazati interaktivnu nadzornu ploču za sve tri čvora. A naredba: talm get routes -f nodes/srv1.yaml
izlistat će popis ruta na čvoru „srv1“
Ako je potrebno, konfiguracijske datoteke se mogu preuzeti s opcijom „—full” na zasebni PXE poslužitelj, što omogućuje čvorovima da ih preuzmu automatski. Na taj način Talm održava varijabilnost bare-metal poslužitelja, osiguravajući jednostavno upravljanje njima prema najboljim praksama GitOps.
Izvor: opennet.ru
