Skip to content

Commit fe25ee8

Browse files
authored
fix: add logs & fix finalizer deletion logic (#301)
Signed-off-by: maslow <[email protected]>
1 parent 88bae41 commit fe25ee8

File tree

3 files changed

+22
-12
lines changed

3 files changed

+22
-12
lines changed

controllers/database/controllers/database_controller.go

+10-4
Original file line numberDiff line numberDiff line change
@@ -52,10 +52,11 @@ type DatabaseReconciler struct {
5252
func (r *DatabaseReconciler) Reconcile(ctx context.Context, req ctrl.Request) (ctrl.Result, error) {
5353
log := log.FromContext(ctx)
5454

55+
log.Info("reconciling database")
56+
5557
// get the database
5658
var database databasev1.Database
5759
if err := r.Get(ctx, req.NamespacedName, &database); err != nil {
58-
log.Error(err, "unable to fetch Database")
5960
return ctrl.Result{}, client.IgnoreNotFound(err)
6061
}
6162

@@ -69,13 +70,16 @@ func (r *DatabaseReconciler) Reconcile(ctx context.Context, req ctrl.Request) (c
6970

7071
// apply the database
7172
func (r *DatabaseReconciler) apply(ctx context.Context, database *databasev1.Database) (ctrl.Result, error) {
73+
log := log.FromContext(ctx)
74+
7275
// add the finalizer
7376
if database.ObjectMeta.DeletionTimestamp.IsZero() {
7477
if !util.ContainsString(database.ObjectMeta.Finalizers, "database.laf.dev") {
7578
database.ObjectMeta.Finalizers = append(database.ObjectMeta.Finalizers, "database.laf.dev")
7679
if err := r.Update(ctx, database); err != nil {
7780
return ctrl.Result{}, err
7881
}
82+
log.Info("added the finalizer")
7983
}
8084
}
8185

@@ -85,13 +89,15 @@ func (r *DatabaseReconciler) apply(ctx context.Context, database *databasev1.Dat
8589
if err := r.selectStore(ctx, database); err != nil {
8690
return ctrl.Result{}, err
8791
}
92+
log.Info("selected a store for database")
8893
}
8994

9095
// reconcile the connection uri
9196
if database.Status.ConnectionURI == "" {
9297
if err := r.createDatabase(ctx, database); err != nil {
9398
return ctrl.Result{Requeue: true, RequeueAfter: time.Second * 10}, err
9499
}
100+
log.Info("created database successfully")
95101
}
96102

97103
// TODO: reconcile the storage capacity
@@ -127,14 +133,15 @@ func (r *DatabaseReconciler) delete(ctx context.Context, database *databasev1.Da
127133
return ctrl.Result{}, err
128134
}
129135

130-
log.Info("database deleted", "name", database.Name)
136+
log.Info("database user deleted", "name", database.Name)
131137

132138
// remove the finalizer
133-
database.ObjectMeta.Finalizers = nil
139+
database.ObjectMeta.Finalizers = util.RemoveString(database.ObjectMeta.Finalizers, "database.laf.dev")
134140
if err := r.Update(ctx, database); err != nil {
135141
return ctrl.Result{}, err
136142
}
137143

144+
log.Info("removed the finalizer")
138145
return ctrl.Result{}, nil
139146
}
140147

@@ -245,7 +252,6 @@ func (r *DatabaseReconciler) getDatabaseStore(ctx context.Context, storeNamespac
245252

246253
// SetupWithManager sets up the controller with the Manager.
247254
func (r *DatabaseReconciler) SetupWithManager(mgr ctrl.Manager) error {
248-
249255
return ctrl.NewControllerManagedBy(mgr).
250256
For(&databasev1.Database{}).
251257
Complete(r)

controllers/database/controllers/store_controller.go

+3-8
Original file line numberDiff line numberDiff line change
@@ -18,13 +18,12 @@ package controllers
1818

1919
import (
2020
"context"
21+
"sigs.k8s.io/controller-runtime/pkg/log"
2122

23+
databasev1 "github.com/labring/laf/controllers/database/api/v1"
2224
"k8s.io/apimachinery/pkg/runtime"
2325
ctrl "sigs.k8s.io/controller-runtime"
2426
"sigs.k8s.io/controller-runtime/pkg/client"
25-
"sigs.k8s.io/controller-runtime/pkg/log"
26-
27-
databasev1 "github.com/labring/laf/controllers/database/api/v1"
2827
)
2928

3029
// StoreReconciler reconciles a Store object
@@ -39,18 +38,14 @@ type StoreReconciler struct {
3938

4039
// Reconcile is part of the main kubernetes reconciliation loop which aims to
4140
// move the current state of the cluster closer to the desired state.
42-
// TODO(user): Modify the Reconcile function to compare the state specified by
4341
// the Store object against the actual cluster state, and then
4442
// perform operations to make the cluster state reflect the state specified by
4543
// the user.
4644
//
4745
// For more details, check Reconcile and its Result here:
4846
// - https://pkg.go.dev/sigs.k8s.io/[email protected]/pkg/reconcile
4947
func (r *StoreReconciler) Reconcile(ctx context.Context, req ctrl.Request) (ctrl.Result, error) {
50-
log := log.FromContext(ctx)
51-
52-
log.Info("Reconciling Store")
53-
48+
_ = log.FromContext(ctx)
5449
return ctrl.Result{}, nil
5550
}
5651

pkg/util/string.go

+9
Original file line numberDiff line numberDiff line change
@@ -8,3 +8,12 @@ func ContainsString(finalizers []string, s string) bool {
88
}
99
return false
1010
}
11+
12+
func RemoveString(finalizers []string, s string) []string {
13+
for i, v := range finalizers {
14+
if v == s {
15+
return append(finalizers[:i], finalizers[i+1:]...)
16+
}
17+
}
18+
return finalizers
19+
}

0 commit comments

Comments
 (0)