Ситуация:
- сервер A: мы запускаем Gitlab в контейнере.
- сервер B: у нас есть Kubernetes.
Gitlab использует бегуна Kubernetes. Некоторые из наших проектов затем создают приложения, используя Docker-контейнер с Git и Maven.
Maven всегда должен загружать все виды вещей в свой кеш /root/.m2.
Что мне нужно сделать, так это создать постоянный том, который эти задания могут использовать, поэтому после его загрузки не нужно делать это снова каждый раз, когда кто-то хочет что-то построить или протестировать. Эти контейнеры всегда создаются заново с использованием одного готового изображения.
Довольно простые вещи, за исключением того, что я абсолютно новичок в Gitlab и Kubernetes.
Где мне нужно создать том? Я попытался изменить config.toml в бегуне, чтобы он включал том типа host_path, но я не знаю, удалось ли мне, и Maven определенно должен каждый раз загружать все требования. Я даже не знаю, нужно ли перезапускать контейнер бегуна для внесения изменений и как.
Это config.toml бегуна:
listen_address = "[::]:9252"
concurrent = 4
check_interval = 3
log_level = "info"
[session_server]
session_timeout = 1800
[[runners]]
name = "runner-gitlab-runner-c55d9bf98-2nn7c"
url = "https://private_network:8443/"
token = "yeah, token"
executor = "kubernetes"
[runners.cache]
[runners.cache.s3]
[runners.cache.gcs]
[runners.kubernetes]
host = ""
bearer_token_overwrite_allowed = false
image = "ubuntu:16.04"
namespace = "gitlab-managed-apps"
namespace_overwrite_allowed = ""
privileged = true
service_account_overwrite_allowed = ""
pod_annotations_overwrite_allowed = ""
[runners.kubernetes.volumes.host_path]
name = "maven-volume"
mount_path = "/root/.m2"
read_only = false
Я не знаю достаточно, чтобы понять, чего мне не хватает. Может быть, я должен определить что-то в .gitlab-ci.yml в этих проектах, или что-то еще. Я просмотрел учебные пособия, пробовал страницы справки Gitlab, но все еще не могу найти работающее решение.
Запуск GitLab Community Edition 11.6.5.