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 eaa5b8873 fix(ctrl): check status instead of spec
eaa5b8873 is described below

commit eaa5b8873c9fbb21a7a358c7afcad86c5b0399aa
Author: Pasquale Congiusti <[email protected]>
AuthorDate: Sat Jan 17 09:26:30 2026 +0100

    fix(ctrl): check status instead of spec
    
    The trait could be configured by profiles as well
    
    Closes #6385
---
 pkg/controller/integration/integration_controller.go | 6 +++---
 pkg/controller/integration/monitor.go                | 8 ++++----
 pkg/controller/integration/monitor_test.go           | 9 +++++++++
 pkg/controller/pipe/initialize.go                    | 4 +++-
 4 files changed, 19 insertions(+), 8 deletions(-)

diff --git a/pkg/controller/integration/integration_controller.go 
b/pkg/controller/integration/integration_controller.go
index 51d1c7ae3..49cd378c2 100644
--- a/pkg/controller/integration/integration_controller.go
+++ b/pkg/controller/integration/integration_controller.go
@@ -213,10 +213,10 @@ func enqueueRequestsFromConfigFunc(ctx context.Context, c 
client.Client, res ctr
 
        for _, integration := range list.Items {
                found := false
-               if integration.Spec.Traits.Mount == nil || 
!ptr.Deref(integration.Spec.Traits.Mount.HotReload, false) {
+               if integration.Status.Traits == nil || 
integration.Status.Traits.Mount == nil || 
!ptr.Deref(integration.Status.Traits.Mount.HotReload, false) {
                        continue
                }
-               for _, c := range integration.Spec.Traits.Mount.Configs {
+               for _, c := range integration.Status.Traits.Mount.Configs {
                        if conf, parseErr := utilResource.ParseConfig(c); 
parseErr == nil {
                                if conf.StorageType() == storageType && 
conf.Name() == res.GetName() {
                                        found = true
@@ -225,7 +225,7 @@ func enqueueRequestsFromConfigFunc(ctx context.Context, c 
client.Client, res ctr
                                }
                        }
                }
-               for _, r := range integration.Spec.Traits.Mount.Resources {
+               for _, r := range integration.Status.Traits.Mount.Resources {
                        if conf, parseErr := utilResource.ParseConfig(r); 
parseErr == nil {
                                if conf.StorageType() == storageType && 
conf.Name() == res.GetName() {
                                        found = true
diff --git a/pkg/controller/integration/monitor.go 
b/pkg/controller/integration/monitor.go
index fc316f59e..e88d90af3 100644
--- a/pkg/controller/integration/monitor.go
+++ b/pkg/controller/integration/monitor.go
@@ -348,10 +348,10 @@ func isIntegrationKitResetRequired(integration 
*v1.Integration, kit *v1.Integrat
 func getIntegrationSecretAndConfigmapResourceVersions(ctx context.Context, 
client client.Client, integration *v1.Integration) ([]string, []string) {
        configmaps := make([]string, 0)
        secrets := make([]string, 0)
-       if integration.Spec.Traits.Mount != nil && 
ptr.Deref(integration.Spec.Traits.Mount.HotReload, false) {
-               mergedResources := make([]string, 0, 
len(integration.Spec.Traits.Mount.Configs)+len(integration.Spec.Traits.Mount.Resources))
-               mergedResources = append(mergedResources, 
integration.Spec.Traits.Mount.Configs...)
-               mergedResources = append(mergedResources, 
integration.Spec.Traits.Mount.Resources...)
+       if integration.Status.Traits != nil && integration.Status.Traits.Mount 
!= nil && ptr.Deref(integration.Status.Traits.Mount.HotReload, false) {
+               mergedResources := make([]string, 0, 
len(integration.Status.Traits.Mount.Configs)+len(integration.Status.Traits.Mount.Resources))
+               mergedResources = append(mergedResources, 
integration.Status.Traits.Mount.Configs...)
+               mergedResources = append(mergedResources, 
integration.Status.Traits.Mount.Resources...)
                for _, c := range mergedResources {
                        if conf, parseErr := utilResource.ParseConfig(c); 
parseErr == nil {
                                if conf.StorageType() == 
utilResource.StorageTypeConfigmap {
diff --git a/pkg/controller/integration/monitor_test.go 
b/pkg/controller/integration/monitor_test.go
index 6d192d857..ef1e93089 100644
--- a/pkg/controller/integration/monitor_test.go
+++ b/pkg/controller/integration/monitor_test.go
@@ -73,6 +73,14 @@ func TestGetIntegrationSecretAndConfigmapResourceVersions(t 
*testing.T) {
                                },
                        },
                },
+               Status: v1.IntegrationStatus{
+                       Traits: &v1.Traits{
+                               Mount: &trait.MountTrait{
+                                       Configs:   
[]string{"configmap:cm-test"},
+                                       Resources: []string{"secret:sec-test"},
+                               },
+                       },
+               },
        }
        c, err := internal.NewFakeClient(cm, sec)
        assert.Nil(t, err)
@@ -82,6 +90,7 @@ func TestGetIntegrationSecretAndConfigmapResourceVersions(t 
*testing.T) {
        assert.Len(t, secrets, 0)
        // Enabled hot reload (true)
        it.Spec.Traits.Mount.HotReload = ptr.To(true)
+       it.Status.Traits.Mount.HotReload = ptr.To(true)
        configmaps, secrets = 
getIntegrationSecretAndConfigmapResourceVersions(context.TODO(), c, it)
        assert.Len(t, configmaps, 1)
        assert.Len(t, secrets, 1)
diff --git a/pkg/controller/pipe/initialize.go 
b/pkg/controller/pipe/initialize.go
index 9d917e645..0375ee919 100644
--- a/pkg/controller/pipe/initialize.go
+++ b/pkg/controller/pipe/initialize.go
@@ -100,7 +100,9 @@ func propagateIcon(ctx context.Context, c client.Client, l 
log.Logger, pipe *v1.
 
        // We must patch this here as we're changing the resource annotations 
and not the resource status
        err = patchPipeIconAnnotations(ctx, c, pipe, icon)
-       l.Errorf(err, "some error happened while patching icon annotation for 
Pipe %q", pipe.Name)
+       if err != nil {
+               l.Errorf(err, "some error happened while patching icon 
annotation for Pipe %q", pipe.Name)
+       }
 }
 
 func findIcon(ctx context.Context, c client.Client, pipe *v1.Pipe) (string, 
error) {

Reply via email to