This is an automated email from the ASF dual-hosted git repository.
miaoliyao pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/shardingsphere-on-cloud.git
The following commit(s) were added to refs/heads/main by this push:
new 1b50b85 fix(storage-node): fix get username and password from dbClass
new c9473aa Merge pull request #386 from yikuaibro/db_class
1b50b85 is described below
commit 1b50b853a348700ef35fcfcc3c0ea3367c82b67d
Author: li <[email protected]>
AuthorDate: Thu Jun 1 14:52:28 2023 +0800
fix(storage-node): fix get username and password from dbClass
---
.../pkg/controllers/storage_ndoe_controller_test.go | 18 +++++++++++++++++-
.../pkg/controllers/storage_node_controller.go | 10 ++++++++--
2 files changed, 25 insertions(+), 3 deletions(-)
diff --git
a/shardingsphere-operator/pkg/controllers/storage_ndoe_controller_test.go
b/shardingsphere-operator/pkg/controllers/storage_ndoe_controller_test.go
index 87e2fba..d165f62 100644
--- a/shardingsphere-operator/pkg/controllers/storage_ndoe_controller_test.go
+++ b/shardingsphere-operator/pkg/controllers/storage_ndoe_controller_test.go
@@ -625,6 +625,9 @@ var _ = Describe("StorageNode Controller Mock Test", func()
{
dbmeshv1alpha1.AnnotationsInstanceDBName: testName,
},
},
+ Spec: v1alpha1.StorageNodeSpec{
+ DatabaseClassName: defaultTestDBClass,
+ },
Status: v1alpha1.StorageNodeStatus{
Phase: v1alpha1.StorageNodePhaseReady,
Instances: []v1alpha1.InstanceStatus{
@@ -636,11 +639,24 @@ var _ = Describe("StorageNode Controller Mock Test",
func() {
},
}
+ dbClass := &dbmeshv1alpha1.DatabaseClass{
+ ObjectMeta: metav1.ObjectMeta{
+ Name: defaultTestDBClass,
+ },
+ Spec: dbmeshv1alpha1.DatabaseClassSpec{
+ Provisioner:
dbmeshv1alpha1.ProvisionerAWSRDSInstance,
+ Parameters: map[string]string{
+ "masterUsername": testName,
+ "masterUserPassword": testName,
+ },
+ },
+ }
+
mockSS.EXPECT().CreateDatabase(gomock.Any()).Return(nil)
mockSS.EXPECT().Close().Return(nil)
mockSS.EXPECT().RegisterStorageUnit(gomock.Any(),
gomock.Any(), gomock.Any(), gomock.Any(), gomock.Any(), gomock.Any(),
gomock.Any()).Return(nil)
- Expect(reconciler.registerStorageUnit(ctx,
sn)).To(BeNil())
+ Expect(reconciler.registerStorageUnit(ctx, sn,
dbClass)).To(BeNil())
Expect(sn.Status.Registered).To(BeTrue())
})
diff --git a/shardingsphere-operator/pkg/controllers/storage_node_controller.go
b/shardingsphere-operator/pkg/controllers/storage_node_controller.go
index 3c99383..6ac2242 100644
--- a/shardingsphere-operator/pkg/controllers/storage_node_controller.go
+++ b/shardingsphere-operator/pkg/controllers/storage_node_controller.go
@@ -166,7 +166,7 @@ func (r *StorageNodeReconciler) reconcile(ctx
context.Context, dbClass *dbmeshv1
}
// register storage unit if needed.
- if err := r.registerStorageUnit(ctx, node); err != nil {
+ if err := r.registerStorageUnit(ctx, node, dbClass); err != nil {
r.Recorder.Eventf(node, corev1.EventTypeWarning,
"RegisterStorageUnitFailed", "unable to register storage unit %s/%s",
node.GetNamespace(), node.GetName())
return ctrl.Result{Requeue: true}, err
}
@@ -463,7 +463,7 @@ func (r *StorageNodeReconciler) deleteAWSRDSInstance(ctx
context.Context, client
}
// registerStorageUnit
-func (r *StorageNodeReconciler) registerStorageUnit(ctx context.Context, node
*v1alpha1.StorageNode) error {
+func (r *StorageNodeReconciler) registerStorageUnit(ctx context.Context, node
*v1alpha1.StorageNode, dbClass *dbmeshv1alpha1.DatabaseClass) error {
// if register storage unit is not enabled, return
if node.Annotations[AnnotationKeyRegisterStorageUnitEnabled] != "true" {
return nil
@@ -505,7 +505,13 @@ func (r *StorageNodeReconciler) registerStorageUnit(ctx
context.Context, node *v
host := ins.Endpoint.Address
port := ins.Endpoint.Port
username := node.Annotations[dbmeshv1alpha1.AnnotationsMasterUsername]
+ if username == "" {
+ username = dbClass.Spec.Parameters["masterUsername"]
+ }
password :=
node.Annotations[dbmeshv1alpha1.AnnotationsMasterUserPassword]
+ if password == "" {
+ password = dbClass.Spec.Parameters["masterUserPassword"]
+ }
// TODO how to set ds name?
if err := ssServer.RegisterStorageUnit(logicDBName, "ds_0", host,
uint(port), dbName, username, password); err != nil {