Cozystacki vabade PaaS-platvormi arendajad on valmistanud projekti Talm, mis lihtsustab bare-metal serverite konfigureerimist Talos Linuxi jaoks, operatsioonisüsteemi Kubernetes'i tööks, millel on Kubernetes'ile sarnane API ja mida saab seadistada ühe Yaml-manifestiga. Ehkki Talm loodi Cozystacki deklaratiivse paigaldamise kirjeldamiseks, ei ole see otseselt seotud selle platvormiga ning seda saab kasutada igasuguste Talos Linuxi konfiguratsioonide haldamiseks. Projekt areneb MPL-litsentsi alusel.
Veel ühe Talos Linuxi konfiguratsioonihalduri arendamise vajadus tuleneb keskendumisest bare-metal serveritele. Arendajad soovisid luua lihtsaimat liidest, mis meenutab Helm ja kubectl, mis on Kubernetes'i administraatoritele tuttavad utiliidid.
Kuna iga füüsilisel serveril on erinev konfiguratsioon (MAC-aadressid, liidesed ja kettad), on vajalik iga sõlme jaoks eraldi konfiguratsioonifail. Vajaliku on lihtne haldur, mis võimaldab genereerida selliseid konfiguratsioonifaile kogutud teabe põhjal ja deklareerida nende uuendamist.
Selleks kasutatakse konfiguratsioonifailide dünaamilist genereerimist ettenähtud mallide põhjal. Saadaval on valmis seadistused „generic” ja „cozystack”. Talm suudab genereerimise etapis koguda teavet Talos API-st ja kasutada seda lõppkonfiguratsioonide jaoks. Need konfiguratsioonifailid ei sisalda salajasi andmeid, vaid ainult muudatusi, mis võimaldab neid mugavalt hoida Git-is ja hallata neid deklaratiivselt.
Enamikus Talm kordab Helm-i struktuuri, käsitledes mõistet chart, milles on kirjas mallid konfiguratsiooni genereerimiseks. Toetatakse Helm-i sarnaseid lookup-funktsioone Talos API otse küsimiseks ja lisametainfo kogumiseks konfiguratsioonifailide genereerimiseks, kasutades „go templates” ja sprigi teeki.
Käsk: talm template -t templates/controlplane.yaml -e 1.2.3.4 -n 1.2.3.4 > nodes/srv1.yaml
Küsib sõlme „1.2.3.4” API kaudu, genereerib selle jaoks uue konfiguratsioonifaili mallist, asendades vajalikud andmed. Saadud konfiguratsioonifaili saab kohe rakendada ühe käsuga: talm apply -f nodes/srv1.yaml
Igas sellises konfiguratsioonifailis seab Talm oma mudelijoonise, kus salvestatakse sõlme lõpp-punktid ja mallid, millest see on saadud, et neid oleks mugav rakendada ja uuendada ilma täiendavate valikute näitamiseta. Talm toetab kõiki samu käske, mis 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
kuvab interaktiivse juhtpaneeli kõigi kolme sõlme jaoks. Ja käsk: talm get routes -f nodes/srv1.yaml
näitab sõlmes «srv1» marsruutide loendi.
Vajadusel saab konfiguratsioonifailid eksportida valikuga «—full» eraldi PXE-serverisse, mis võimaldab sõlmedel need automaatselt alla laadida. Nii säilitab Talm bare-metal'i variatiivsuse serverite, tagades nende mugava haldamise vastavalt parimatele GitOps'i praktikale.
Allikas: opennet.ru
