-
Notifications
You must be signed in to change notification settings - Fork 6.6k
Open
Labels
bugSomething isn't workingSomething isn't workingtriage/pendingThis issue needs further triage to be correctly classifiedThis issue needs further triage to be correctly classified
Description
Describe the bug
Argo CD’s server-side diff does not detect changes to the spec of a custom resource (KServe InferenceService).
A manual sync correctly applies the updates.
If I switch to client-side diff using the annotation argocd.argoproj.io/compare-options: ServerSideDiff=false, Argo CD detects the changes and applies them as expected.
To Reproduce
- Apply a custom resource like the following:
apiVersion: serving.kserve.io/v1beta1
kind: InferenceService
metadata:
name: lla-test
spec:
predictor:
maxReplicas: 4
minReplicas: 1
model:
env:
- name: MODEL_VERSION
value: "14"
modelFormat:
name: mlflow
protocolVersion: v2- Commit a change to any field in spec (for example, change
predictor.maxReplicasfrom 4 to 2). - With server-side diff enabled (
argocd.argoproj.io/compare-options: ServerSideDiff=true), Argo CD shows the application as Synced and Healthy, and does not detect the spec difference. - Switch to client-side diff (
argocd.argoproj.io/compare-options: ServerSideDiff=false), Hit refresh, the difference is then detected and applied.
Observed behavior
- With server-side diff: No differences are detected; the app remains Synced/Healthy even when spec fields have changed; changes on metadata are detected and applied correctly.
- With client-side diff: Differences are detected and applied correctly.
- Manual sync: Updates the resource correctly.
Expected behavior
Argo CD should detect differences between live and desired manifests for this resource when using server-side diff, just like it does with client-side diff.
Screenshots
- Desired state
- Live state
- Application status
Application spec
apiVersion: argoproj.io/v1alpha1
kind: Application
metadata:
annotations:
argocd.argoproj.io/compare-options: ServerSideDiff=true
finalizers:
- resources-finalizer.argocd.argoproj.io
name: test-app-test2
namespace: argo-cd
spec:
destination:
name: gke-alpha-01-europe-west1
namespace: test-app
project: sre
source:
helm:
releaseName: foo
path: chart
repoURL: https://github.com/REDACTED/manifests-test-app.git
targetRevision: master
syncPolicy:
automated:
prune: true
selfHeal: true
syncOptions:
- CreateNamespace=true
- ServerSideApply=trueVersion
argocd: v3.2.1+8c4ab63
BuildDate: 2025-11-30T11:48:14Z
GitCommit: 8c4ab63a9c72b31d96c6360514cda6254e7e6629
GitTreeState: clean
GoVersion: go1.25.0
Compiler: gc
Platform: linux/amd64Metadata
Metadata
Assignees
Labels
bugSomething isn't workingSomething isn't workingtriage/pendingThis issue needs further triage to be correctly classifiedThis issue needs further triage to be correctly classified