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) {