📌 문제 상황
nginx에서 argocd-service로 /argocd 경로로 reverse proxy.
로그인 화면까지는 잘 보임
로그인 이후 url의 path가 /argocd/argocd/applications로 변경됨 → 화면이 안뜸 !!!
/argocd/applications 으로 path를 변경하면 대시보드 화면 잘 보임
# dododocs-nginx.conf
...
server {
listen 80;
server_name developer.dododocs.com;
location /argocd/ {
proxy_pass https://argo-cd-**********-argocd-server.myargocd.svc.cluster.local:443/argocd/;
proxy_redirect off;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto https;
proxy_set_header X-Forwarded-Prefix /argocd;
proxy_ssl_verify off;
}
...
# argocd-cd-7.7.4/my-values.yaml
## Server properties
# -- Run server without TLS
## NOTE: This value should be set when you generate params by other means as it changes ports used by ingress template.
server.insecure: false
# -- Value for base href in index.html. Used if Argo CD is running behind reverse proxy under subpath different from /
server.basehref: /argocd/
# -- Used if Argo CD is running behind reverse proxy under subpath different from /
server.rootpath: /argocd
📌 트러블 슈팅
1. Nginx 설정 문제일까?
- argocd의 values.yaml - server.basehref, server.rootpath 설정에 의해 proxy_pass 저렇게 설정하는게 맞음.
- 중복되는 url sub_filter 적용 - /argocd/argocd/applicatons 를 /argocd/applications로 → argocd 대시보드 보여주는거랑 관련 없는듯.
- k port-forward service/argo-cd-**********-argocd-server -n myargocd 8080:443 해봤을때도 동일한 문제
⇒ Nginx 설정 문제는 아님!
2. ArgoCD 설정 문제일까?
- argocd의 values.yaml - server.basehref, server.rootpath 설정을 아무리 바꿔도 안됨. → 공식문서에 의해 저 설정은 저렇게 하는게 맞는듯.
- 아래와 같은 커맨드로는 ArgoCD에 server.basehref, server.rootpath 설정 들어간거 확인
k exec -it argo-cd-**********-argocd-server-7f5694c67d-q4dmz -n myargocd -- env
# ARGOCD_SERVER_BASEHREF=/argocd/
# ARGOCD_SERVER_ROOTPATH=/argocd
helm get values argo-cd-********** -n myargocd | grep server
# server.basehref: /argocd/
# server.rootpath: /argocd
- /argocd와 /argocd/argocd/applications ,/argocd/applications 웹 대시보드 > 개발자도구 > 콘솔 확인시 <base href="/argocd/"> 인 것 확인
⇒ ArgoCD 자체 문제다 !!!!
https://github.com/argoproj/argo-cd/issues/20790
Base path KO during login phase · Issue #20790 · argoproj/argo-cd
Hi, Since 2.13.0 version, the login phase is KO because the root path is duplicated if login is correct. server: extraArgs: - --insecure - --rootpath - /argocd ingress: enabled: true ingressClassNa...
github.com
Argo CD 버전 2.13.0부터 로그인 후 리다이렉션 시 루트 경로가 중복되어 /argocd/argocd/applications와 같이 잘못된 URL로 이동하는 문제.
server.rootpath를 설정한 환경에서 발생하며, 이전 버전인 2.12.6에서는 정상적으로 동작.
이 문제는 Argo CD의 사용자 인터페이스(UI)에서 특정 수정사항이 도입되면서 발생한 것으로 추정.
해당 수정사항은 basehref가 설정된 경우 새로운 탭에서 애플리케이션 세부 정보를 열 때의 동작을 개선하기 위한 것이었으나, 부작용으로 루트 경로 중복 문제가 발생
현재 이 문제는 GitHub 이슈 트래커에 보고되어 있으며, 개발팀에서 원인 분석 및 해결 방안을 모색 중..
📌 해결 방안
- Argo CD를 이전 버전인 2.12.6으로 다운그레이드 → 성공!!!!!
helm upgrade argo-cd argo/argo-cd -n myargocd -f my-values.yaml --version 7.6.12
- server.rootpath 설정을 제거하여 기본 경로(/)를 사용
'DevOps' 카테고리의 다른 글
[ArgoCD] ArgoCD Image Updater 적용기 (0) | 2024.12.10 |
---|---|
[CI/CD] Github Actions와 ArgoCD를 활용한 CI/CD (0) | 2024.11.05 |
[Kafka] Docker로 Kafka 구축 (0) | 2024.08.19 |
[Kafka] Kafka란? (0) | 2024.08.19 |
Docker로 MariaDB 연결, 웹에서 DB 내용 띄우기 (0) | 2024.08.19 |