You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Originally we were looking for a way to update immutable fields in StatefulSets. A solution was proposed here #5882.
After some more digging, I found this issue #5172 describing a solution which executes kubectl apply --force thus deleting and replacing the violated StatefulSet after 5 retries.
This generally works, but the application is stuck in a sync-cycle if it is deployed by a parent application. The entire
operation:
sync:
syncStrategy:
apply:
force: true
is added to the live manifest, then removed immediately, resulting in a sync every few seconds.
to the parent‚ application. This should ignore any differences under the operation key but still apply the desired manifest as is. This is described here:
By default, Argo CD uses the ignoreDifferences config just for computing the diff between the live and desired state which defines if the application is synced or not. However during the sync stage, the desired state is applied as-is.
So when adding ignoreDifferences... to the parent application and operation... to the application, the sync cycle indeed stops but operation... is not applied to to the live manifest as expected. The desired manifest does show the operation object though.
The only (found) working solutions are to
add operation... to status.operationState, which messes with Argos internally handled state and has unknown consequences or
let the application wallow in the sync-cycle, which somehow seems worse
Closing this as #17866 seems to be moving.
Also Argo seems to have 'caught itself' after a few days, so that the ignoreDifferences did take after a while.
Checklist:
argocd version
.Describe the bug
Originally we were looking for a way to update immutable fields in
StatefulSets
. A solution was proposed here #5882.After some more digging, I found this issue #5172 describing a solution which executes
kubectl apply --force
thus deleting and replacing the violatedStatefulSet
after 5 retries.This generally works, but the application is stuck in a sync-cycle if it is deployed by a parent application. The entire
is added to the live manifest, then removed immediately, resulting in a sync every few seconds.
To circumvent this, it was proposed to add
to the parent‚ application. This should ignore any differences under the
operation
key but still apply the desired manifest as is. This is described here:So when adding
ignoreDifferences...
to the parent application andoperation...
to the application, the sync cycle indeed stops butoperation...
is not applied to to the live manifest as expected. The desired manifest does show theoperation
object though.The only (found) working solutions are to
operation...
tostatus.operationState
, which messes with Argos internally handled state and has unknown consequences orTo Reproduce
Deploy a parent
Application
and the actual
Application
:Expected behavior
The parent
Application
deploys the 'myapp'Application
and showsin its live manifest.
Screenshots
Version
Thanks for your help. :)
The text was updated successfully, but these errors were encountered: