A Cozystack szabad PaaS-platform fejlesztői elkészítették a Talm projektet, amely a bare-metal szerverek Talos Linux konfigurálását hivatott megkönnyíteni. A Talos Linux egy Kubernetes futtatására szolgáló operációs rendszer, amely Kubernetes-szerű API-val rendelkezik, és egy Yaml-manifesztum segítségével konfigurálható. Bár a Talm a Cozystack deklaratív telepítésének leírására készült, nem kötődik kifejezetten ehhez a platformhoz, és használható bármely Talos Linux konfiguráció kezelésére. A projekt MPL licenc alatt fejlődik.
Az újabb konfigurációs menedzser kifejlesztésének szükségessége a Talos Linux számára a bare-metal szerverekre való orientálódás okozta. A fejlesztők a lehető legegyszerűbb interfész megalkotására törekedtek, amely hasonló a Helm és kubectl eszközökhöz, amelyeket a Kubernetes rendszergazdák jól ismernek.
Mivel minden fizikai szerver eltérő konfigurációval rendelkezik (MAC-címek, interfészek és lemezek), szükség van egy külön konfigurációs fájlra minden egyes node számára. Szükséges egy egyszerű menedzser, amely lehetővé teszi az ilyen konfigurációs fájlok generálását a gyűjtött információk alapján, és deklaratívan frissíti azokat.
Ezeket dinamikus konfigurációs fájlok generálásával érik el egy megadott minta alapján. Két előre definiált beállítás érhető el: „generic” és „cozystack”. A Talm képes a generálás során információkat gyűjteni a Talos API-ból, és azokat felhasználni az eredményül kapott konfigurációkhoz. Ezek a konfigurációs fájlok nem tartalmaznak titkokat, csak változásokat, ami lehetővé teszi, hogy kényelmesen tárolják őket a Git-ben és deklaratívan kezeljék.
A Talm a legtöbb esetben a Helm struktúráját követi, a konfiguráció generálására szolgáló sablonként használt chart koncepcióval. Támogatja a Helm-szerű lookup funkciókat a Talos API közvetlen lekérdezésére és további metainformációk gyűjtésére a konfigurációs fájlok generálásához a „go templates” és a sprig könyvtár használatával.
Parancs: talm template -t templates/controlplane.yaml -e 1.2.3.4 -n 1.2.3.4 > nodes/srv1.yaml
Lekérdezi az „1.2.3.4” node-ot az API-n keresztül, és új konfigurációs fájlt generál a sablon alapján, behelyettesítve a szükséges adatokat. Az így kapott konfigurációs fájlt azonnal alkalmazhatjuk egyetlen parancs segítségével: talm apply -f nodes/srv1.yaml
A Talm minden konfigurációs fájlban beállít egy saját modelinet, amelyen megjegyzi a csomópont végpontjait és azokat a sablonokat, amelyekből származik, megkönnyítve ezzel az alkalmazásukat és frissítésüket, anélkül hogy további opciókat kellene megadni. A Talm támogat minden olyan parancsot, mint az upstream eszköz, a talosctl, de lehetővé teszi a konfigurációs fájlok átadását a csomópont számára, például: talm dashboard -f nodes/srv1.yaml -f nodes/srv2.yaml -f nodes/srv3.yaml
interaktív műszerfalat fog megjeleníteni mindhárom csomópontra. A parancs: talm get routes -f nodes/srv1.yaml
a „srv1” csomópont útvonalainak listáját fogja megjeleníteni.
Szükség esetén a konfigurációs fájlok külön PXE-szerverre is exportálhatók a „—full” opcióval, amely lehetővé teszi a csomópontok számára, hogy automatikusan letöltsék őket. Ezzel a Talm megőrzi a bare-metal variabilitását, szerverek, megkönnyítve a kezelést a legjobb GitOps gyakorlatoknak megfelelően.
Forrás: opennet.ru
