This is an automated email from the ASF dual-hosted git repository.

gfournier pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/camel-k.git

commit cbaa59c3ad9f410294a61d7e8d776d1663d3b847
Author: Gaelle Fournier <gaelle.fournier.w...@gmail.com>
AuthorDate: Wed Sep 4 15:17:37 2024 +0200

    feat(5787): Add depreciation condition for telemetry as addon
---
 e2e/telemetry/telemetry_test.go |  2 ++
 pkg/trait/telemetry.go          | 23 +++++++++++++++++++----
 2 files changed, 21 insertions(+), 4 deletions(-)

diff --git a/e2e/telemetry/telemetry_test.go b/e2e/telemetry/telemetry_test.go
index 12a5cd7f8..0c8ba28da 100644
--- a/e2e/telemetry/telemetry_test.go
+++ b/e2e/telemetry/telemetry_test.go
@@ -75,6 +75,8 @@ func TestTelemetryAddon(t *testing.T) {
                // Create integration and activate traces by telemetry trait
                ExpectExecSucceed(t, g, Kubectl("apply", "-f", 
"files/int-rest-consumer-addon.yaml", "-n", ns))
                g.Eventually(IntegrationPodPhase(t, ctx, ns, 
"rest-consumer-addon"), TestTimeoutLong).Should(Equal(corev1.PodRunning))
+               g.Eventually(IntegrationCondition(t, ctx, ns, 
"rest-consumer-addon", "TelemetryTraitInfo"), TestTimeoutShort).Should(
+                       WithTransform(IntegrationConditionMessage, 
ContainSubstring("Telemetry addon configuration is deprecated")))
 
                name := "Alice"
                serviceName := fmt.Sprintf("rest-consumer-addon.%s", ns)
diff --git a/pkg/trait/telemetry.go b/pkg/trait/telemetry.go
index 963cdbe6b..72af4a261 100644
--- a/pkg/trait/telemetry.go
+++ b/pkg/trait/telemetry.go
@@ -67,11 +67,22 @@ func (t *telemetryTrait) Configure(e *Environment) (bool, 
*TraitCondition, error
                return false, nil, nil
        }
 
-       if !ptr.Deref(t.Auto, true) {
-               return true, nil, nil
+       var condition *TraitCondition
+
+       // Deprecated
+       if _, isAddon := e.Integration.Spec.Traits.Addons["telemetry"]; isAddon 
{
+               condition = NewIntegrationCondition(
+                       "Telemetry",
+                       v1.IntegrationConditionTraitInfo,
+                       corev1.ConditionTrue,
+                       traitConfigurationReason,
+                       "Telemetry addon configuration is deprecated and may be 
removed in future releases. Make sure to use Telemetry trait configuration 
instead.",
+               )
        }
 
-       var condition *TraitCondition
+       if !ptr.Deref(t.Auto, true) {
+               return true, condition, nil
+       }
 
        if t.Endpoint == "" {
                for _, locator := range discovery.TelemetryLocators {
@@ -81,11 +92,15 @@ func (t *telemetryTrait) Configure(e *Environment) (bool, 
*TraitCondition, error
                        }
                        if endpoint != "" {
                                t.L.Infof("Using tracing endpoint: %s", 
endpoint)
+                               conditionMessage := "TracingEndpoint"
+                               if condition != nil {
+                                       conditionMessage = conditionMessage + 
";" + condition.message
+                               }
                                condition = NewIntegrationCondition(
                                        "Telemetry",
                                        v1.IntegrationConditionTraitInfo,
                                        corev1.ConditionTrue,
-                                       "TracingEndpoint",
+                                       conditionMessage,
                                        endpoint,
                                )
                                t.Endpoint = endpoint

Reply via email to