본문으로 건너뛰기

Gitea

목적

Gitea는 개발자 push와 Tekton webhook 수신을 위한 Lumie의 내부 Git 호스팅 서비스입니다. 현재 플랫폼에서 유일한 Git 소스는 아닙니다. Argo CD 루트 Application은 여전히 lumie-infra에 대해 GitHub를 참조하므로, Gitea는 전체 GitOps 루프를 단독으로 소유하기보다는 전달 경로의 build 측면에 위치합니다.

이 페이지는 저장소 호스팅, Git 자격 증명, Tekton의 소스 제어 통합을 변경하는 개발자를 위한 reference 문서입니다.

소스 경로

경로역할
lumie-infra/bootstrap/gitea/argocd.yamlArgo CD 애플리케이션과 sync-wave 배치
lumie-infra/bootstrap/gitea/common-values.yamlVault 기반 admin 및 데이터베이스 Secret projection
lumie-infra/bootstrap/gitea/helm-values.yamlGitea 차트 설정, DB 구성, reverse-proxy auth, 스토리지, 테마 마운트
lumie-infra/bootstrap/gitea/themes/kustomization.yaml커스텀 GitHub 스타일 테마 ConfigMap 패키징
lumie-infra/applications/tekton/ci-cd/manifests/secrets/gitea-credentials.yamlTekton의 Gitea 자격 증명 Secret
lumie-infra/applications/tekton/ci-cd/manifests/triggers/triggerbinding.yaml인클러스터 Gitea clone URL 계약

퍼블릭 표면

표면계약
외부 URLgitea.config.server.ROOT_URLhttps://github.lumie-infra.com/
인클러스터 Service포트 3000gitea-http
인증 경로Teleport의 reverse-proxy 헤더, SSH는 비활성화
admin bootstrapVault 경로 secret/infrastructure/gitea에서 투영된 gitea-admin Secret
데이터베이스PostgreSQL infra-db-rw.infra-db.svc.cluster.local:5432, 데이터베이스 gitea, 사용자 gitea

이 서비스는 PVC가 local-path-retain을 사용하므로 단일 replica이며 control-plane 노드에 고정됩니다.

런타임 흐름

구성 메모

이 발췌는 활성 스토리지 및 데이터베이스 계약을 보여줍니다.

gitea:
config:
database:
DB_TYPE: postgres
HOST: infra-db-rw.infra-db.svc.cluster.local:5432
NAME: gitea
USER: gitea

bootstrap/gitea/helm-values.yaml의 다른 중요한 런타임 선택은 다음과 같습니다.

  • DISABLE_SSH: true이므로 Git 트래픽은 HTTPS 전용입니다.
  • ENABLE_REVERSE_PROXY_AUTHENTICATION: "true"는 Teleport가 주입한 identity 헤더를 신뢰합니다.
  • serviceMonitor.enabled: true로 메트릭을 노출합니다.
  • mirror.ENABLED: true로 저장소 미러링이 가능하지만, 실제 미러 관계는 검사한 매니페스트에 선언되어 있지 않습니다.
  • bootstrap/gitea/themes의 ConfigMap에서 커스텀 github 테마를 마운트합니다.

장애 및 드리프트 동작

검사한 소스는 백엔드 데이터베이스에 대해 서로 다르게 말합니다.

소스주장
bootstrap/gitea/helm-values.yaml 상단 주석 블록Gitea가 SQLite 백엔드의 단일 replica라고 설명
실제 gitea.config.databasegitea-db-vss 구성Vault가 투영한 비밀번호를 사용하는 infra-db의 PostgreSQL 사용

활성 계약은 PostgreSQL입니다. SQLite 주석은 오래되었습니다.

Git 호스트 소유권 분리도 존재합니다.

소스주장
Argo CD 루트 Application여전히 GitHub에서 lumie-infra를 pull
Tekton trigger binding과 values-update task인클러스터 Gitea를 통해 clone 및 push

이 경로들이 정렬되기 전까지는 Gitea를 유일한 GitOps 소스로 설명하지 마세요.

검증

cd lumie-infra
rg -n "ROOT_URL|DISABLE_SSH|REVERSE_PROXY|DB_TYPE|gitea-http" \
bootstrap/gitea applications/tekton/ci-cd
kubectl get application gitea -n argocd -o yaml
kubectl get secret gitea-admin gitea-db-secret -n gitea
kubectl get svc -n gitea