Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add support for ignoreApplicationDifferences resource customization key for ApplicationSet resources #21714

Open
sbathgate opened this issue Jan 29, 2025 · 0 comments
Labels
component:application-sets Bulk application management related enhancement New feature or request

Comments

@sbathgate
Copy link

Summary

It would be very helpful to support an ignoreApplicationDifferences customization key for ApplicationSet resources in the same way other ignore logic (e.g. ignoreDifferences, ignoreResourceUpdates) works. This would allow users to ignore specific fields such as /spec/syncPolicy or .spec.sources[].targetRevision when comparing live vs. desired states in Argo CD.

Motivation

When using ApplicationSet, there are certain fields (e.g., syncPolicy or targetRevision fields) that can get frequently updated or differ from the desired specification in ways the user wants to ignore. Currently, we can configure various ignore behaviors via "ignoreDifferences" or "ignoreResourceUpdates," but there's no dedicated mechanism for ignoring differences on ApplicationSet fields specifically.

For example, in the Argo CD ConfigMap (argocd-cm), we cannot specify:

resource.customizations.ignoreApplicationDifferences.argoproj.io_ApplicationSet:
  - jsonPointers:
      - /spec/syncPolicy
  - jqPathExpressions:
      - .spec.sources[].targetRevision

However, Argo CD does not yet recognize a key named resource.customizations.ignoreApplicationDifferences.<group_kind> to process these ignore configurations properly for ApplicationSet resources.

Proposal

Enhance the appendResourceOverridesFromSplitKeys (and related logic) to handle a new customization type ignoreApplicationDifferences. This would likely involve:

  1. Introducing a new case block in the function (similar to ignoreDifferences, ignoreResourceUpdates) that processes the ignoreApplicationDifferences key.
  2. Parsing the YAML from the ConfigMap data into a structure (e.g., v1alpha1.OverrideIgnoreDiff) and storing it on a new or existing field in ResourceOverride.
  3. Updating any necessary docs or comments to clarify usage of ignoreApplicationDifferences.
@sbathgate sbathgate added the enhancement New feature or request label Jan 29, 2025
@andrii-korotkov-verkada andrii-korotkov-verkada added the component:application-sets Bulk application management related label Feb 3, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
component:application-sets Bulk application management related enhancement New feature or request
Projects
None yet
Development

No branches or pull requests

2 participants