[ArgoCD] ignoreDifferences를 통한 덮어쓰기 방지
ArgoCD로 형상관리를 하다보면 곤란한 경우가 좀 생길 수 있다.
항상 상태를 기반으로 덮어쓰기를 하다보니, 다른 제어 지점이 생기면 충돌이 발생하는 것이다.
예를 들어, HorizontalPodAutoscaler 같은걸로 오토스케일링을 구성할 경우에도 삑사리가 난다.
이걸 막는 가장 간단한 방법은, 변경사항을 특정 패턴만 무시하도록 하는 것이다.
ignoreDifferences를 적절히 설정하면 이를 달성할 수 있다.
이렇게 하면 replicas에 대한 변경만 무시하게 할 수 있다.
이걸 적용하는 가장 간단한 방법은 이런 식으로 patch를 날리는 것이다.
kubectl patch application <app-name> -n argocd --type=merge -p '{
"spec": {
"ignoreDifferences": [
{
"group": "apps",
"kind": "Deployment",
"jsonPointers": ["/spec/replicas"]
}
]
}
}'
그렇다.
참조
https://argo-cd.readthedocs.io/en/stable/user-guide/diffing/