Diffing Customization — 상태 비교를 내 입맛대로 조정하기
Diffing Customization — 상태 비교를 내 입맛대로 조정하기
Argo CD는 Git에 있는 매니페스트와 클러스터의 실제 상태를 비교해서 "동기화됨/어긋남"을 판단해요. 그런데 쿠버네티스가 자동으로 채우는 필드 때문에 원하지 않는 차이가 계속 감지되기도 하죠. Diffing 커스터마이징을 쓰면 이렇게 알려진 차이를 무시하도록 설정해서, 실제로 의미 있는 차이만 남길 수 있어요.
출처: https://argo-cd.readthedocs.io/en/stable/user-guide/diffing/
본문
잘 알려진 문제가 있는 리소스의 비교는 시스템 수준에서 커스터마이징할 수 있어요. argocd-cm ConfigMap의 resource.customizations 키에 특정 group과 kind에 대해 무시할 차이를 설정하면 돼요.
CRD 안에 나타나는 알려진 쿠버네티스 타입(리소스 limits, volume mounts 등)을 처리하는 argocd-cm 예시를 볼게요.
apiVersion: v1
kind: ConfigMap
metadata:
name: argocd-cm
namespace: argocd
labels:
app.kubernetes.io/name: argocd-cm
app.kubernetes.io/part-of: argocd
data:
...
복잡한 JQPathExpression이 평가에 오래 걸려서 "JQ patch execution timed out" 오류가 나는 경우가 있어요. 그럴 때는 argocd-cmd-params-cm에서 ignore.normalizer.jq.timeout 설정을 조정해서 평가 시간을 늘려줄 수 있어요.
더 알아보기
- Sync Options — 싱크 동작을 세밀하게 조정하는 옵션들
- Application 정의 — Application 스펙을 직접 나열해서 이해하기
- 파라미터 오버라이드 — Git을 건드리지 않고 값을 덮어쓰기