I made a tier ranking for each ArgoCD setting
#SRG(Service Reliability Group) mainly provides cross-sectional support for the infrastructure of our media services, improving existing services, launching new ones, contributing to OSS, etc.
This time, we will take a deeper look at the settings of ArgoCD and create a tier ranking based on the importance and usefulness of each setting. If you are already using ArgoCD or are considering using it, please use this article as a reference to consider which ArgoCD settings you should enable.
Why Tier Rankings?Tier Ranking ListTier 1: Should be the default settingTier 2: Always usefulTier 3: Sometimes usefulTier 4: Not very importantTier 5: Nobody needs itConclusion
Why Tier Rankings?
ArgoCD is a very powerful GitOps tool, but it has a lot of configuration options. Which settings are really important?Which ones are specific to certain use cases?It is important to determine whether the settings are used in the most common scenarios or rarely used.
This ranking was created based on a Lightning Talk given at KubeCon NA 2024.Ranking Argo CD Settings in a Tier List - Gerald Nunn, Red HatThis article is based on the content of the talk and the opinions of the audience (including me). Due to time constraints, the Lightning Talk was only half-completed, so I hope this article will serve as a complement to the content.
Tier Ranking List
I have recreated the Tier List Maker that I presented in the Lightning Talk in Japanese.

Tier 1: Should be the default setting
Resource Tracking
OutOfSync
Persist Health in Redis
This setting stores application status information in Redis. This is also an important setting that should be used by default.
5~10%
In most cases, you will not need to manage Application Status information with tools other than ArgoCD, so it is appropriate to enable this setting.
v3.0
The Persist Health in Redis setting can be changed in the following ways:
Self Heal
SyncOption
ExternalSecret
Although this type of overlapping resource management may not occur very often, enabling this setting can help you detect the problem early and prevent it from occurring.
Tier 2: Always useful
IgnoreDifferences
This setting allows you to ignore differences in certain fields of a resource. This is especially useful when other controllers modify resources.
IgnoreDifferences
IgnoreResourceUpdates
This setting ignores updates to the resource's status field.
argocd-application-controller
For example, you can ignore the following fields:
.metadata.ownerReferences
.status.refreshTime
IgnoreResourceUpdate
ServerSideApply
SyncOption
ServerSideApply
ClientSideApply
ServerSideDiff
ServerSideApply
Tier 3: Sometimes useful
Resource Tracking
Although it would be nice to make this setting "unnecessary," realistically it should be classified as Tier 3, "occasionally useful."
Aggregated ClusterRole
SelectiveSync
However, please note the following:
- Syncs are not recorded in history and cannot be rolled back
Resource Hooks
CreateNamespace
--reorder none
ui.banner
This setting allows you to display a custom banner on the UI. It is useful for displaying important information or warnings to ArgoCD users.
This setting is very useful if you have a large number of ArgoCD users.
v2.8
argocd-application-controller
The CNOE blog concludes that this algorithm has the best performance, but past tuning experiments with ArgoCD conducted by Ameba have shown that this algorithm does not produce the expected results.
If you are interested in more details or results in other cases, please refer to our related blog.
SyncOption
kubectl delete/create
Replace
kubectl replace/create
SkipDryRun
CustomResource
EventLabelKeys
.metadata.labels
AutoRespectRBAC
argocd-application-controller
This setting can be useful depending on your organization's security regulations, as it allows ArgoCD to automatically stop monitoring unauthorized resources and dynamically adjusts resource discovery/sync scope.
Resource Exclusions Inclusions
AutoRespectRBAC
Tier 4: Not very important
Resource CustomLabels
Custom labels are used for resource management and identification purposes.
In the Lightning Talk, the presenter said that "you can identify resources owned by each team" even though he has never used it himself. When I researched this setting, the documentation only said the following line:
Custom Labels configured with resource.customLabels (comma separated string) will be displayed in the UI (for any resource that defines them).
getCluster()
Because the actual use is unknown, Lightning Talk classified it as Tier 3, but I think it would be more appropriate to classify it as Tier 4.
Tier 5: Nobody needs it
Resource Tracking(Label)
Resource Tracking (Annotation)
Although we still have many projects that use the Label method, at the Lightning Talk, it was unanimously decided that this setting should be classified as the only Tier 5. Therefore, I also classified it as Tier 5.
Conclusion
We have looked at each of the ArgoCD settings in detail. These tiers are intended for general use cases, but their actual importance may vary depending on your organization or project requirements. We hope this article was helpful to you.
SRG is looking for people to work with us. If you are interested, please contact us here.