# ArgoCD Application 네임스페이스 Watch 범위 > 작성일: 2026-07-02 | 컴포넌트: argocd-server, argocd-application-controller, argocd-applicationset-controller --- ## 1. 핵심 사실 - 기본 설치 상태에서 ArgoCD는 자신이 설치된 네임스페이스(보통 `argocd`)에 있는 `Application` 커스텀 리소스만 list/watch함. - 여러 네임스페이스(또는 전체)의 Application을 다루려면 `argocd-cmd-params-cm` ConfigMap의 `application.namespaces` 키를 명시적으로 설정해야 함. "Applications in any namespace" 기능 (v2.5+에서 지원). - `AppProject`는 이 설정과 무관하게 **항상** ArgoCD 설치 네임스페이스에만 존재 가능. AppProject에는 네임스페이스 확장 기능 자체가 없음. ## 2. 설정 확인 방법 ```bash kubectl -n argocd get configmap argocd-cmd-params-cm -o jsonpath='{.data.application\.namespaces}'; echo ``` | `data.application.namespaces` 상태 | 의미 | |---|---| | 키 없음 | 기본값 — 설치 네임스페이스만 watch | | `"argocd"` (설치 네임스페이스와 동일 값) | 명시적 지정, 결과는 기본값과 동일 | | `"*"` | 전체 네임스페이스 watch | | `"ns1,ns2"`, `"team-*"` (와일드카드 지원) | 지정된 네임스페이스(들)만 watch | > 주의: ConfigMap 자체의 `metadata.namespace: argocd`는 이 ConfigMap 리소스가 어디 위치하는지를 나타낼 뿐 watch 범위와 무관함. 반드시 `data` 블록 안의 `application.namespaces` 키를 확인해야 함 — 헷갈리기 쉬운 포인트. ## 3. 확장 시 함께 필요한 설정 `application.namespaces`에 네임스페이스를 추가해도, 각 `AppProject`의 `spec.sourceNamespaces`에 해당 네임스페이스가 명시되어 있지 않으면 그 네임스페이스의 Application이 permission 에러로 거부됨. 두 설정은 항상 세트로 관리. ## 4. 설정 반영 방법 `application.namespaces`는 컨트롤러 기동 시 읽는 정적 파라미터라 ConfigMap 수정만으로는 반영되지 않음. 변경 후 재기동 필요: ```bash kubectl -n argocd rollout restart deployment argocd-server kubectl -n argocd rollout restart statefulset argocd-application-controller kubectl -n argocd rollout restart deployment argocd-applicationset-controller # 사용 시 ``` ## 5. 관련 트러블슈팅: SyncFailed / "Too long" Application의 sync 결과가 `Too long: may not be more than 262144 bytes`로 실패하는 것은 이 네임스페이스 설정과는 무관한 별개 이슈. Kubernetes API server의 annotation 총 크기 제한(256KiB)에 걸리는 것으로, 주로 client-side apply가 `kubectl.kubernetes.io/last-applied-configuration` 어노테이션에 전체 manifest를 복사해 넣으면서 발생. CRD처럼 spec이 큰 리소스에서 흔함. 해결은 해당 Application/리소스에 `ServerSideApply=true` sync option 적용. ## 6. 참조 - 공식 문서: [Applications in any namespace — Argo CD](https://argo-cd.readthedocs.io/en/latest/operator-manual/app-any-namespace/)