diff --git a/pkg/operator/ceph/cluster/cluster_external.go b/pkg/operator/ceph/cluster/cluster_external.go index 1347bb4cd..c4caa50f4 100644 --- a/pkg/operator/ceph/cluster/cluster_external.go +++ b/pkg/operator/ceph/cluster/cluster_external.go @@ -182,7 +182,7 @@ func (c *ClusterController) configureExternalCephCluster(cluster *cluster) error if err != nil { return errors.Wrap(err, "failed to create/update cephConnection") } - err = csi.CreateDefaultClientProfile(c.context.Client, cluster.ClusterInfo, cluster.ClusterInfo.NamespacedName()) + err = csi.CreateDefaultClientProfile(c.context.Client, cluster.ClusterInfo) if err != nil { return errors.Wrap(err, "failed to create/update default client profile") } diff --git a/pkg/operator/ceph/cluster/mon/mon.go b/pkg/operator/ceph/cluster/mon/mon.go index bc43bb8d2..bfabb3922 100644 --- a/pkg/operator/ceph/cluster/mon/mon.go +++ b/pkg/operator/ceph/cluster/mon/mon.go @@ -1190,7 +1190,7 @@ func (c *Cluster) saveMonConfig() error { if err != nil { return errors.Wrap(err, "failed to create/update cephConnection") } - err = csi.CreateDefaultClientProfile(c.context.Client, c.ClusterInfo, c.ClusterInfo.NamespacedName()) + err = csi.CreateDefaultClientProfile(c.context.Client, c.ClusterInfo) if err != nil { return errors.Wrap(err, "failed to create/update default client profile") } diff --git a/pkg/operator/ceph/csi/ceph_connection.go b/pkg/operator/ceph/csi/ceph_connection.go index d33be98f2..8784fd13a 100644 --- a/pkg/operator/ceph/csi/ceph_connection.go +++ b/pkg/operator/ceph/csi/ceph_connection.go @@ -38,7 +38,7 @@ func CreateUpdateCephConnection(c client.Client, clusterInfo *cephclient.Cluster csiCephConnection.Name = clusterInfo.NamespacedName().Name csiCephConnection.Namespace = os.Getenv(k8sutil.PodNamespaceEnvVar) - spec, err := generateCephConnSpec(c, clusterInfo, csiCephConnection.Spec, clusterSpec) + spec, err := generateCephConnSpec(c, clusterInfo, clusterSpec) if err != nil { return errors.Wrapf(err, "failed to set ceph connection CR %q in namespace %q", csiCephConnection.Name, clusterInfo.Namespace) } @@ -68,12 +68,12 @@ func CreateUpdateCephConnection(c client.Client, clusterInfo *cephclient.Cluster return nil } -func generateCephConnSpec(c client.Client, clusterInfo *cephclient.ClusterInfo, csiClusterConnSpec csiopv1.CephConnectionSpec, clusterSpec cephv1.ClusterSpec) (csiopv1.CephConnectionSpec, error) { +func generateCephConnSpec(c client.Client, clusterInfo *cephclient.ClusterInfo, clusterSpec cephv1.ClusterSpec) (csiopv1.CephConnectionSpec, error) { + csiClusterConnSpec := csiopv1.CephConnectionSpec{} + if clusterSpec.CSI.ReadAffinity.Enabled { - csiClusterConnSpec = csiopv1.CephConnectionSpec{ - ReadAffinity: &csiopv1.ReadAffinitySpec{ - CrushLocationLabels: clusterSpec.CSI.ReadAffinity.CrushLocationLabels, - }, + csiClusterConnSpec.ReadAffinity = &csiopv1.ReadAffinitySpec{ + CrushLocationLabels: clusterSpec.CSI.ReadAffinity.CrushLocationLabels, } } diff --git a/pkg/operator/ceph/csi/config.go b/pkg/operator/ceph/csi/config.go index c44f6cba5..dae4fede3 100644 --- a/pkg/operator/ceph/csi/config.go +++ b/pkg/operator/ceph/csi/config.go @@ -35,7 +35,7 @@ import ( "sigs.k8s.io/controller-runtime/pkg/client" ) -func CreateUpdateClientProfileRadosNamespace(ctx context.Context, c client.Client, clusterInfo *cephclient.ClusterInfo, cephBlockPoolRadosNamespaceName, clusterID, clusterName string) error { +func CreateUpdateClientProfileRadosNamespace(ctx context.Context, c client.Client, clusterInfo *cephclient.ClusterInfo, cephBlockPoolRadosNamespaceName, clusterID string) error { logger.Info("creating ceph-csi clientProfile CR for rados namespace") csiOpClientProfile := &csiopv1.ClientProfile{} @@ -43,7 +43,7 @@ func CreateUpdateClientProfileRadosNamespace(ctx context.Context, c client.Clien csiOpClientProfile.Namespace = os.Getenv(k8sutil.PodNamespaceEnvVar) csiOpClientProfile.Spec = csiopv1.ClientProfileSpec{ CephConnectionRef: v1.LocalObjectReference{ - Name: clusterName, + Name: clusterInfo.Namespace, }, Rbd: &csiopv1.RbdConfigSpec{ RadosNamespace: cephBlockPoolRadosNamespaceName, @@ -72,10 +72,10 @@ func CreateUpdateClientProfileRadosNamespace(ctx context.Context, c client.Clien return nil } -func CreateUpdateClientProfileSubVolumeGroup(ctx context.Context, c client.Client, clusterInfo *cephclient.ClusterInfo, cephFilesystemSubVolumeGroupName, clusterID, clusterName string) error { +func CreateUpdateClientProfileSubVolumeGroup(ctx context.Context, c client.Client, clusterInfo *cephclient.ClusterInfo, cephFilesystemSubVolumeGroupName, clusterID string) error { logger.Info("Creating ceph-csi clientProfile CR for subvolume group") - csiOpClientProfile := generateProfileSubVolumeGroupSpec(clusterInfo, cephFilesystemSubVolumeGroupName, clusterID, clusterName) + csiOpClientProfile := generateProfileSubVolumeGroupSpec(clusterInfo, cephFilesystemSubVolumeGroupName, clusterID) err := c.Get(ctx, types.NamespacedName{Name: csiOpClientProfile.Name, Namespace: csiOpClientProfile.Namespace}, csiOpClientProfile) if err != nil { @@ -99,13 +99,13 @@ func CreateUpdateClientProfileSubVolumeGroup(ctx context.Context, c client.Clien return nil } -func generateProfileSubVolumeGroupSpec(clusterInfo *cephclient.ClusterInfo, cephFilesystemSubVolumeGroupName, clusterID, clusterName string) *csiopv1.ClientProfile { +func generateProfileSubVolumeGroupSpec(clusterInfo *cephclient.ClusterInfo, cephFilesystemSubVolumeGroupName, clusterID string) *csiopv1.ClientProfile { csiOpClientProfile := &csiopv1.ClientProfile{} csiOpClientProfile.Name = clusterID csiOpClientProfile.Namespace = os.Getenv(k8sutil.PodNamespaceEnvVar) csiOpClientProfile.Spec = csiopv1.ClientProfileSpec{ CephConnectionRef: v1.LocalObjectReference{ - Name: clusterName, + Name: clusterInfo.Namespace, }, CephFs: &csiopv1.CephFsConfigSpec{ SubVolumeGroup: cephFilesystemSubVolumeGroupName, @@ -126,7 +126,7 @@ func generateProfileSubVolumeGroupSpec(clusterInfo *cephclient.ClusterInfo, ceph } // CreateDefaultClientProfile creates a default client profile for csi-operator to connect driver -func CreateDefaultClientProfile(c client.Client, clusterInfo *cephclient.ClusterInfo, namespaced types.NamespacedName) error { +func CreateDefaultClientProfile(c client.Client, clusterInfo *cephclient.ClusterInfo) error { logger.Info("Creating ceph-csi clientProfile default CR") defer func() { if r := recover(); r != nil { @@ -141,7 +141,7 @@ func CreateDefaultClientProfile(c client.Client, clusterInfo *cephclient.Cluster csiOpClientProfile.Namespace = os.Getenv(k8sutil.PodNamespaceEnvVar) csiOpClientProfile.Spec = csiopv1.ClientProfileSpec{ CephConnectionRef: v1.LocalObjectReference{ - Name: namespaced.Name, + Name: clusterInfo.Namespace, }, } diff --git a/pkg/operator/ceph/csi/config_test.go b/pkg/operator/ceph/csi/config_test.go index 34b144a4e..b29234b80 100644 --- a/pkg/operator/ceph/csi/config_test.go +++ b/pkg/operator/ceph/csi/config_test.go @@ -52,7 +52,6 @@ func TestCreateUpdateClientProfile(t *testing.T) { c.SetName(c.Namespace) t.Setenv(k8sutil.PodNamespaceEnvVar, ns) - clusterName := "testClusterName" cephBlockPoolRadosNamespacedName := types.NamespacedName{Namespace: ns, Name: "cephBlockPoolRadosNames"} cephSubVolGrpNamespacedName := types.NamespacedName{Namespace: ns, Name: "cephSubVolumeGroupNames"} csiOpClientProfile := &csiopv1.ClientProfile{} @@ -66,10 +65,10 @@ func TestCreateUpdateClientProfile(t *testing.T) { // Create a fake client to mock API calls. cl := fake.NewClientBuilder().WithScheme(s).WithRuntimeObjects(object...).Build() - err := CreateUpdateClientProfileRadosNamespace(context.TODO(), cl, c, cephBlockPoolRadosNamespacedName.Name, cephBlockPoolRadosNamespacedName.Name, clusterName) + err := CreateUpdateClientProfileRadosNamespace(context.TODO(), cl, c, cephBlockPoolRadosNamespacedName.Name, cephBlockPoolRadosNamespacedName.Name) assert.NoError(t, err) - err = CreateUpdateClientProfileSubVolumeGroup(context.TODO(), cl, c, cephSubVolGrpNamespacedName.Name, cephSubVolGrpNamespacedName.Name, clusterName) + err = CreateUpdateClientProfileSubVolumeGroup(context.TODO(), cl, c, cephSubVolGrpNamespacedName.Name, cephSubVolGrpNamespacedName.Name) assert.NoError(t, err) err = cl.Get(context.TODO(), cephBlockPoolRadosNamespacedName, csiOpClientProfile) diff --git a/pkg/operator/ceph/file/subvolumegroup/controller.go b/pkg/operator/ceph/file/subvolumegroup/controller.go index fbfcf17f7..ac741c97f 100644 --- a/pkg/operator/ceph/file/subvolumegroup/controller.go +++ b/pkg/operator/ceph/file/subvolumegroup/controller.go @@ -273,7 +273,7 @@ func (r *ReconcileCephFilesystemSubVolumeGroup) reconcile(request reconcile.Requ } r.updateStatus(observedGeneration, namespacedName, cephv1.ConditionReady) if csi.EnableCSIOperator() { - err = csi.CreateUpdateClientProfileSubVolumeGroup(r.clusterInfo.Context, r.client, r.clusterInfo, cephFilesystemSubVolumeGroupName, buildClusterID(cephFilesystemSubVolumeGroup), cephCluster.Name) + err = csi.CreateUpdateClientProfileSubVolumeGroup(r.clusterInfo.Context, r.client, r.clusterInfo, cephFilesystemSubVolumeGroupName, buildClusterID(cephFilesystemSubVolumeGroup)) if err != nil { return reconcile.Result{}, errors.Wrap(err, "failed to create ceph csi-op config CR for subvolume") } @@ -326,7 +326,7 @@ func (r *ReconcileCephFilesystemSubVolumeGroup) reconcile(request reconcile.Requ r.updateStatus(observedGeneration, request.NamespacedName, cephv1.ConditionReady) if csi.EnableCSIOperator() { - err = csi.CreateUpdateClientProfileSubVolumeGroup(r.clusterInfo.Context, r.client, r.clusterInfo, cephFilesystemSubVolumeGroupName, buildClusterID(cephFilesystemSubVolumeGroup), cephCluster.Name) + err = csi.CreateUpdateClientProfileSubVolumeGroup(r.clusterInfo.Context, r.client, r.clusterInfo, cephFilesystemSubVolumeGroupName, buildClusterID(cephFilesystemSubVolumeGroup)) if err != nil { return reconcile.Result{}, errors.Wrap(err, "failed to create ceph csi-op config CR for subvolumeGroup") } diff --git a/pkg/operator/ceph/pool/radosnamespace/controller.go b/pkg/operator/ceph/pool/radosnamespace/controller.go index 139d75054..3f8a03062 100644 --- a/pkg/operator/ceph/pool/radosnamespace/controller.go +++ b/pkg/operator/ceph/pool/radosnamespace/controller.go @@ -289,7 +289,7 @@ func (r *ReconcileCephBlockPoolRadosNamespace) reconcile(request reconcile.Reque } r.updateStatus(r.client, namespacedName, cephv1.ConditionReady) if csi.EnableCSIOperator() { - err = csi.CreateUpdateClientProfileRadosNamespace(r.clusterInfo.Context, r.client, r.clusterInfo, radosNamespaceName, buildClusterID(radosNamespace), cephCluster.Name) + err = csi.CreateUpdateClientProfileRadosNamespace(r.clusterInfo.Context, r.client, r.clusterInfo, radosNamespaceName, buildClusterID(radosNamespace)) if err != nil { return reconcile.Result{}, radosNamespace, errors.Wrap(err, "failed to create ceph csi-op config CR for RadosNamespace") } @@ -353,7 +353,7 @@ func (r *ReconcileCephBlockPoolRadosNamespace) reconcile(request reconcile.Reque r.updateStatus(r.client, namespacedName, cephv1.ConditionReady) if csi.EnableCSIOperator() { - err = csi.CreateUpdateClientProfileRadosNamespace(r.clusterInfo.Context, r.client, r.clusterInfo, radosNamespaceName, buildClusterID(radosNamespace), cephCluster.Name) + err = csi.CreateUpdateClientProfileRadosNamespace(r.clusterInfo.Context, r.client, r.clusterInfo, radosNamespaceName, buildClusterID(radosNamespace)) if err != nil { return reconcile.Result{}, radosNamespace, errors.Wrap(err, "failed to create ceph csi-op config CR for RadosNamespace") }