설치

이 문서는 Kubernetes 또는 OpenShift 클러스터에서 매니페스트를 사용하여 GitLab Operator를 배포하는 방법에 대해 설명합니다.

OpenShift를 사용하는 경우, 이러한 단계는 일반적으로 오퍼레이터가 번들로 게시된 후 OLM(Operator Lifecycle Manager)에서 처리합니다. 그러나 사용자는 최신 오퍼레이터 이미지를 테스트하기 위해 오퍼레이터 리포지토리의 배포 매니페스트를 사용하여 오퍼레이터를 설치해야 할 수도 있습니다.

전제 조건

설치 페이지의 “전제 조건” 섹션을 참조하십시오.

GitLab Operator 설치

  1. GitLab Operator 리포지토리를 로컬 시스템에 복제합니다.

    git clone https://gitlab.com/gitlab-org/cloud-native/gitlab-operator.git
    cd gitlab-operator
    
  2. GitLab Operator를 배포합니다.

    kubectl create namespace gitlab-system
    task deploy_operator # 또는 "task deploy_operator_openshift"
    

    이 명령은 먼저 오퍼레이터에서 사용하는 서비스 어카운트, 역할 및 역할 바인딩을 배포한 다음 오퍼레이터 자체를 배포합니다.

    병합 요청 작업 중인 경우 TAG 환경 변수를 브랜치 이름으로 설정하여 deploy_operator에서 기본 latest 태그를 재정의해야 합니다. 예: TAG=my-mr-branch-name task deploy_operator.

    병합 요청된 포크에서 작업하는 경우 브랜치 이름은 잘못된 이미지 이름으로 이어질 수 있습니다. 코드가 파이프라인에 보안 리스크를 가하지 않음을 확인한 후 프로젝트에서 수동 파이프라인을 트리거하고 커밋 SHA를 TAG로 사용합니다. 예: TAG=7f954ee1 task deploy_operator.

    참고: 오퍼레이터 네임스페이스에 GitLab을 배포해야 합니다. 다른 네임스페이스는 지원되지 않습니다.

  3. GitLab 사용자 지정 리소스 (CR)를 생성합니다.

    mygitlab.yaml와 같은 이름의 새 파일을 만듭니다.

    여기에는 이 파일에 넣을 내용의 예시가 있습니다.

    apiVersion: apps.gitlab.com/v1beta1
    kind: GitLab
    metadata:
      name: gitlab
    spec:
      chart:
        version: "X.Y.Z" # 이 프로젝트 루트의 CHART_VERSIONS 파일에서 버전을 선택합니다
        values:
          global:
            hosts:
              domain: example.com # 실제 도메인을 여기에 사용합니다
            ingress:
              configureCertmanager: true
          certmanager-issuer:
            email: youremail@example.com # 실제 이메일 주소를 여기에 사용합니다
    

    spec.chart.values 하위에서 사용할 구성 옵션에 대한 자세한 내용은 GitLab Helm 차트 문서를 참조하십시오.

  4. 새 GitLab CR을 사용하여 GitLab 인스턴스를 배포합니다.

    kubectl -n gitlab-system apply -f mygitlab.yaml
    

    이 명령은 GitLab CR을 클러스터로 보내 GitLab Operator가 조정하도록 합니다. 컨트롤러 파드의 로그를 따라 진행 상황을 확인할 수 있습니다.

    kubectl -n gitlab-system logs deployment/gitlab-controller-manager -c manager -f
    

    또한 GitLab 리소스를 나열하고 상태를 확인할 수 있습니다.

    kubectl get gitlabs -n gitlab-system
    

    CR이 조정되면 (GitLab 리소스의 상태가 RUNNING이 됨) 브라우저에서 https://gitlab.example.com에 액세스하여 GitLab에 접속할 수 있습니다.

GitLab Operator 업데이트

설치와 동일한 명령이지만 이전에 캐시된 결과를 재정의해야 할 수 있습니다. --force를 추가해야 할 수도 있습니다.

task --force deploy_operator

정리

config/ 디렉토리의 파일 제거와 같은 특정 작업을 실행해도 다시 빌드/배포되지 않을 수 있으므로 다음과 같이 진행해야 합니다.

task clean

이 명령은 모든 빌드 아티팩트와 설치 레코드를 제거합니다.

설치 취소

GitLab Operator 및 관련 리소스를 제거하려면 다음 단계를 따르십시오.

오퍼레이터를 제거하기 전에 확인해야 할 사항:

  • 오퍼레이터는 GitLab 인스턴스가 삭제될 때 Persistent Volume Claims 또는 Secrets를 삭제하지 않습니다.
  • 오퍼레이터를 삭제할 때 설치된 네임스페이스(gitlab-system이 기본)가 자동으로 삭제되지 않습니다. 이는 의도치 않게 영구 볼륨이 손실되는 것을 방지하기 위한 조치입니다.

GitLab 인스턴스 제거

kubectl -n gitlab-system delete -f mygitlab.yaml

이렇게 하면 GitLab 인스턴스와 (위에서 언급된대로) PVC를 제외한 모든 관련 객체가 제거됩니다.

GitLab Operator 제거

task delete_operator

이 명령은 실행 중인 배포를 포함하여 오퍼레이터 리소스를 제거합니다. GitLab 인스턴스와 관련된 객체를 삭제하지는 않습니다.