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

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

commit d2cb79c9c9d3fbc93ff843eec214164674ea6aec
Author: Antonin Stefanutti <[email protected]>
AuthorDate: Fri Aug 27 10:40:55 2021 +0200

    fix(native): Do not add default Quarkus trait configuration to kit
---
 pkg/trait/quarkus.go | 104 ++++++++++++++++++++++++++++-----------------------
 1 file changed, 58 insertions(+), 46 deletions(-)

diff --git a/pkg/trait/quarkus.go b/pkg/trait/quarkus.go
index 2e47f5b..138d3a1 100644
--- a/pkg/trait/quarkus.go
+++ b/pkg/trait/quarkus.go
@@ -106,10 +106,6 @@ func (t *quarkusTrait) Configure(e *Environment) (bool, 
error) {
                return false, nil
        }
 
-       if len(t.PackageTypes) == 0 {
-               t.PackageTypes = []quarkusPackageType{fastJarPackageType}
-       }
-
        return e.IntegrationInPhase(v1.IntegrationPhaseBuildingKit) ||
                        
e.IntegrationKitInPhase(v1.IntegrationKitPhaseBuildSubmitted) ||
                        e.InPhase(v1.IntegrationKitPhaseReady, 
v1.IntegrationPhaseDeploying) ||
@@ -119,50 +115,39 @@ func (t *quarkusTrait) Configure(e *Environment) (bool, 
error) {
 
 func (t *quarkusTrait) Apply(e *Environment) error {
        if e.IntegrationInPhase(v1.IntegrationPhaseBuildingKit) {
-               integration := e.Integration
-
-               for _, packageType := range t.PackageTypes {
-                       kit := 
v1.NewIntegrationKit(integration.GetIntegrationKitNamespace(e.Platform), 
fmt.Sprintf("kit-%s", xid.New()))
-
-                       kit.Labels = map[string]string{
-                               v1.IntegrationKitTypeLabel:            
v1.IntegrationKitTypePlatform,
-                               "camel.apache.org/runtime.version":    
integration.Status.RuntimeVersion,
-                               "camel.apache.org/runtime.provider":   
string(integration.Status.RuntimeProvider),
-                               v1.IntegrationKitLayoutLabel:          
string(packageType),
-                               v1.IntegrationKitPriorityLabel:        
kitPriority[packageType],
-                               kubernetes.CamelCreatorLabelKind:      
v1.IntegrationKind,
-                               kubernetes.CamelCreatorLabelName:      
integration.Name,
-                               kubernetes.CamelCreatorLabelNamespace: 
integration.Namespace,
-                               kubernetes.CamelCreatorLabelVersion:   
integration.ResourceVersion,
-                       }
-
-                       traits := t.getKitTraits(e)
-                       data, err := 
json.Marshal(traits[quarkusTraitId].Configuration)
-                       if err != nil {
-                               return err
-                       }
-                       trait := quarkusTrait{}
-                       err = json.Unmarshal(data, &trait)
-                       if err != nil {
-                               return err
-                       }
-                       trait.PackageTypes = []quarkusPackageType{packageType}
-                       data, err = json.Marshal(trait)
-                       if err != nil {
-                               return err
-                       }
-                       traits[quarkusTraitId] = v1.TraitSpec{
-                               Configuration: v1.TraitConfiguration{
-                                       RawMessage: data,
-                               },
-                       }
-                       kit.Spec = v1.IntegrationKitSpec{
-                               Dependencies: e.Integration.Status.Dependencies,
-                               Repositories: e.Integration.Spec.Repositories,
-                               Traits:       traits,
-                       }
+               switch len(t.PackageTypes) {
+               case 0:
+                       kit := t.newIntegrationKit(e, fastJarPackageType)
+                       e.IntegrationKits = append(e.IntegrationKits, *kit)
 
+               case 1:
+                       kit := t.newIntegrationKit(e, t.PackageTypes[0])
                        e.IntegrationKits = append(e.IntegrationKits, *kit)
+
+               default:
+                       for _, packageType := range t.PackageTypes {
+                               kit := t.newIntegrationKit(e, packageType)
+                               data, err := 
json.Marshal(kit.Spec.Traits[quarkusTraitId].Configuration)
+                               if err != nil {
+                                       return err
+                               }
+                               trait := quarkusTrait{}
+                               err = json.Unmarshal(data, &trait)
+                               if err != nil {
+                                       return err
+                               }
+                               trait.PackageTypes = 
[]quarkusPackageType{packageType}
+                               data, err = json.Marshal(trait)
+                               if err != nil {
+                                       return err
+                               }
+                               kit.Spec.Traits[quarkusTraitId] = v1.TraitSpec{
+                                       Configuration: v1.TraitConfiguration{
+                                               RawMessage: data,
+                                       },
+                               }
+                               e.IntegrationKits = append(e.IntegrationKits, 
*kit)
+                       }
                }
 
                return nil
@@ -225,6 +210,33 @@ func (t *quarkusTrait) Apply(e *Environment) error {
        return nil
 }
 
+func (t *quarkusTrait) newIntegrationKit(e *Environment, packageType 
quarkusPackageType) *v1.IntegrationKit {
+       integration := e.Integration
+       kit := 
v1.NewIntegrationKit(integration.GetIntegrationKitNamespace(e.Platform), 
fmt.Sprintf("kit-%s", xid.New()))
+
+       kit.Labels = map[string]string{
+               v1.IntegrationKitTypeLabel:            
v1.IntegrationKitTypePlatform,
+               "camel.apache.org/runtime.version":    
integration.Status.RuntimeVersion,
+               "camel.apache.org/runtime.provider":   
string(integration.Status.RuntimeProvider),
+               v1.IntegrationKitLayoutLabel:          string(packageType),
+               v1.IntegrationKitPriorityLabel:        kitPriority[packageType],
+               kubernetes.CamelCreatorLabelKind:      v1.IntegrationKind,
+               kubernetes.CamelCreatorLabelName:      integration.Name,
+               kubernetes.CamelCreatorLabelNamespace: integration.Namespace,
+               kubernetes.CamelCreatorLabelVersion:   
integration.ResourceVersion,
+       }
+
+       traits := t.getKitTraits(e)
+
+       kit.Spec = v1.IntegrationKitSpec{
+               Dependencies: e.Integration.Status.Dependencies,
+               Repositories: e.Integration.Spec.Repositories,
+               Traits:       traits,
+       }
+
+       return kit
+}
+
 func (t *quarkusTrait) getKitTraits(e *Environment) map[string]v1.TraitSpec {
        traits := make(map[string]v1.TraitSpec)
        for name, spec := range e.Integration.Spec.Traits {

Reply via email to