Open
Description
Hi,
What i don't understand for this approach is this: How can i restore a namespace including a arangodb operator + arangodeployment if every time an arangodeployment CR is created (in this case by the restore process) a new PVC is created?
In the case of velero i'll end up with 2 PVC, the old one and the new empty one. In case of a Cluster DR this really is not a good way to restore your data.
First thing - we are using ArangoDeployment, not Deployment. So all limitations known for apps/v1 Deployment does not affect ArangoDeployment. In our case names are constant for ArangoDeployment managed pods and in sync with generated ArangoDB cluster resource names. All operation for upgrade or pod recreation works because name will not change when pod will be recreated.
In case when you remove ArangoDeployment CR and create new one - we do not want allow to bind PVC from different ArangoDeployment to newly created pods. Bootstrap of ArangoDB is complex procedure - so we cannot simply bind data from old ArangoDeployment because of different encryption keys. We know StatefulSet allow you to bind same PVC after StatefulSet recreation, but it would not work in our case.
So, unless you delete ArangoDeployment CR, data is persisted. It include upgrade, crash restore, machine restart. Upgrade of ArangoDeployment is just update of image in Spec section.
Solution with StorageClass is example of case when you want to keep data when you remove ArangoDeployment CR by mistake.
Best Regards,
Adam Janikowski.
Originally posted by @ajanikow in #503 (comment)
Best Regards
Stephan
PS: In my opinion, statefulsets are the way to go here.
Metadata
Metadata
Assignees
Labels
No labels