+If we don't delete the VolumeGroup and VolumeGroupSnapshot API objects and CRDs but just uninstall the VolumeGroup and VolumeGroupSnapshot controllers and downgrade the other sidecars, the API objects continue to exist in the API server. User may delete an individual PVC that is part of a VolumeGroup or delete an individual VolumeSnapshot that is associated with a VolumeGroupSnapshot. After that if the user starts the controllers/sidecars again and try to use the pre-existing VolumeGroup and VolumeGroupSnapshot, they are no longer in sync with the storage system. Assume the VolumeGroup has 3 PVCs initially, but 1 got removed by user but the VolumeGroup status is not updated so it still has a record of 3. If the user now takes a group snapshot from the VolumeGroup, the storage system will return an error due to the mismatch. We could add logic to reconcile what is in the K8s API object VolumeGroup and what is on the storage system, but before the reconcile completes, the call to create a VolumeGroup will fail.
0 commit comments