Skip to content

Commit 8462ad3

Browse files
committed
feat: context aware reconcilers
Signed-off-by: Peter Wilcsinszky <[email protected]>
1 parent 74da88c commit 8462ad3

File tree

7 files changed

+20
-15
lines changed

7 files changed

+20
-15
lines changed

controllers/logging/logging_controller.go

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -144,8 +144,8 @@ func (r *LoggingReconciler) Reconcile(ctx context.Context, req ctrl.Request) (ct
144144
}
145145
}()
146146

147-
reconcilers := []resources.ComponentReconciler{
148-
model.NewValidationReconciler(ctx, r.Client, loggingResources, &secretLoaderFactory{Client: r.Client, Path: fluentd.OutputSecretPath}),
147+
reconcilers := []resources.ContextAwareComponentReconciler{
148+
model.NewValidationReconciler(r.Client, loggingResources, &secretLoaderFactory{Client: r.Client, Path: fluentd.OutputSecretPath}),
149149
}
150150

151151
if logging.Spec.FluentdSpec != nil && logging.Spec.SyslogNGSpec != nil {
@@ -158,7 +158,7 @@ func (r *LoggingReconciler) Reconcile(ctx context.Context, req ctrl.Request) (ct
158158
fluentdConfig, secretList, err := r.clusterConfigurationFluentd(loggingResources)
159159
if err != nil {
160160
// TODO: move config generation into Fluentd reconciler
161-
reconcilers = append(reconcilers, func() (*reconcile.Result, error) {
161+
reconcilers = append(reconcilers, func(ctx context.Context) (*reconcile.Result, error) {
162162
return &reconcile.Result{}, err
163163
})
164164
} else {
@@ -173,7 +173,7 @@ func (r *LoggingReconciler) Reconcile(ctx context.Context, req ctrl.Request) (ct
173173
syslogNGConfig, secretList, err := r.clusterConfigurationSyslogNG(loggingResources)
174174
if err != nil {
175175
// TODO: move config generation into Syslog-NG reconciler
176-
reconcilers = append(reconcilers, func() (*reconcile.Result, error) {
176+
reconcilers = append(reconcilers, func(ctx context.Context) (*reconcile.Result, error) {
177177
return &reconcile.Result{}, err
178178
})
179179
} else {
@@ -238,7 +238,7 @@ func (r *LoggingReconciler) Reconcile(ctx context.Context, req ctrl.Request) (ct
238238
}
239239

240240
for _, rec := range reconcilers {
241-
result, err := rec()
241+
result, err := rec(ctx)
242242
if err != nil {
243243
return reconcile.Result{}, err
244244
}

pkg/resources/fluentbit/fluentbit.go

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,8 @@
1515
package fluentbit
1616

1717
import (
18+
"context"
19+
1820
"emperror.dev/errors"
1921
v1 "k8s.io/apimachinery/pkg/apis/meta/v1"
2022
"k8s.io/apimachinery/pkg/runtime"
@@ -112,7 +114,7 @@ func New(client client.Client,
112114
}
113115

114116
// Reconcile reconciles the fluentBit resource
115-
func (r *Reconciler) Reconcile() (*reconcile.Result, error) {
117+
func (r *Reconciler) Reconcile(ctx context.Context) (*reconcile.Result, error) {
116118
if err := v1beta1.FluentBitDefaults(r.fluentbitSpec); err != nil {
117119
return nil, err
118120
}

pkg/resources/fluentd/fluentd.go

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -98,8 +98,7 @@ func New(client client.Client, log logr.Logger,
9898
}
9999

100100
// Reconcile reconciles the fluentd resource
101-
func (r *Reconciler) Reconcile() (*reconcile.Result, error) {
102-
ctx := context.Background()
101+
func (r *Reconciler) Reconcile(ctx context.Context) (*reconcile.Result, error) {
103102
patchBase := client.MergeFrom(r.Logging.DeepCopy())
104103

105104
objects := []resources.Resource{

pkg/resources/model/reconciler.go

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -23,20 +23,20 @@ import (
2323
"emperror.dev/errors"
2424
"github.com/cisco-open/operator-tools/pkg/secret"
2525
"github.com/cisco-open/operator-tools/pkg/utils"
26-
loggingv1beta1 "github.com/kube-logging/logging-operator/pkg/sdk/logging/api/v1beta1"
2726
"sigs.k8s.io/controller-runtime/pkg/client"
2827
"sigs.k8s.io/controller-runtime/pkg/reconcile"
2928

29+
loggingv1beta1 "github.com/kube-logging/logging-operator/pkg/sdk/logging/api/v1beta1"
30+
3031
"github.com/kube-logging/logging-operator/pkg/mirror"
3132
)
3233

3334
func NewValidationReconciler(
34-
ctx context.Context,
3535
repo client.StatusClient,
3636
resources LoggingResources,
3737
secrets SecretLoaderFactory,
38-
) func() (*reconcile.Result, error) {
39-
return func() (*reconcile.Result, error) {
38+
) func(ctx context.Context) (*reconcile.Result, error) {
39+
return func(ctx context.Context) (*reconcile.Result, error) {
4040
var patchRequests []patchRequest
4141
registerForPatching := func(obj client.Object) {
4242
patchRequests = append(patchRequests, patchRequest{

pkg/resources/nodeagent/nodeagent.go

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@
1515
package nodeagent
1616

1717
import (
18+
"context"
1819
"fmt"
1920

2021
"emperror.dev/errors"
@@ -292,7 +293,7 @@ type nodeAgentInstance struct {
292293
}
293294

294295
// Reconcile reconciles the InlineNodeAgent resource
295-
func (r *Reconciler) Reconcile() (*reconcile.Result, error) {
296+
func (r *Reconciler) Reconcile(_ context.Context) (*reconcile.Result, error) {
296297
combinedResult := reconciler.CombinedResult{}
297298
for name, userDefinedAgent := range r.agents {
298299
result, err := r.processAgent(name, userDefinedAgent)

pkg/resources/reconciler.go

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,8 @@
1515
package resources
1616

1717
import (
18+
"context"
19+
1820
"github.com/cisco-open/operator-tools/pkg/reconciler"
1921
"github.com/go-logr/logr"
2022
"k8s.io/apimachinery/pkg/runtime"
@@ -24,6 +26,8 @@ import (
2426
// ComponentReconciler reconciler interface
2527
type ComponentReconciler func() (*reconcile.Result, error)
2628

29+
type ContextAwareComponentReconciler func(context.Context) (*reconcile.Result, error)
30+
2731
// Resource redeclaration of function with return type kubernetes Object
2832
type Resource func() (runtime.Object, reconciler.DesiredState, error)
2933

pkg/resources/syslogng/syslogng.go

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -102,8 +102,7 @@ func New(
102102
}
103103

104104
// Reconcile reconciles the syslog-ng resource
105-
func (r *Reconciler) Reconcile() (*reconcile.Result, error) {
106-
ctx := context.Background()
105+
func (r *Reconciler) Reconcile(ctx context.Context) (*reconcile.Result, error) {
107106
patchBase := client.MergeFrom(r.Logging.DeepCopy())
108107

109108
for _, res := range []resources.Resource{

0 commit comments

Comments
 (0)