The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

Проект Cozystack выпустил Talm, менеджер конфигураций для Talos Linux

21.05.2024 14:12

Разработчики свободной PaaS-платформы Cozystack подготовили проект Talm, призванный упростить конфигурацию bare-metal серверов для Talos Linux, операционной системы для запуска Kubernetes, которая имеет Kubernetes-подобное API и настраивается одним Yaml-манифестом. Несмотря на то что Talm был создан для описания декларативной установки Cozystack, он не привязан конкретно к этой платформе и может использоваться для управления любыми конфигурациями Talos Linux. Проект развивается под лицензией MPL.

Необходимость разработки ещё одного менеджера конфигураций для Talos Linux обусловлена ориентацией на bare-metal серверы. Разработчики стремились создать наиболее простой интерфейс, похожий на Helm и kubectl, хорошо знакомые утилиты администраторам Kubernetes.

Ввиду того, что каждый физический сервер имеет различную конфигурацию (MAC-адреса, интерфейсы и диски), необходимо иметь отдельный конфигурационный файл под каждую ноду. Нужен простой менеджер, который позволял бы генерировать такие файлы конфигурации на основе собранной информации и декларативно обновлять их.

Для этого используется динамическая генерация файлов конфигурации по заданному шаблону. Есть готовые пресеты "generic" и "cozystack". Talm умеет на этапе генерации собирать информацию из Talos API и использовать её для результирующих конфигураций. Эти файлы конфигурации не содержат секретов, а только изменения, что позволяет удобно хранить их в Git и управлять ими декларативно.

В большинстве Talm повторяет структуру Helm, оперируя понятием чарт, в котором описываются шаблоны для генерации конфигурации. Поддерживаются Helm-подобные функции lookup для опроса Talos API напрямую и сбор дополнительных метаданных для генерации файлов конфигурации с использованием "go templates" и библиотеки sprig.

Команда:


    talm template -t templates/controlplane.yaml -e 1.2.3.4 -n 1.2.3.4 > nodes/srv1.yaml

Опрашивает ноду "1.2.3.4" по API, генерирует для неё новый файл конфигурации из шаблона, подставляя необходимые данные. Полученный файл конфигурации можно сразу же применить одной лишь командой:


    talm apply -f nodes/srv1.yaml

Также в каждом таком файле конфигурации Talm устанавливает свой modeline, в котором запоминает эндпоинты ноды и шаблоны, из которых он был получен, чтобы их было удобно применять и обновлять без указания дополнительных опций. Talm поддерживает все те же команды, что и upstream утилита talosctl, но позволяет передавать им конфигурационный файл ноды, например:


    talm dashboard -f nodes/srv1.yaml -f nodes/srv2.yaml -f nodes/srv3.yaml

выведет интерактивный дашборд для всех трёх нод. А команда:


    talm get routes -f nodes/srv1.yaml

выведет список роутов на ноде "srv1"

При необходимости файлы конфигурации можно выгрузить с опцией "--full" на отдельный PXE-сервер, что позволяет нодам скачивать их автоматически. Таким образом, Talm сохраняет вариативность bare-metal серверов, обеспечивая удобное управление ими в соответствии с лучшими практиками GitOps.

  1. OpenNews: Первый альфа-выпуск etcd-оператора для Kubernetes
  2. OpenNews: Первый выпуск свободной PaaS-платформы Cozystack на базе Kubernetes
Автор новости: kvaps
Лицензия: CC BY 3.0
Короткая ссылка: https://opennet.ru/61223-talos
Ключевые слова: talos, cozystack
При перепечатке указание ссылки на opennet.ru обязательно


