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

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


The following commit(s) were added to refs/heads/main by this push:
     new 2ae4884cb Fix #6637: Report builder task strategy errors
2ae4884cb is described below

commit 2ae4884cbcaae93524179451c5f46721e372b776
Author: Davy <[email protected]>
AuthorDate: Tue May 19 17:22:50 2026 -0700

    Fix #6637: Report builder task strategy errors
---
 pkg/controller/integration/build_kit_test.go | 7 +++++++
 pkg/trait/builder.go                         | 5 +++++
 pkg/trait/builder_test.go                    | 4 ++++
 3 files changed, 16 insertions(+)

diff --git a/pkg/controller/integration/build_kit_test.go 
b/pkg/controller/integration/build_kit_test.go
index d5d020f60..f17ebf859 100644
--- a/pkg/controller/integration/build_kit_test.go
+++ b/pkg/controller/integration/build_kit_test.go
@@ -130,12 +130,19 @@ func TestCamelBuildKitKitSetOnIntegration(t *testing.T) {
        // Move IntegrationKit phase to ready status
        it.Status.Phase = v1.IntegrationPhaseBuildingKit
        ik.Status.Phase = v1.IntegrationKitPhaseError
+       ik.Status.Failure = &v1.Failure{
+               Reason: "Pipeline tasks unavailable when using `routine` 
platform build strategy: use `pod` instead.",
+               Time:   metav1.Now(),
+       }
        c, err = internal.NewFakeClient(it, ik)
        require.NoError(t, err)
        a.InjectClient(c)
        handledIt, err = a.Handle(context.TODO(), it)
        require.NoError(t, err)
        assert.Equal(t, v1.IntegrationPhaseError, handledIt.Status.Phase)
+       kitAvailable := 
handledIt.Status.GetCondition(v1.IntegrationConditionKitAvailable)
+       require.NotNil(t, kitAvailable)
+       assert.Contains(t, kitAvailable.Message, "Pipeline tasks unavailable 
when using `routine` platform build strategy: use `pod` instead.")
 
        // Remove IntegrationKit
        it.Status.Phase = v1.IntegrationPhaseBuildingKit
diff --git a/pkg/trait/builder.go b/pkg/trait/builder.go
index 35ff78036..0aa1a2ce6 100644
--- a/pkg/trait/builder.go
+++ b/pkg/trait/builder.go
@@ -29,6 +29,7 @@ import (
        "github.com/apache/camel-k/v2/pkg/util/boolean"
 
        corev1 "k8s.io/api/core/v1"
+       metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
 
        v1 "github.com/apache/camel-k/v2/pkg/apis/camel/v1"
        traitv1 "github.com/apache/camel-k/v2/pkg/apis/camel/v1/trait"
@@ -336,6 +337,10 @@ func failIntegrationKit(e *Environment, conditionType 
v1.IntegrationKitCondition
        if e.IntegrationKit != nil {
                e.IntegrationKit.Status.Phase = v1.IntegrationKitPhaseError
                e.IntegrationKit.Status.SetCondition(conditionType, status, 
reason, message)
+               e.IntegrationKit.Status.Failure = &v1.Failure{
+                       Reason: message,
+                       Time:   metav1.Now(),
+               }
                if err := e.Client.Status().Update(e.Ctx, e.IntegrationKit); 
err != nil {
                        return err
                }
diff --git a/pkg/trait/builder_test.go b/pkg/trait/builder_test.go
index 90bfddf9f..7bf57fdbf 100644
--- a/pkg/trait/builder_test.go
+++ b/pkg/trait/builder_test.go
@@ -198,6 +198,8 @@ func TestCustomTaskBuilderTraitInvalidStrategy(t 
*testing.T) {
        assert.Equal(t, v1.IntegrationKitPhaseError, 
env.IntegrationKit.Status.Phase)
        assert.Equal(t, corev1.ConditionFalse, 
env.IntegrationKit.Status.Conditions[0].Status)
        assert.Equal(t, env.IntegrationKit.Status.Conditions[0].Type, 
v1.IntegrationKitConditionType("IntegrationKitTasksValid"))
+       require.NotNil(t, env.IntegrationKit.Status.Failure)
+       assert.Equal(t, "Pipeline tasks unavailable when using `routine` 
platform build strategy: use `pod` instead.", 
env.IntegrationKit.Status.Failure.Reason)
 }
 
 func TestCustomTaskBuilderTraitInvalidStrategyOverride(t *testing.T) {
@@ -213,6 +215,8 @@ func TestCustomTaskBuilderTraitInvalidStrategyOverride(t 
*testing.T) {
        assert.Equal(t, v1.IntegrationKitPhaseError, 
env.IntegrationKit.Status.Phase)
        assert.Equal(t, corev1.ConditionFalse, 
env.IntegrationKit.Status.Conditions[0].Status)
        assert.Equal(t, env.IntegrationKit.Status.Conditions[0].Type, 
v1.IntegrationKitConditionType("IntegrationKitTasksValid"))
+       require.NotNil(t, env.IntegrationKit.Status.Failure)
+       assert.Equal(t, "Pipeline tasks unavailable when using `routine` 
platform build strategy: use `pod` instead.", 
env.IntegrationKit.Status.Failure.Reason)
 }
 
 func TestMavenProfilesBuilderTrait(t *testing.T) {

Reply via email to