This is an automated email from the ASF dual-hosted git repository. pcongiusti pushed a commit to branch release-2.9.x in repository https://gitbox.apache.org/repos/asf/camel-k.git
commit 91d7253f9caa03b07eb8d88e0c6c00bb2df971a3 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 96777000e..9ec697083 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 1f42b3812..d1d0f0a0a 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) - 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 e01f9d857..aa6ad2d72 100644 --- a/pkg/controller/pipe/initialize.go +++ b/pkg/controller/pipe/initialize.go @@ -99,7 +99,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) {
