GitLab Runner 차트 사용

Tier: Free, Premium, Ultimate Offering: Self-Managed

GitLab Runner 하위 차트는 CI 작업을 실행하는 GitLab Runner를 제공합니다. 기본적으로 활성화되어 있으며 s3 호환 객체 리포지터리를 사용하여 캐싱을 지원하는 즉시 사용할 수 있어야 합니다.

caution
포함된 GitLab Runner 차트의 기본 구성은 프로덕션용으로 의도되지 않았습니다. 모든 GitLab 서비스가 클러스터에 배포되는 개념 증명(PoC) 구현으로 제공됩니다. 프로덕션 배포를 위해 보안 및 성능 상의 이유로 GitLab Runner를 별도의 머신에 설치하세요. 자세한 내용은 참조 아키텍처 설명서 를 참조하세요.

요구 사항

이 차트는 공유된 비밀 작업인 registrationToken을 사용하여 자동 등록을 위해 종속됩니다. 이 차트를 기존의 GitLab 인스턴스와 함께 독립적으로 실행할 계획이라면 실행 중인 GitLab 인스턴스에서 표시된 registrationToken과 동일하게 gitlab-runner 시크릿에 매뉴얼으로 registrationToken을 설정해야 합니다.

구성

자세한 내용은 사용법 및 구성 문서를 참조하세요.

독립형 러너 배포

기본적으로 우리는 gitlabUrl을 추론하고, 등록 토큰을 자동으로 생성하고, migrations 차트를 통해 생성합니다. 이 동작은 실행 중인 GitLab 인스턴스와 함께 배포할 계획이라면 작동하지 않습니다.

이 경우 gitlabUrl 값을 실행 중인 GitLab 인스턴스의 URL로 설정해야 합니다. 또한 매뉴얼으로 gitlab-runner 시크릿을 생성하고 실행 중인 GitLab에서 제공된 registrationToken으로 채워 넣어야 합니다.

Docker-in-Docker 사용

Docker-in-Docker를 실행하려면 러너 컨테이너에게 필요한 기능에 대한 액세스 권한이 있어야 합니다. 이를 활성화하려면 privileged 값을 true로 설정하세요. 이것이 기본값이 아닌 이유에 대해서는 상위 문서 에서 확인하세요.

보안에 관련된 고려 사항

특권 컨테이너에는 확장된 기능이 있으며, 예를 들어 호스트에서 임의의 파일을 마운트할 수 있습니다. 중요한 것이 컨테이너 옆에서 실행되지 않도록 격리된 환경에서 컨테이너를 실행하세요.

기본 러너 구성

GitLab 차트에 사용된 기본 러너 구성은 기본적으로 포함된 MinIO를 기본 캐시로 사용하도록 사용자 정의되었습니다. 러너 config 값을 설정하는 경우, 고유한 캐시 구성을 설정해야 합니다.

gitlab-runner:
  runners:
    config: |
      [[runners]]
        [runners.kubernetes]
        image = "ubuntu:22.04"
        {{- if .Values.global.minio.enabled }}
        [runners.cache]
          Type = "s3"
          Path = "gitlab-runner"
          Shared = true
          [runners.cache.s3]
            ServerAddress = {{ include "gitlab-runner.cache-tpl.s3ServerAddress" . }}
            BucketName = "runner-cache"
            BucketLocation = "us-east-1"
            Insecure = false
        {{ end }}

사용자 정의된 GitLab Runner 차트 구성은 top-level values.yaml 파일gitlab-runner 키 아래에서 사용할 수 있습니다.