Skip to content

Commit 2ae4884

Browse files
thedavidwengsquakez
authored andcommitted
Fix #6637: Report builder task strategy errors
1 parent baf50ee commit 2ae4884

3 files changed

Lines changed: 16 additions & 0 deletions

File tree

pkg/controller/integration/build_kit_test.go

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -130,12 +130,19 @@ func TestCamelBuildKitKitSetOnIntegration(t *testing.T) {
130130
// Move IntegrationKit phase to ready status
131131
it.Status.Phase = v1.IntegrationPhaseBuildingKit
132132
ik.Status.Phase = v1.IntegrationKitPhaseError
133+
ik.Status.Failure = &v1.Failure{
134+
Reason: "Pipeline tasks unavailable when using `routine` platform build strategy: use `pod` instead.",
135+
Time: metav1.Now(),
136+
}
133137
c, err = internal.NewFakeClient(it, ik)
134138
require.NoError(t, err)
135139
a.InjectClient(c)
136140
handledIt, err = a.Handle(context.TODO(), it)
137141
require.NoError(t, err)
138142
assert.Equal(t, v1.IntegrationPhaseError, handledIt.Status.Phase)
143+
kitAvailable := handledIt.Status.GetCondition(v1.IntegrationConditionKitAvailable)
144+
require.NotNil(t, kitAvailable)
145+
assert.Contains(t, kitAvailable.Message, "Pipeline tasks unavailable when using `routine` platform build strategy: use `pod` instead.")
139146

140147
// Remove IntegrationKit
141148
it.Status.Phase = v1.IntegrationPhaseBuildingKit

pkg/trait/builder.go

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,7 @@ import (
2929
"github.com/apache/camel-k/v2/pkg/util/boolean"
3030

3131
corev1 "k8s.io/api/core/v1"
32+
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
3233

3334
v1 "github.com/apache/camel-k/v2/pkg/apis/camel/v1"
3435
traitv1 "github.com/apache/camel-k/v2/pkg/apis/camel/v1/trait"
@@ -336,6 +337,10 @@ func failIntegrationKit(e *Environment, conditionType v1.IntegrationKitCondition
336337
if e.IntegrationKit != nil {
337338
e.IntegrationKit.Status.Phase = v1.IntegrationKitPhaseError
338339
e.IntegrationKit.Status.SetCondition(conditionType, status, reason, message)
340+
e.IntegrationKit.Status.Failure = &v1.Failure{
341+
Reason: message,
342+
Time: metav1.Now(),
343+
}
339344
if err := e.Client.Status().Update(e.Ctx, e.IntegrationKit); err != nil {
340345
return err
341346
}

pkg/trait/builder_test.go

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -198,6 +198,8 @@ func TestCustomTaskBuilderTraitInvalidStrategy(t *testing.T) {
198198
assert.Equal(t, v1.IntegrationKitPhaseError, env.IntegrationKit.Status.Phase)
199199
assert.Equal(t, corev1.ConditionFalse, env.IntegrationKit.Status.Conditions[0].Status)
200200
assert.Equal(t, env.IntegrationKit.Status.Conditions[0].Type, v1.IntegrationKitConditionType("IntegrationKitTasksValid"))
201+
require.NotNil(t, env.IntegrationKit.Status.Failure)
202+
assert.Equal(t, "Pipeline tasks unavailable when using `routine` platform build strategy: use `pod` instead.", env.IntegrationKit.Status.Failure.Reason)
201203
}
202204

203205
func TestCustomTaskBuilderTraitInvalidStrategyOverride(t *testing.T) {
@@ -213,6 +215,8 @@ func TestCustomTaskBuilderTraitInvalidStrategyOverride(t *testing.T) {
213215
assert.Equal(t, v1.IntegrationKitPhaseError, env.IntegrationKit.Status.Phase)
214216
assert.Equal(t, corev1.ConditionFalse, env.IntegrationKit.Status.Conditions[0].Status)
215217
assert.Equal(t, env.IntegrationKit.Status.Conditions[0].Type, v1.IntegrationKitConditionType("IntegrationKitTasksValid"))
218+
require.NotNil(t, env.IntegrationKit.Status.Failure)
219+
assert.Equal(t, "Pipeline tasks unavailable when using `routine` platform build strategy: use `pod` instead.", env.IntegrationKit.Status.Failure.Reason)
216220
}
217221

218222
func TestMavenProfilesBuilderTrait(t *testing.T) {

0 commit comments

Comments
 (0)