Skip to content

Conversation

@KevFan
Copy link
Contributor

@KevFan KevFan commented Dec 18, 2025

Description

Closes: #1690
Requires: Kuadrant/limitador-operator#222 Kuadrant/authorino#574

  • Propagates trace to limitador cr via annotation and links the limitador operator trace to the kuadrant opertor trace
  • Propagates trace to authorino auth configs cr via annotation and links the authorino control plane trace to the kuadrant opertor trace

Limitador Operator -> Kuadrant Operator
image
image

Authorino -> Kuadrant Operator
image
image

@KevFan KevFan changed the title feat: propagate trace via annnotation for limitador feat: propagate trace via annnotation for limitador cr Dec 18, 2025
@KevFan KevFan force-pushed the issues/1690 branch 3 times, most recently from de01221 to 8658079 Compare December 22, 2025 15:17
@alexsnaps
Copy link
Member

👍

@KevFan KevFan self-assigned this Jan 21, 2026
@KevFan KevFan added this to Kuadrant Jan 21, 2026
@KevFan KevFan moved this to Ready For Review in Kuadrant Jan 21, 2026
limitador.Annotations = make(map[string]string)
}

otel.GetTextMapPropagator().Inject(ctx, propagation.MapCarrier(limitador.Annotations))
Copy link
Contributor Author

@KevFan KevFan Jan 21, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Only setting annotation here. Did not also set the annotation at limitador reconciler at:

limitador := &limitadorv1alpha1.Limitador{
TypeMeta: metav1.TypeMeta{
Kind: "Limitador",
APIVersion: "limitador.kuadrant.io/v1alpha1",
},
ObjectMeta: metav1.ObjectMeta{
Name: kuadrant.LimitadorName,
Namespace: kobj.Namespace,
OwnerReferences: []metav1.OwnerReference{
{
APIVersion: kobj.GroupVersionKind().GroupVersion().String(),
Kind: kobj.GroupVersionKind().Kind,
Name: kobj.Name,
UID: kobj.UID,
BlockOwnerDeletion: ptr.To(true),
Controller: ptr.To(true),
},
},
},
Spec: limitadorv1alpha1.LimitadorSpec{
MetricLabelsDefault: ptr.To("descriptors[1]"),
},
}

since if we apply the annotation at both these places, one will override the other and cause a reconcile loop. Maybe this is a non-issue since I'm guessing we only care about tracing the reconcile of the limitador limits portion.

But I wonder if we should/want to merge the reconcilers for limitador creation and the limitador limits

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yeah that's a good point, I do tend to agree we probably only care about limit reconciles but it does open up the question of why we have both

@KevFan KevFan marked this pull request as ready for review January 21, 2026 19:22
@KevFan KevFan requested a review from a team as a code owner January 21, 2026 19:22
KevFan and others added 3 commits January 22, 2026 17:13
Signed-off-by: KevFan <chfan@redhat.com>
Signed-off-by: KevFan <chfan@redhat.com>
Signed-off-by: KevFan <kevin_fan@hotmail.co.uk>
@KevFan KevFan changed the title feat: propagate trace via annnotation for limitador cr feat: propagate trace via annnotation for limitador cr & auth configs Jan 22, 2026
@KevFan
Copy link
Contributor Author

KevFan commented Jan 22, 2026

Updated PR to also inject the trace annotation into auth configs to link traces (Kuadrant/authorino#574 is the related authorino PR)

Copy link
Member

@adam-cattermole adam-cattermole left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Managed to verify this with the other changes and it's working as it's intended.

I don't think it's necessarily tied to this PR; but we might need to revisit this solution - once we set the annotation all reconciles whether they were triggered by the kuadrant-operator, other changes in the cluster, or users changing the CR will be linked to the last time we set the traceparent. I don't think this is necessarily a bad thing as it's still providing the link to the last time the kuadrant-operator updated it; but the source of that specific reconcile or change may not be at all related.

@KevFan
Copy link
Contributor Author

KevFan commented Jan 27, 2026

Managed to verify this with the other changes and it's working as it's intended.

I don't think it's necessarily tied to this PR; but we might need to revisit this solution - once we set the annotation all reconciles whether they were triggered by the kuadrant-operator, other changes in the cluster, or users changing the CR will be linked to the last time we set the traceparent. I don't think this is necessarily a bad thing as it's still providing the link to the last time the kuadrant-operator updated it; but the source of that specific reconcile or change may not be at all related.

Yeah, that's the only thing with this. The traceparent annotation should only be viewed as the last time that kuadrant operator reconciled any "managed-fields" of these CRs 🤔

@KevFan KevFan added this pull request to the merge queue Jan 27, 2026
Merged via the queue into Kuadrant:main with commit 0562347 Jan 27, 2026
47 of 49 checks passed
@KevFan KevFan deleted the issues/1690 branch January 27, 2026 12:39
@github-project-automation github-project-automation bot moved this from Ready For Review to Done in Kuadrant Jan 27, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

Status: Done

Development

Successfully merging this pull request may close these issues.

Wire subcomponent reconcile spans to the Kuadrant Operator ones

3 participants