Files
service-catalog/manifests/helm/argo-cd/10.4.0/custom-values.yaml
T
wbsong111 7957c6a9eb argo-cd: 쓰이지 않는 dex 를 끄고 차단 CVE 57 건 제거
CVE 게이트 실측에서 ghcr.io/dexidp/dex:v2.45.1 이 혼자 차단 57 건을 만들고 있었다.
argo-cd 10.4.0 전체 98 건의 58% 다. 그런데 이 dex 는 인증 경로에 전혀 관여하지
않는 상태였다.

  차트 기본값        dex.enabled = true
  운영 argocd-cm     oidc.config 있음(Keycloak 직접) / dex.config 없음
  dipup tpl          항상 configs.cm.oidc.config — dex 참조 0건

ArgoCD 는 oidc.config 가 있으면 dex 를 우회하고 dex.config 를 쓸 때만 dex 가
관여한다. 즉 쓰이지도 않는 파드가 떠서 차단 CVE 의 절반 이상을 만들고 있었다.

대응 레버를 순서대로 검토한 결과 이 방법이 먼저였다.

  태그 교체     소진 — dex v2.45.1(2026-03-03) · argocd v3.5.1(2026-08-12) 모두 최신.
                번들 도구도 git-lfs 3.7.1 · kustomize 5.8.1 로 이미 최신이고,
                낡은 Go 는 각 업스트림 프로젝트의 선택이라 버전으로 해결되지 않는다.
  베이스 OS     무의미 — 차단 98 건 중 9 건(9%)만 OS 패키지다. 89 건이 Go 모듈이라
                바이너리에 컴파일돼 들어가 있어 베이스를 바꿔도 남는다.
  미사용 제거   ← 이것. 한 줄로 57 건(58%).
  자체 빌드     남은 41 건 대상. 별건으로 검토한다.

검증:
  게이트 재실행   차단 337 → 280 건 (10.4.0 몫 98 → 41)
  배포 테스트     PASS — 워크로드 7종 → 6종, dex-server 사라짐, /api/version v3.5.1

dex 기반 SSO 로 전환하려면 dex.enabled 를 true 로 되돌리고 configs.cm.dex.config 를
채운다. 그때 dex 이미지의 CVE 가 다시 잡히므로 대응 계획이 함께 필요하다 —
CUSTOM-README 에 근거와 함께 적어뒀다.

7.8.11(구버전)의 dex 는 건드리지 않았다. released 된 버전이라 동결한다.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-08-19 12:51:58 +09:00

66 lines
2.8 KiB
YAML

# PaaSup 배포 기준 오버라이드.
#
# 실제 배포 값 주입은 dipup 의 pkg/assets/helm/values/argo-cd-values.yaml.tpl 이 담당한다.
# 이 파일은 "PaaSup 이 실제로 어떤 key 를 쓰는가"의 기준이며(Breaking Change 판정 근거),
# 도메인·시크릿 같은 환경별 값은 placeholder 로 둔다. 비밀값을 커밋하지 않는다.
configs:
params:
# ArgoCD v3.0 부터 리소스 health 를 Application CR 에 저장하지 않는다(기본 false).
# dip-console-api 의 analyzeApplicationIssues 가 .status.resources[].health 를 읽으므로
# 켜두지 않으면 카탈로그 오류 상세에서 리소스 이슈가 비어 나온다.
controller.resource.health.persist: "true"
cm:
create: true
url: https://argocd.example.org
# Keycloak OIDC 연동.
# issuer/clientSecret/rootCA 는 환경별 값이라 배포 시 주입한다 — dipup 의
# argo-cd-values.yaml.tpl 이 리터럴로 채운다. 아래 `$oidc.keycloak.clientSecret` 은
# argocd-secret 의 동명 key 를 참조하는 ArgoCD 표기로, 값을 파일에 남기지 않으려면
# 이 형태를 쓴다.
oidc.config: |
name: Keycloak
issuer: https://keycloak.example.org/realms/paasup
clientID: argocd
clientSecret: $oidc.keycloak.clientSecret
requestedScopes: ["openid", "profile", "email", "groups"]
# 사설 CA 를 쓰는 Keycloak 이면 rootCA 를 함께 넣는다.
# rootCA: |
# -----BEGIN CERTIFICATE-----
rbac:
create: true
policy.csv: |
g, paasup, role:admin
dex:
# PaaSup 은 configs.cm.oidc.config 로 Keycloak 에 직접 연결하므로 dex 를 거치지 않는다.
# ArgoCD 는 oidc.config 가 있으면 dex 를 우회하고, dex.config 를 쓸 때만 dex 가 관여한다.
# 차트 기본값이 true 라 그동안 쓰이지도 않는 dex 파드가 떠 있었고, CVE 게이트에서
# 차단 57 건(argo-cd 10.4.0 전체 98 건의 58%)을 혼자 만들고 있었다.
# dex 기반 SSO 로 전환하려면 이 값을 true 로 되돌리고 configs.cm.dex.config 를 채운다.
enabled: false
server:
# apisix 가 TLS 를 종료하고 백엔드로 평문을 보내므로 서버는 평문으로 띄운다.
# 지정하지 않으면 리다이렉트 루프가 발생한다.
extraArgs:
- --insecure
ingress:
enabled: true
annotations:
# apisix ingress controller — https 리다이렉트 플러그인
k8s.apisix.apache.org/plugin-config-name: https-redirect
# cert-manager 설정
cert-manager.io/cluster-issuer: "selfsigned-issuer"
cert-manager.io/duration: 8760h
cert-manager.io/renew-before: 720h
hostname: argocd.example.org
ingressClassName: "apisix"
extraTls:
- hosts:
- argocd.example.org
secretName: argocd-tls