-
Notifications
You must be signed in to change notification settings - Fork 5.6k
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
feat: Add support for managedFieldsManagers in ignoreResourceUpdates (solves #15094,#15151) #15137
Conversation
Codecov ReportPatch coverage:
Additional details and impacted files@@ Coverage Diff @@
## master #15137 +/- ##
==========================================
- Coverage 49.91% 49.89% -0.02%
==========================================
Files 262 263 +1
Lines 45131 45205 +74
==========================================
+ Hits 22525 22555 +30
- Misses 20391 20433 +42
- Partials 2215 2217 +2
☔ View full report in Codecov by Sentry. |
Signed-off-by: uri ariel <uri.ariel@granulate.io>
Signed-off-by: uri ariel <uri.ariel@granulate.io>
fd32420
to
0f8ed93
Compare
Signed-off-by: uri ariel <uri.ariel@granulate.io>
…ourceUpdates Signed-off-by: uri ariel <uri.ariel@granulate.io>
I really dont think the behavior of ignoreResourceUpdates is currently only configurable on the server and it is not possible to specify it on the Application. The documentation does not mention the usage of I think ignore difference from the cluster is a good idea. I am aware of #15116 that was created around this Idea, however, I think it should be implemented separately from ignoreResourceUpdates. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I think this PR does not Add support for managedFieldsManagers in ignoreResourceUpdates
, but instead, changes the semantic of ignoreResourceUpdates to a ignoreClusterDifferences
. I think both features should not be mutually exclusive and it would be a good idea to implement a ignoreClusterDifferences
.
I also agree with this statement. Also, from the code perspective, the
I am not sure I understand the cluster ignore difference idea. That sounds like what we tried to accomplish with Ignore diffs with |
@leoluz @agaudreault-jive First of all sorry for the delay, I was on a vacation those days.
client git repo: resources:
requests:
cpu: 500m and then ignore changes made to the requests by the VPA inside the cluster only. VPA changes client git repo: resources:
requests:
cpu: 600m with @agaudreault-jive I get it that this feature wasn't implemented as |
There documentation is quite low on this but it sounds like another way you could think about "defaults" instead of using the requests from the resource itself is to use a policy. They mention this here
This eventually leads us to this
It would seem then that you could instead of update the resource limits on the object in question |
Although after re-reading the docs again it might actually still require the limits/requests on the resource in order to figure out the ratios, is this true? If so I feel that the vpa should also let you configure said ratio in the policy vs argocd trying to handle multiple inputs.
|
This issue also seems to be semi related: kubernetes/autoscaler#5934 |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
From the discussion we had in the contributor's meeting, it was clarified that this is not the direction that we want to go in Argo CD for a number of reasons:
- It changes the semantics of
ignoreResourceUpdates
by adding extra behaviour to it in order to address an use-case that it wasn't originally designed to. - It creates a competition for fields ownership that could potentially drive into situations where Argo CD is in eternal sync state depending on how the application is configured.
Please consider the suggestions given during the meeting by finding alternative and better approaches to drive the behaviour you want.
If you still think that this use-case is something that Argo CD should handle, please submit a proposal with the details of how it would behave in different edge-cases.
Checklist:
Closes [ISSUE #15151]
Closes [ISSUE #15094]
🤖 Generated by Copilot at 0f8ed93
Summary
⚡✨🔨
Added a new function to compare application state with cached state using different ignore rules, and used it in the application reconciliation process. This improves the performance and accuracy of state comparisons and reduces unnecessary diffs.
Walkthrough
CompareAppStateWithComparisonLevel
function to improve application state comparisons (link, link, link, link)