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 <pasquale.congiu...@gmail.com>
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 {

Reply via email to