@kubernetes_ru

Страница 167 из 958
Artem
01.05.2017
13:37:34
плохой коммит помержили, потом черепикнули, сверху налабали уже, потом поревертили в первой бранчи, всем привет.

ещё бывает коммит прямым пушем и скваш.

Let Eat
01.05.2017
13:49:37
причем здесь всё это? если есть известный commit id, он во всех уголках этой вселенной означает одно и то же.

> Да, имаджстор тоже может уйти в даун, но это одна сущность вместо двух. согласен. единственный аргументированный минус из всего обсуждения.

Google
Artem
01.05.2017
14:02:56
а если бранч потерли, куда был коммит, или его посквашили, что означает теперь это ша?

Let Eat
01.05.2017
14:05:33
ну он либо есть либо нет, быть и означать что-то иное в разное время оно не может. "если потерли" это то же самое что если докер имадж потерли. защищаться от этого простейшими техническими методами более чем реально

Artem
01.05.2017
14:09:41
dangling commits есть, но его нет, например.

Victor
01.05.2017
14:37:30
@Sn00p вы рассуждаете с позиции девопса, приравнивая разрабов к домохозяйкам. на мне, например, весь стэк, и мне не понятны аргументы наподобие "гит потёрли". Я аккуратно коммичу, даже в дев-ветку, не говоря уже о стэйбл. и с моей позиции, например, потереть какой-нибудь имейдж можно с большей долей вероятности

и вообще, тут никто не осуждает ваш подход, просто он не единственно верный

Artem
01.05.2017
14:55:53
я и не говорю, что он единственно верный. вообще это не мой подход, это Best practices.

разработчик за прод не отвечает, он отвечает за код. я ^аккуратно коммичу^ так не работает, драть все равно будут админа, независимо от аккуратности разработчика.

а она так себе, иначе не нужны были никакие cicd. аккуратно накодил, аккуратно залил и все работает ок.

Zon
01.05.2017
15:06:42
@Sn00p вы рассуждаете с позиции девопса, приравнивая разрабов к домохозяйкам. на мне, например, весь стэк, и мне не понятны аргументы наподобие "гит потёрли". Я аккуратно коммичу, даже в дев-ветку, не говоря уже о стэйбл. и с моей позиции, например, потереть какой-нибудь имейдж можно с большей долей вероятности
Это всё хорошо, пока это один человек. Но это плохо скейлится. + давать куберу доступ к гиту это тоже не супер. В какой-то момент там был только password based auth и пароль протекал в манифест. Возможно от вашего подхода есть ускорение воркфлоу, но скейлить это тяжело. У меня был деплой из гита на 300 серверов, но пришлось поднимать зеркала, ибо один гит-сервер загибался. http get != git pull

Victor
01.05.2017
15:09:36
вы так говорите, как будто при сборке образа клонировать репу не надо :)

Zon
01.05.2017
15:10:30
1 раз против 300. Разница есть

Let Eat
01.05.2017
15:11:30
> http get != git pull это смотря как реализовать. --depth=1 примерно равно http get

Google
Zon
01.05.2017
15:14:11
Про shallow clone я знаю. Памяти на отдачу гитом уходит сильно больше

Let Eat
01.05.2017
15:15:47
у вас точно был git а не адъ на jgit?

Zon
01.05.2017
15:22:39
Разные варианты тестировали. Отдача http статики, которая закешивается нормально, сильно быстрее

Artem
01.05.2017
15:31:03
ну ок, религия, что это меняет? нравится вам релизиться с помощью кровавой бани, где внутри толпа людей упакована, дело-то хозяйское. вам деньги зарабатывать на продукте и минимизировать количество людей на зарплате, делайте как хотите, хоть по старинке, хоть со своими велосипедами с квадратными колёсами.

Let Eat
01.05.2017
15:39:24
Разные варианты тестировали. Отдача http статики, которая закешивается нормально, сильно быстрее
с этим не поспоришь, но на 300 серверов должно ж хватить чего угодно

