-
Notifications
You must be signed in to change notification settings - Fork 1.4k
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
The "managedFields" isn't restored #5701
Comments
@ywk253100 Maybe we should by default keep most of the fields but only clean up the ones that will cause problems. |
#2416 was also trying to address the problem in |
Doesn't restore
|
Would be nice to get this fixed. This can lead to significant issues with ClusterAPI (we are using server side apply very extensively) |
@sbueringer The plan is to fix this in v1.10 which should be consumed by the TKG H release. |
Sounds good!
This is correct and Cluster API uses force conflict everywhere. The issue is a bit more nuanced. Following example:
So tl;dr velero backup / restore leads to co-ownership of all fields by "velero-server" and "capi-topology". It's still possible for the Cluster API controller to change fields (that's the part where force conflicts is relevant), but it is impossible to unset fields (including labels / annotations) If a user wants to correct this they have to essentially either cleanup the managed fields manually or overwrite all fields with different values so that on the next reconcile the Cluster API controller can get sole ownership of the fields. |
Fixed by #5853 |
When restoring data from a backup velero doesn't restore managedFields existing in the original data.
ManagedFields contains the history of which controller/tool is responsible for each field/list entry in the object, and this history is then used to determine the result of next operation when using server side apply patches as described in https://kubernetes.io/docs/reference/using-api/server-side-apply/
Not only valero intentionally drops those valuable informations, but after restoring an object velero itself becomes manager of all the informations, thus preventing any other controller to delete fields ore remove list entries.
In order for the system to work properly when using server side apply after a restore, it is required that velero restores managedFields existing in the original objects (removing any track of velero itself).
Vote on this issue!
This is an invitation to the Velero community to vote on issues, you can see the project's top voted issues listed here.
Use the "reaction smiley face" up to the right of this comment to vote.
The text was updated successfully, but these errors were encountered: