설치

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

OpenShift를 사용하는 경우, 이러한 단계는 보통 오퍼레이터가 번들로 출판된 후 OLM(Operator Lifecycle Manager)에 의해 처리됩니다. 그러나 사용자들은 최근 오퍼레이터 이미지를 테스트하기 위해 오퍼레이터 저장소에서 사용 가능한 배포 manifest를 사용하여 오퍼레이터를 설치해야 할 수도 있습니다.

전제 조건

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

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"
    

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

    병합 요청을 처리할 때 deploy_operator에서 기본으로 사용되는 latest 태그를 무시하려면 TAG 환경 변수를 브랜치 이름으로 설정하여 deploy_operator를 실행합니다. 예: TAG=my-mr-branch-name 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 Operator가 조정하기 위해 클러스터로 GitLab CR을 보냅니다. 컨트롤러 파드의 로그를 계속 확인하여 진행 상황을 확인할 수 있습니다.

    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 인스턴스와 관련된 객체는 삭제하지 않습니다.