История изменений
Исправление router, (текущая версия) :
чего у вас с ним не срослось?
Я бы не назвал это «не срослось». При необходимости я могу развернуть кластер через kubespray
У меня претензии к тому, как он написан. Его реально писали методом тыка. Либо, может быть, программисты приняли ансибл за язык программирования и пытались накостылять то, чего в нём нет и что делать вообще нельзя. Либо best practice по ansible в то время ещё не существовало, либо авторам кубспрея было лень его читать. Там реально собраны все BAD practice. Более того, там это походу взяли за стандарт
Буквально все
- зависимости между ролями, в т.ч. неявные через meta
- кошмарное злоупотребление jinja вне templates и vars
- почти везде отсутствуют name для task и play
- глобальные переменные. регистрация переменных в одной роли для другой
- некоторые роли вообще не выполняют какую-либо определённую роль (сорри за тавтологию), в них просто выкинули код, чтобы меньше думать о нём
- и такого говна там около 8 мб (мегабайт, карл)
Просто возьми и начни разбираться, где конкретно там происходит какое-либо действие.
Смотри, взять кубспрей и развернуть из него кластер не проблема. Потрахаешься с переменными, но это реально. А теперь представь, что ты этим же спреем решил обновить сертификаты или кластер (что заявлено как одна из основных целей кубспрея). И представь, что-то пошло не так. Чинить это придётся тебе, а не разработчиткам спрея.
Вот например в тему говнокода на ansible https://habr.com/ru/articles/508762/
А вот best practice https://docs.ansible.com/ansible/2.8/user_guide/playbooks_best_practices.html
А теперь надень на нос прищепку и ныряй в kubespray
Исходная версия router, :
чего у вас с ним не срослось?
Я бы не назвал это «не срослось». При необходимости я могу развернуть кластер через kubespray
У меня претензии к тому, как он написан. Его реально писали методом тыка. Либо, может быть, программисты приняли ансибл за язык программирования и пытались накостылять то, чего в нём нет и что делать вообще нельзя. Либо best practice по ansible в то время ещё не существовало, либо авторам кубспрея было лень его читать. Там реально собраны все BAD practice. Более того, там это походу взяли за стандарт
Буквально все
- зависимости между ролями, в т.ч. неявные через meta
- кошмарное злоупотребление jinja вне templates и vars
- почти везде отсутствуют name для task и play
- глобальные переменные. регистрация переменных в одной роли для другой
- некоторые роли вообще не выполняют какую-либо определённую роль (сорри за тавтологию), в них просто выкинули код, чтобы меньше думать о нём
- и такого говна там около 8 мб (мегабайт, карл)
Просто возьми и начни разбираться, где конкретно там происходит какое-либо действие.
Смотри, взять кубспрей и развернуть из него кластер не проблема. Потрахаешься с переменными, но это реально. А теперь представь, что ты этим же спреем решил обновить сертификаты или кластер (что заявлено как одна из основных целей кубспрея). И представь, что-то пошло не так. Чинить это придётся тебе, а не разработчиткам спрея.
Вот например в тему говнокода на ansible https://habr.com/ru/articles/508762/
А вот best practice https://docs.ansible.com/ansible/2.8/user_guide/playbooks_best_practices.html
А теперь надень на нос прищепку и ныряй в kubespray