
Andor
18.05.2018
20:13:57
ну вот если добавить подобный тест, то лаг будет в пределах интервала опроса прометея, то есть не больше 1 минуты (обычно)
смысл подобный тест тогда заводить вообще

Andrey
18.05.2018
20:14:23
Чтобы валился деплой
а не за метриками лезть

Google

Andrey
18.05.2018
20:14:50
Можно и тест сделать на базе метрик прометея. Тут кто как хочет так и ...

Andor
18.05.2018
20:14:57
так он и свалится
вопрос в том, откуда ты про это узнаешь

Andrey
18.05.2018
20:15:13
Почему он свалится?

Andor
18.05.2018
20:16:04
> как узнать статус успешно прошел деплой или нет ?
> Например возникает следующая ситуация yaml принят успешно, но допустим есть ошибка в коде и под валится после старта. И узнаю я об этом только от прометея.
из задачи

Andrey
18.05.2018
20:20:09
Еще до того как заехали в k8s деплоили в докер контейнерами.
Ну и в момент когда выполнялся docker start $name, наступал момент истины.
Все к этому как то привыкли )
А теперь еще после успешного деплоя нужно еще и чятик мониторинга посмотреть )

Andrey
18.05.2018
20:20:10
Кстати, тоже вариант. Узнавать у куба что там с текущей выкаткой, не ушел ли контэйнер в loop

Andrey
18.05.2018
20:21:10

Andrey
18.05.2018
20:23:31

Andor
18.05.2018
20:24:33
технически в кубере есть хуки: https://kubernetes.io/docs/concepts/containers/container-lifecycle-hooks/

Andrey
18.05.2018
20:24:34
Они ж сейчас только в последних версиях сделали файл с описанием действий как у всех

Andor
18.05.2018
20:24:36
но я их не юзал

Andrey
18.05.2018
20:25:52

Google

Andrey
18.05.2018
20:26:20
Да у меня тоже весь, тоже интеграция…

Pavel
18.05.2018
20:26:30
В деплойменте есть такой параметр:
spec:
progressDeadlineSeconds: 180
С ним kubectl rollout status возвращает ошибку, если деплоймент не смог подняться по завершении этого таймаута. А дальше баш.
Пример для гитлаба. Для самого деплоя используется set image, но apply -f ничем не будет отличаться
- kubectl set image deployment/$CI_PROJECT_NAME *=$REPOSITORY_URL/$CI_PROJECT_NAME:$CI_COMMIT_REF_SLUG.$CI_PIPELINE_ID --namespace production
- kubectl rollout status deployment/$CI_PROJECT_NAME --namespace production || (kubectl rollout undo deployment/$CI_PROJECT_NAME --namespace production && exit 1)

Andrey
18.05.2018
20:27:01
а в helm?
helm status … -o json | grep ?

Pavel
18.05.2018
20:28:33
А в helm есть ключ --wait.
С ним helm upgrade будет ждать пока не поднимутся все поды. А по истечении таймаута вернет ошибку. И можно сделать helm rollback.

Dmytro
18.05.2018
20:28:52
бамбу же ужасен чуть менее чем полностью? как и в-принципе все продукты атлассиан, но это уже оффтопик - сорри

Andrey
18.05.2018
20:28:54
О, спасибо!

Dmytro
18.05.2018
20:30:14
ух даже так, ок лучше не буду начинать

Andrey
18.05.2018
20:30:25
Bamboo да, пока только догоняет остальных

Andor
18.05.2018
20:30:27
хуже confluence не видел вики
жира ок, но жыр

Andrey
18.05.2018
20:30:55
Давайте не будем уходить в «дистро срач»)

Dmytro
18.05.2018
20:30:56
из моих наблюдений ниша деплоя и потом (что мне еще более интересно) какого-то дашборда где бы показывало какая версия микросервиса продеплоена в каком энвайроменте не заполнена

Andrey
18.05.2018
20:31:28
Можно такое на графане собрать

Dmytro
18.05.2018
20:31:37
есть какие-то хрени прикрученные сбоку - гитбал интеграция и спиннакер
обе более чем ущербны
и похоже что пока все велосипедят кто как может :( я думаю скоро тоже буду писать свой велосипед на эту тему

Andrey
18.05.2018
20:33:17
Я пока описываю сборку/деплой в makefile. Позволяет унифицировать разные проекты с разными схемами деплоя (k8s, docker-compose, capistrano) и переезд между разными ci/cd не страшный. Можно хоть локально задеплоить

Pavel
18.05.2018
20:38:28
Тут еще были разговоры по поводу определения успешности деплоя через прометеус.
Посмотрите эту штуку. Уже все готово.
https://github.com/ContainerSolutions/helm-monitor

Google

Andrey
18.05.2018
20:42:20
Шикарно, спасибо!

Andor
18.05.2018
20:42:53
интересно

Dmytro
18.05.2018
20:42:56

Andor
18.05.2018
20:42:56
но завязка на хельм

Andrey
18.05.2018
20:43:51
Ну я и так в сторону хельма поглядываю.

Dmytro
18.05.2018
20:43:56
лишняя зависимость и весьма opionated идея делать все что попадется под руку (в данном случае деплоить) мейкфайлом

bebebe
18.05.2018
20:44:27

Dmytro
18.05.2018
20:44:36
у меня на работе тоже есть поклоннике мейкфайлов, они даже ява приложение на проде стартуют мейкфайлами
а потом контейнер не стопается (мейкфайл там оборачивает все в шелл команды вот это все)

Andrey
18.05.2018
20:45:04

Dmytro
18.05.2018
20:45:49
А можно поподробнее? а то что-то посоны и не в курсе про стандарт деплоить мейкфайлами

Andor
18.05.2018
20:46:00
фабриком надо
fab deploy и вот это всё

Andrey
18.05.2018
20:46:36
Не стандарт деплоить, а сами формат и описание стандартизированы

Andor
18.05.2018
20:46:58
gnu make?

Dmytro
18.05.2018
20:47:13
ну это из раздела когда знаешь молоток то вокруг видишь только гвозди

Andor
18.05.2018
20:47:50
да ладно, мейк не так уж плох

Andrey
18.05.2018
20:47:55

Andor
18.05.2018
20:47:59
ну то есть плох, но не фатально

Dmytro
18.05.2018
20:48:05
на прошлой работе у нас был мейкфайл на 3к строк, он там еще другие инклюдил, какие-то запрашивал данные ввести и т.п. - бррр

Google

Andor
18.05.2018
20:48:28
давно ядро собирал сам? %)

