Operations/ArgoCD

[ArgoCD][트러블 슈팅] ArgoCD path 설정

혬수 2024. 12. 5. 18:22

 

📌 문제 상황

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 설정 문제일까?

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 설정을 제거하여 기본 경로(/)를 사용