Etki
пффф ну тут все знают, что я выпендриваюсь
Rainbow
CI вполне норм если не выпендриваться
самый гибкий и ненапряжный ci.
Rainbow
Был бы счастлив такое заиметь на github
Rainbow
drone вроде бы похож, но крайне сырой.
G72K
Идеальный CI это на каком нибудь Typescript/JavaScript программка : Job().andThen(...)и прочее. В не в кондовый ямл вкорячивать условия и циклы
Rainbow
это вам не код 🙈
Andor
а на жаваскрипте сам пиши
Rainbow
Jenkins это для любителей тыкать мышкой же. Я когда пытался другого способа особо не нашел, давно правда было.
Rainbow
иначе никак, сорри
у меня год "делай проще", сорри 😎
Etki
Jenkins это для любителей тыкать мышкой же. Я когда пытался другого способа особо не нашел, давно правда было.
Ну там построили UI для этого, но вообще ты там что угодно навертеть можешь прямо в коде. Но выглядит это... как весь дженкинс.
Etki
зойчем
Rainbow
так думать надо же, не?)
и выбирать не jenkins?
G72K
какие циклы?
Ожидания, выкатки, какие нибудь for each cluster.
G72K
В Jenkins такой на groovy. И он ужасен по вероятности выстрелить серверу в голову.
Хочу на монадах. Чтобы сначало композиция была и из шагов и потом уже она целиком выполнялась/визуализировалась
Felix
😂
Felix
по мне возможность крайне гибкого конфигурирования — плюс, а не минус
Pavel
Ожидания, выкатки, какие нибудь for each cluster.
Так вроде что-то такое есть в плантом гитлабе
Felix
и выбирать не jenkins?
каждый выбирает тот инструмент, который лучше всего подходит и решает бизнес-задачу
Etki
Ожидания, выкатки, какие нибудь for each cluster.
Вот это кстати классическая проблема, когда количество нод может поменяться в будущем. Чисто декларативной конфигурацией здесь не обойтись, если только сам под себя плагины не написал к своей системе.
Etki
label?
это в куберне, я про вообще классический пример
Rainbow
это в куберне, я про вообще классический пример
labels есть в hosts у ansible в каком-то виде
Rainbow
думаю везде найдется
G72K
Так вроде что-то такое есть в плантом гитлабе
Есть у нас платный гитлаб, херня это. Деплой тут, код там, сборка уборка. Хочу свободы композиции :)
Andor
Jenkins это для любителей тыкать мышкой же. Я когда пытался другого способа особо не нашел, давно правда было.
с тех пор как появился Jenkins 2.0 в нём появились Jenkinsfile, но оно всё равно не сильно интереснее шелл скриптом
Etki
но даже если по лейблу вытаскивать, там баш-портянки будут
Vlad
так думать надо же, не?)
Нужно этот лозунг светящимися буквами над входом в офис повесить. В gitlab практически невозможно убить ci/cd сервер из джоба. А в Jenkins запросто.
Etki
labels есть в hosts у ansible в каком-то виде
ансибл изначально создавался для работы с хостами. сиай - для запуска пайплайна консольных команд
G72K
Одно другому не мешает :)
Andor
Ожидания, выкатки, какие нибудь for each cluster.
для for each cluster там есть "запустить джобу на всех раннеров с тегом", не то же самое, но близко
Rainbow
Костыли, описание only/except блевать тянет
блевать тянет от typescript в ci так то 🤢🤢🤢
Rainbow
Я перестану лезть в devops, если будет трендом
Andor
Нужно этот лозунг светящимися буквами над входом в офис повесить. В gitlab практически невозможно убить ci/cd сервер из джоба. А в Jenkins запросто.
"думай, прежде чем ещё раз подумать" - вот мой лознуг последних лет разумеется, не всегда помогает подумать всего лишь дважды
Rainbow
Ruby крайне крут для DSL, прям супер крут. А ребят сообщество кажется заставили использовать yaml в dapp.
Etki
руби реально самый удобный для dsl из коробки
Rainbow
Он был до версии с Ansible.
т.е. это никак на связано с тем что yaml был топ запросом на фичу?
Vadim
Этот yaml derangement syndrome странная вещь
Etki
оло
Vadim
Уже руби готовы впилить готовы, лишь бы не ямл
Etki
пора уже делиться на воюющие племена
Andor
руби реально самый удобный для dsl из коробки
самое время попробовать reader-макросы в CL
Etki
ну есть разница между ямлом и дсл
Etki
лишп не был создан для таких унижений
Vadim
Писали бы CI оператор на руби и не трогали ямлы, но предпочитают давать советы гитхабу
Rainbow
Уже руби готовы впилить готовы, лишь бы не ямл
Да блин, там речь была про то, что typescript в ci не нужен. Мол даже руби (топ dsl из активных языков) не зашел 🙈
Vadim
Идеальный CI это на каком нибудь Typescript/JavaScript программка : Job().andThen(...)и прочее. В не в кондовый ямл вкорячивать условия и циклы
Кстати, а зашел ли Pulumi? Мне не нравится что он вечно лезет на свой сервер репортить, а так интересно
Tamerlan
народ, а есть чат по ошифту?
Tamerlan
отправьте в личку кто знает, пажалста
Etki
OpenShift - русскоязычное сообщество Openshift (Origin, OKD, OCP) - Enterprise Kubernetes for developers. Избегайте постинга ссылок и спама в первом сообщении - помните, Испанская Инквизиция следит за вами Jobs: https://bit.ly/2HaP8de https://t.me/ru_openshift
G72K
Кстати, а зашел ли Pulumi? Мне не нравится что он вечно лезет на свой сервер репортить, а так интересно
GKE отложился по независящим от меня нетехническим причинам, а с ним и Pulimi
G72K
Нет ну давайте посчитаем путь от кода до прода. Почему я его должен описывать в куче разных мест? Как запускать тесты, рантайм зависимости, правила мержей (сколько ревью , кем, свежесть тестов), сами мержи (фичи бранчи, релиз бранчи, бэкпорты, тэги), сборка и проверка докер образа на всякое, генерация всех этих кубренетис манифестов , куча схем деплоя , успешность деплоя, обработка ошибок на любой стадии, повторить все это для всех окружений и с маленькими вариациями, прибавить контроль доступа и аудит всего. это все одна большая иерархическая стейт машина, почему она размазана на клик-клик в гитлаб интерфейсе, правильные тэги в ранере, .*-ci.yml в коде, операторы, helm/jsonnet, сотни строк портянок на баше если действительно хочется не надеяться на людей, все обмазано вебхуками, ебануться же. Это один процесс за склейку которого отвечает +- одна команда, стейт машины это решенная проблема в мире программирования , в функциональными программистами решена ещё и красиво.
Andor
как мне сделать чтобы манифесты генерились с двумя вариантами для двух разных кластеров? (jsonnet)
Andor
или сделать просто два разных файла?
Etki
Нет ну давайте посчитаем путь от кода до прода. Почему я его должен описывать в куче разных мест? Как запускать тесты, рантайм зависимости, правила мержей (сколько ревью , кем, свежесть тестов), сами мержи (фичи бранчи, релиз бранчи, бэкпорты, тэги), сборка и проверка докер образа на всякое, генерация всех этих кубренетис манифестов , куча схем деплоя , успешность деплоя, обработка ошибок на любой стадии, повторить все это для всех окружений и с маленькими вариациями, прибавить контроль доступа и аудит всего. это все одна большая иерархическая стейт машина, почему она размазана на клик-клик в гитлаб интерфейсе, правильные тэги в ранере, .*-ci.yml в коде, операторы, helm/jsonnet, сотни строк портянок на баше если действительно хочется не надеяться на людей, все обмазано вебхуками, ебануться же. Это один процесс за склейку которого отвечает +- одна команда, стейт машины это решенная проблема в мире программирования , в функциональными программистами решена ещё и красиво.
и все равно есть проблема с визуализацией и дебагом всего это говна :\
Etki
В идеале должен быть сиай, в котором плагины экспозят различные таски и (хуй знает каким, я не придумал еще) внятным управлением кондишионалами, чтобы все это можно было более-менее лаконично-декларативно описать, но писать эти плагины еще более ебануться (стоит только посмотреть на всякие доступные для дженкинса вещи их апи)
Etki
А без визуализации "шаг Х выбросил Y" прям очень больно, даже если DSL включает сущность шага, там обычно все равно в выводе ни черта не понять
G72K
или сделать просто два разных файла?
Два пути: 1. myenv.jsonnet который подтягивает base.libsonnet и модифицирует 2. Через -J ./myenv/ где найдутся файлы для нужного окружения, когда единый myapp.json будет делать import
Andor
о, отлично
Andor
а можно не директорию, а файл?
G72K
Можно файл если вы его симлинкать будете :)
Rainbow
ооо, в drone 1.0 впилили jsonnet. Пора учить
Andor
ооо, в drone 1.0 впилили jsonnet. Пора учить
кажется жсоннет будет стандартом де-факто (а для некоторых проектов он уже), но он всё равно какой-то дурацкий