GitLab Runner Operator 설치

Red Hat OpenShift에 설치

Tier: Free, Premium, Ultimate Offering: GitLab.com, Self-managed

GitLab Runner Operator로 Red Hat OpenShift v4 이상에 GitLab Runner를 설치할 수 있습니다. GitLab Runner Operator는 OpenShift의 웹 콘솔에 포함된 OperatorHub의 stable 채널에서 사용할 수 있습니다. 설치 완료 후에는 새로 배포된 GitLab Runner 인스턴스를 사용하여 GitLab CI/CD 작업을 실행할 수 있습니다. 각 CI/CD 작업은 별도의 팟에서 실행됩니다.

필수 구성 요소

  • 관리자 권한이 있는 OpenShift 4.x 클러스터
  • GitLab Runner 등록 토큰

OpenShift Operator 설치

먼저 OpenShift Operator를 설치해야 합니다.

  1. OpenShift UI에 로그인하고 관리자 권한을 가진 사용자로 로그인합니다.
  2. 왼쪽 패널에서 Operators, 그런 다음 OperatorHub을 클릭합니다.
  3. 메인 패널에서 All Items 아래에서 GitLab Runner 키워드로 검색합니다.

    GitLab Operator

  4. 설치하려면 GitLab Runner Operator를 클릭합니다.
  5. GitLab Runner Operator 요약 페이지에서 설치를 클릭합니다.
  6. 설치 페이지에서:
    1. Update Channel에서 stable를 선택합니다.
    2. Installed Namespace에서 원하는 네임스페이스를 선택하고 Install을 클릭합니다.

    GitLab Operator Install Page

설치된 Operator 페이지에서 GitLab Operator가 준비되면 상태가 Succeeded로 변경됩니다.

GitLab Operator Install Status

Kubernetes에 설치

Tier: Free, Premium, Ultimate Offering: GitLab.com, Self-managed

GitLab Runner Operator로 Kubernetes v1.21 이상에 GitLab Runner를 설치할 수 있습니다. GitLab Runner Operator는 OperatorHub.io의 stable 채널에서 사용할 수 있습니다. 설치 완료 후에는 새로 배포된 GitLab Runner 인스턴스를 사용하여 GitLab CI/CD 작업을 실행할 수 있습니다. 각 CI/CD 작업은 별도의 팟에서 실행됩니다.

필수 구성 요소

  • Kubernetes v1.21 이상
  • Cert manager v1.7.1

Kubernetes Operator 설치

OperatorHub.io의 지침을 따릅니다.

  1. 필수 구성 요소를 설치합니다.
  2. 오른쪽 상단에서 Install을 선택하고 OLM 및 Operator를 설치하는 지침에 따릅니다.

GitLab Runner 설치

  1. 러너 인증 토큰을 얻습니다. 다음 중 하나를 선택할 수 있습니다:
    • 공유, 그룹, 또는 프로젝트 러너를 생성합니다.
    • config.toml 파일에서 러너 인증 토큰을 찾습니다. 러너 인증 토큰은 glrt-로 시작합니다.
  2. GitLab Runner 토큰이 포함된 시크릿 파일을 만듭니다:

    cat > gitlab-runner-secret.yml << EOF
    apiVersion: v1
    kind: Secret
    metadata:
      name: gitlab-runner-secret
    type: Opaque
    stringData:
      runner-token: REPLACE_ME # 프로젝트 러너 토큰
    EOF
    
  3. 클러스터에서 시크릿을 생성합니다.

    kubectl apply -f gitlab-runner-secret.yml
    
  4. CRD 파일을 만들고 다음 구성을 포함합니다.

    cat > gitlab-runner.yml << EOF
    apiVersion: apps.gitlab.com/v1beta2
    kind: Runner
    metadata:
      name: gitlab-runner
    spec:
      gitlabUrl: https://gitlab.example.com
      buildImage: alpine
      token: gitlab-runner-secret
    EOF
    
  5. 이제 CRD 파일을 적용합니다.

    kubectl apply -f gitlab-runner.yml
    
  6. 다음 명령을 실행하여 GitLab Runner가 설치되었는지 확인합니다.

    kubectl get runner
    NAME             AGE
    gitlab-runner    5m
    
  7. 러너 팟도 표시됩니다.

    kubectl get pods
    NAME                             READY   STATUS    RESTARTS   AGE
    gitlab-runner-bf9894bdb-wplxn    1/1     Running   0          5m
    

OpenShift에서 다른 버전의 GitLab Runner Operator 설치

Red Hat OperatorHub에서 제공되는 GitLab Runner Operator 버전을 사용하고 싶지 않다면, 다른 버전을 설치할 수 있습니다.

현재 공식적으로 사용 가능한 Operator 버전을 확인하려면, gitlab-runner-operator 저장소의 태그를 확인하세요. Operator가 실행 중인 GitLab Runner 버전을 확인하려면, 관심 있는 커밋 또는 태그의 APP_VERSION 파일 내용을 확인하세요. 예를 들어, https://gitlab.com/gitlab-org/gl-openshift/gitlab-runner-operator/-/blob/1-17-stable/APP_VERSION를 확인하세요.

특정 버전을 설치하려면, catalogsource.yaml 파일을 만들고 <VERSION>을 태그 또는 특정 커밋으로 대체하세요:

참고: 특정 커밋에 대한 이미지를 사용할 때 태그 형식은 v0.0.1-<COMMIT>입니다. 예: registry.gitlab.com/gitlab-org/gl-openshift/gitlab-runner-operator/gitlab-runner-operator-catalog-source:v0.0.1-f5a798af.

apiVersion: operators.coreos.com/v1alpha1
kind: CatalogSource
metadata:
  name: gitlab-runner-catalog
  namespace: openshift-marketplace
spec:
  sourceType: grpc
  image: registry.gitlab.com/gitlab-org/gl-openshift/gitlab-runner-operator/gitlab-runner-operator-catalog-source:<VERSION>
  displayName: GitLab Runner Operators
  publisher: GitLab Community

다음 명령으로 CatalogSource를 만드세요:

oc apply -f catalogsource.yaml

몇 분 내에 새로운 Runner가 OpenShift 클러스터의 OperatorHub 섹션에 표시됩니다.

Operator 삭제

Red Hat OpenShift에서 삭제

  1. Runner CRD 삭제:

    kubectl delete -f gitlab-runner.yml
    
  2. secret 삭제:

    kubectl delete -f gitlab-runner-secret.yml
    
  3. 웹 콘솔을 사용하여 클러스터에서 Operator 삭제에 대한 Red Hat 문서의 지침을 따르세요.

Kubernetes에서 삭제

  1. Runner CRD 삭제:

    kubectl delete -f gitlab-runner.yml
    
  2. secret 삭제:

    kubectl delete -f gitlab-runner-secret.yml
    
  3. Operator 구독 삭제:

    kubectl delete subscription my-gitlab-runner-operator -n operators
    
  4. 설치된 CSV 버전 확인:

    kubectl get clusterserviceversion -n operators
    NAME                            DISPLAY         VERSION   REPLACES   PHASE
    gitlab-runner-operator.v1.7.0   GitLab Runner   1.7.0                Succeeded
    
  5. CSV 삭제:

    kubectl delete clusterserviceversion gitlab-runner-operator.v1.7.0 -n operators
    

구성

OpenShift에서 GitLab Runner를 구성하려면, OpenShift에서 GitLab Runner 구성하기 페이지를 참조하세요.