설치
이 문서는 Kubernetes 또는 OpenShift 클러스터에서 매니페스트를 사용하여 GitLab Operator를 배포하는 방법에 대해 설명합니다.
OpenShift를 사용하는 경우, 이러한 단계는 일반적으로 오퍼레이터가 번들로 게시된 후 OLM(Operator Lifecycle Manager)에서 처리합니다. 그러나 사용자는 최신 오퍼레이터 이미지를 테스트하기 위해 오퍼레이터 리포지토리의 배포 매니페스트를 사용하여 오퍼레이터를 설치해야 할 수도 있습니다.
전제 조건
설치 페이지의 “전제 조건” 섹션을 참조하십시오.
GitLab Operator 설치
-
GitLab Operator 리포지토리를 로컬 시스템에 복제합니다.
git clone https://gitlab.com/gitlab-org/cloud-native/gitlab-operator.git cd gitlab-operator
-
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을 배포해야 합니다. 다른 네임스페이스는 지원되지 않습니다.
-
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 차트 문서를 참조하십시오. -
새 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 인스턴스와 관련된 객체를 삭제하지는 않습니다.