in shardingsphere-operator/pkg/controllers/storage_node_controller.go [244:270]
func (r *StorageNodeReconciler) getStorageProvider(ctx context.Context, node *v1alpha1.StorageNode) (storageProvider *v1alpha1.StorageProvider, err error) {
if node.Spec.StorageProviderName == "" {
r.Recorder.Event(node, corev1.EventTypeWarning, "storageProviderNameIsNil", "storageProviderName is nil")
return nil, fmt.Errorf("storageProviderName is nil")
}
storageProvider = &v1alpha1.StorageProvider{}
if err := r.Get(ctx, client.ObjectKey{Name: node.Spec.StorageProviderName}, storageProvider); err != nil {
r.Log.Error(err, fmt.Sprintf("unable to fetch storageProvider %s", node.Spec.StorageProviderName))
r.Recorder.Event(node, corev1.EventTypeWarning, "storageProviderNotFound", fmt.Sprintf("storageProvider %s not found", node.Spec.StorageProviderName))
return nil, err
}
// check provisioner
// aws-like provisioner need aws rds client
if storageProvider.Spec.Provisioner == v1alpha1.ProvisionerAWSRDSInstance ||
storageProvider.Spec.Provisioner == v1alpha1.ProvisionerAWSAurora ||
storageProvider.Spec.Provisioner == v1alpha1.ProvisionerAWSRDSCluster {
if r.AwsRegion == "" || r.AwsAccessKeyID == "" || r.AwsSecretAccessKey == "" {
r.Recorder.Eventf(node, corev1.EventTypeWarning, "awsCredentialsNotSet", "aws credentials not set")
return nil, fmt.Errorf("aws credentials not set")
}
}
return storageProvider, nil
}