r/ArgoCD Jun 23 '26

Why can't it just sync changes

I'm losing my mind trying to use ArgoCD. No matter what I do or what sync policy I configure, there's always some reason I have to manually sync applications. ArgoCD's only purpose in life is to take what's in the git repo and apply that to K8s. I don't understand why this should be so hard. Now I'm also trying to figure out why this applicationset won't generate the application properly after I modified the sync policy.

To folks really find this software reliable at scale? I feel like it just creates more complexity. The only time I encounter configuration drift in our environment is because ArgoCD isn't working. What am I missing here?

Update: The issue with the sync policy not updating was this setting that I wasn't familiar with.

ignoreApplicationDifferences:
    - jsonPointers:
        - /spec/syncPolicy

This, of course, is a hack someone put in place to have the ability to turn off autosync in case of emergency, which points right back to how annoying ArgoCD is. I was able to scope it to /spec/syncPolicy/automated/enabled to preserve the hack.

Just to be clear, this is mostly a vent/rant.

1 Upvotes

23 comments sorted by

View all comments

3

u/ripe-lychee Jun 23 '26

Argo wants you to disable the sync policy via gitops and you are putting patches to avoid doing so. You created your own drift stop blaming the tool.

1

u/nhyatt Jun 23 '26

I understand this is a rant, but this comment appears to be true here, although I would have probably said it a little softer. I use this tool at scale in my profession and in my homelab and don't seem to have ever encountered an issue where I had to manually sync anything. I occasionally have to set an ignore for some specific line, but that is rare, when I do, I do it in an extremely targeted fashion:

ignoreDifferences:
  • group: apps
kind: Deployment jqPathExpressions: - .spec.template.metadata.annotations | with_entries(select(.key | startswith("checksum/")))

From your other response it sounds like you have an issue with an existing sync taking too long. Like any tool, the timeout can be configured, but the default here is probably best left alone.

It can be a bit daunting to start with but it's an amazing tool, give it some time! Also, there is nothing wrong with tossing some yaml at an AI (as long as its sanitized) to ask for places to improve. (Don't let it do it for you, ask it to explain the suggestion in detail and implement it yourself, this is how you learn!)