Skip to content

Commit 9235b73

Browse files
committed
Address PRR comments
1 parent fe71e53 commit 9235b73

File tree

1 file changed

+2
-2
lines changed

1 file changed

+2
-2
lines changed

keps/sig-storage/3476-volume-group/README.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1387,9 +1387,9 @@ _This section must be completed when targeting alpha to a release._
13871387
the enablement)?**
13881388
Yes. In order to disable this feature once it has been enabled, we first need to make sure that all VolumeGroup and VolumeGroupSnapshot API objects are deleted. Then the new controllers for VolumeGroup and VolumeGroupSnapshot can be stopped/removed, and external-provisioner sidecar and external-snapshotter controller/sidecar can be downgraded to a version without this feature.
13891389

1390-
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.
1390+
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.
13911391

1392-
If the API objects and VolumeGroup and GroupSnapshot controllers are running, but the provisioner/snapshotter sidecars are downgraded to a lower version that does not support this feature, creating a PVC and adding it to the group will not work as one step. Basically the provisioner sidecar will create a new PV but ignoring the part that adds it to the group. If the CSI driver also supports VOLUME_GROUP_ADD_REMOVE_EXISTING_VOLUME capability, the VolumeGroup controller will detect an existing PVC with a matching label and will try to add the PVC to the group. If the CSI driver does not support VOLUME_GROUP_ADD_REMOVE_EXISTING_VOLUME capability, the PVC will not be added to the group.
1392+
If the API objects and VolumeGroup and GroupSnapshot controllers are running, but the provisioner/snapshotter sidecars are downgraded to a lower version that does not support this feature, creating a PVC and adding it to the group will not work as one step. Basically the provisioner sidecar will create a new PV but ignoring the part that adds it to the group. If the CSI driver also supports VOLUME_GROUP_ADD_REMOVE_EXISTING_VOLUME capability, the VolumeGroup controller will detect an existing PVC with a matching label and will try to add the PVC to the group. If the CSI driver does not support VOLUME_GROUP_ADD_REMOVE_EXISTING_VOLUME capability, the PVC will not be added to the group. In this case, PV will still work but it is not in the group so user's request isn't fully satisfied. There won't be errors in this case. The provisioner doesn't support the new feature so it ignores the label on PVC and won't add it to the group. VolumeGroup controller won't pick it up because the CSI driver does not have the capability to support adding an existing volume to a group.
13931393

13941394
If the external-provisioner and external-snapshotter sidecars which support this feature are running but VolumeGroup/GroupSnapshot controllers are not (CRDs are still installed), creating VolumeGroup or creating VolumeGroupSnapshot will not be successfully. Ready status in VolumeGroup or VolumeGroupSnapshot API objects will be false until those controllers are running again.
13951395

0 commit comments

Comments
 (0)