Os desenvolvedores da plataforma PaaS livre Cozystack prepararam o projeto Talm, que visa simplificar a configuração de servidores bare-metal para o Talos Linux, um sistema operacional para executar Kubernetes, que possui uma API semelhante ao Kubernetes e é configurado com um único manifesto Yaml. Embora o Talm tenha sido criado para descrever a instalação declarativa do Cozystack, ele não está vinculado especificamente a essa plataforma e pode ser usado para gerenciar qualquer configuração do Talos Linux. O projeto está em desenvolvimento sob a licença MPL.
A necessidade de desenvolver mais um gerenciador de configurações para o Talos Linux se deve à orientação para servidores bare-metal. Os desenvolvedores buscaram criar uma interface o mais simples possível, semelhante ao Helm e ao kubectl, utilitários bem conhecidos pelos administradores do Kubernetes.
Dado que cada servidor físico possui uma configuração diferente (endereços MAC, interfaces e discos), é necessário ter um arquivo de configuração separado para cada nó. Um gerenciador simples é necessário para gerar esses arquivos de configuração com base nas informações coletadas e atualizá-los de forma declarativa.
Para isso, é utilizada a geração dinâmica de arquivos de configuração a partir de um modelo fornecido. Existem presets prontos “generic” e “cozystack”. O Talm é capaz de coletar informações da Talos API durante a etapa de geração e usá-las nas configurações resultantes. Esses arquivos de configuração não contêm segredos, apenas alterações, o que permite armazená-los de maneira conveniente no Git e gerenciá-los de forma declarativa.
Na maioria das vezes, o Talm repete a estrutura do Helm, operando com o conceito de chart, no qual são descritos modelos para a geração de configurações. Funções semelhantes ao Helm, como lookup, são suportadas para consultar diretamente a Talos API e coletar metadados adicionais para a geração de arquivos de configuração usando “go templates” e a biblioteca sprig.
Comando: talm template -t templates/controlplane.yaml -e 1.2.3.4 -n 1.2.3.4 > nodes/srv1.yaml
Consulta o nó “1.2.3.4” pela API, gera um novo arquivo de configuração para ele a partir do modelo, inserindo os dados necessários. O arquivo de configuração obtido pode ser imediatamente aplicado com um único comando: talm apply -f nodes/srv1.yaml
Além disso, em cada arquivo de configuração, o Talm define seu modeline, no qual armazena os endpoints da node e os templates dos quais foi gerado, permitindo aplicá-los e atualizá-los facilmente sem a necessidade de especificar opções adicionais. O Talm suporta todos os mesmos comandos que a ferramenta upstream talosctl, mas permite que você passe o arquivo de configuração da node, por exemplo: talm dashboard -f nodes/srv1.yaml -f nodes/srv2.yaml -f nodes/srv3.yaml
gerará um dashboard interativo para todas as três nodes. E o comando: talm get routes -f nodes/srv1.yaml
gerará uma lista de rotas na node 'srv1'
Se necessário, os arquivos de configuração podem ser exportados com a opção '--full' para um servidor PXE separado, permitindo que as nodes faça o download automaticamente. Assim, o Talm mantém a variabilidade bare-metal servidores, garantindo uma gestão conveniente em conformidade com as melhores práticas do GitOps.
Fonte: opennet.ru
