개요
2025.06.04-[Gitlab] runner - PANIC: Failed to register this runner. Perhaps you are having network problems 에서 쿠버네티스 환경에서 Helm으로 설치한 gitlab-runner의 버전 업그레이드를 수행했는데, values.yaml 변경으로 별도로 설정해 두었던 일부 속성이 values.yaml에서 삭제되었다.
예로 들어 chart 0.15.0 버전에서는 runners.pollTimeout이라는 속성을 지원했는데,
현재는 지원하고 있지 않는 것 같아 확인해 보니, https://gitlab.com/gitlab-org/gitlab/-/issues/379064에서 decprecated 되었다는 내용을 확인할 수 있었다.
확인해보니 gitlab에서 해당 속성 자체가 제거된 건 아닌지, gitlab 공식 문서에서 해당 속성을 다루고 있는 페이지를 찾을 수 있었다.
runners.pollTimeout 뿐만 아니라 builds.cpuRequests, builds.memoryRequests 같은 속성도 없어진 것 같다.
이번 글에서는 kubernetes 환경에서 gitlab-runner를 구성하는 방법에 대해서 적어둔다.
config.toml
gitlab-runner의 동작을 변경하기 위해서는 config.toml이라는 파일을 수정해야 한다. config.toml은 /etc/gitlab-runner 또는 ~/.gitlab-runner 등의 경로에 위치하고 있다.

Helm Chart로 설치하는 경우에는, 차트 버전 0.77.2 기준으로 runners.config 속성을 통해 러너의 구성을 편집할 수 있다.
https://artifacthub.io/packages/helm/gitlab/gitlab-runner/0.77.2?modal=values&path=runners.config

아무래도 기존에는 config.toml 내의 설정값을 values.yaml 내 속성으로 전달받을 수 있게 되어있던 것 같은데, 관리 편의성 등을 이유로 config 자체를 전달하도록 변경된 것 같다.
설정 방법
정리하면, Helm Chart에서 runner의 구성할 일이 있다면 runners.config 속성을 활용해야 한다.
확인해 보니 chart에서 삭제된 runners.pollTimeout 속성은, runners.config 속성의 [runners.kubernetes] 섹션에서 지원하고 있다.
필요시 아래와 같이 설정하면 된다.
[[runners]]
[runners.kubernetes]
namespace = "{{.Release.Namespace}}"
image = "alpine"
poll_timeout = 3600
추가로 언급했던 builds.cpuRequests, builds.memoryRequests 속성도 runners.config 속성의 [runners.kubernetes] 섹션에서 지원하고 있는 것 같다.
[[runners]]
[runners.kubernetes]
namespace = "{{.Release.Namespace}}"
image = "alpine"
poll_timeout = 900
cpu_request = "3"
memory_request = "100Gi"
변경 구성 확인
필요한 구성을 runners.config에 추가하고 배포했다. 정상적으로 잘 적용되었는지 확인한다.
cpu_request, memory_request는 파이프라인 job을 실행하는 pod 정보를 확인하면 된다.

확인해 보니 의도한 대로 잘 적용되어 있는 모습을 볼 수 있었다.
참고 문서
https://docs.gitlab.com/runner/configuration/advanced-configuration/
https://docs.gitlab.com/runner/executors/kubernetes/