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 {