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

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

commit 1c74469b4ff95d4635376a6a503786e1e09838f4
Author: nicolaferraro <ni.ferr...@gmail.com>
AuthorDate: Wed Jul 28 17:58:10 2021 +0200

    Fix #2530: fix type and do not add cross-namespace owner references
---
 pkg/trait/owner.go       | 23 +++++++++++++----------
 pkg/trait/pull_secret.go |  4 ++++
 2 files changed, 17 insertions(+), 10 deletions(-)

diff --git a/pkg/trait/owner.go b/pkg/trait/owner.go
index c821e02..e6abc6d 100644
--- a/pkg/trait/owner.go
+++ b/pkg/trait/owner.go
@@ -78,17 +78,20 @@ func (t *ownerTrait) Apply(e *Environment) error {
        }
 
        e.Resources.VisitMetaObject(func(res metav1.Object) {
-               references := []metav1.OwnerReference{
-                       {
-                               APIVersion:         e.Integration.APIVersion,
-                               Kind:               e.Integration.Kind,
-                               Name:               e.Integration.Name,
-                               UID:                e.Integration.UID,
-                               Controller:         &controller,
-                               BlockOwnerDeletion: &blockOwnerDeletion,
-                       },
+               // Avoid setting owner references across namespaces (resources 
are asynchronously refused by the api server)
+               if res.GetNamespace() == "" || res.GetNamespace() == 
e.Integration.Namespace {
+                       references := []metav1.OwnerReference{
+                               {
+                                       APIVersion:         
e.Integration.APIVersion,
+                                       Kind:               e.Integration.Kind,
+                                       Name:               e.Integration.Name,
+                                       UID:                e.Integration.UID,
+                                       Controller:         &controller,
+                                       BlockOwnerDeletion: &blockOwnerDeletion,
+                               },
+                       }
+                       res.SetOwnerReferences(references)
                }
-               res.SetOwnerReferences(references)
 
                // Transfer annotations
                t.propagateLabelAndAnnotations(res, targetLabels, 
targetAnnotations)
diff --git a/pkg/trait/pull_secret.go b/pkg/trait/pull_secret.go
index 115d601..b1612ce 100644
--- a/pkg/trait/pull_secret.go
+++ b/pkg/trait/pull_secret.go
@@ -122,6 +122,10 @@ func (t *pullSecretTrait) newImagePullerRoleBinding(e 
*Environment) *rbacv1.Role
                serviceAccount = "default"
        }
        return &rbacv1.RoleBinding{
+               TypeMeta: metav1.TypeMeta{
+                       Kind:       "RoleBinding",
+                       APIVersion: rbacv1.SchemeGroupVersion.String(),
+               },
                ObjectMeta: metav1.ObjectMeta{
                        Namespace: 
e.Integration.GetIntegrationKitNamespace(e.Platform),
                        Name:      fmt.Sprintf("camel-k-puller-%s", 
e.Integration.Namespace),

Reply via email to