ну ок, религия, что это меняет? нравится вам релизиться с помощью кровавой бани, где внутри толпа людей упакована, дело-то хозяйское. вам деньги зарабатывать на продукте и минимизировать количество людей на зарплате, делайте как хотите, хоть по старинке, хоть со своими велосипедами с квадратными колёсами.
давайте я попробую еще раз. Последний. Вот этот кусок yaml: apiVersion: v1 kind: Pod metadata: name: server spec: containers: - image: nginx:version1 name: nginx volumeMounts: - mountPath: /mypath name: git-volume volumes: - name: git-volume gitRepo: repository: "git@somewhere:me/my-git-repository.git" revision: "22f1d8406d464b0c0874075539c1f2e96c253775" дает абсолютно те же самые гарантии что и apiVersion: v1 kind: Pod metadata: name: server spec: containers: - image: nginx:version1-built-from-22f1d8406d464b0c0874075539c1f2e96c253775 1 в 1. Назовите этот кусок yaml артефактом, если вам так удобнее, прогоняйте его по любым тестам, деплойте его A/B деплоем, делайте что угодно, что вам Best practices велят, всё что вы ждете от докер имаджа с исходниками внутри вы получите и с замапленым гитом. Единственная разница, которую за весь день удалось услышать - появляется необходимость чтобы git сервер был рабочим в довесок к рабочему docker registry.

Fike
01.05.2017
16:42:11
а с джавой-то так не пройдет

(троллфейс)

Let Eat
01.05.2017
17:40:21
Artem
01.05.2017
17:42:19
давайте я попробую еще раз. Последний. Вот этот кусок yaml: apiVersion: v1 kind: Pod metadata: name: server spec: containers: - image: nginx:version1 name: nginx volumeMounts: - mountPath: /mypath name: git-volume volumes: - name: git-volume gitRepo: repository: "git@somewhere:me/my-git-repository.git" revision: "22f1d8406d464b0c0874075539c1f2e96c253775" дает абсолютно те же самые гарантии что и apiVersion: v1 kind: Pod metadata: name: server spec: containers: - image: nginx:version1-built-from-22f1d8406d464b0c0874075539c1f2e96c253775 1 в 1. Назовите этот кусок yaml артефактом, если вам так удобнее, прогоняйте его по любым тестам, деплойте его A/B деплоем, делайте что угодно, что вам Best practices велят, всё что вы ждете от докер имаджа с исходниками внутри вы получите и с замапленым гитом. Единственная разница, которую за весь день удалось услышать - появляется необходимость чтобы git сервер был рабочим в довесок к рабочему docker registry.
теоретик или практика какая есть? я устал головой в забор долбиться уже. нет вам разницы, давайте закончим этот бесполезный спор.

хоть пипом деплойте или побайтово, я же написал, дело хозяйское

самый главный вопрос, зачем это? потому что можно? бгг

как релизы трекать будете? я ещё согласен на тег или версию, но разгребать на проде коммиты по ша - разгребайте, дело хозяйское

Let Eat
01.05.2017
18:07:27
самый главный вопрос, зачем это? потому что можно? бгг
а я знаю? спросили, я ответил. Вы же начали утверждать что это не канон, с а этим утверждением спорю. По мне так никакой особой магие версия докер имаджа не обладает, вы же утверждаете что без нее придется нанимать больше админов, что странно

Victor
02.05.2017
11:39:32
а может кто рассказать о самостоятельном опыте использования связки cicd + куб? если будет примеры, ссылки вообще огонь. гуглить умею, хочется из первых уст выдержки услышать)

Павел
02.05.2017
11:42:34
@zhukva так @poselivanov на митапах рассказывает как мы живём

Artem
02.05.2017
11:44:33
в примере gke: gitlab + gitlab-ci + k8s Сборка образов в ci и push их в gcr, после этого update deployment в k8s на новый образ в pod'e. из такого простенького.

вопрос. Если создавать configmap из файла командой, то можно как то заапдейтить configmap измений этот файл не пересоздавая configmap?

Let Eat
02.05.2017
11:47:28
kubectl create configmap my-config —from-file=path/to/bar -o json |kubectl apply -f -

Google
Let Eat
02.05.2017
11:47:54
может —dry-run еще добавить по вкусу

Paul
02.05.2017
11:48:43
коллеги, кто-нибудь из вас скрещивал traefik, tls+SNI и letsencrypt? или я первый буду?

Dmitry
02.05.2017
11:52:41
@not_logan я на днях собираюсь этим заняться

Artem
02.05.2017
12:15:39
https://kubernetes.io/docs/tasks/configure-pod-container/pull-image-private-registry/

ну судя по всему, просто указань нужные образы в деплойментах

Victor
02.05.2017
12:18:13
так у вас собственная установка гитлаба или пользуетесь их сервисом? если собственная, интересна схема взаимодействия с кубом)

Paul
02.05.2017
12:24:19
@not_logan я на днях собираюсь этим заняться
значит - синхронно будем грабли собирать, ок

