설치

이 문서는 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"
    

    이 명령은 먼저 연산자에서 사용하는 서비스 계정, 역할 및 역할 바인딩을 배포한 다음 연산자 자체를 배포합니다.

    Merge Request 작업 중에 deploy_operator에서 사용하는 기본 latest 태그를 TAG 환경 변수를 브랜치 이름으로 설정하여 재정의하십시오. 예: TAG=my-mr-branch-name task deploy_operator.

    note
    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 Chart 문서를 참조하십시오.

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

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

    이 명령은 GitLab Operator가 조정하기 위해 GitLab CR을 클러스터로 보냅니다. 컨트롤러 pod의 로그를 계속 확인하여 진행 상황을 확인할 수 있습니다.

    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(PVC) 또는 Secrets가 삭제되지 않습니다.
  • 연산자를 삭제할 때, 기본적으로 설치된 네임스페이스(gitlab-system)가 자동으로 삭제되지 않습니다. 이는 의도하지 않게 persistent volume이 손실되지 않도록 하는 것입니다.

GitLab 인스턴스 제거

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

이 명령은 GitLab 인스턴스와 (위에서 언급된대로) 모든 관련된 객체를 제거합니다.

GitLab Operator 제거

task delete_operator

이 명령은 실행 중인 배포를 포함하여 연산자의 리소스를 삭제합니다. 그러나 GitLab 인스턴스와 관련된 객체는 삭제하지 않습니다.