kanisterio/kanister

Add CreateCSISnapshotAll, RestoreCSISnapshotAll and DeleteCSISnapshotAll functions

Opened this issue ยท 8 comments

For datastores with multiple replicas, having the "All" alternatives for CreateCSISnapshot, RestoreCSISnapshot and DeleteCSISnapshot is useful in order to:

  1. avoid phase duplication for each of the replicas
  2. address use cases where the number of replicas for the datastore can change in Day 2. Without the "All" alternative, a blueprint update is required with each scale
  3. have a single blueprint regardless of the setup of the datastore in various environments

Thanks for opening this issue ๐Ÿ‘. The team will review it shortly.

If this is a bug report, make sure to include clear instructions how on to reproduce the problem with minimal reproducible examples, where possible. If this is a security report, please review our security policy as outlined in SECURITY.md.

If you haven't already, please take a moment to review our project's Code of Conduct document.

mlavi commented

We discussed in today's community meeting; the request is valid. However, the solution to multiply functions may not be the best way forward, a loop or an all argument could be considered.

mlavi commented

@laurentiusoica Can we close this issue?
@viveksinghggits will also look for a loop example

CreateCSISnapshot just takes a PVC name right now. https://github.com/kanisterio/kanister/blob/master/pkg/function/create_csi_snapshot.go#L77
So, even if we passe multiple PVCs from the arg to CreateCSISnapshot the function would not be able to handle that properly. We will have to change the function in such a way that it can handle space separated PVC names.

This issue is marked as stale due to inactivity. Add a new comment to reactivate it.

Hi @laurentiusoica ,
Is this still relevant to you? Do you have use case to use this feature as soon as we add it, or you had a use case where you thought it would be useful in future.

lsoica commented

Without this APIs, is there a path forward for replicated services that could also dynamically scale at runtime ?

The only option right now would be to take application aware backup using database specific utilities for example mysqldump etc.