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

commit fdd30a6e742fb0744e87002fb6e36a4fe793ddfe
Author: Pasquale Congiusti <[email protected]>
AuthorDate: Thu Apr 13 12:53:31 2023 +0200

    fix(cmd): uninstall kube-public rolebindings
    
    Closes #3829
---
 pkg/cmd/uninstall.go    | 24 ++++++++++++++++++++++++
 pkg/install/operator.go |  2 +-
 2 files changed, 25 insertions(+), 1 deletion(-)

diff --git a/pkg/cmd/uninstall.go b/pkg/cmd/uninstall.go
index 56157b9d7..6579da4a0 100644
--- a/pkg/cmd/uninstall.go
+++ b/pkg/cmd/uninstall.go
@@ -239,6 +239,12 @@ func (o *uninstallCmdOptions) uninstallNamespaceRoles(ctx 
context.Context, cmd *
                        return err
                }
                fmt.Fprintln(cmd.OutOrStdout(), "Camel K Role Bindings removed 
from namespace", o.Namespace)
+
+               KEP1755Namespace := "kube-public"
+               if err := o.uninstallKEP_1755RoleBindings(ctx, c, 
KEP1755Namespace); err != nil {
+                       return err
+               }
+               fmt.Fprintln(cmd.OutOrStdout(), "Camel K Role Bindings removed 
from namespace", KEP1755Namespace)
        }
 
        if !o.SkipRoles {
@@ -347,6 +353,24 @@ func (o *uninstallCmdOptions) uninstallRoleBindings(ctx 
context.Context, c clien
        return nil
 }
 
+func (o *uninstallCmdOptions) uninstallKEP_1755RoleBindings(ctx 
context.Context, c client.Client, namespace string) error {
+       api := c.RbacV1()
+
+       roleBindings, err := api.RoleBindings(namespace).List(ctx, 
defaultListOptions)
+       if err != nil {
+               return err
+       }
+
+       for _, roleBinding := range roleBindings.Items {
+               err := api.RoleBindings(namespace).Delete(ctx, 
roleBinding.Name, metav1.DeleteOptions{})
+               if err != nil {
+                       return err
+               }
+       }
+
+       return nil
+}
+
 func (o *uninstallCmdOptions) uninstallClusterRoles(ctx context.Context, c 
client.Client) error {
        api := c.RbacV1()
 
diff --git a/pkg/install/operator.go b/pkg/install/operator.go
index 9f8c10d9c..14f99fa0a 100644
--- a/pkg/install/operator.go
+++ b/pkg/install/operator.go
@@ -345,7 +345,7 @@ func OperatorOrCollect(ctx context.Context, cmd 
*cobra.Command, c client.Client,
        }
 
        if err = installNamespacedRoleBinding(ctx, c, collection, 
cfg.Namespace, "/rbac/operator-role-binding-local-registry.yaml"); err != nil {
-               fmt.Fprintln(cmd.ErrOrStderr(), "Warning: the operator won't be 
able to detect a local image registry via KEP-1755")
+               fmt.Fprintf(cmd.ErrOrStderr(), "Warning: the operator may not 
be able to detect a local image registry (%s)\n", err.Error())
        }
 
        if cfg.Monitoring.Enabled {

Reply via email to