Skip to content

Commit aab4b87

Browse files
authored
Merge pull request #34 from kloeckner-i/METAL-2096/persist_db_info_in_status
[METAL-2096] Save database name and user info in CR status
2 parents e583b53 + e514dfd commit aab4b87

3 files changed

Lines changed: 14 additions & 17 deletions

File tree

pkg/apis/kci/v1alpha1/database_types.go

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,8 @@ type DatabaseStatus struct {
3030
InstanceRef *DbInstance `json:"instanceRef"`
3131
MonitorUserSecretName string `json:"monitorUserSecret,omitempty"`
3232
ProxyStatus DatabaseProxyStatus `json:"proxyStatus,omitempty"`
33+
DatabaseName string `json:"database"`
34+
UserName string `json:"user"`
3335
}
3436

3537
// DatabaseProxyStatus defines whether proxy for database is enabled or not

pkg/controller/database/controller.go

Lines changed: 0 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -207,12 +207,6 @@ func (r *ReconcileDatabase) Reconcile(request reconcile.Request) (reconcile.Resu
207207
// when database creation failed, don't requeue request. to prevent exceeding api limit (ex: against google api)
208208
return r.manageError(dbcr, err, false)
209209
}
210-
kci.AddFinalizer(&dbcr.ObjectMeta, "db."+dbcr.Name)
211-
err = r.client.Update(context.Background(), dbcr)
212-
if err != nil {
213-
logrus.Errorf("error resource updating - %s", err)
214-
return r.manageError(dbcr, err, true)
215-
}
216210
dbcr.Status.Phase = phaseInstanceAccessSecret
217211
case phaseInstanceAccessSecret:
218212
err := r.createInstanceAccessSecret(dbcr)

pkg/controller/database/reconcileDatabase.go

Lines changed: 12 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -114,6 +114,15 @@ func (r *ReconcileDatabase) createDatabase(dbcr *kciv1alpha1.Database) error {
114114
return err
115115
}
116116

117+
kci.AddFinalizer(&dbcr.ObjectMeta, "db."+dbcr.Name)
118+
err = r.client.Update(context.Background(), dbcr)
119+
if err != nil {
120+
logrus.Errorf("error resource updating - %s", err)
121+
return err
122+
}
123+
124+
dbcr.Status.DatabaseName = databaseCred.Name
125+
dbcr.Status.UserName = databaseCred.Username
117126
logrus.Infof("DB: namespace=%s, name=%s successfully created", dbcr.Namespace, dbcr.Name)
118127
return nil
119128
}
@@ -124,17 +133,9 @@ func (r *ReconcileDatabase) deleteDatabase(dbcr *kciv1alpha1.Database) error {
124133
return nil
125134
}
126135

127-
// Todo: save database in info and use it for deletion, instead of re-calculating dbname for deletion info
128-
secretData, err := generateDatabaseSecretData(dbcr)
129-
if err != nil {
130-
logrus.Errorf("can not generate credentials for database - %s", err)
131-
return err
132-
}
133-
134-
databaseCred, err := parseDatabaseSecretData(dbcr, secretData)
135-
if err != nil {
136-
// failed to parse database credential from secret
137-
return err
136+
databaseCred := database.Credentials{
137+
Name: dbcr.Status.DatabaseName,
138+
Username: dbcr.Status.UserName,
138139
}
139140

140141
db, err := determinDatabaseType(dbcr, databaseCred)

0 commit comments

Comments
 (0)