Skip to content

Commit 1a256b6

Browse files
authored
Merge pull request #2000 from kube-logging/feat/fix-child-res-reconcile
fix(logging_controller): reconcile child resources
2 parents c1df74b + 04b5f17 commit 1a256b6

File tree

2 files changed

+34
-2
lines changed

2 files changed

+34
-2
lines changed

controllers/logging/logging_controller.go

+33
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,7 @@ import (
3131
v1 "github.com/prometheus-operator/prometheus-operator/pkg/apis/monitoring/v1"
3232
"github.com/prometheus/client_golang/prometheus"
3333
corev1 "k8s.io/api/core/v1"
34+
"k8s.io/apimachinery/pkg/runtime/schema"
3435
"k8s.io/apimachinery/pkg/types"
3536
"k8s.io/client-go/tools/record"
3637
ctrl "sigs.k8s.io/controller-runtime"
@@ -542,6 +543,38 @@ func SetupLoggingWithManager(mgr ctrl.Manager, logger logr.Logger) *ctrl.Builder
542543
return nil
543544
}
544545

546+
for _, ref := range obj.GetOwnerReferences() {
547+
refGV, err := schema.ParseGroupVersion(ref.APIVersion)
548+
if err != nil {
549+
logger.Error(err, "failed to parse group version", "apiVersion", ref.APIVersion)
550+
continue
551+
}
552+
553+
const (
554+
FluentbitAgentKind = "FluentbitAgent"
555+
FluentdConfigKind = "FluentdConfig"
556+
SyslogNGConfigKind = "SyslogNGConfig"
557+
)
558+
559+
// Check if this is owned by FluentbitAgent, FluentdConfig, or SyslogNGConfig
560+
// and then map back to the relevant Logging resource
561+
if refGV.Group == loggingv1beta1.GroupVersion.Group {
562+
switch ref.Kind {
563+
case FluentbitAgentKind:
564+
var agent loggingv1beta1.FluentbitAgent
565+
if err := mgr.GetClient().Get(ctx, types.NamespacedName{
566+
Name: ref.Name,
567+
Namespace: obj.GetNamespace(),
568+
}, &agent); err == nil {
569+
return reconcileRequestsForLoggingRef(loggingList.Items, agent.Spec.LoggingRef)
570+
}
571+
572+
case FluentdConfigKind, SyslogNGConfigKind:
573+
return reconcileRequestsForMatchingControlNamespace(loggingList.Items, obj.GetNamespace())
574+
}
575+
}
576+
}
577+
545578
switch o := obj.(type) {
546579
case *loggingv1beta1.ClusterOutput:
547580
return reconcileRequestsForLoggingRef(loggingList.Items, o.Spec.LoggingRef)

controllers/logging/telemetry_controller_controller.go

+1-2
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,6 @@ import (
2727
"sigs.k8s.io/controller-runtime/pkg/reconcile"
2828

2929
telemetry_controller "github.com/kube-logging/logging-operator/pkg/resources/telemetry-controller"
30-
"github.com/kube-logging/logging-operator/pkg/sdk/logging/api/v1beta1"
3130
loggingv1beta1 "github.com/kube-logging/logging-operator/pkg/sdk/logging/api/v1beta1"
3231
)
3332

@@ -160,7 +159,7 @@ func (r *TelemetryControllerReconciler) deleteTelemetryControllerResources(ctx c
160159
return nil
161160
}
162161

163-
func (r *TelemetryControllerReconciler) isAggregatorReady(ctx context.Context, logger logr.Logger, logging v1beta1.Logging) error {
162+
func (r *TelemetryControllerReconciler) isAggregatorReady(ctx context.Context, logger logr.Logger, logging loggingv1beta1.Logging) error {
164163
logger.Info("Waiting for aggregator pod to be ready")
165164

166165
podName := fmt.Sprintf("%s-fluentd-0", logging.Name)

0 commit comments

Comments
 (0)