From 214b109f238edd9905b629fdcf2aa98d6558fa32 Mon Sep 17 00:00:00 2001 From: subhamkrai Date: Fri, 27 Oct 2023 14:12:10 +0530 Subject: [PATCH] pool: rbd cmd shouldn't use admin in external mode when creating networkFence, rbd command was loading admin config and hence running rbd command use client.admin in case of external cluster also. With this commit instead of client.admin user it will use what is being passed to config. Signed-off-by: subhamkrai (cherry picked from commit ef4dd76df1b8aa64415cef7c45d3d6aaaf8a38a1) --- pkg/operator/ceph/cluster/watcher.go | 5 ++++- pkg/operator/ceph/cluster/watcher_test.go | 19 ++++++++++++++++++- 2 files changed, 22 insertions(+), 2 deletions(-) diff --git a/pkg/operator/ceph/cluster/watcher.go b/pkg/operator/ceph/cluster/watcher.go index 599cfb840..da55e20ce 100644 --- a/pkg/operator/ceph/cluster/watcher.go +++ b/pkg/operator/ceph/cluster/watcher.go @@ -219,7 +219,10 @@ func (c *clientCluster) fenceNode(ctx context.Context, node *corev1.Node, cluste return nil } - clusterInfo := cephclient.AdminClusterInfo(ctx, cluster.Namespace, cluster.Name) + clusterInfo, _, _, err := opcontroller.LoadClusterInfo(c.context, ctx, cluster.Namespace, &cluster.Spec) + if err != nil { + return pkgerror.Wrapf(err, "Failed to load cluster info.") + } for i := range rbdPVList { err = c.fenceRbdImage(ctx, node, cluster, clusterInfo, rbdPVList[i]) diff --git a/pkg/operator/ceph/cluster/watcher_test.go b/pkg/operator/ceph/cluster/watcher_test.go index 2a28d755f..19d659437 100644 --- a/pkg/operator/ceph/cluster/watcher_test.go +++ b/pkg/operator/ceph/cluster/watcher_test.go @@ -271,7 +271,24 @@ func TestHandleNodeFailure(t *testing.T) { }, } - _, err := c.context.Clientset.CoreV1().PersistentVolumes().Create(ctx, pv, metav1.CreateOptions{}) + // Mock clusterInfo + secrets := map[string][]byte{ + "fsid": []byte("c47cac40-9bee-4d52-823b-ccd803ba5bfe"), + "mon-secret": []byte("monsecret"), + "admin-secret": []byte("adminsecret"), + } + secret := &corev1.Secret{ + ObjectMeta: metav1.ObjectMeta{ + Name: "rook-ceph-mon", + Namespace: ns, + }, + Data: secrets, + Type: k8sutil.RookType, + } + _, err := c.context.Clientset.CoreV1().Secrets(ns).Create(ctx, secret, metav1.CreateOptions{}) + assert.NoError(t, err) + + _, err = c.context.Clientset.CoreV1().PersistentVolumes().Create(ctx, pv, metav1.CreateOptions{}) assert.NoError(t, err) _, err = c.context.ApiExtensionsClient.ApiextensionsV1().CustomResourceDefinitions().Create(ctx, &v1.CustomResourceDefinition{ObjectMeta: metav1.ObjectMeta{Name: "networkfences.csiaddons.openshift.io"}}, metav1.CreateOptions{})