문서 목차
GitLab (SCM/CI)
소스코드 버전 관리(SCM) 및 자동 빌드/테스트(CI) 를 지원하는 GitLab CE를 구성합니다. 내장 PostgreSQL/Redis/MinIO/Container Registry/Pages와 GitLab Runner(Kubernetes executor)까지 함께 배포됩니다.
QUANTUM C&S
소스코드 버전 관리(SCM) 및 자동 빌드/테스트(CI)를 지원하는 GitLab CE를 구성합니다. 내장 PostgreSQL/Redis/MinIO/Container Registry/Pages와 GitLab Runner(Kubernetes executor)까지 함께 배포됩니다.
설정값
inventory/qks/group_vars/all/all-k8s.yaml:
qks_gitlab_enabled: true
qks_gitlab_version: 9.11.4
qks_gitlab_fqdn: "ci.{{ kube_default_domain }}"
qks_gitlab_namespace: qks-cicd
qks_gitlab_release: qks-ci
qks_gitlab_initial_group: QKS
버전을 10.0.0 이상으로 올리려면
차트 v10.0.0부터 내장 PostgreSQL/Redis/오브젝트스토리지가 제거되고, 아래 세 가지를 외부 서비스로 직접 연결해야 합니다.
- PostgreSQL:
global.psql.host,global.psql.password.secret등에 기존 Patroni 클러스터(qks-patroni) 접속 정보 지정 - Redis:
global.redis.host에 기존 Redis(qks-redis) 접속 정보 지정 - 오브젝트 스토리지:
global.appConfig.object_store에 기존 Ceph RGW(S3) 접속 정보 지정 (Milvus/기타 컴포넌트가 쓰는 것과 동일한 방식)
세 가지 연결을 모두 마친 뒤 qks_gitlab_version을 10.x 이상으로 올려 재실행합니다. 자세한 값 경로는 공식 마이그레이션 가이드(https://docs.gitlab.com/charts/installation/migration/bundled_chart_migration/)를 참고하세요.
실행
./install.sh ubuntu plays/qks-gitlab.yaml
설치 흐름
./install.sh ubuntu plays/qks-gitlab.yaml
├─ 1. 접속 도메인을 각 노드 /etc/hosts에 등록
├─ 2. Helm 저장소 등록 ('gitlab')
├─ 3. Root 계정/OIDC/커스텀 CA 인증서 Secret 생성
├─ 4. Helm으로 GitLab 배포 (webservice+gitaly+gitlab-shell+registry+pages+runner+postgresql+redis+minio)
├─ 5. 오브젝트 스토리지(MinIO) 연동 설정
└─ 6. CI/CD용 그룹(QKS, CICD) 및 API 토큰 생성
설치 확인
kubectl get pods -n <qks_gitlab_namespace>
webservice · gitaly · gitlab-shell · registry · gitlab-pages · gitlab-runner · postgresql · redis-master · minio · sidekiq · toolbox 파드가 모두 Running이어야 합니다.
실제 동작 확인
웹 접속:
curl -k -s -o /dev/null -w "%{http_code}\n" https://<qks_gitlab_fqdn>/users/sign_in
200이 나오면 정상입니다.
SCM(소스코드 버전 관리) 확인:
# 프로젝트 생성
curl -k -X POST -H "PRIVATE-TOKEN: <토큰>" \
--data 'name=test-project&initialize_with_readme=true' \
https://<qks_gitlab_fqdn>/api/v4/projects
# git clone/push
git clone https://root:<토큰>@<qks_gitlab_fqdn>/root/test-project.git
cd test-project
echo "test" > test.txt && git add . && git commit -m "test"
git push origin main
push 결과에 커밋 해시가 정상적으로 갱신되면 SCM 정상입니다.
CI(자동 빌드/테스트) 확인:
cat > .gitlab-ci.yml <<'EOF'
variables:
GIT_SSL_NO_VERIFY: "true"
test_job:
stage: test
script:
- echo CI_TEST_SUCCESS
EOF
git add .gitlab-ci.yml && git commit -m "add ci" && git push origin main
curl -k -H "PRIVATE-TOKEN: <토큰>" https://<qks_gitlab_fqdn>/api/v4/projects/<id>/pipelines
가장 최근 파이프라인의 status가 success이면 정상입니다. GitLab Runner가 Kubernetes executor로 임시 빌드 파드를 띄워 잡을 실행하고 자동으로 정리합니다.
.gitlab-ci.yml에 GIT_SSL_NO_VERIFY: "true"를 추가하면 됩니다.