Skip to content

Commit 9c2e280

Browse files
authored
Merge pull request #434 from Danil-Grigorev/fix-protection-capability
Start clone protection only when capability matches
2 parents 0b1476d + 4058667 commit 9c2e280

File tree

3 files changed

+16
-1
lines changed

3 files changed

+16
-1
lines changed

cmd/csi-provisioner/csi-provisioner.go

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -253,6 +253,7 @@ func main() {
253253
claimLister,
254254
claimInformer,
255255
claimQueue,
256+
controllerCapabilities,
256257
)
257258

258259
run := func(context.Context) {
@@ -265,7 +266,9 @@ func main() {
265266
}
266267
}
267268

268-
go csiClaimController.Run(int(*finalizerThreads), stopCh)
269+
if csiClaimController != nil {
270+
go csiClaimController.Run(int(*finalizerThreads), stopCh)
271+
}
269272
provisionController.Run(wait.NeverStop)
270273
}
271274

pkg/controller/clone_controller.go

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,8 @@ import (
44
"fmt"
55
"time"
66

7+
"github.com/container-storage-interface/spec/lib/go/csi"
8+
"github.com/kubernetes-csi/csi-lib-utils/rpc"
79
v1 "k8s.io/api/core/v1"
810
apierrs "k8s.io/apimachinery/pkg/api/errors"
911
"k8s.io/apimachinery/pkg/labels"
@@ -43,7 +45,11 @@ func NewCloningProtectionController(
4345
claimLister corelisters.PersistentVolumeClaimLister,
4446
claimInformer cache.SharedInformer,
4547
claimQueue workqueue.RateLimitingInterface,
48+
controllerCapabilities rpc.ControllerCapabilitySet,
4649
) *CloningProtectionController {
50+
if !controllerCapabilities[csi.ControllerServiceCapability_RPC_CLONE_VOLUME] {
51+
return nil
52+
}
4753
controller := &CloningProtectionController{
4854
client: client,
4955
claimLister: claimLister,

pkg/controller/clone_controller_test.go

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,8 @@ import (
66
"testing"
77
"time"
88

9+
"github.com/container-storage-interface/spec/lib/go/csi"
10+
"github.com/kubernetes-csi/csi-lib-utils/rpc"
911
v1 "k8s.io/api/core/v1"
1012
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
1113
"k8s.io/apimachinery/pkg/runtime"
@@ -176,6 +178,9 @@ func TestEnqueueClaimUpadate(t *testing.T) {
176178

177179
func fakeCloningProtector(client *fakeclientset.Clientset, objects ...runtime.Object) *CloningProtectionController {
178180
utilruntime.ReallyCrash = false
181+
controllerCapabilities := rpc.ControllerCapabilitySet{
182+
csi.ControllerServiceCapability_RPC_CLONE_VOLUME: true,
183+
}
179184

180185
informerFactory := informers.NewSharedInformerFactory(client, 1*time.Second)
181186
claimInformer := informerFactory.Core().V1().PersistentVolumeClaims().Informer()
@@ -195,5 +200,6 @@ func fakeCloningProtector(client *fakeclientset.Clientset, objects ...runtime.Ob
195200
claimLister,
196201
claimInformer,
197202
claimQueue,
203+
controllerCapabilities,
198204
)
199205
}

0 commit comments

Comments
 (0)