ArgoCD를 설정하다 보니 repository 에 접근을 못한다.
이유는 Enterprise, private 인 repository 의 경우 Argo CD가 별도의 인증 절차 없이 접근할 수 없기 때문이다.
따라서 다음의 일련의 방법을 수행하면 private repo 를 등록할 수 있다.
ArgoCD 특정하기
보통 dev, stg, prd 와 같이 environment 를 나눠두는데 어떤 cluster 의 어떤 ArgoCD에 다음의 작업을 수행할지 특정해야 한다.
특정 대상의 argocd 를 찾아보자
kubectl get svc argocd-server -n argocd
YAML
복사
k get svc argocd-server -n argocd
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
argocd-server LoadBalancer 172.20.5.112 ${EXTERNAL_IP} 80:31634/TCP,443:31000/TCP 87m
YAML
복사
이 결과에서 반환된 ${EXTERNAL_IP} 가 해당 cluster 의 Argo CD가 된다.
혹은 jq 를 설치해 두었다면 다음과 같이 살펴볼 수 있다.
kubectl get svc argocd-server -n argocd -o json | jq --raw-output .status.loadBalancer
YAML
복사
{
"ingress": [
{
"hostname": "$EXTERNAL_IP"
}
]
}
JSON
복사
로그인하기
ArgoCD에 따로 user를 생성하지 않았다면 default 로 생성되는 username 은 admin 이다.
Password 는 어디에 있을까?
이건 k8s 의 secret 을 이용한다.
kubectl -n argocd get secret argocd-initial-admin-secret -o jsonpath="{.data.password}" | base64 -d
JSON
복사
그러면 다음과 같이 password 를 반환하는데 이것을 이용하면 로그인이 가능하다.
ZGB*****B3TOMfU
JSON
복사
ArgoCD 에 로그인해보자.
argocd --insecure login ${EXTERNAL_IP}
JSON
복사
이와 같이 입력하면 interactive 로 username, password 를 입력하라고 한다.
로그인을 성공했다.
그러면 다음과 같은 명령어를 입력하자.
argocd repo add git@github.com:조직/레포이름.git --ssh-private-key-path ~/.ssh/id_rsa
YAML
복사
이 레포 이름을 간단하게 따오는 것은 github 에서 클릭으로 복사해 올 수 있다.
Code → SSH, Copy
그럼 Repository 가 성공적으로 added 되었다는 메세지가 반환된다.
이를 확인하기 위해서 ArgoCD로 돌아가보면
의도한 Repository 가 등록되어 있다.
이것을 Create Application 메뉴에서 알맞은 설정으로 추가하면 다음과 같이 ArgoCD 화면이 구성된다.
완성!