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) {