Dmitry
02.05.2017
12:24:46
без проблем =)

Artem
02.05.2017
12:32:45
так у вас собственная установка гитлаба или пользуетесь их сервисом? если собственная, интересна схема взаимодействия с кубом)
собственная, просто на раннере настроен gcloud sdk чтобы можно было управлять k8s командами с раннера

а всем разруливает gitlab-ci

Victor
02.05.2017
12:36:44
т.е., пристите за нубство, гитлаб установлен рядом с к8s, а не в нём самом?

Artem
02.05.2017
12:41:43
да, гитлаб там же в гугле, но на отдельной vm

Victor
02.05.2017
13:49:08
а вообще кто-нибудь устанавливал cicd непосредственно в куб?

Artem
02.05.2017
13:53:22
да. геррит в поде дженкинс тоже. дженкинс через плагин спавнит поды тестит гасит

Victor
02.05.2017
13:56:21
а гитлаб? почитал, оч заманчиво. или есть противопоказания? если есть годные статьи буду премного благодарен за ссылки, что бы не гуглить

Artem
02.05.2017
14:10:43
гитлаб неплох за неимением альтернатив.

Paul
02.05.2017
19:11:58
гитлаб неплох за неимением альтернатив.
гитлаб отвратителен, просто лучше ничего нет

Google
Artem
02.05.2017
19:14:25
можно ещё посмотреть на gitblit

Gerrit, если надо кодревью, но он ужасный просто в плане интерфейса

Vadim
02.05.2017
19:51:19
Paul
02.05.2017
19:54:13
чем же он отвратителен?
- тем, как он написан - конфигом CI системы - желанием все делать самостоятельно (кто-нибудь научил его грузить артифакты отдельно без ухищрений?) - работой с БД - установщиком, который возит с собой ВСЕ (странно, что операционку не возит) - большим количеством дырок в безопасности

Igor
02.05.2017
19:54:49
> установщиком, который возит с собой ВСЕ (странно, что операционку не возит)

Admin
ERROR: S client not available

Igor
02.05.2017
19:54:56
ставлю в докере - возит ?

Paul
02.05.2017
20:01:11
centos, надеюсь?

Igor
02.05.2017
20:06:49
понятия не имею, не смотрел. Вангую, что убунта какая-нибудь.

Konstantin
02.05.2017
20:38:22
там конфиг как у всех подобных, обычный yaml, чего там отвратительного? и что не так с артефактами?

Fike
02.05.2017
20:39:09
если честно, все CI-системы, конфигурирующиеся единым yaml-файлом в корне, должны сгореть

потому что проверка, релиз, выкатка - это разные джобы

Fike
02.05.2017
20:41:03
то, что конфиг применяется во время выполнения джобы

поэтому конфигурировать ее до начала выполнения он не может

такой вот каламбур

Konstantin
02.05.2017
20:43:14
блин, я наверное тупой и ничего не понимаю (

Victor
02.05.2017
22:01:11
поэтому конфигурировать ее до начала выполнения он не может
А зачем это может понадобиться? Набор джобов и их поведение от дня к недели не меняется

Fike
02.05.2017
22:55:39
Зачем релиз отдуплять от прогонки тестов?

Google
Fike
03.05.2017
10:03:21
Потому что до начала запуска прогона и чтения проекта из репозитория конфигурации не существует

Let Eat
03.05.2017
10:06:14
ну так пусть прочитает первым делом после чекаута и самосконфигурируется

Fike
03.05.2017
10:08:04
Курица и яйцо

Джоба может быть найдена после чекаута

Чекаут может быть частью джобы

Одно из этих двух должно быть первым

Let Eat
03.05.2017
10:13:05
Одно из этих двух должно быть первым
не означает ли это что оба подхода равнозначны? )

можно и чтото среднее: зарание прописаные фазы, но что конкретно происходит внутри фазы берется из конфига

Fike
03.05.2017
10:14:12
Какие два подхода?

Я объясняю, почему подход с одним файлом а репе нежизнеспособен

Let Eat
03.05.2017
10:14:55
один: если честно, все CI-системы, конфигурирующиеся единым yaml-файлом в корне, должны сгореть второй: все что не "один"

Fike
03.05.2017
10:15:22
Нет, не равнозначны

Один не вызывает бесконечную боль

Sergey
03.05.2017
13:10:56
Ребят в каком случае под периодически может становится "Ready: false"

причем у меня пачка однотипных подов и у всех в одинаковое время становится ready: false

Страница 167 из 958