Andrey
18.05.2018
20:48:32
Вы не поверите, но почти весь софт из сорцов через него и собирается

Dmytro
18.05.2018
20:48:56
не плодите сущности, если вам на баш описать деплой выходит слишком длинно и развесисто - возможно, надо упростить само приложение а не молотком махать кругом
так собирается - я только за, затем его и придумали

bebebe
18.05.2018
20:49:23
прекратите деплоить башем, и жизнь ваша поменяется

Dmytro
18.05.2018
20:49:24
но юзать его для других задач...

bebebe
18.05.2018
20:49:27
в лучшую сторону

Andor
18.05.2018
20:49:41
деплойте zsh'ем!

Andrey
18.05.2018
20:49:43
Кто их плодит то? Я лучше makefile прочитаю, чем чужой башник

Dmytro
18.05.2018
20:49:57
да, все станет лучше с мейкфайлом ?

Andor
18.05.2018
20:50:02
нету "стандарта для деплоя", поэтому все делают свои костыли
кто на чём умеет
make, bash, fabric, самодельный-костыль

Andrey
18.05.2018
20:50:24
Я ж молчу про простыни для сборки jenkins’ом

bebebe
18.05.2018
20:50:30

Andrey
18.05.2018
20:50:36
например?

Andor
18.05.2018
20:50:38
в гитлабе удобно собирать

Dmytro
18.05.2018
20:50:43
да в куб деплоить ведь одна команда kubectl ...

Andrey
18.05.2018
20:51:20

Dmytro
18.05.2018
20:51:20
ну может еще статус получить в цикле или еще как, зачем же тут мейкфайл или еще что-то?

Google

Andor
18.05.2018
20:51:32

bebebe
18.05.2018
20:51:50

Andrey
18.05.2018
20:52:22
А если вы завтра захотите сменить gitlab на drone/еще чего-то?

Andor
18.05.2018
20:52:34
зачем?
может ещё на атлассиан битбакет?

Andrey
18.05.2018
20:53:18
Потому что «пока везде свои костыли», может завтра появятся костыли поудобней

Dmytro
18.05.2018
20:53:34
у меня в каждом проекте обычно два баш файла build и test, один собирает контейнер (multistage build чаще всего) второй тестирует, можно запустить локально а можно на гитлаб, юзаю докер раннер и динд сервисом - локально ничего кроме докера не нужно

Andrey
18.05.2018
20:53:34

Andor
18.05.2018
20:53:35
ну гитлаб останется гитом
ну и из его ci можно будет подёргать что тебе удобнее
оттуда и хельм можно потрогать и твои makefile'ы
и его конфиг в сто раз проще дженкинса (хотя технически менее фичаст)

Dmytro
18.05.2018
20:54:49
никаких мейкфайлов и прочих лишних зависимостей не надо ни локально ни в гитлаб раннере

bebebe
18.05.2018
20:55:07
Это уже пятничные подколы пошли?
у вас размышления на уровне "а вдруг завтра война"
я не видел мало мальски нормальнальную контору которая вот так может почесав пяткой в ухе решить переезжать с одной платформы на другую
и даже если такое происходит, то сроки на миграцию не завтра

Dmytro
18.05.2018
20:56:30
учитывая что мейк еще и по умолчанию таргеты параллельно запускает и при развесистом мейкфайле огребешь рейс кондишены - зачем его тащить в проект (особенно если проект на динамическом языке и там даже билдить нечего)

Andor
18.05.2018
20:57:36
по-умолчанию там было -j1 всю дорогу

Andrey
18.05.2018
20:58:45
Будем считать что у меня свой велосипед, который работает и удобен)

Andor
18.05.2018
20:59:13
(но другие более удобные велосипеды я трогать не буду потому что боюсь неизвестного)

Andrey
18.05.2018
21:00:16
Это Ваши додумки, я такого не говорил и сейчас как раз в планах поюзать что-то кроме bamboo

bebebe
18.05.2018
21:00:31

Andor
18.05.2018
21:01:16
а хашикорп номад раньше появился чем кубер вроде?

Andrey
18.05.2018
21:01:36
Множить: это обернуть это все в fab, как пошутили выше)