Обсуждение (13) Ajax | 1 уровень | Линейный | +/- | Раскрыть всё | RSS
  • 1.6, Werwolf (ok), 14:41, 21/05/2024 [ответить] [﹢﹢﹢] [ · · · ]  
  • +4 +/
    они: Вам нужен только один yaml!
    так же они:
    > yaml сборки приложения
    > yaml сборки контейнера
    > yaml запихивания контейнера в куб
    > yaml разворачивания куба
    > yaml для настройки ОС для разворачивания куба
    > yaml для установки ОС для разворачивания куба
    > yaml для настройки железа для установки ОС для разворачивания куба
     
     
  • 2.18, Аноним (18), 15:11, 21/05/2024 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Ну а ты сделал yaml, который заставит тебя работать, вместо клепания комментов?
     
     
  • 3.41, Sw00p aka Jerom (?), 01:58, 22/05/2024 [^] [^^] [^^^] [ответить]  
  • +/
    > Ну а ты сделал yaml, который заставит тебя работать, вместо клепания комментов?

    праграммиравайдавай.jpg :)

     
  • 3.42, Werwolf (ok), 07:58, 22/05/2024 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > Ну а ты сделал yaml, который заставит тебя работать, вместо клепания комментов?

    я сделал yaml который позволяет мне тратить на работу меньше времени чтобы я мог клепать комменты
    шах и нах

     
  • 2.22, Аноним (22), 15:17, 21/05/2024 [^] [^^] [^^^] [ответить]  
  • +2 +/
    это фигня, вот у ансибла там вообще принято создавать папки, а внутри них подпапки с одинаково названными ямлами: мояпапка/handlers/main.yml, мояпапка/tasks/main.yml. Удачи открывать это в текстовом редакторе, где все открытые файлы называются main.yml!
     
     
  • 3.25, К.О. (?), 16:51, 21/05/2024 [^] [^^] [^^^] [ответить]  
  • +1 +/
    У меня текстовый редактор при совпадении имён файлов показывает имена с родительскими директориями, типа tasks/main.yml, handlers/main.yml. Не помню, чтобы я это где-то настраивал.

    В общем, попробуй Emacs.

     
  • 3.39, анон (?), 01:50, 22/05/2024 [^] [^^] [^^^] [ответить]  
  • +2 +/
    А ты выкинь свой нотепад++, и возьми что-нибудь нормальное
     
  • 3.43, Аноним (43), 09:54, 22/05/2024 [^] [^^] [^^^] [ответить]  
  • +1 +/
    >у ансибла там вообще принято создавать папки
    >папки

    И сразу стало ясно, откуда руки растут.

     

  • 1.23, Аноним (23), 15:36, 21/05/2024 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    > Talm повторяет структуру Helm

    И именно поэтому не нужен. Генерировать конфиги Talos и патчи для железок можно буквально на любом ЯП, вывод в YAML есть, пожалуй, во всех, кроме совсем уж эзотерических.  Для опроса Talos API нужно знать адрес сервера, что так, что эдак. А зная адрес, выбрать правильный конфиг не проблема. В рамках Козьего Стака, полагаю, удобная тулза, но это не универсальное решение для всех. Если уж на то пошло, универсальное решение вряд ли возможно. На таком низком уровне сетапы разнятся значительно между различными компаниями, а в облаках не актуально, там уже удобное API есть и для инстансов, и для bare metal.

     
     
  • 2.24, Аноним (24), 15:51, 21/05/2024 [^] [^^] [^^^] [ответить]  
  • +/
    Действительно, раз есть готовый инструмент, то надо не пользоваться им, а написать свой аналог, потому что...

    Ну, в вашем комментарии причина подобного подхода не объясняется, но выглядит как NIH-синдром.

     
     
  • 3.38, Аноним (23), 21:49, 21/05/2024 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Готовый инструмент от разработчиков Talos Linux называется «talosctl». Сабж действительно выглядит как NIH-синдром, и решает несуществующую за пределами Cozystack проблему.
     

  • 1.44, Аноним (44), 14:49, 23/05/2024 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Зря комментаторы так негативно относятся Я лично Cozystack и Talos Linux не вид... большой текст свёрнут, показать
     
     
  • 2.46, Аноним (23), 22:57, 23/05/2024 [^] [^^] [^^^] [ответить]  
  • +/
    Всё в общем-то правильно написал, кроме первых двух пунктов «настоящего кекса», которые приличный вендор делает за тебя и под тебя, поэтому ничего сборщикам объяснять не надо: сервера приезжают уже собранные с преднастроенным под все твои фантазии биосом. Ну и айпишники вручную назначать тоже так себе занятие, инвентарь и IPAM между собой договорятся, иначе будет бесконечная шиза с «красивыми» и «запоминающимися» адресами.

    > чего конкретно добивается Cozystack

    Он чего-то добивается когда у тебя уже Talos запущен и айпишники уже назначены.

     

     Добавить комментарий
    Имя:
    E-Mail:
    Текст:



    Партнёры:
    PostgresPro
    Inferno Solutions
    Hosting by Hoster.ru
    Хостинг:

    Закладки на сайте
    Проследить за страницей
    Created 1996-2024 by Maxim Chirkov
    Добавить, Поддержать, Вебмастеру