웹 UI에서 ApplicationSet 관리
웹 UI에서 ApplicationSet 관리 (Managing ApplicationSets in the Web UI)
Argo CD 웹 UI에는 ApplicationSet을 위한 뷰가 포함되어 있습니다. 목록 페이지, 리소스 트리, 슬라이드아웃 세부 패널, 그리고 ApplicationSet이 생성할 Application을 미리 볼 수 있는 프리뷰 탭이 있습니다.
경고: 알파 기능 (v3.5.0부터) — 이것은 알파 기능입니다. 동작, 외형, 그리고 소비하는 API는 향후 릴리스에서 바뀌거나 하위 호환되지 않는 방식으로 제거될 수 있습니다.
출처: 문서
본문
웹 UI에서 ApplicationSet 관리
Argo CD 웹 UI에는 ApplicationSet을 위한 뷰가 포함되어 있습니다. 목록 페이지, 리소스 트리, 슬라이드아웃 세부 패널, 그리고 ApplicationSet이 생성할 Application을 미리 볼 수 있는 프리뷰 탭이 있습니다.
ApplicationSet은 UI 밖에서도 관리할 수 있습니다:
- CLI —
kubectl또는argocd appset명령 - 생성된 하위 Application(UI에서 개별적으로 확인)
- 부모 App-of-Apps(ApplicationSet이 관리되는 리소스 중 하나였다면)
ApplicationSet 목록 페이지
/applicationsets 페이지가 진입점입니다. 기존 Applications 목록 옆에 있으며 동일한 필터링, 검색, 보기 기본 설정을 공유하므로 익숙하게 느껴질 것입니다.
최상위 탐색에서 또는 https://<your-argocd>/applicationsets로 직접 접근할 수 있습니다.
페이지에 있는 것:
- 검색 바 — 이름과 네임스페이스에 대한 부분 문자열 매칭. 키보드 단축키
/로 포커스합니다. - 필터 사이드바 — 프로젝트, 네임스페이스, 라벨, ApplicationSet 헬스 상태(
Healthy,Progressing,Degraded,Unknown)로 필터링. 필터는 URL에 반영되어 공유하거나 북마크할 수 있습니다. - 헬스 요약 — 상단의 원형 차트가 현재 필터와 일치하는 ApplicationSet의 헬스를 요약합니다.
- 타일/테이블 뷰 — 타일 그리드와 테이블 뷰 사이를 전환. 테이블 뷰는 이름, 네임스페이스, 프로젝트, 헬스, 조건, 생성된 Application 수를 보여줍니다.
팁: 페이지는 사용자가 접근할 수 있는 모든 네임스페이스의 ApplicationSet을 보여줍니다. RBAC는 CLI와 정확히 동일하게 적용됩니다 —
argocd appset get으로 ApplicationSet을 얻을 수 있다면 여기서도 볼 수 있습니다.
ApplicationSet 리소스 트리
목록에서 ApplicationSet을 선택하면 세부 정보 페이지가 열립니다. 페이지 중앙에는 ApplicationSet과 그것이 생성하는 하위 Application을 시각화하는 리소스 트리가 있습니다.
알아야 할 사항:
- 루트 노드는 ApplicationSet 자체입니다. 각 하위 노드는 ApplicationSet이 생성한 하위 Application입니다.
- 헬스 및 동기화 상태 아이콘은 Application 리소스 트리와 같은 방식으로 각 노드에 렌더링됩니다.
- 하위 Application을 클릭하면 해당 Application의 자체 세부 정보 페이지로 이동합니다.
상태 표시줄: 헬스, 조건, 수명
ApplicationSet 세부 정보 페이지 상단에는 ApplicationSet을 한눈에 요약하는 상태 표시줄이 있습니다: 헬스, 심각도별 조건 수, 마지막 업데이트.
헬스는 ApplicationSet 컨트롤러가 ApplicationSet의 status.conditions에서 파생하고 리소스의 status.health 필드를 통해 표면화합니다. 컨트롤러 측 파생 규칙과 필드가 채워지는 방법은 ApplicationSet Web UI를 참조하세요.
조건(Conditions)
조건 모달은 각 조건의 유형, 상태, 컨트롤러가 보고한 메시지, 마지막으로 보고된 시점을 보여줍니다. ApplicationSet이 Degraded 또는 Unknown으로 표시될 때 보통 가장 먼저 확인하는 곳입니다.
슬라이드아웃 패널: 요약, 매니페스트, 이벤트, 프리뷰
ApplicationSet 노드(또는 트리의 아무 노드)를 클릭하면 화면 오른쪽 가장자리에서 슬라이드아웃 패널이 열립니다 — Argo CD의 다른 곳에서 리소스 세부 정보에 사용하는 것과 동일한 패턴입니다.
요약(Summary)
메타데이터를 한눈에 보여줍니다: 이름, 네임스페이스, 생성 타임스탬프, 헬스, 조건, 라벨, 어노테이션, 동기화 정책.
ApplicationSet에 조건이 있으면 CONDITIONS 행이 상세 조건 뷰로 연결되어 컨트롤러가 발생시킨 경고나 오류(예: 평가에 실패한 생성기)를 볼 수 있습니다.
매니페스트(Manifest)
ApplicationSet의 spec에 대한 읽기 전용 YAML 뷰입니다.
이벤트(Events)
ApplicationSet에 대한 Kubernetes 이벤트 — 특정 생성기 파라미터 세트가 Application을 생성했거나 생성하지 못한 이유를 조사할 때 유용합니다.
프리뷰(Preview)
프리뷰 탭은 ApplicationSet이 생성할 Application을 렌더링하고 라이브 상태와의 차이(diff)를 보여줍니다. 다음 섹션에서 자세히 다룹니다.
프리뷰: ApplicationSet이 생성할 내용 보기
PREVIEW 탭은 ApplicationSet이 현재 스펙에서 생성할 Application을 보여줍니다. 스펙을 편집하면 제안된 출력과 라이브 상태 사이의 diff가 렌더링됩니다.
결과는 세 개의 하위 탭으로 렌더링됩니다:
| 탭 | 표시 |
|---|---|
| DIFF | 기본 탭. 변경될 각 Application의 통합 diff. |
| LIVE APPS | ApplicationSet이 클러스터에서 생성한 Applications. |
| DESIRED APPS | 제안된 스펙이 적용된 경우 생성될 Applications. |
DIFF의 각 항목은 하나의 하위 Application을 나타내며 추가됨(only in DESIRED APPS), 제거됨(only in LIVE APPS), 수정됨(둘 다 존재하며 필드 수준 차이가 있음)으로 분류됩니다.
스펙 편집
ApplicationSet 매니페스트 카드에서 Edit을 클릭해 YAML을 편집 가능하게 만드세요. Preview를 다시 누르면 편집 내용에 대해 diff가 다시 생성됩니다. Cancel을 클릭하면 로컬 편집이 버려집니다.
중요: Preview 탭의 편집은 절대 저장되지 않습니다. 이 탭은 샌드박스입니다. 변경을 영속화하려면 일반 GitOps 흐름(또는
kubectl apply/argocd appset create)을 통해 ApplicationSet을 업데이트해야 합니다.
권한 거부 동작
프리뷰 생성에는 대상 프로젝트에서 ApplicationSet을 생성할 권한이 필요합니다. 권한이 없다면 Preview 탭은 diff 대신 명확한 권한 거부 메시지를 반환합니다. 정확한 RBAC 요구 사항은 ApplicationSet Web UI: RBAC for Preview를 참조하세요.
ApplicationSet이 생성한 Application에 대한 변경
ApplicationSet이 생성한 Application(즉, ApplicationSet ownerReference가 있는)의 경우, Application UI는 리소스 트리에서 부모 ApplicationSet을 두 가지 방식으로 표면화합니다.
소유자 배지(Owner badge)
Application 노드에 부모 ApplicationSet 이름이 표시된 작은 배지가 나타납니다. 클릭하면 ApplicationSet 세부 정보 페이지로 바로 이동합니다.
부모 ApplicationSet 표시/숨기기
Application의 뷰 기본 설정에서 Show parent ApplicationSet 토글은 부모 ApplicationSet을 리소스 트리에 합성 루트 노드로 추가하고 Application으로의 엣지가 있습니다. 이는 ApplicationSet과 그것이 생성한 Application 둘 다를 포함하는 단일 뷰를 원할 때 유용합니다.
토글이 켜져 있으면 배지는 숨겨집니다(부모가 이미 명시적으로 렌더링되므로).
app-of-appset 패턴의 Application별 프리뷰
app-of-ApplicationSets 패턴(resources에 ApplicationSet이 포함된 Application)을 사용할 때, 부모 Application 트리의 ApplicationSet 노드에는 슬라이드아웃 패널에 프리뷰 기능이 포함됩니다. 선택하면 위에서 설명한 것과 유사한 프리뷰 경험을 가진 패널이 열리며, 부모 Application을 동기화할 때 적용될 변경에 국한됩니다.
독립형 Preview 탭과의 중요한 차이점 두 가지:
- 원하는 상태는 편집기가 아닌 Git에서 옵니다. 제안된 ApplicationSet은 부모 Application이 추적하는 대상 매니페스트(즉, Git에 있는 것)입니다. 이 패널에는 YAML 편집기가 없습니다.
- ApplicationSet이 OutOfSync일 때만 사용 가능합니다. 부모 Application의 ApplicationSet 리소스가 이미 동기화되어 있으면 보여줄 diff가 없습니다 — 패널은 짧은 상태 메시지를 렌더링합니다.
이것은 "부모 Application에 보류 중인 동기화가 있다"와 "그 결과 어떤 하위 Application이 바뀔지 보여줘" 사이의 다리입니다.
알려진 제한 사항
- Preview 탭은 전체 Application 매니페스트를 비교합니다. 각 하위 Application 안의 Kubernetes 리소스로 재귀하지 않습니다 — 그러려면 하위 Application을 동기화하고 기존 Application diff 뷰를 사용하세요.
- 외부 시스템(Git, SCM Provider, Pull Request, Cluster)에 의존하는 생성기는 Preview를 클릭할 때마다 다시 평가됩니다. 업스트림 시스템이 느리거나 불안정하면 프리뷰도 그렇게 반영됩니다.
- UI는 ApplicationSet RBAC를 존중합니다. 대상 프로젝트에서 ApplicationSet을
create할 수 없는 사용자는get은 할 수 있어도 프리뷰를 렌더링할 수 없습니다.