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
Describe the bug
We use rollouts with istio traffic management. Initially, when argo-rollouts changed the weights in the virtual service, argocd would fight it, causing sync flapping. We used to have auto-sync on, so this was a problem. To remedy, we added this to the application
Now, when a rollout occurs, Rollouts correctly modifies the VirtualService weights for the canary, and argo doesn't fight it because rollouts set this in the VS prior to changing the weights
All is well for the rollout. However, once one rollout happens, that managedField remains in the virtualService, making Argocd never see any changes to the VS unless we manually remove that managed field. Then it instantly sees it
use the linked application. Deploy it. No VS changes occur. Change the VS http section. I changed the prefix
- match:
- uri:
prefix: /headers
Prior to a rollout, changing this results in an expected diff. Now change the pod template. I edited
- name: CHANGEME
value: aa
to force a rollout. ArgoRollouts starts, deploys the new pod, then adds the ManagedField to the VS and starts to alter the weights for the canary deploy. When complete, the managed fields still exist. Now this means any future changes to the VirtualService in git are ignored.
Expected behavior
I expect the managedField argo rollouts inserted to be removed when the rollout is complete so that future virtual service changes can be noticed by argocd.
Version
Argo-rollouts: 1.7.2
argo-rollouts-helm: 2.37.5
istio: 1.22.3
Checklist:
Describe the bug
We use rollouts with istio traffic management. Initially, when argo-rollouts changed the weights in the virtual service, argocd would fight it, causing sync flapping. We used to have auto-sync on, so this was a problem. To remedy, we added this to the application
This solved the sync issue.
Now, when a rollout occurs, Rollouts correctly modifies the VirtualService weights for the canary, and argo doesn't fight it because rollouts set this in the VS prior to changing the weights
All is well for the rollout. However, once one rollout happens, that managedField remains in the virtualService, making Argocd never see any changes to the VS unless we manually remove that managed field. Then it instantly sees it
To Reproduce
reproducible deploy here: https://github.com/taer/argo-rollout-issue/tree/master
use the linked application. Deploy it. No VS changes occur. Change the VS http section. I changed the prefix
Prior to a rollout, changing this results in an expected diff. Now change the pod template. I edited
to force a rollout. ArgoRollouts starts, deploys the new pod, then adds the ManagedField to the VS and starts to alter the weights for the canary deploy. When complete, the managed fields still exist. Now this means any future changes to the VirtualService in git are ignored.
Expected behavior
I expect the managedField argo rollouts inserted to be removed when the rollout is complete so that future virtual service changes can be noticed by argocd.
Version
Argo-rollouts: 1.7.2
argo-rollouts-helm: 2.37.5
istio: 1.22.3
Logs
Logs are in the github repro repo.
https://github.com/taer/argo-rollout-issue/blob/master/errorLog.log
Message from the maintainers:
Impacted by this bug? Give it a 👍. We prioritize the issues with the most 👍.
The text was updated successfully, but these errors were encountered: