Utvecklarna av den fria PaaS-plattformen Cozystack har förberett projektet Talm, som syftar till att förenkla konfigurationen av bare-metal-servrar för Talos Linux, ett operativsystem för att köra Kubernetes, som har ett Kubernetes-liknande API och konfigureras med en Yaml-manifest. Trots att Talm skapades för att beskriva den deklarativa installationen av Cozystack, Àr det inte specifikt knutet till denna plattform och kan anvÀndas för att hantera alla konfigurationer av Talos Linux. Projektet utvecklas under MPL-licens.
Behovet av att utveckla ytterligare en konfigurationshanterare för Talos Linux beror pÄ inriktningen mot bare-metal-servrar. Utvecklarna har strÀvat efter att skapa ett sÄ enkelt grÀnssnitt som möjligt, liknande Helm och kubectl, verktyg som Àr vÀlkÀnda för Kubernetes-administratörer.
Eftersom varje fysisk server har en olika konfiguration (MAC-adresser, grÀnssnitt och diskar) Àr det nödvÀndigt att ha en separat konfigurationsfil för varje nod. Det behövs en enkel hanterare som gör det möjligt att generera sÄdana konfigurationsfiler baserat pÄ insamlad information och deklarativt uppdatera dem.
Detta uppnÄs genom dynamisk generering av konfigurationsfiler utifrÄn en specifik mall. Det finns fÀrdiga presets "generic" och "cozystack". Talm kan vid genereringssteget samla information frÄn Talos API och anvÀnda den för de resulterande konfigurationerna. Dessa konfigurationsfiler innehÄller inga hemligheter, utan endast Àndringar, vilket möjliggör att enkelt lagra dem i Git och hantera dem deklarativt.
I de flesta fall efterliknar Talm strukturen hos Helm, dÀr begreppet chart anvÀnds för att beskriva mallar för generering av konfiguration. Helm-liknande funktioner för lookup stöds för direktfrÄgor mot Talos API och insamling av ytterligare metadata för att generera konfigurationsfiler med hjÀlp av "go templates" och sprig-biblioteket.
Kommandot: talm template -t templates\/controlplane.yaml -e 1.2.3.4 -n 1.2.3.4 > nodes\/srv1.yaml
FrÄgar noden "1.2.3.4" via API, genererar en ny konfigurationsfil för den frÄn mallen, och infogar nödvÀndiga uppgifter. Den resulterande konfigurationsfilen kan omedelbart tillÀmpas med bara ett kommando: talm apply -f nodes\/srv1.yaml
I varje sÄdan konfigurationsfil stÀller Talm in sin modeline, dÀr den sparar nodens Àndpunkter och mallar som den har fÄtt, sÄ att de enkelt kan tillÀmpas och uppdateras utan att ange ytterligare alternativ. Talm stöder alla samma kommandon som den upstream-verktyg talosctl, men lÄter mig överföra nodens konfigurationsfil, till exempel: talm dashboard -f nodes/srv1.yaml -f nodes/srv2.yaml -f nodes/srv3.yaml
visar en interaktiv instrumentpanel för alla tre noder. Och kommandot: talm get routes -f nodes/srv1.yaml
visar listan över rutter pÄ noden "srv1"
Vid behov kan konfigurationsfiler exporteras med alternativet "âfull" till en separat PXE-server, vilket gör att noderna kan ladda ner dem automatiskt. PĂ„ sĂ„ sĂ€tt bevarar Talm variabiliteten hos bare-metal servrar, vilket möjliggör enkel hantering av dem enligt bĂ€sta praxis inom GitOps.
KĂ€lla: opennet.ru
