Cozystacki tasuta PaaS-platvormi arendajad on valmistanud projekti Talm, mille eesmärk on lihtsustada bare-metal serverite seadistamist Talos Linuxi jaoks, operatsioonisüsteemi, mis on mõeldud Kubernetes'e käitamiseks ja millel on Kubernetes'e sarnane API ning mille seadistamine toimub ühe Yaml-manifesti abil. Kuigi Talm on loodud Cozystacki deklaratiivse installatsiooni kirjelduseks, ei ole see konkreetse platvormiga seotud ja seda saab kasutada Talos Linuxi igasuguste konfiguratsioonide haldamiseks. Projekt areneb MPL litsentsi alusel.
Uue konfiguratsioonihalduri arendamise vajadus Talos Linuxi jaoks tuleneb bare-metal serverite suunast. Arendajad püüdsid luua kõige lihtsama liidese, mis meenutab Helm'i ja kubectl'i, mis on Kubernetes'e administraatoritele tuttavad tööriistad.
Kuna igal füüsilisel serveril on erinev konfiguratsioon (MAC-aadressid, liidesed ja kettad), on igale nodile vajalik eraldi konfiguratsioonifail. On vajalik lihtne haldur, mis võimaldab genereerida selliseid konfiguratsioonifaile kogutud teabe alusel ja deklaratiivselt neid uuendada.
Selleks kasutatakse dünaamilist konfiguratsioonifailide genereerimist määratud шаблoni põhjal. Saadaval on valmis presets 'generic' ja 'cozystack'. Talm suudab genereerimise käigus koguda teavet Talos API-st ja kasutada seda tulemuseks saadud konfiguratsioonides. Need konfiguratsioonifaile ei sisalda saladusi, vaid ainult muudatused, mis võimaldab neid mugavalt Git'is hoida ja deklaratiivselt hallata.
Talm kordab enamasti Helm'i struktuuri, kasutades mõistet chart, milles kirjeldatakse шаблoni konfiguratsiooni genereerimiseks. Toetatakse Helm'i sarnaseid lookup funktsioone, et küsida otse Talos API't ja koguda täiendavaid metandmeid konfiguratsioonifailide genereerimiseks 'go templates'i ja sprig'i raamatukogu abil.
Käsk: talm template -t templates/controlplane.yaml -e 1.2.3.4 -n 1.2.3.4 > nodes/srv1.yaml
Küsi nodilt '1.2.3.4' API kaudu, genereeri sellele uus konfiguratsioonifail шаблoni põhjal, asendades vajalikud andmed. Saadud konfiguratsioonifaili saab kohe rakendada lihtsalt ühe käsuga: talm apply -f nodes/srv1.yaml
Igas igas sellises konfiguratsioonifailis määrab Talm oma modeline'i, milles ta salvestab sõlme lõpp-punktid ja mallid, millest see on saadud, et neid saaks mugavalt rakendada ja uuendada ilma täiendavate valikute määramiseta. Talm toetab kõiki samu käske nagu upstream utiliit talosctl, kuid võimaldab edastada neile sõlme konfiguratsioonifaili, näiteks: talm dashboard -f nodes/srv1.yaml -f nodes/srv2.yaml -f nodes/srv3.yaml
kavitseb interaktiivse juhtpaneeli kõigi kolme sõlme jaoks. Ja käsk: talm get routes -f nodes/srv1.yaml
kavitseb loendi marsruutidest sõlmel «srv1»
Vajadusel saab konfiguratsioonifailid välja laadida valikuga «—full» eraldi PXE-serverisse, mis võimaldab sõlmedel neid automaatselt alla laadida. Sel moel säilitab Talm bare-metal'i mitmekesisuse serverid, pakkudes vajadusel mugavat haldamist vastavalt GitOps'i parimatele praktikale.
Allikas: opennet.ru
