Vadim
>деплой всего в процессе разработки без комита можно сделать oc start-build --from-dir=. и начнется билд. IDE - наверное только eclispe прикручен (и то нужно проверить)
Vadim
"дев кластер" локально разворачивается через oc cluster up если он нужен on demand, но вообще кластера разворачиваются через ansible, потому различия дев-прод кластера хранятся в переменных, через отдельные group_vars, например
Lex
hostport это dnat же?
Нет, это запуск контейнеров пода в сетевом пространстве имен хоста.
Михаил
Добрый день. Есть большой вопрос по OpenShift. На конференции РИТ++ на докладе посвященном Helm и как его дополнить до полноценного инструмента с помощью доп OSS инструментов первым вопросом из зала было А почему нет OpenShift - там все это есть из коробки. Я начал читать документацию по OpenShift, но это не раз-два - современные маркетологи ухитряются превратить заглавные страницы сайтов в "сказочный лес" - нихрена не понятно что же это такое и зачем оно нужно. Но нужно точно. Поэтому я хотел бы спросить - есть ли какое нибудь не очень длинное описание того, что может OpenShift. Меня в первую очередь интересует развертывание приложений в k8s. Допустим у нас есть 5 приложений наших и еще 100 "приложений", которые мы используем для того, чтобы наши могли работать - всякие графаны, ES, jenkins и т.д. Хотелось бы чтобы состояние k8s - все дескрипторы и конфигмапы - все версионно хранилось. Например в git, так чтобы можно было воспроизвести, откатить и пр. К тому же есть некоторые "маленькие различия" поскольку кластеров должно быть несколько - например dev, test, prod и в каждом должны быть свои параметры. И процедура развертывания тоже немного разная - dev,test - все просто, можно даже автоматом после создания новой версии. prod должен развертываться только после предварительного одобрения, потихонечку, все должно проверяться (лучше если автоматически). И вот вопрос - умеет ли все это OpenShift, как он делает, есть ли толковые доки по этому делу и пр. Второй вопрос, который меня не интересует сейчас, но тоже интересный - поддержка в момент разработки - более быстрое создание image, деплой всего в процессе разработки без комита, желательно одной кнопкой, желательно из IDE, желательно с минимальными инкрементальными перемещениями изменившихся данных (исходников или там чего мы накомпилировали) между дев хостом и рабочим кластером. Не думаю, что OpenShift заходит настолько далеко, что позволяет создание дев кластеров или дев инсталляций потому что обычно это предполагает, что часть приложений в дев "кластере" будет своя, часть сервисов будет использоваться из prod кластера и все это надо как-то разрулить, сделать какой-то мэш, как-то конфигурацию изменить.
Михаил
У нас даже стикер есть)
Vadim
Деплой ансиблом?)
ачотакова? Можно нормально проверить поднялся ли сервис, например
Vadim
+ настройка внешней DB если недостаточно смел
Михаил
ачотакова? Можно нормально проверить поднялся ли сервис, например
Мы с тобой уже обсуждали скорость развития ансибла и частоту переделки модулей, а так хорошая идея имхо
Александр
Интересно хоть в одном чате это не обсуждали "развитие ансибла и частота депрекейт модулей"
Vadim
касательно k8s клянутся что этот уже надолго, релиза два протянет
Михаил
Хотя, учитывая как быстро развивается куб
Vadim
move things and break fast
Anton
Нет, это запуск контейнеров пода в сетевом пространстве имен хоста.
C Hostnetwork путаете, hostport в контексте портов контейнера задаётся
Тихон
Накатывать апдейты в кубернетес через ansible это конечно революционно. Но есть несколько но: во-первых вопрос был про OpenShift, а не как мне это прикостылить во-вторых например kubectl apply не всегда работает, иногда надо делать remove, хотя может и replace прокатит. И я не хочу это костылить в ansible в третьих мне нужен UI какой-нибудь. Я же говорил - в прод инсталляции деплой должен происходить только с разрешения одобряющего.
Denis
Взять кубы, накрутить билдов автоматических и сиаев, чтобы потом аппрувить релизы :))
Rainbow
Если нужно откатиться, то находится pipeline прошлый и там повторно жмакается run
neumeika
а чей энто пайплайн? я про софтину
Andor
gitlab это
neumeika
пасиб, блин, больная мозоль, мне низя :(
Vlad
А не проще-ли не обращать внимания на openshift и просто работать с kubernetes на котором он построен? Отдельные лучи поноса тем кто придумал в openshift ограничивать uid пользователя 12-ти значным числом.
Rainbow
пасиб, блин, больная мозоль, мне низя :(
drone.io + самому дописать кнопку play... или я на своих запускаю через телеграм бота
Rainbow
т.е. там апи есть для запуска, нужно как-то дергать
neumeika
пасибки, телеграмм для меня перебор, у меня хуки, но посыл ясен
Rainbow
пасибки, телеграмм для меня перебор, у меня хуки, но посыл ясен
ChatOps называются, пару компаний топовых таким страдают. Только через slack
Andor
и в гитлабе есть интеграция со слеш-командами слака из коробки
Andor
даже в CE-версии
Rainbow
https://opsidian.ai/ https://stackstorm.com/ это так может кому интересно
Rainbow
да, gitlab вырос в такого монстра... ci, autodevops и тп. Когда его начинали, помню, никто не верил 💪
Rainbow
webide
neumeika
слак есть, только деплой прода через чатик, я не настолько другим доверяю, хотя...надо как-то роллаут замутить
Rainbow
ну не всем же. Там суть, что все видят, что происходит
Rainbow
gitlab сейчас активно решает проблему, что .gitlab-ci.yml может любой разраб поменять и запустить таски тоже.
Andor
это есть
Rainbow
А как на счёт мерджа в ветку только через код ревью и апрув?
ты закидывашь свою ветку и выполняется твой gitlab-ci.yml
Rainbow
ограничение что деплой только с мастера убрать и все - полетели
Rainbow
потом git push -f в свою ветку можно. Удалить pipeline тоже вроде можно всем и замели следы.
Rainbow
Понятно, что все из-за того, что ci\cd смешивают. Но так просто удобно
Andor
git push -f можно запретить
neumeika
дык а пермишены только на одну ветку, там и размещать, просто диковатый gitlab-ci.yml получится
Vadim
git push -f можно запретить
Это только поможет посмотреть что сделано, но не остановить
Rainbow
Я даже сходу не знаю простого способа определить, что git push изменил конкретный файл с прошлого раза. Хранить все git push как-то не круто, чтобы это трэкать. Сравнивать с мастером - у всех разные привычки, не все опираются на одну ветку. Короче сложно, это и решают.
Rainbow
можно делать git diff master но не все опираются на одну ветку.
Rainbow
Если prod/dev ветки, то есть feature от dev и hotfix от prod
Ivan
git diff тут не при чём
Rainbow
как по простому чекать, что git push на сервер не меняет файл конкретный?
neumeika
да ну чё вы меня расстраиваете, за 3 года ничё не изменилось? т.е. моя мечта, что можно сделать бранч с пермишенами "можно только я" и запускать gitlab-ci только из него низя?
Rainbow
да ну чё вы меня расстраиваете, за 3 года ничё не изменилось? т.е. моя мечта, что можно сделать бранч с пермишенами "можно только я" и запускать gitlab-ci только из него низя?
пол года уже точно думают, пока не придумали. От комьюнити есть патчи, которые покрывают важные кейсы, но не годятся для массового пользователя
Ivan
Runners marked as protected can run jobs only on protected branches, avoiding untrusted code to be executed on the protected runner and preserving deployment keys and other credentials from being unintentionally accessed. In order to ensure that jobs intended to be executed on protected runners will not use regular runners, they must be tagged accordingly.
Rainbow
ci тогда пропадает
Rainbow
смысл ci - прогнать тесты же
Ivan
для тестов можно отдельно ещё один раннер сделать
neumeika
дык я ж могу вмержить исключая этот файл, или предполается, что тесты тож в нём?
Rainbow
и как это будет работать? чет я туплю
Rainbow
или там к ранерам можно ветки привязывать - не помню/не видел
Ivan
и как это будет работать? чет я туплю
тесты будут запусаться в одном раннере, деплой с протектед - в другом
Rainbow
не понимаю
Ivan
протектед бранчи как способ ограничить круг лиц, которые могут пушить в них и контроллировать CI
Rainbow
только если делать protected variable, которая позволяет выполнить deploy. Т.е. без секрета gitlab-ci даже с правкой не запустится
Rainbow
типп ssh ключа
Ivan
но зачем
Rainbow
протектед бранчи как способ ограничить круг лиц, которые могут пушить в них и контроллировать CI
ты можешь в свою ветку запушить какой хочешь gitlab-ci. Не понимаю причем тут protected бранчи
Ivan
если проставить флаг протектед раннеру, то не не протектед бранчах он просто не возьмёт джоб
Rainbow
походу старый у меня gitlab, нужно новый смотреть
Ivan
ты можешь в свою ветку запушить какой хочешь gitlab-ci. Не понимаю причем тут protected бранчи
ну просто если там не будет раннера, то никто и не запустит ci
Rainbow
В девятом нет
Anton
Кто нить перешел на .11 куб?