애플리케이션 재조정 건너뛰기
애플리케이션 재조정 건너뛰기 (Skip Application Reconcile)
Argo CD에서 특정 애플리케이션의 재조정(reconcile)을 중단하고 싶을 때가 있어요. 이 문서는 skip-reconcile 어노테이션을 활용해 애플리케이션의 처리를 일시 중지하는 방법을 설명합니다. 주로 서드파티 프로젝트와의 통합을 위해 설계된 실험적인 알파 기능입니다.
출처: 문서
본문
Warning
알파 기능 (v2.7.0부터)
이 기능은 실험적인 알파 품질 기능입니다. 주된 사용 사례는 서드파티 프로젝트와의 통합을 제공하는 것입니다. 이 기능은 향후 릴리스에서 제거되거나 하위 호환되지 않는 방식으로 수정될 수 있습니다.
Argo CD는 애플리케이션이 재조정되는 것을 중단하도록 허용합니다. skip reconcile 옵션은 argocd.argoproj.io/skip-reconcile: "true" 어노테이션으로 구성합니다. 애플리케이션이 skip reconcile로 구성되면 해당 애플리케이션에 대한 모든 처리가 중단됩니다. 애플리케이션이 처리되지 않는 동안에는 애플리케이션의 status 필드가 갱신되지 않습니다. skip reconcile 어노테이션과 함께 새로 생성된 애플리케이션에는 status 필드가 존재하지 않습니다. 애플리케이션의 재조정·처리를 재개하려면 어노테이션을 제거하거나 값을 "false"로 설정하세요.
애플리케이션의 skip reconcile을 활성화하는 예제는 다음과 같습니다:
metadata:
annotations:
argocd.argoproj.io/skip-reconcile: "true"
skip reconcile을 활성화한 채 새로 생성된 애플리케이션의 예제는 다음과 같습니다:
apiVersion: argoproj.io/v1alpha1
kind: Application
metadata:
annotations:
argocd.argoproj.io/skip-reconcile: "true"
name: guestbook
namespace: argocd
spec:
destination:
namespace: guestbook
server: https://kubernetes.default.svc
project: default
source:
path: guestbook
repoURL: https://github.com/argoproj/argocd-example-apps.git
targetRevision: HEAD
status 필드는 존재하지 않습니다.
주 사용 사례 (Primary Use Case)
skip reconcile 옵션은 애플리케이션 controller가 변경 사항을 덮어쓰지 않도록 하면서 애플리케이션 status를 갱신하려는 서드파티 프로젝트와 함께 쓰기 위한 것입니다. 이러한 사용 예로는 Open Cluster Management (OCM) 프로젝트가 pull-integration controller와 함께 사용하는 경우가 있습니다. 이 예에서 허브(hub) 클러스터 애플리케이션은 Argo CD 애플리케이션 controller에 의해 재조정되는 것을 의도하지 않습니다. 대신 OCM pull-integration controller가 원격/spoke/관리 클러스터에서 수집한 애플리케이션 status를 사용해 기본/허브 클러스터 애플리케이션 status를 채웁니다.
대체 사용 사례 (Alternative Use Cases)
이 skip reconcile 옵션에는 다른 대체 사용 사례도 있습니다. 이것이 실험적이고 알파 품질의 기능이며 아래 사용 사례는 일반적으로 권장되지 않는다는 점을 유의하세요.
- 애플리케이션 재조정을 건너뛸 때 디버깅이 쉬워집니다.
- 애플리케이션을 삭제하지 않고 고아(orphan) 리소스를 남겨두면 애플리케이션 마이그레이션의 더 안전한 방법이 될 수 있습니다.
- ApplicationSet은 자동으로 재조정되지 않는 dry-run 형태의 애플리케이션을 생성할 수 있습니다.
- 재해 복구 프로세스 중 애플리케이션 재조정을 일시 중지·재개할 수 있습니다.
- 애플리케이션이 즉시 재조정을 시작하지 못하게 하여 또 다른 승인 흐름을 제공할 수 있습니다.