我有一个Gitlab云连接到在Google(GKE)上运行的k8s集群。 该集群是通过Gitlab云创建的。
我想自定义config.toml
,因为我想根据this issue中的建议在k8s上修复 缓存。
我在config.toml
ConfigMap中找到了runner-gitlab-runner
配置。
我更新了ConfigMap以包含此config.toml
设置:
config.toml: |
concurrent = 4
check_interval = 3
log_level = "info"
listen_address = '[::]:9252'
[[runners]]
executor = "kubernetes"
cache_dir = "/tmp/gitlab/cache"
[runners.kubernetes]
memory_limit = "1Gi"
[runners.kubernetes.node_selector]
gitlab = "true"
[[runners.kubernetes.volumes.host_path]]
name = "gitlab-cache"
mount_path = "/tmp/gitlab/cache"
host_path = "/home/core/data/gitlab-runner/data"
要应用更改,我删除了runner-gitlab-runner-xxxx-xxx
窗格,以便使用更新的config.toml
创建一个新的窗格。
但是,当我查看新的广告连播时,/home/gitlab-runner/.gitlab-runner/config.toml
现在包含2个[[runners]]
部分:
listen_address = "[::]:9252"
concurrent = 4
check_interval = 3
log_level = "info"
[session_server]
session_timeout = 1800
[[runners]]
name = ""
url = ""
token = ""
executor = "kubernetes"
cache_dir = "/tmp/gitlab/cache"
[runners.kubernetes]
host = ""
bearer_token_overwrite_allowed = false
image = ""
namespace = ""
namespace_overwrite_allowed = ""
privileged = false
memory_limit = "1Gi"
service_account_overwrite_allowed = ""
pod_annotations_overwrite_allowed = ""
[runners.kubernetes.node_selector]
gitlab = "true"
[runners.kubernetes.volumes]
[[runners.kubernetes.volumes.host_path]]
name = "gitlab-cache"
mount_path = "/tmp/gitlab/cache"
host_path = "/home/core/data/gitlab-runner/data"
[[runners]]
name = "runner-gitlab-runner-xxx-xxx"
url = "https://gitlab.com/"
token = "<my-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]
文件/scripts/config.toml
是我在ConfigMap中创建的配置。
因此,我怀疑在向Gitlab云注册Gitlab-Runner时/home/gitlab-runner/.gitlab-runner/config.toml
有所更新。
如果通过ConfigMap更改config.toml
无效,那么我应该如何更改配置?我在Gitlab或Gitlab文档中找不到有关此内容的任何信息。
答案 0 :(得分:1)
在映射内,您可以尝试添加卷和其他配置参数:
# Add docker volumes
cat >> /home/gitlab-runner/.gitlab-runner/config.toml << EOF
[[runners.kubernetes.volumes.host_path]]
name = "var-run-docker-sock"
mount_path = "/var/run/docker.sock"
EOF
我使用头盔图进行了转轮部署;我想您也做了同样的事情,在以下链接中,您会找到有关我提到的方法的更多信息:https://gitlab.com/gitlab-org/gitlab-runner/issues/2578
如果在追加配置后您的pod无法启动,请检查日志,我确实测试了追加方法,并遇到了诸如“找不到目录”之类的错误,那是因为我追加的路径错误,但是解决这些问题后,跑步者可以正常工作。
答案 1 :(得分:0)
如果要修改/home/gitlab-runner/.gitlab-runner
中的现有config.toml,则需要在部署中设置环境变量。例如,如果您通过按gitlab中的安装按钮安装了gitlab-runner,则这是默认的变量集。
Environment:
CI_SERVER_URL: http://git.example.com/
CLONE_URL:
RUNNER_REQUEST_CONCURRENCY: 1
RUNNER_EXECUTOR: kubernetes
REGISTER_LOCKED: true
RUNNER_TAG_LIST:
RUNNER_OUTPUT_LIMIT: 4096
KUBERNETES_IMAGE: ubuntu:16.04
KUBERNETES_PRIVILEGED: true
KUBERNETES_NAMESPACE: gitlab-managed-apps
KUBERNETES_POLL_TIMEOUT: 180
KUBERNETES_CPU_LIMIT:
KUBERNETES_CPU_LIMIT_OVERWRITE_MAX_ALLOWED:
KUBERNETES_MEMORY_LIMIT:
KUBERNETES_MEMORY_LIMIT_OVERWRITE_MAX_ALLOWED:
KUBERNETES_CPU_REQUEST:
KUBERNETES_CPU_REQUEST_OVERWRITE_MAX_ALLOWED:
KUBERNETES_MEMORY_REQUEST:
KUBERNETES_MEMORY_REQUEST_OVERWRITE_MAX_ALLOWED:
KUBERNETES_SERVICE_ACCOUNT:
KUBERNETES_SERVICE_CPU_LIMIT:
KUBERNETES_SERVICE_MEMORY_LIMIT:
KUBERNETES_SERVICE_CPU_REQUEST:
KUBERNETES_SERVICE_MEMORY_REQUEST:
KUBERNETES_HELPER_CPU_LIMIT:
KUBERNETES_HELPER_MEMORY_LIMIT:
KUBERNETES_HELPER_CPU_REQUEST:
KUBERNETES_HELPER_MEMORY_REQUEST:
KUBERNETES_HELPER_IMAGE:
修改现有值或添加新值-它会显示在config.toml
的正确部分。