You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@camel.apache.org by nf...@apache.org on 2021/05/26 12:44:44 UTC

[camel-k] 06/06: refactor(trait): property names and error condition

This is an automated email from the ASF dual-hosted git repository.

nferraro pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/camel-k.git

commit b9feccf824bfd44ec54adade7bde7d6d8371b3ef
Author: Pasquale Congiusti <pa...@gmail.com>
AuthorDate: Thu May 20 16:19:00 2021 +0200

    refactor(trait): property names and error condition
---
 pkg/cmd/run.go            |  2 +-
 pkg/trait/builder.go      | 17 ++++++++++++-----
 pkg/trait/builder_test.go |  2 +-
 3 files changed, 14 insertions(+), 7 deletions(-)

diff --git a/pkg/cmd/run.go b/pkg/cmd/run.go
index ade7f80..1c341d9 100644
--- a/pkg/cmd/run.go
+++ b/pkg/cmd/run.go
@@ -554,7 +554,7 @@ func (o *runCmdOptions) updateIntegrationCode(c client.Client, sources []string,
 	}
 	// convert each build configuration to a builder trait property
 	for _, item := range o.BuildProperties {
-		o.Traits = append(o.Traits, fmt.Sprintf("builder.build-time-properties=%s", item))
+		o.Traits = append(o.Traits, fmt.Sprintf("builder.properties=%s", item))
 	}
 	for _, item := range o.LoggingLevels {
 		integration.Spec.AddConfiguration("property", "logging.level."+item)
diff --git a/pkg/trait/builder.go b/pkg/trait/builder.go
index 1e96d49..f2d0775 100644
--- a/pkg/trait/builder.go
+++ b/pkg/trait/builder.go
@@ -24,6 +24,8 @@ import (
 
 	v1 "github.com/apache/camel-k/pkg/apis/camel/v1"
 	"github.com/apache/camel-k/pkg/builder"
+	corev1 "k8s.io/api/core/v1"
+	metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
 )
 
 // The builder trait is internally used to determine the best strategy to
@@ -35,7 +37,7 @@ type builderTrait struct {
 	// Enable verbose logging on build components that support it (e.g. Kaniko build pod).
 	Verbose *bool `property:"verbose" json:"verbose,omitempty"`
 	// A list of properties to be provided to the build task
-	BuildTimeProperties []string `property:"build-time-properties" json:"buildTimeProperties,omitempty"`
+	Properties []string `property:"properties" json:"properties,omitempty"`
 }
 
 func newBuilderTrait() Trait {
@@ -65,8 +67,13 @@ func (t *builderTrait) Configure(e *Environment) (bool, error) {
 func (t *builderTrait) Apply(e *Environment) error {
 	builderTask, err := t.builderTask(e)
 	if err != nil {
-		// Should we clean the failing integration kit as well?
-		return err
+		e.IntegrationKit.Status.Phase = v1.IntegrationKitPhaseError
+		e.IntegrationKit.Status.SetCondition("IntegrationKitPropertiesFormatValid", corev1.ConditionFalse,
+			"IntegrationKitPropertiesFormatValid", fmt.Sprintf("One or more properties where not formatted as expected: %s", err.Error()))
+		if _, err := e.Client.CamelV1().IntegrationKits(e.IntegrationKit.Namespace).UpdateStatus(e.C, e.IntegrationKit, metav1.UpdateOptions{}); err != nil {
+			return err
+		}
+		return nil
 	}
 
 	e.BuildTasks = append(e.BuildTasks, v1.Task{Builder: builderTask})
@@ -143,8 +150,8 @@ func (t *builderTrait) builderTask(e *Environment) (*v1.BuilderTask, error) {
 		task.Properties = make(map[string]string)
 	}
 	// User provided build time configuration properties
-	if t.BuildTimeProperties != nil {
-		for _, v := range t.BuildTimeProperties {
+	if t.Properties != nil {
+		for _, v := range t.Properties {
 			split := strings.Split(v, "=")
 			if len(split) != 2 {
 				return nil, fmt.Errorf("Build time configuration property must have key=value format, it was %v", v)
diff --git a/pkg/trait/builder_test.go b/pkg/trait/builder_test.go
index 591c744..31fea52 100644
--- a/pkg/trait/builder_test.go
+++ b/pkg/trait/builder_test.go
@@ -155,7 +155,7 @@ func NewBuilderTestCatalog() *Catalog {
 func TestBuildtimeConfigurationBuilderTrait(t *testing.T) {
 	env := createBuilderTestEnv(v1.IntegrationPlatformClusterKubernetes, v1.IntegrationPlatformBuildPublishStrategyKaniko)
 	builderTrait := createNominalBuilderTraitTest()
-	builderTrait.BuildTimeProperties = append(builderTrait.BuildTimeProperties, "build-time-prop1=build-time-value1")
+	builderTrait.Properties = append(builderTrait.Properties, "build-time-prop1=build-time-value1")
 
 	err := builderTrait.Apply(env)