@@ -10,58 +10,12 @@ import (
1010 k8serrors "k8s.io/apimachinery/pkg/api/errors"
1111 metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
1212 "k8s.io/apimachinery/pkg/types"
13- "sigs.k8s.io/controller-runtime/pkg/client"
1413
1514 api "github.com/percona/percona-server-mongodb-operator/pkg/apis/psmdb/v1"
1615 "github.com/percona/percona-server-mongodb-operator/pkg/naming"
17- "github.com/percona/percona-server-mongodb-operator/pkg/psmdb"
1816 "github.com/percona/percona-server-mongodb-operator/pkg/psmdb/secret"
1917)
2018
21- func getUserSecret (ctx context.Context , cl client.Reader , cr * api.PerconaServerMongoDB , name string ) (corev1.Secret , error ) {
22- secrets := corev1.Secret {}
23- err := cl .Get (ctx , types.NamespacedName {Name : name , Namespace : cr .Namespace }, & secrets )
24- return secrets , errors .Wrap (err , "get user secrets" )
25- }
26-
27- func getInternalCredentials (ctx context.Context , cl client.Reader , cr * api.PerconaServerMongoDB , role api.SystemUserRole ) (psmdb.Credentials , error ) {
28- return getCredentials (ctx , cl , cr , api .UserSecretName (cr ), role )
29- }
30-
31- func getCredentials (ctx context.Context , cl client.Reader , cr * api.PerconaServerMongoDB , name string , role api.SystemUserRole ) (psmdb.Credentials , error ) {
32- creds := psmdb.Credentials {}
33- usersSecret , err := getUserSecret (ctx , cl , cr , name )
34- if err != nil {
35- return creds , errors .Wrap (err , "failed to get user secret" )
36- }
37-
38- switch role {
39- case api .RoleDatabaseAdmin :
40- creds .Username = string (usersSecret .Data [api .EnvMongoDBDatabaseAdminUser ])
41- creds .Password = string (usersSecret .Data [api .EnvMongoDBDatabaseAdminPassword ])
42- case api .RoleClusterAdmin :
43- creds .Username = string (usersSecret .Data [api .EnvMongoDBClusterAdminUser ])
44- creds .Password = string (usersSecret .Data [api .EnvMongoDBClusterAdminPassword ])
45- case api .RoleUserAdmin :
46- creds .Username = string (usersSecret .Data [api .EnvMongoDBUserAdminUser ])
47- creds .Password = string (usersSecret .Data [api .EnvMongoDBUserAdminPassword ])
48- case api .RoleClusterMonitor :
49- creds .Username = string (usersSecret .Data [api .EnvMongoDBClusterMonitorUser ])
50- creds .Password = string (usersSecret .Data [api .EnvMongoDBClusterMonitorPassword ])
51- case api .RoleBackup :
52- creds .Username = string (usersSecret .Data [api .EnvMongoDBBackupUser ])
53- creds .Password = string (usersSecret .Data [api .EnvMongoDBBackupPassword ])
54- default :
55- return creds , errors .Errorf ("not implemented for role: %s" , role )
56- }
57-
58- if creds .Username == "" || creds .Password == "" {
59- return creds , errors .Errorf ("can't find credentials for role %s" , role )
60- }
61-
62- return creds , nil
63- }
64-
6519func (r * ReconcilePerconaServerMongoDB ) reconcileUsersSecret (ctx context.Context , cr * api.PerconaServerMongoDB ) error {
6620 secretObj := corev1.Secret {}
6721 err := r .client .Get (ctx ,
0 commit comments