Sn00part
ещё бывает коммит прямым пушем и скваш.
G72K
причем здесь всё это? если есть известный commit id, он во всех уголках этой вселенной означает одно и то же.
G72K
> Да, имаджстор тоже может уйти в даун, но это одна сущность вместо двух.
согласен. единственный аргументированный минус из всего обсуждения.
Sn00part
а если бранч потерли, куда был коммит, или его посквашили, что означает теперь это ша?
G72K
ну он либо есть либо нет, быть и означать что-то иное в разное время оно не может. "если потерли" это то же самое что если докер имадж потерли. защищаться от этого простейшими техническими методами более чем реально
Sn00part
dangling commits есть, но его нет, например.
𝕍ℤ
@Sn00p вы рассуждаете с позиции девопса, приравнивая разрабов к домохозяйкам. на мне, например, весь стэк, и мне не понятны аргументы наподобие "гит потёрли". Я аккуратно коммичу, даже в дев-ветку, не говоря уже о стэйбл. и с моей позиции, например, потереть какой-нибудь имейдж можно с большей долей вероятности
𝕍ℤ
и вообще, тут никто не осуждает ваш подход, просто он не единственно верный
Sn00part
я и не говорю, что он единственно верный. вообще это не мой подход, это Best practices.
Sn00part
разработчик за прод не отвечает, он отвечает за код. я ^аккуратно коммичу^ так не работает, драть все равно будут админа, независимо от аккуратности разработчика.
Sn00part
а она так себе, иначе не нужны были никакие cicd. аккуратно накодил, аккуратно залил и все работает ок.
G72K
Zon
@Sn00p вы рассуждаете с позиции девопса, приравнивая разрабов к домохозяйкам. на мне, например, весь стэк, и мне не понятны аргументы наподобие "гит потёрли". Я аккуратно коммичу, даже в дев-ветку, не говоря уже о стэйбл. и с моей позиции, например, потереть какой-нибудь имейдж можно с большей долей вероятности
Это всё хорошо, пока это один человек. Но это плохо скейлится. + давать куберу доступ к гиту это тоже не супер. В какой-то момент там был только password based auth и пароль протекал в манифест.
Возможно от вашего подхода есть ускорение воркфлоу, но скейлить это тяжело. У меня был деплой из гита на 300 серверов, но пришлось поднимать зеркала, ибо один гит-сервер загибался. http get != git pull
𝕍ℤ
вы так говорите, как будто при сборке образа клонировать репу не надо :)
Zon
1 раз против 300. Разница есть
G72K
> http get != git pull
это смотря как реализовать. --depth=1 примерно равно http get
Zon
Про shallow clone я знаю. Памяти на отдачу гитом уходит сильно больше
G72K
у вас точно был git а не адъ на jgit?
Zon
Разные варианты тестировали. Отдача http статики, которая закешивается нормально, сильно быстрее
Sn00part
ну ок, религия, что это меняет? нравится вам релизиться с помощью кровавой бани, где внутри толпа людей упакована, дело-то хозяйское. вам деньги зарабатывать на продукте и минимизировать количество людей на зарплате, делайте как хотите, хоть по старинке, хоть со своими велосипедами с квадратными колёсами.
G72K
G72K
ну ок, религия, что это меняет? нравится вам релизиться с помощью кровавой бани, где внутри толпа людей упакована, дело-то хозяйское. вам деньги зарабатывать на продукте и минимизировать количество людей на зарплате, делайте как хотите, хоть по старинке, хоть со своими велосипедами с квадратными колёсами.
давайте я попробую еще раз. Последний.
Вот этот кусок 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.
Etki
а с джавой-то так не пройдет
Etki
(троллфейс)
G72K
Sn00part
Sn00part
хоть пипом деплойте или побайтово, я же написал, дело хозяйское
Sn00part
самый главный вопрос, зачем это? потому что можно? бгг
Sn00part
как релизы трекать будете? я ещё согласен на тег или версию, но разгребать на проде коммиты по ша - разгребайте, дело хозяйское
G72K
самый главный вопрос, зачем это? потому что можно? бгг
а я знаю? спросили, я ответил. Вы же начали утверждать что это не канон, с а этим утверждением спорю. По мне так никакой особой магие версия докер имаджа не обладает, вы же утверждаете что без нее придется нанимать больше админов, что странно
Dmitry
𝕍ℤ
а может кто рассказать о самостоятельном опыте использования связки cicd + куб? если будет примеры, ссылки вообще огонь. гуглить умею, хочется из первых уст выдержки услышать)
Pasha
@zhukva так @poselivanov на митапах рассказывает как мы живём
Artem
в примере gke:
gitlab + gitlab-ci + k8s
Сборка образов в ci и push их в gcr, после этого update deployment в k8s на новый образ в pod'e.
из такого простенького.
Artem
вопрос.
Если создавать configmap из файла командой, то можно как то заапдейтить configmap измений этот файл не пересоздавая configmap?
G72K
kubectl create configmap my-config —from-file=path/to/bar -o json |kubectl apply -f -
G72K
может —dry-run еще добавить по вкусу
Logan
коллеги, кто-нибудь из вас скрещивал traefik, tls+SNI и letsencrypt? или я первый буду?
Artem
Dmitry
@not_logan я на днях собираюсь этим заняться
𝕍ℤ
Artem
https://kubernetes.io/docs/tasks/configure-pod-container/pull-image-private-registry/
Artem
ну судя по всему, просто указань нужные образы в деплойментах
𝕍ℤ
так у вас собственная установка гитлаба или пользуетесь их сервисом? если собственная, интересна схема взаимодействия с кубом)
Dmitry
без проблем =)
Artem
Artem
а всем разруливает gitlab-ci
𝕍ℤ
т.е., пристите за нубство, гитлаб установлен рядом с к8s, а не в нём самом?
Artem
да, гитлаб там же в гугле, но на отдельной vm
𝕍ℤ
а вообще кто-нибудь устанавливал cicd непосредственно в куб?
Sn00part
да. геррит в поде дженкинс тоже. дженкинс через плагин спавнит поды тестит гасит
𝕍ℤ
а гитлаб? почитал, оч заманчиво. или есть противопоказания? если есть годные статьи буду премного благодарен за ссылки, что бы не гуглить
Logan
Sn00part
гитлаб неплох за неимением альтернатив.
Sn00part
можно ещё посмотреть на gitblit
Sn00part
Gerrit, если надо кодревью, но он ужасный просто в плане интерфейса
Vadim
Logan
чем же он отвратителен?
- тем, как он написан
- конфигом CI системы
- желанием все делать самостоятельно (кто-нибудь научил его грузить артифакты отдельно без ухищрений?)
- работой с БД
- установщиком, который возит с собой ВСЕ (странно, что операционку не возит)
- большим количеством дырок в безопасности
Igor
> установщиком, который возит с собой ВСЕ (странно, что операционку не возит)
Igor
ставлю в докере - возит 😁
Logan
centos, надеюсь?
Igor
понятия не имею, не смотрел. Вангую, что убунта какая-нибудь.
Konstantin
там конфиг как у всех подобных, обычный yaml, чего там отвратительного? и что не так с артефактами?
Etki
если честно, все CI-системы, конфигурирующиеся единым yaml-файлом в корне, должны сгореть
Etki
потому что проверка, релиз, выкатка - это разные джобы
Konstantin
Konstantin
Etki
то, что конфиг применяется во время выполнения джобы
Etki
поэтому конфигурировать ее до начала выполнения он не может
Etki
такой вот каламбур
Konstantin
блин, я наверное тупой и ничего не понимаю (
Etki
Зачем релиз отдуплять от прогонки тестов?
G72K
Etki
Потому что до начала запуска прогона и чтения проекта из репозитория конфигурации не существует
G72K
ну так пусть прочитает первым делом после чекаута и самосконфигурируется
Etki
Курица и яйцо
Etki
Джоба может быть найдена после чекаута