회사에서 최근 쿠버네티스 환경으로 조금씩 전환하고 있었는데,
클러스터 환경 역시 자동화가 필요하다고 느껴 GitOps 라는 개념을 접하게 되었다.
이후 실제 회사 프로젝트에 적용해보려다 꽤 오래 삽질했던 에러를 기록해본다.
전체 흐름은 아래와 같다.
Jenkins Build
↓
deployment.yaml 이미지 버전 변경
↓
Git Push
↓
ArgoCD 감지
↓
Kubernetes Cluster 자동 반영
Jenkins에서 빌드가 완료되면:
deployment.yaml 내부의 컨테이너 이미지 태그를하도록 구성했다.
예를 들면:
image: my-app:123
이런 식으로 자동 업데이트되는 구조다.
그리고 이후 ArgoCD가 Git 변경 사항을 감지하여
클러스터 상태를 자동으로 동기화한다.
그런데 Jenkins Pipeline 내부에서 Git Push 시 아래와 같은 인증 에러가 계속 발생했다.

Jenkinsfile 상단에서 아래처럼 git 계정 설정도 해주었다.
sh 'git config --global user.email "jenkins@example.com"'
sh 'git config --global user.name "jenkins"'
하지만 계속 인증 에러가 발생했다.
결론적으로 문제는:
Git 사용자 정보 설정 != Git 인증 정보 저장
이었다.
즉:
git config --global user.name
git config --global user.email
은 단순히 commit 작성자 정보일 뿐,
실제 Git Push 인증과는 관련이 없었다.
정말 긴 삽질 끝에 Jenkins 계정으로 직접 접속하여 테스트를 진행했고,
수동으로 git push 가 되지 않는 것을 확인했다.
이후 아래 명령어로 credential helper를 설정했다.
git config credential.helper store --global
그 후 Jenkins 계정 상태에서 직접 git push 를 실행하니:
Username:
Password:
입력을 요구했고,
Git 계정 정보를 입력한 뒤부터 정상적으로 Push가 동작했다.
이번 이슈를 통해 알게 된 점:
user.name, user.email 은 작성자 정보git config credential.helper store --global