Git 설정
Git 설정 (Git Configuration)
Argo CD가 내부적으로 사용하는 Git의 시스템·전역·내장 설정이 어떻게 동작하는지 알아봐요. 이 설정들을 이해하면 리포지토리 동기화 과정에서 발생하는 Git 동작을 예측하고 튜닝할 수 있답니다.
출처: 문서
본문
시스템 설정 (System Configuration)
Argo CD는 베이스 이미지(Ubuntu)에 포함된 Git 설치본을 사용해요. 여기에는 /etc/gitconfig에 위치한 표준 시스템 설정 파일이 포함되어 있어요. 이 파일은 Git LFS 기능에 필요한 필터 정도만 정의한 아주 최소한의 내용이에요.
Git의 시스템 설정은 ConfigMap에서 파일을 마운트하거나 커스텀 Argo CD 이미지를 만들어 커스터마이즈할 수 있어요.
전역 설정 (Global Configuration)
Argo CD는 HOME 환경 변수를 /dev/null로 설정한 채 Git을 실행해요. 그 결과 전역 Git 설정(global configuration)은 지원되지 않아요.
내장 설정 (Built-in Configuration)
argocd-repo-server는 Argo CD가 제대로 동작하도록 Git 환경에 특정 설정 파라미터를 추가해요. 이런 내장 설정은 시스템 Git 설정에서 충돌하는 값을 덮어써요.
현재 다음과 같은 내장 설정 옵션이 적용돼 있어요:
maintenance.autoDetach=falsegc.autoDetach=false
이 설정은 Git의 리포지토리 유지보수 작업이 포그라운드에서 실행되도록 강제해요. 이렇게 하면 Git이 분리된(backgound) 프로세스를 띄워서 리포지토리를 변경하고, 이후 argocd-repo-server가 호출하는 Git 동작을 방해하는 것을 막아줘요.
이 내장 설정은 argocd-cmd-params-cm의 reposerver.enable.builtin.git.config 값을 "false"로 설정하면 비활성화할 수 있어요. 백그라운드 처리를 실험해보거나, 환경에서 동시성 문제가 발생하지 않을 것이라고 확신할 때 사용할 수 있어요.
[!NOTE] 비활성화는 권장되지 않으며 지원되지 않아요!