This is an automated email from the ASF dual-hosted git repository.
pcongiusti 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 e5b8eea37 feat(trait): use sensible timeout for Quarkus native builder
e5b8eea37 is described below
commit e5b8eea3732b4eb1aa139012905496de6d2b47b9
Author: Pasquale Congiusti <[email protected]>
AuthorDate: Fri Jun 20 15:57:14 2025 +0200
feat(trait): use sensible timeout for Quarkus native builder
* when this is higher than actual timeout
Closes #6061
---
pkg/apis/camel/v1/integrationkit_types.go | 1 +
pkg/controller/integrationkit/build.go | 27 ++++++++++++++++-----------
pkg/trait/builder.go | 2 --
3 files changed, 17 insertions(+), 13 deletions(-)
diff --git a/pkg/apis/camel/v1/integrationkit_types.go
b/pkg/apis/camel/v1/integrationkit_types.go
index b4aa97c94..564948fa1 100644
--- a/pkg/apis/camel/v1/integrationkit_types.go
+++ b/pkg/apis/camel/v1/integrationkit_types.go
@@ -165,6 +165,7 @@ const (
// IntegrationKitLayoutFastJar labels a kit using the Quarkus fast-jar
packaging.
IntegrationKitLayoutFastJar = "fast-jar"
// IntegrationKitLayoutNative labels a kit using the Quarkus native
packaging.
+ // Deprecated: no longer in use.
IntegrationKitLayoutNative = "native"
// IntegrationKitLayoutNativeSources labels a kit using the Quarkus
native-sources packaging.
IntegrationKitLayoutNativeSources = "native-sources"
diff --git a/pkg/controller/integrationkit/build.go
b/pkg/controller/integrationkit/build.go
index da534c672..f03c85986 100644
--- a/pkg/controller/integrationkit/build.go
+++ b/pkg/controller/integrationkit/build.go
@@ -25,6 +25,7 @@ import (
"time"
"github.com/apache/camel-k/v2/pkg/util/defaults"
+ "github.com/apache/camel-k/v2/pkg/util/log"
k8serrors "k8s.io/apimachinery/pkg/api/errors"
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
@@ -38,7 +39,7 @@ import (
)
const (
- buildTimeout = 10 * time.Minute
+ minNativeBuildTimeout = 10 * time.Minute
)
// NewBuildAction creates a new build request handling action for the kit.
@@ -129,14 +130,6 @@ func (action *buildAction) createBuild(ctx
context.Context, kit *v1.IntegrationK
annotations[v1.OperatorIDAnnotation] = operatorID
}
- timeout := env.Platform.Status.Build.GetTimeout()
- if layout := labels[v1.IntegrationKitLayoutLabel];
env.Platform.Spec.Build.Timeout == nil && layout ==
v1.IntegrationKitLayoutNativeSources {
- // Increase the timeout to a sensible default
- timeout = metav1.Duration{
- Duration: buildTimeout,
- }
- }
-
// We may need to change certain builder configuration values
operatorNamespace := platform.GetOperatorNamespace()
buildConfig := v1.ConfigurationTasksByName(env.Pipeline, "builder")
@@ -173,11 +166,23 @@ func (action *buildAction) createBuild(ctx
context.Context, kit *v1.IntegrationK
Annotations: annotations,
},
Spec: v1.BuildSpec{
- Tasks: env.Pipeline,
- Timeout: timeout,
+ Tasks: env.Pipeline,
},
}
+ timeout := env.Platform.Status.Build.GetTimeout()
+ if layout := labels[v1.IntegrationKitLayoutLabel];
env.Platform.Spec.Build.Timeout == nil && layout ==
v1.IntegrationKitLayoutNativeSources {
+ if timeout.Duration < minNativeBuildTimeout {
+ log.Infof("Forcing the Build %s/%s with a timeout of %s
as the platform value of %s is considered too low for a Quarkus native build. "+
+ "Adjust the platform settings accordingly as
you may even need a higher timeout value.",
+ build.Namespace, build.Name,
minNativeBuildTimeout, &timeout.Duration)
+ timeout = metav1.Duration{
+ Duration: minNativeBuildTimeout,
+ }
+ }
+ }
+ build.Spec.Timeout = timeout
+
// Set the integration kit instance as the owner and controller
if err := controllerutil.SetControllerReference(kit, build,
action.client.GetScheme()); err != nil {
return nil, err
diff --git a/pkg/trait/builder.go b/pkg/trait/builder.go
index cbe8d609a..3665e2a55 100644
--- a/pkg/trait/builder.go
+++ b/pkg/trait/builder.go
@@ -371,7 +371,6 @@ func (t *builderTrait) builderTask(e *Environment, taskConf
*v1.BuildConfigurati
}
if t.Strategy != "" {
- t.L.Infof("User defined build strategy %s", t.Strategy)
found := false
for _, s := range v1.BuildStrategies {
if string(s) == t.Strategy {
@@ -390,7 +389,6 @@ func (t *builderTrait) builderTask(e *Environment, taskConf
*v1.BuildConfigurati
}
if t.OrderStrategy != "" {
- t.L.Infof("User defined build order strategy %s",
t.OrderStrategy)
found := false
for _, s := range v1.BuildOrderStrategies {
if string(s) == t.OrderStrategy {