Skip to content

Commit 77426c4

Browse files
authored
Merge pull request #58 from wackxu/secerr
Errors from fetching secrets should be reported
2 parents 497bf40 + 5e52868 commit 77426c4

File tree

1 file changed

+16
-9
lines changed

1 file changed

+16
-9
lines changed

pkg/controller/controller.go

Lines changed: 16 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -249,7 +249,11 @@ func (p *csiProvisioner) Provision(options controller.VolumeOptions) (*v1.Persis
249249
}
250250
secret := v1.SecretReference{}
251251
if options.Parameters != nil {
252-
req.ControllerCreateSecrets = getCredentialsFromParameters(p.client, options.Parameters)
252+
credentials, err := getCredentialsFromParameters(p.client, options.Parameters)
253+
if err != nil {
254+
return nil, err
255+
}
256+
req.ControllerCreateSecrets = credentials
253257
secret.Name, secret.Namespace, _ = getSecretAndNamespaceFromParameters(options.Parameters)
254258
}
255259
ctx, cancel := context.WithTimeout(context.Background(), p.timeout)
@@ -307,7 +311,11 @@ func (p *csiProvisioner) Delete(volume *v1.PersistentVolume) error {
307311
storageClassName := volume.Spec.StorageClassName
308312
if len(storageClassName) != 0 {
309313
if storageClass, err := p.client.StorageV1().StorageClasses().Get(storageClassName, metav1.GetOptions{}); err == nil {
310-
req.ControllerDeleteSecrets = getCredentialsFromParameters(p.client, storageClass.Parameters)
314+
credentials, err := getCredentialsFromParameters(p.client, storageClass.Parameters)
315+
if err != nil {
316+
return err
317+
}
318+
req.ControllerDeleteSecrets = credentials
311319
}
312320

313321
}
@@ -330,11 +338,11 @@ func getSecretAndNamespaceFromParameters(parameters map[string]string) (string,
330338
return "", "", false
331339
}
332340

333-
func getCredentialsFromParameters(k8s kubernetes.Interface, parameters map[string]string) map[string]string {
341+
func getCredentialsFromParameters(k8s kubernetes.Interface, parameters map[string]string) (map[string]string, error) {
334342
if secretName, namespace, found := getSecretAndNamespaceFromParameters(parameters); found {
335343
return getCredentialsFromSecret(k8s, secretName, namespace)
336344
}
337-
return map[string]string{}
345+
return map[string]string{}, nil
338346
}
339347

340348
//TODO use a unique volume handle from and to Id
@@ -346,19 +354,18 @@ func (p *csiProvisioner) volumeHandleToId(handle string) string {
346354
return handle
347355
}
348356

349-
func getCredentialsFromSecret(k8s kubernetes.Interface, secretName, nameSpace string) map[string]string {
357+
func getCredentialsFromSecret(k8s kubernetes.Interface, secretName, nameSpace string) (map[string]string, error) {
350358
credentials := map[string]string{}
351359
if len(secretName) == 0 {
352-
return credentials
360+
return credentials, nil
353361
}
354362
secret, err := k8s.CoreV1().Secrets(nameSpace).Get(secretName, metav1.GetOptions{})
355363
if err != nil {
356-
glog.Warningf("failed to find the secret %s in the namespace %s with error: %v\n", secretName, nameSpace, err)
357-
return credentials
364+
return credentials, fmt.Errorf("failed to find the secret %s in the namespace %s with error: %v\n", secretName, nameSpace, err)
358365
}
359366
for key, value := range secret.Data {
360367
credentials[key] = string(value)
361368
}
362369

363-
return credentials
370+
return credentials, nil
364371
}

0 commit comments

Comments
 (0)