Size: a a a

2020 January 24

GM

Gleb Mekhrenin in ru_gitlab
есть
источник

ו

ויטאלי קוזלוב in ru_gitlab
Всем привет! Парни, у кого-нибудь есть опыт запуска Gitlab-раннера в Kubernetes?
источник

GM

Gleb Mekhrenin in ru_gitlab
конечно
источник

ו

ויטאלי קוזלוב in ru_gitlab
Отлично! Столкнулись с непонятным поведением, может  и вы с таким сталкивались
В общем, нужно пробрасывать с хост-машины в создаваемый контейнер директорию
источник

ו

ויטאלי קוזלוב in ru_gitlab
Сделано все по документации: https://docs.gitlab.com/runner/executors/kubernetes.html#using-volumes
источник

ו

ויטאלי קוזלוב in ru_gitlab
Тем не менее, почему-то это решение не работает
Для чего мне это нужно: gradle при сборке проекта подтягивает зависимости, и бывает так, что сервера на которых хостятся зависимости, не работают, и мы не можем собирать проекты по независящим от нас причинам
Поэтому хотелось бы при первом запуске нового раннера сохранять кэш в контейнере в директорию, а директория эта примонтирована с хост-машины
Соответственно после запуска новой сборки, gradle не будет скачивать зависимости, а брать из кэша
источник

ו

ויטאלי קוזלוב in ru_gitlab
и вот незадача - раннер работает в кубере, сборка идет, грэдл качает зависимости и локально у себя в контейнере кладет в известное место
Но на хост-машине этих файлов нет, почему-то
источник

ו

ויטאלי קוזלוב in ru_gitlab
при этом если из контейнера руками создать в этой директории какой-нибудь файл, то он отображается на хост-машине )) есть какие-нибудь идеи?)
источник

YD

Yuriy Dorogov in ru_gitlab
ויטאלי קוזלוב
Тем не менее, почему-то это решение не работает
Для чего мне это нужно: gradle при сборке проекта подтягивает зависимости, и бывает так, что сервера на которых хостятся зависимости, не работают, и мы не можем собирать проекты по независящим от нас причинам
Поэтому хотелось бы при первом запуске нового раннера сохранять кэш в контейнере в директорию, а директория эта примонтирована с хост-машины
Соответственно после запуска новой сборки, gradle не будет скачивать зависимости, а брать из кэша
а чем s3 кеш то не угодил?
источник

YD

Yuriy Dorogov in ru_gitlab
в кубовом раннере вполне сносно работает
источник

ו

ויטאלי קוזלוב in ru_gitlab
Да вот не угодил, нужно локально
источник

YD

Yuriy Dorogov in ru_gitlab
так он и скачает и положит локально(раннер)
источник

ו

ויטאלי קוזלוב in ru_gitlab
да и сам факт - почему не работает то, что должно работать согласно оф. документации
источник

YD

Yuriy Dorogov in ru_gitlab
ну можно еще persistent volume запилить и на него ложить
источник

BS

Baron Samedi in ru_gitlab
ויטאלי קוזלוב
да и сам факт - почему не работает то, что должно работать согласно оф. документации
nfs шару и кэш туда
источник

BS

Baron Samedi in ru_gitlab
это у них в офиц доке так и предлагается
источник

BS

Baron Samedi in ru_gitlab
есть еще внутренний способ обмена кэшом - он будет архивом обмениваться между джобами, но это тормозит
источник

ו

ויטאלי קוזלוב in ru_gitlab
Baron Samedi
есть еще внутренний способ обмена кэшом - он будет архивом обмениваться между джобами, но это тормозит
Сейчас так и работает, но меня это не устраивает, да и уже не нужно шарить кэш между джобами
источник

ו

ויטאלי קוזלוב in ru_gitlab
мне нужно шарить кэш между раннерами
то есть разрабы тыкают "собрать", создается под в кубере, который начинает сборку, выкачивает кэш и складывает в определенное место у себя, и на хост-машине
паралелльно на другом проекте в гитлабе тоже тыкают "собрать", создается еще один под в кубере, и вот нужно чтобы этот новый под не скачивал кэш, а брал уже скачанный первый раннером)
источник

BS

Baron Samedi in ru_gitlab
ויטאלי קוזלוב
мне нужно шарить кэш между раннерами
то есть разрабы тыкают "собрать", создается под в кубере, который начинает сборку, выкачивает кэш и складывает в определенное место у себя, и на хост-машине
паралелльно на другом проекте в гитлабе тоже тыкают "собрать", создается еще один под в кубере, и вот нужно чтобы этот новый под не скачивал кэш, а брал уже скачанный первый раннером)
nfs
источник