본문으로 건너뛰기

GitLab 부트스트랩 롤백

이 페이지는 2026년 4월 10일 자체 호스팅 GitLab 실험에 대한 사고 회고입니다. Lumie의 남아 있는 Git 호스팅 경로는 인프라 GitOps Gitea 참조 페이지에 문서화되어 있습니다.

추가된 내용

6136a0c2는 두 가지 Argo CD 애플리케이션을 도입했습니다.

  • GitLab 차트의 동기화 웨이브 3에서 bootstrap/gitlab/argocd.yaml.
  • 러너 차트의 동기화 웨이브 4에서 applications/gitlab-runner/argocd.yaml.

스택은 번들 하위 차트 대신 공유 플랫폼 서비스를 재사용했습니다.

  • storage/infra-db/manifests/cluster.yaml의 PostgreSQL
  • lumie-cache의 Redis Sentinel
  • GitLab 및 러너 캐시를 위한 MinIO 지원 객체 스토리지
  • 7개의 GitLab VaultStaticSecret 객체와 1개의 러너 토큰 VaultStaticSecret
  • Zot가 아닌 업스트림 이미지를 시작할 수 있도록 Kyverno 네임스페이스 제외

롤백된 이유

같은 날 부트스트랩은 세 가지 종류의 실패를 노출했습니다.

  • 제로데이 차트 가정이 잘못되었습니다. 74352715upgradeCheck를 비활성화해야 했고, 7426094e는 인증되지 않은 lumie-cache에 대해 Redis 인증을 비활성화해야 했으며, 8590841c는 HPA를 렌더링하는 대신 차트를 KEDA 지원 스케일링으로 전환해야 했습니다.
  • 메모리 튜닝이 불안정했습니다. 9e7a17d6는 단독 사용에 대한 몇 가지 제한을 줄였지만 a85d67af는 실제 기준이 높게 유지된 후 웹 서비스와 Sidekiq 메모리를 복원해야 했습니다.
  • 차트 값이 잘못된 경로에 배치되기 쉬웠습니다. 2c1c0926는 차트에서 gitlab.webservice.extraEnv가 무시되었으며 Sidekiq 튜닝이 gitlab.sidekiq.pods[0] 아래로 이동해야 함을 보여주었습니다. f2d114ad는 중첩된 지도가 병합되지 않고 교체되었기 때문에 memoryKiller 기본값을 다시 지정해야 했습니다.

중요한 운영 교훈은 Helm 값 편집이 바이트 동일한 매니페스트를 렌더링하는 경우에도 Argo CD가 깔끔하게 조정될 수 있다는 것입니다. 이 스택의 경우 렌더링된 출력을 동기화 상태와 함께 확인해야 했습니다.

롤백 경계

1e18f276는 눈에 보이는 애플리케이션보다 더 많은 것을 제거했습니다.

표면롤백 조치
bootstrap/gitlab/**GitLab Argo CD 앱, 값 및 Vault 매니페스트 소스 삭제
applications/gitlab-runner/**실행기 앱, 값 및 토큰 비밀 소스 삭제
bootstrap/kustomization.yamlapplications/kustomization.yaml라이브 GitOps 그래프에서 두 앱 등록을 모두 제거했습니다.
storage/infra-db/manifests/cluster.yaml부트스트랩 시간 gitlab 사용자 및 gitlabhq_production 데이터베이스 생성 제거
security/kyverno/manifests/policies/require-zot-registry.yamlgitlab 네임스페이스 면제를 제거했습니다.

커밋 메시지에는 중요한 제한 사항도 명시되어 있습니다. postInitSQL를 제거해도 이전 부트스트랩에서 이미 생성된 데이터베이스 개체는 삭제되지 않습니다. 저장소는 향후 부트스트랩이 더 이상 GitLab 개체를 생성하지 않음을 증명합니다. 이는 기록 데이터베이스 정리가 발생했음을 증명하지 않습니다.

현재 저장소 상태

현재 저장소에는 더 이상 bootstrap/gitlab/** 또는 applications/gitlab-runner/**가 포함되어 있지 않으며, bootstrap/kustomization.yaml는 이제 gitlab 대신 gitea를 등록하고, 현재 storage/infra-db/manifests/cluster.yamlgitea 부트스트랩 SQL을 유지하지만 GitLab 항목은 유지하지 않습니다.

확인

cd lumie-infra
find bootstrap applications -path '*gitlab*' -print
rg -n "gitlab|gitlabhq_production" \
bootstrap/kustomization.yaml \
applications/kustomization.yaml \
storage/infra-db/manifests/cluster.yaml \
security/kyverno/manifests/policies/require-zot-registry.yaml

성공은 파일 검색이 GitLab 앱 경로를 반환하지 않으며 대상 저장소 검색이 현재 매니페스트에서 남아 있는 GitLab 등록, 부트스트랩 SQL 또는 Kyverno 면제를 찾지 못했음을 의미합니다.