Mk

github

убийца (в смысле "никому не нужная хуйня которой даже сам автор не будет пользоваться через 5 секунд") терраформов, ансиблов и тд с идеей:

  • пуш, бинарник для менеджмента конфигурацией находится у оператора, на ремоутах ничего ставить не надо (mk ставит под капотом своего агента, но это происходит автоматически)
  • infrastructure as code, где code это код, а не json/yaml/hcl/jsonnet(хотя он и гораздо лучше чем остальные варианты)/etc

в моей голове это имеет много преимуществ, о которых я писал:

Quote

переписал скрипты для деплоя на ansible, не выкупил зачем в ansible нужны роли и что это вообще, а так же почему ansible это не библиотека для питона. из альтернатив есть pyinfra но она просто не поддерживает докер, решил писать свою пупулупу для деплоя и прочего ибо писать инфру в виде кода выглядит во-первых, как реальный infrastructure-as-code, во-вторых, это (как по мне) суперобоснованно:

  • родная типизация, проверяемая компилятором, заместо json/yaml схем, которые должны проверять плагины
  • родные докстринги для документации директив
  • родные переменные вместо надстроек над yaml с обьявлением переменных в одной секции и использованием в фигурных скобках в другой секции
  • родные способы переиспользования кода в виде функций и переменных, вместо каких-то ролей, с которыми еще надо разбираться
  • родные способы группировки функциональности в виде модулей
  • можно переиспользовать любые библиотеки для чего угодно, а не лочиться на jinja2 для темплейтинга файлов, которые еще и темплейтятся или не темплейтятся в рандомные моменты

разве что, хотелось бы это еще все делать на языке с строгой типизацией, алгебраическими типами и компиляцией в single binary, под это мог бы подходить ocaml, но на нем невозможно писать, еще rust, но там больше будет ебли чем полезного действия, в итоге остановился на гованге, ибо лучше, увы, ничего пока не изобрели

Была мысль сделать отдельно пост, почему это (в теории) должно работать, но пока не думаю, что у меня много есть о чем написать.