Vývojári otvorenej PaaS platformy Cozystack pripravili projekt Talm, ktorého cieľom je zjednodušiť konfiguráciu bare-metal serverov pre Talos Linux, operačný systém určený na spúšťanie Kubernetes, ktorý má API podobné Kubernetes a konfiguruje sa pomocou jedného Yaml manifestu. Aj keď bol Talm vytvorený na popis deklaratívnej inštalácie Cozystack, nie je viazaný len na túto platformu a môže sa používať na správu akýchkoľvek konfigurácií Talos Linux. Projekt sa vyvíja pod licenciou MPL.
Potřeba vyvinúť ďalší správca konfigurácií pre Talos Linux je spôsobená zameraním na bare-metal servery. Vývojári sa snažili vytvoriť čo najjednoduchšie rozhranie, podobné Helm a kubectl, známe nástroje pre administrátorov Kubernetes.
Vzhľadom na to, že každý fyzický server má rôznu konfiguráciu (MAC adresy, rozhrania a disky), je potrebné mať samostatný konfiguračný súbor pre každú nódu. Potrebný je jednoduchý správca, ktorý by umožnil generovať takéto konfiguračné súbory na základe zozbieraných informácií a deklaratívne ich aktualizovať.
Na tento účel sa využíva dynamická generácia konfiguračných súborov podľa zadaného šablónu. Existujú už hotové predvoľby „generic“ a „cozystack“. Talm dokáže v priebehu generácie zhromažďovať informácie z Talos API a využívať ich pre výsledné konfigurácie. Tieto konfiguračné súbory neobsahujú tajomstvá, iba zmeny, čo umožňuje pohodlné ich uchovávanie v Git a deklaratívnu správu.
Vo väčšine Talm opakuje štruktúru Helm, operujúc pojmom chart, v ktorom sú popísané šablóny pre generáciu konfigurácie. Podporujú sa funkcie podobné Helm lookup pre priamu konzultáciu s Talos API a zhromažďovanie dodatočných metadát pre generáciu konfiguračných súborov s použitím „go templates“ a knižnice sprig.
Príkaz: talm template -t templates/controlplane.yaml -e 1.2.3.4 -n 1.2.3.4 > nodes/srv1.yaml
Dotazuje nód „1.2.3.4“ cez API, generuje pre ňu nový konfiguračný súbor zo šablóny, pričom dosadí potrebné údaje. Získaný konfiguračný súbor je možné okamžite aplikovať jedným príkazom: talm apply -f nodes/srv1.yaml
V každom takomto konfiguračnom súbore Talm nastavuje svoju modelinu, v ktorej si zapamätáva koncové body uzlu a šablóny, z ktorých bol získaný, aby sa dali pohodlne aplikovať a aktualizovať bez uvádzania ďalších možností. Talm podporuje všetky rovnaké príkazy ako upstream utilita talosctl, ale umožňuje predávať im konfiguračný súbor uzla, napríklad: talm dashboard -f nodes/srv1.yaml -f nodes/srv2.yaml -f nodes/srv3.yaml
vytvorí interaktívny dashboard pre všetky tri uzly. A príkaz: talm get routes -f nodes/srv1.yaml
vytvorí zoznam rout na uzle „srv1“
Ak je to potrebné, konfiguračné súbory môžu byť exportované s voľbou „—full“ na samostatný PXE server, čo umožňuje uzlom ich automaticky sťahovať. Týmto spôsobom Talm zachováva variabilitu bare-metal serverov, čo zabezpečuje pohodlné riadenie v súlade s najlepšími praktikami GitOps.
Zdroj: opennet.ru
