Skip to content

Commit aaed79c

Browse files
authored
Merge pull request #758 from zhucan/bugfix-499
feat: Support secret in NodeExpansion Call
2 parents f5b8be6 + b416eb5 commit aaed79c

File tree

2 files changed

+37
-0
lines changed

2 files changed

+37
-0
lines changed

pkg/controller/controller.go

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -95,6 +95,9 @@ const (
9595
prefixedControllerExpandSecretNameKey = csiParameterPrefix + "controller-expand-secret-name"
9696
prefixedControllerExpandSecretNamespaceKey = csiParameterPrefix + "controller-expand-secret-namespace"
9797

98+
prefixedNodeExpandSecretNameKey = csiParameterPrefix + "node-expand-secret-name"
99+
prefixedNodeExpandSecretNamespaceKey = csiParameterPrefix + "node-expand-secret-namespace"
100+
98101
// [Deprecated] CSI Parameters that are put into fields but
99102
// NOT stripped from the parameters passed to CreateVolume
100103
provisionerSecretNameKey = "csiProvisionerSecretName"
@@ -188,6 +191,12 @@ var (
188191
secretNameKey: prefixedControllerExpandSecretNameKey,
189192
secretNamespaceKey: prefixedControllerExpandSecretNamespaceKey,
190193
}
194+
195+
nodeExpandSecretParams = secretParamsMap{
196+
name: "NodeExpand",
197+
secretNameKey: prefixedNodeExpandSecretNameKey,
198+
secretNamespaceKey: prefixedNodeExpandSecretNamespaceKey,
199+
}
191200
)
192201

193202
// ProvisionerCSITranslator contains the set of CSI Translation functionality
@@ -687,13 +696,18 @@ func (p *csiProvisioner) prepareProvision(ctx context.Context, claim *v1.Persist
687696
if err != nil {
688697
return nil, controller.ProvisioningNoChange, err
689698
}
699+
nodeExpandSecretRef, err := getSecretReference(nodeExpandSecretParams, sc.Parameters, pvName, claim)
700+
if err != nil {
701+
return nil, controller.ProvisioningNoChange, err
702+
}
690703
csiPVSource := &v1.CSIPersistentVolumeSource{
691704
Driver: p.driverName,
692705
// VolumeHandle and VolumeAttributes will be added after provisioning.
693706
ControllerPublishSecretRef: controllerPublishSecretRef,
694707
NodeStageSecretRef: nodeStageSecretRef,
695708
NodePublishSecretRef: nodePublishSecretRef,
696709
ControllerExpandSecretRef: controllerExpandSecretRef,
710+
NodeExpandSecretRef: nodeExpandSecretRef,
697711
}
698712

699713
req.Parameters, err = removePrefixedParameters(sc.Parameters)
@@ -947,6 +961,8 @@ func removePrefixedParameters(param map[string]string) (map[string]string, error
947961
case prefixedControllerExpandSecretNamespaceKey:
948962
case prefixedDefaultSecretNameKey:
949963
case prefixedDefaultSecretNamespaceKey:
964+
case prefixedNodeExpandSecretNameKey:
965+
case prefixedNodeExpandSecretNamespaceKey:
950966
default:
951967
return map[string]string{}, fmt.Errorf("found unknown parameter key \"%s\" with reserved namespace %s", k, csiParameterPrefix)
952968
}

pkg/controller/controller_test.go

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -226,6 +226,8 @@ func TestStripPrefixedCSIParams(t *testing.T) {
226226
prefixedControllerExpandSecretNamespaceKey: "csiBar",
227227
prefixedDefaultSecretNameKey: "csiBar",
228228
prefixedDefaultSecretNamespaceKey: "csiBar",
229+
prefixedNodeExpandSecretNameKey: "csiBar",
230+
prefixedNodeExpandSecretNamespaceKey: "csiBar",
229231
},
230232
expectedParams: map[string]string{},
231233
},
@@ -876,6 +878,8 @@ func getDefaultStorageClassSecretParameters() map[string]string {
876878
prefixedControllerExpandSecretNamespaceKey: defaultSecretNsName,
877879
prefixedProvisionerSecretNameKey: "provisionersecret",
878880
prefixedProvisionerSecretNamespaceKey: defaultSecretNsName,
881+
prefixedNodeExpandSecretNameKey: "nodeexpandsecret",
882+
prefixedNodeExpandSecretNamespaceKey: defaultSecretNsName,
879883
}
880884
}
881885

@@ -906,6 +910,11 @@ func getDefaultSecretObjects() []runtime.Object {
906910
Name: "provisionersecret",
907911
Namespace: defaultSecretNsName,
908912
},
913+
}, &v1.Secret{
914+
ObjectMeta: metav1.ObjectMeta{
915+
Name: "nodeexpandsecret",
916+
Namespace: defaultSecretNsName,
917+
},
909918
},
910919
}
911920
}
@@ -1597,6 +1606,10 @@ func provisionTestcases() (int64, map[string]provisioningTestcase) {
15971606
Name: "controllerexpandsecret",
15981607
Namespace: "default",
15991608
},
1609+
NodeExpandSecretRef: &v1.SecretReference{
1610+
Name: "nodeexpandsecret",
1611+
Namespace: "default",
1612+
},
16001613
},
16011614
},
16021615
expectState: controller.ProvisioningFinished,
@@ -1652,6 +1665,10 @@ func provisionTestcases() (int64, map[string]provisioningTestcase) {
16521665
Name: "default-secret",
16531666
Namespace: "default-ns",
16541667
},
1668+
NodeExpandSecretRef: &v1.SecretReference{
1669+
Name: "default-secret",
1670+
Namespace: "default-ns",
1671+
},
16551672
},
16561673
},
16571674
expectState: controller.ProvisioningFinished,
@@ -1707,6 +1724,10 @@ func provisionTestcases() (int64, map[string]provisioningTestcase) {
17071724
Name: "my-pvc",
17081725
Namespace: "default-ns",
17091726
},
1727+
NodeExpandSecretRef: &v1.SecretReference{
1728+
Name: "my-pvc",
1729+
Namespace: "default-ns",
1730+
},
17101731
},
17111732
},
17121733
expectState: controller.ProvisioningFinished,

0 commit comments

Comments
 (0)